Oracle数据库迁移

这里写图片描述
目标
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_dest
backupground_dump_dest
control_files
core_dump_dest
user_dump_dest
db_recovery_file_dest
8、  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 to
neworcl 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';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值