Oracle数据库迁移

来源:互联网 发布:手机淘宝网首页 编辑:程序博客网 时间:2024/06/04 18:21

这里写图片描述
目标
1、 完成数据库异机的迁移
2、 重组据库文件结构
3、 验证数据文件完整性
数据迁移方案详解
1. 迁移环境概述
2. source database
Ip:192.168.52.103
Oracle_sid=test
数据库版本 Oracle 10g release 2

  1. target database
    IP:192.168.52.254
    ORACLE_SID=test
    数据库版本 Oracle 10g release 2
    源库准备工作
    1、 在源数据库创建一致性备份(主要包含数据文件,控制文件,归档文件)
    Rman target / nocatalog
    配置rman相关参数
    RMAN> configure controlfile autobackup on; //开启rman自动备份控制文件
    检测rman备份集有效性
    RMAN> crosscheck backup;
    RMAN> delete expired backup;
    RMAN> delete obsolete;
    RMAN> backup full format ‘/export/home/oracle/bk/full_%d_%t’ plus archivelog;
    2、 Scp –r /export/home/oracle/bk/full_* 192.168.52.254: /export/home/oracle/full_bk
    3、 把rman自动备份的参数文件和控制文件拷贝到目标数据库
    Scp –r /export/home/oracle/bk/b_s 192.168.52.254: /export/home/oracle/full_bk/b_s

目标库准备工作
1、ort ORACLE_SID=test
2、rman target / nocatalog
3、RMAN> startup nomount
目标数据库没有参数文件怎么也能启动到nomount状态?
这种方式也只有rman可以,系统会默认一个sid,sqlplus工具就不能这么干。
果这种方式失败,我们可以自己创建一个pfile参数文件,只要注明sid即可,其余参数都默认。
4、

    RMAN> restore spfile to ‘$ORACLE_HOME/dbs’ from ‘/export/home/oracle/full_bk/b_s’;5、  RMAN> restore controlfile to ‘/oradata/test’ from ‘/export/home/oracle/full_bk/ full_test_20150707’;6、  SQl> create pfile from spfile;7、  Vi $ORACLE_HOME/dbs/inittest.ora audit_file_destbackupground_dump_destcontrol_filescore_dump_destuser_dump_destdb_recovery_file_dest8、  SQL> shutdown abort;9、  SQL> startup mount pfile=’ $ORACLE_HOME/dbs/inittest.ora’; 10、 SQL> create spfile from pfile;11、 RMAN> run{  set newname for datafile 1  to  '/u02/database/SY5223/oradata/sysSY5223.dbf';                                    set newname for datafile 2  to  '/u02/database/SY5223/undo/undotbsSY5223.dbf';                                   set newname for datafile 3  to  '/u02/database/SY5223/oradata/sysauxSY5223.dbf';                                 set newname for datafile 4  to  '/u02/database/SY5223/undo/undotbsSY52232.dbf';                                  set newname for datafile 5  to  '/u02/database/SY5223/oradata/SY5223_system_tbl.dbf';                            set newname for datafile 6  to  '/u02/database/SY5223/oradata/SY5223_account_tbl.dbf';                           set newname for datafile 7  to  '/u02/database/SY5223/oradata/SY5223_stock_tbl.dbf';                             set newname for datafile 8  to  '/u02/database/SY5223/oradata/SY5223_stock_l_tbl.dbf';  restore database;  switch datafile all;  recover database;}

这里写图片描述
12、 RMAN> catalog start with ‘/export/home/oracle/full_bk’;

13、

    RMAN> run{  set newname for datafile 1  to  '/u02/database/SY5223/oradata/sysSY5223.dbf';                                    set newname for datafile 2  to  '/u02/database/SY5223/undo/undotbsSY5223.dbf';                                   set newname for datafile 3  to  '/u02/database/SY5223/oradata/sysauxSY5223.dbf';                                 set newname for datafile 4  to  '/u02/database/SY5223/undo/undotbsSY52232.dbf';                                  set newname for datafile 5  to  '/u02/database/SY5223/oradata/SY5223_system_tbl.dbf';                            set newname for datafile 6  to  '/u02/database/SY5223/oradata/SY5223_account_tbl.dbf';                           set newname for datafile 7  to  '/u02/database/SY5223/oradata/SY5223_stock_tbl.dbf';                             set newname for datafile 8  to  '/u02/database/SY5223/oradata/SY5223_stock_l_tbl.dbf';  restore database;  switch datafile all;  recover database;}

这里写图片描述
应为联机重做日志还未归档,导致在recover的时候做一致性检查时出错。这个错误是提醒你想要继续恢复的话就需要一个线程1,equence号位52的重做日志,但是这个文件在归档备份集中未找到, 因此我们可以设置恢复的sequence#来进行不完全恢复,set until sequence 51,当然我们也可以不做一致性检查直接重置redolog 的scn#来强制启动数据库,alter database open resetlogs;
12、alter database open resetlogs;
至此数据库迁移工作结束。
注意:上述数据库异机迁移支持跨网络迁移。数据库在备份的时候因为有一部分数据在online redolog,所以在备份的时候需要把内存和online redolog里面的数据库刷新到archivelog或者datafile中,保证一致性备份。如果不是一致性备份,在恢复的时候就要使用until或者resetlogs打开数据库。
 duplicate之数据库迁移

Set oracle_sid=orcl rman target=sys/robert auxname=sys/Robert@orcl2 duplicate target database toneworcl from active database nofilenamecheck spfile set control_files 'c:\oracle\oradata\neworcl\control01.ctl','c:\oracle\oradata\neworcl\control02.ctl' set db_file_name_convert 'c:\oracle\oradata\orcl','c:\oracle\oradata\neworcl' set log_file_name_convert 'c:\oracle\oradata\orcl','c:\oracle\oradata\neworcl';recover tablespace users until time '10/06/2008:22:42:00' auxiliary destination 'c:\oracle\auxiliary';
原创粉丝点击