最近公司将原数据库服务器切换。以前没整过这块,也是一堆的度娘。通过不停的摸索,终于成功了。如今将这份艰辛记录下来,方便本身之后查阅的同时,方便有相似需求的同窗参考。sql
咱们这次切换共分:ERP、LOS、WMS三个系统。数据库
因前期搭建,这三个系统均在同一实例。以不一样的表空间、用户区分。服务器
这次切换思路:oracle
1)以实例的方式备份、还原。命令 Exp/imp (命令再也不叙述)ide
优势:省事、可总体导出还原、内网之间切换,可远程备份(如:将 192.168.1.1 备份至 192.168.1.2);大数据
结果:失败;提示表空间、用户、实例、索引已存在,没法继续还原;spa
2)以表空间的方式备份、还原。命令 Exp/Imp日志
较前一种方式,将同一实例拆解成三个表空间的形式备份、还原索引
结果:失败; 缘由:同一表空间下多个用户,以表空间的形式导入,部分用户未创建的缘由(这个缘由纯属我的猜想,有机会再验证一下)table
3)按用户的方式备份、还原。命令 Expdp/Impdp(Oracle 10G之后版本支持)
优势:该方式备份速度快。(与第一种方式相比,该方式为本地备份,再将备份文件拷贝至新服务器还原。咱们此次是内网间切换,这种方式是比较适合的)
结果:成功!
错误提示:
a)空表索引建立失败(忽略)
b)带dbLink 的视图建立失败(还原方式:先还原存储过程->索引->视图->DbLink) 。在建立视图时,Dblink还未建立,因此失败。因涉及到DbLink 的视图较少,按照还原日志,从老库将其还原
思路如上,具体流程以下:
迁移流程
一、创建实例
二、设置备份文件夹:create directory backup as '文件夹地址';
查看设置的文件夹select * from dba_directories;
三、在新服务器创建源服务器相同表单空间(注意表单空间大小,表单空间数据文件可多个,一个最大数据为32G)
查看实例里面表单空间:select tablespace_name from dba_tablespaces;
创建表单空间两种方式:
第一种在EM里面创建
第二种在sqlplus里面用DBA权限创建
命令创建表空间文件
create tablespace erpsys (erpsys为你要创建表单名称)
logging
datafile 'd:\oracle data\erp\erpsys.dbf' (数据库文件存放地址)
size 32m (32M为你表单文件初始大小)
autoextend on
next 32m maxsize 30000m (32M数据文件满后自动扩展大小 30000M文件最大值)
extent management local
增长表空间的数据文件
ALTER TABLESPACE erpsys ADD DATAFILE(erpsys为你要增长文件的表单)
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF'(数据库文件存放地址)
SIZE 32M(32M为你表单文件初始大小)
AUTOEXTEND ON
NEXT 32M MAXSIZE 30000M; (32M数据文件满后自动扩展大小 30000M文件最大值)
四、创建用户
1)建立用户: create user losuser identified by sys2012;
2)分配空间:alter user losuser default tablespace los;
3)授予dba权限:grant connect,resource,dba to losuser;
五、导出
C:\Users\Administrator>Expdp fxwmsuser/sys2016@wms schemas=wmsuser dumpfile=wmsu
ser.dmp directory=backup logfile=wmsuser.log
六、导入
impdp system/sys2017@erp DIRECTORY=backup DUMPFILE=wmsuser.dmp SCHEMAS=wmsuser logfile=wmsuser.log