Oracle数据库迁移几种方式和步骤
Oracle数据库迁移几种方式
一.exp/imp:
这也算是最常用最简单的方法了,一般是基于应用的owner级做导出导入.
操作方法为:在新库建立好owner和表空间,停老库的应用,
在老库做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,传dmp文件到新库,
在新库做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.
优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间.
一.exp/imp:
这也算是最常用最简单的方法了,一般是基于应用的owner级做导出导入.
操作方法为:在新库建立好owner和表空间,停老库的应用,
在老库做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,传dmp文件到新库,
在新库做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.
优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间.
二.存储迁移:
这种情况下,数据文件.控制文件.日志文件.spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库.
操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置.将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库.
优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为当库.切存储.起库的时间.缺点是要求新老库都是同一平台,是相同的数据库版本.
这种情况下,数据文件.控制文件.日志文件.spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库.
操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置.将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库.
优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为当库.切存储.起库的时间.缺点是要求新老库都是同一平台,是相同的数据库版本.
三.利用data guard迁移:
用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式.
操作方法:
可见http://www.oracleblog.cn/study-note/dg-created-by-rman/
或者http://www.oracleblog.cn/study-note/create-dg-by-rman-one-datafile-by-one-datafile/或者其他相关网文.
注意switch over之后,可以将dg拆掉,去掉log_archive_dest_2.FAL_SERVER.FAL_CLIENT.standby_file_management参数.另外还要注意如果用rman做dg,注意手工添加tempfile.
优缺点:优点是停机时间短,停机时间为switch over的时间.缺点:主机必须双份.存储必须双份.
用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式.
操作方法:
可见http://www.oracleblog.cn/study-note/dg-created-by-rman/
或者http://www.oracleblog.cn/study-note/create-dg-by-rman-one-datafile-by-one-datafile/或者其他相关网文.
注意switch over之后,可以将dg拆掉,去掉log_archive_dest_2.FAL_SERVER.FAL_CLIENT.standby_file_management参数.另外还要注意如果用rman做dg,注意手工添加tempfile.
优缺点:优点是停机时间短,停机时间为switch over的时间.缺点:主机必须双份.存储必须双份.
四.用rman做迁移:
rman比较适合于跨文件系统的迁移,如同平台下的不同文件系统.
操作方法:
1.停第三方的归档备份,如legato或dp
2.backup数据库:
rman比较适合于跨文件系统的迁移,如同平台下的不同文件系统.
操作方法:
1.停第三方的归档备份,如legato或dp
2.backup数据库:
在这里做一点记录说明,以下是来自跟踪文件的记录信息:
WAIT #2: nam='Data file init write' ela= 13031 count=1 intr=256 timeout=-1 obj#=51706 tim=6068271611
WAIT #2: nam='Data file init write' ela= 118163 count=1 intr=256 timeout=-1 obj#=51706 tim=6068392491
WAIT #2: nam='Data file init write' ela= 94036 count=1 intr=256 timeout=-1 obj#=51706 tim=6068490286
WAIT #2: nam='Data file init write' ela= 52412 count=1 intr=256 timeout=-1 obj#=51706 tim=6068545333
WAIT #2: nam='Data file init write' ela= 4 count=0 intr=32 timeout=2147483647 obj#=51706 tim=6068545596
WAIT #2: nam='Data file init write' ela= 26 count=1 intr=32 timeout=2147483647 obj#=51706 tim=6068545641
WAIT #2: nam='Data file init write' ela= 101743 count=1 intr=256 timeout=-1 obj#=51706 tim=6068648487
WAIT #2: nam='Data file init write' ela= 44854 count=1 intr=256 timeout=-1 obj#=51706 tim=6068694281
WAIT #2: nam='Data file init write' ela= 52841 count=1 intr=256 timeout=-1 obj#=51706 tim=6068748054
WAIT #2: nam='Data file init write' ela= 48984 count=1 intr=256 timeout=-1 obj#=51706 tim=6068798310
WAIT #2: nam='Data file init write' ela= 3 count=0 intr=32 timeout=2147483647 obj#=51706 tim=6068798365
WAIT #2: nam='Data file init write' ela= 26 count=1 intr=32 timeout=2147483647 obj#=51706 tim=6068798409
WAIT #2: nam='Data file init write' ela= 101899 count=1 intr=256 timeout=-1 obj#=51706 tim=6068900931
WAIT #2: nam='Data file init write' ela= 21 count=-1 intr=32 timeout=2147483647 obj#=51706 tim=6068901053
WAIT #2: nam='Data file init write' ela= 118163 count=1 intr=256 timeout=-1 obj#=51706 tim=6068392491
WAIT #2: nam='Data file init write' ela= 94036 count=1 intr=256 timeout=-1 obj#=51706 tim=6068490286
WAIT #2: nam='Data file init write' ela= 52412 count=1 intr=256 timeout=-1 obj#=51706 tim=6068545333
WAIT #2: nam='Data file init write' ela= 4 count=0 intr=32 timeout=2147483647 obj#=51706 tim=6068545596
WAIT #2: nam='Data file init write' ela= 26 count=1 intr=32 timeout=2147483647 obj#=51706 tim=6068545641
WAIT #2: nam='Data file init write' ela= 101743 count=1 intr=256 timeout=-1 obj#=51706 tim=6068648487
WAIT #2: nam='Data file init write' ela= 44854 count=1 intr=256 timeout=-1 obj#=51706 tim=6068694281
WAIT #2: nam='Data file init write' ela= 52841 count=1 intr=256 timeout=-1 obj#=51706 tim=6068748054
WAIT #2: nam='Data file init write' ela= 48984 count=1 intr=256 timeout=-1 obj#=51706 tim=6068798310
WAIT #2: nam='Data file init write' ela= 3 count=0 intr=32 timeout=2147483647 obj#=51706 tim=6068798365
WAIT #2: nam='Data file init write' ela= 26 count=1 intr=32 timeout=2147483647 obj#=51706 tim=6068798409
WAIT #2: nam='Data file init write' ela= 101899 count=1 intr=256 timeout=-1 obj#=51706 tim=6068900931
WAIT #2: nam='Data file init write' ela= 21 count=-1 intr=32 timeout=2147483647 obj#=51706 tim=6068901053
测试数据库是Oracle10g 10.2.0.3,实际上这个等待事件也是从Oracle 10g开始引入的,用来标识表空间或数据文件扩展时的等待.
Oracle 需要将系统块格式化为Oracle数据块,然后才能提供数据库使用.
在这个流程处理中,Oracle经过如下三个步骤:
1.扩展数据文件
select file# from file$ where ts#=:1
2.更新用户空间限额
update tsq$ set blocks=:3,maxblocks=:4,grantor#=:5,priv1=:6,priv2=:7,priv3=:8 where ts#=:1 and user#=:2
3.扩展数据段
update seg$ set type#=:4,blocks=:5,extents=:6,minexts=:7,maxexts=:8,extsize=:9,extpct=:10,user#=:11,iniexts=:12,lists=decode(:13, 65535, NULL, :13),groups=decode(:14, 65535, NULL, :14), cachehint=:15, hwmincr=:16, spare1=DECODE(:17,0,NULL,:17),scanhint=:18 where ts#=:1 and file#=:2 and block#=:3
这就是Oracle10g中空间扩展时内部流程.
Oracle 需要将系统块格式化为Oracle数据块,然后才能提供数据库使用.
在这个流程处理中,Oracle经过如下三个步骤:
1.扩展数据文件
select file# from file$ where ts#=:1
2.更新用户空间限额
update tsq$ set blocks=:3,maxblocks=:4,grantor#=:5,priv1=:6,priv2=:7,priv3=:8 where ts#=:1 and user#=:2
3.扩展数据段
update seg$ set type#=:4,blocks=:5,extents=:6,minexts=:7,maxexts=:8,extsize=:9,extpct=:10,user#=:11,iniexts=:12,lists=decode(:13, 65535, NULL, :13),groups=decode(:14, 65535, NULL, :14), cachehint=:15, hwmincr=:16, spare1=DECODE(:17,0,NULL,:17),scanhint=:18 where ts#=:1 and file#=:2 and block#=:3
这就是Oracle10g中空间扩展时内部流程.
--------------------------------------------------------- ---------------------------------------------------------
◆Oracle数据库迁移方法步骤一:
首先,复制原Oracle数据库的安装目录到新机器或系统中的安装目录,注意目录要一致,盘符也要一致.
◆Oracle数据库迁移方法步骤二:
假如Oracle的安装目录不在Program Files系统文件夹下,我们需要把原系统中的Program Files文件夹下的Oracle目录也复制到新系统的Program Files文件夹中去.
◆Oracle数据库迁移方法步骤三:
导出原系统中的Oracle注册表信息,主要注册信息如下:
A. HKEY_LOCAL_MACHINESOFTWAREORACLE
B. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
下有关Oracle的所有键,通常包括以下9个:
OracleMTSRecoveryService OracleOraHome92Agent OracleOraHome92ClientCache OracleOraHome92HTTPServer OracleOraHome92PagingServer OracleOraHome92SNMPPeerEncapsulator OracleOraHome92SNMPPeerMasterAgent OracleOraHome92TNSListener OracleServiceORA8
◆Oracle数据库迁移方法步骤四:
注意:有多少个数据库,注册表服务键下的OracleServiceXXX就会有多个.其中最主要的有监听服务和数据库服务,即OracleOraHome92TNSListenerXXX和OracleServiceXXX.
◆Oracle数据库迁移方法步骤五:
将导出的所有注册表的信息在新的系统中导入(注册).
◆Oracle数据库迁移方法步骤六:
设置系统环境变量,打开"我的电脑"的"属性"界面,在"高级"而点击"环境变量"进入设置,找到[Path]系统变量项目,点"编辑",在变量值的输入框的最后,加入";ORACLE的安装目录".
◆Oracle数据库迁移方法七:
最后我们需要进入 C:Documents and SettingsAll UsersStart MenuPrograms下把 Oracle - OraHome92 和 Oracle Installation Products 两个菜单文件夹也复制到新系统中,此时,就和新安装的一样了.
重启系统后,成功完成.
◆Oracle数据库迁移方法步骤一:
首先,复制原Oracle数据库的安装目录到新机器或系统中的安装目录,注意目录要一致,盘符也要一致.
◆Oracle数据库迁移方法步骤二:
假如Oracle的安装目录不在Program Files系统文件夹下,我们需要把原系统中的Program Files文件夹下的Oracle目录也复制到新系统的Program Files文件夹中去.
◆Oracle数据库迁移方法步骤三:
导出原系统中的Oracle注册表信息,主要注册信息如下:
A. HKEY_LOCAL_MACHINESOFTWAREORACLE
B. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
下有关Oracle的所有键,通常包括以下9个:
OracleMTSRecoveryService OracleOraHome92Agent OracleOraHome92ClientCache OracleOraHome92HTTPServer OracleOraHome92PagingServer OracleOraHome92SNMPPeerEncapsulator OracleOraHome92SNMPPeerMasterAgent OracleOraHome92TNSListener OracleServiceORA8
◆Oracle数据库迁移方法步骤四:
注意:有多少个数据库,注册表服务键下的OracleServiceXXX就会有多个.其中最主要的有监听服务和数据库服务,即OracleOraHome92TNSListenerXXX和OracleServiceXXX.
◆Oracle数据库迁移方法步骤五:
将导出的所有注册表的信息在新的系统中导入(注册).
◆Oracle数据库迁移方法步骤六:
设置系统环境变量,打开"我的电脑"的"属性"界面,在"高级"而点击"环境变量"进入设置,找到[Path]系统变量项目,点"编辑",在变量值的输入框的最后,加入";ORACLE的安装目录".
◆Oracle数据库迁移方法七:
最后我们需要进入 C:Documents and SettingsAll UsersStart MenuPrograms下把 Oracle - OraHome92 和 Oracle Installation Products 两个菜单文件夹也复制到新系统中,此时,就和新安装的一样了.
重启系统后,成功完成.
原文链接:http://www.jxszl.com/biancheng/shujuku/445553.html