工作记录:rman备份恢复融合平台oracle数据库到异机服务器

这篇记录为工作中oracle移机记录,从自有服务器移植到阿里云服务器,以下为正常的备份恢复过程。由于移机中数据文件位置发生变化,导致出现了很多问题,最终峰回路转终于完成;出现的错误我会另起一片以作记录

1. ORACLE RMAN在线备份之前需要切换日志方式为归档日志;

a. 关闭数据库
SQL> shutdown immediate;


b. 启动数据库到mount状态
SQL> startup mount;


c. 启用归档模式
SQL> alter database archivelog;


d. 查看修改后的数据库备份和恢复策略及归档文件的位置
SQL> archive log list;


注意:修改成archive模式之后,之前所有的数据库备份均无效。




2、进入rman备份数据库
[oracle@clouddb rmanbcak]$ rman target / nocatalog
connected to target database: SDSRCDB (DBID=2273028019)
using target database control file instead of recovery catalog
执行rmanback 备份数据文件、归档、和控制文件
>run{
allocate channel c3 type disk;
allocate channel c4 type disk;
backup database format '/disk/rmanbcak/sdsrcfull_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format '/disk/rmanbcak/sdsrcarch_%D_%T_%s_%p' delete input;
backup current controlfile format '/disk/rmanbcak/sdsrcctl_%d_%T_%s_%p';
}


3、打包lock以及密码文件
/u01/app/oracle/product/11.2.0/db_1/dbs/orapwsdsrcdb
/u01/app/oracle/product/11.2.0/db_1/dbs/hc_sdsrcdb.dat
/u01/app/oracle/product/11.2.0/db_1/dbs/lkSDSRCDB


4、spfile建立pfile
SQL> create pfile='/tmp/sdpfile' from spfile;


5. 创建各种dump目录
-----------------------------------------------------
   11g要创建这些目录
    rm -rf $ORACLE_BASE/admin/$ORACLE_SID
    mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
    mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump
    mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile
    mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/scripts
mkidr -P $ORACLE_BASE/fast_recovery_area
mkdir  /u01/app/oracle/fast_recovery_area/$ORACLE_SID 
mkdir /disk1/oradata/$ORACLE_SID 
    chmod -R 750 $ORACLE_BASE/admin
    chmod -R 750 /u01/app/oracle/fast_recovery_area/
chmod -R 750 /disk1/oradata/
    rm -rf $ORACLE_BASE/diag/rdbms/$ORACLE_SID
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/alert 
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/cdump 
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/hm    
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/incident
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/incpkg
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/ir    
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/lck   
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/metadata
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/stage 
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/sweep 
    mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace
    chmod -R 750 $ORACLE_BASE/diag/rdbms/$ORACLE_SID 



6、使用pfile启动实例到nomount
[oracle@tc_oracle1 oracle]$ sqlplus  / as sysdba
SQL> startup nomount pfile='/home/oracle/融合平台/sdpfile';


7、进入rman恢复数据库
[oracle@tc_oracle1 oracle]$ rman target /
restore   controlfile from '/disk1/rhpt/sdsrcctl_SDSRCDB_20160314_8_1';


  a、启动数据库到mount状态
  RMAN> alter database mount;


  b、验证有没有生效
  select name from v$datafile;


  c、注册备份集位置到controlfile
RMAN> catalog start with '/disk1/rhpt/'; 
开始恢复:
注:由于异机恢复数据文件位置发生变化需要重新定位一下文件名
RMAN> run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
set newname for datafile '/disk/oradata/sdsrcdb/redo03.dbf'            to '/disk1/oradata/sdsrcdb/redo03.dbf'              ;
set newname for datafile '/disk/oradata/sdsrcdb/redo02.dbf'            to '/disk1/oradata/sdsrcdb/redo02.dbf'              ;
set newname for datafile '/disk/oradata/sdsrcdb/redo01.dbf'            to '/disk1/oradata/sdsrcdb/redo01.dbf'              ;
set newname for datafile '/disk/oradata/sdsrcdb/system01.dbf'            to '/disk1/oradata/sdsrcdb/system01.dbf'              ;
set newname for datafile '/disk/oradata/sdsrcdb/sysaux01.dbf'            to '/disk1/oradata/sdsrcdb/sysaux01.dbf'              ;
set newname for datafile '/disk/oradata/sdsrcdb/undotbs01.dbf'           to '/disk1/oradata/sdsrcdb/undotbs01.dbf'             ;
set newname for datafile '/disk/oradata/sdsrcdb/users01.dbf'             to '/disk1/oradata/sdsrcdb/users01.dbf'               ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_pub_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_pub_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_pub_data02.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_pub_data02.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_pub_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_pub_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sys_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sys_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sys_data02.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sys_data02.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sys_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_sys_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sd_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_sd_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sd_data02.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_sd_data02.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sd_data03.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_sd_data03.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sd_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sd_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_yn_data_01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_yn_data_01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_yn_data_02.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_yn_data_02.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_yn_data_03.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_yn_data_03.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_yn_index_01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_yn_index_01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hain_data_01.dbf'  to '/disk1/oradata/sdsrcdb/ctuni_hain_data_01.dbf'    ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hain_data_02.dbf'  to '/disk1/oradata/sdsrcdb/ctuni_hain_data_02.dbf'    ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hain_data_03.dbf'  to '/disk1/oradata/sdsrcdb/ctuni_hain_data_03.dbf'    ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hain_index_01.dbf' to '/disk1/oradata/sdsrcdb/ctuni_hain_index_01.dbf'   ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_bj_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_bj_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_tj_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_tj_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hb_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_hb_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sx_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_sx_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_nmg_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_nmg_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_ln_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_ln_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_jl_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_jl_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hlj_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_hlj_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sh_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_sh_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_js_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_js_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_zj_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_zj_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_ah_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_ah_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_fj_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_fj_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_jx_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_jx_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hn_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_hn_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hbs_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_hbs_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hns_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_hns_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gd_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_gd_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gx_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_gx_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_cq_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_cq_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sc_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_sc_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gz_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_gz_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_xz_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_xz_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sxs_data01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sxs_data01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gs_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_gs_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_qh_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_qh_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_nx_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_nx_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_xj_data01.dbf'     to '/disk1/oradata/sdsrcdb/ctuni_xj_data01.dbf'       ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_bj_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_bj_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_tj_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_tj_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hb_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_hb_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sx_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sx_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_nmg_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_nmg_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_ln_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_ln_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_jl_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_jl_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hlj_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_hlj_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sh_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sh_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_js_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_js_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_zj_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_zj_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_ah_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_ah_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_fj_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_fj_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_jx_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_jx_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hn_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_hn_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hbs_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_hbs_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_hns_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_hns_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gd_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_gd_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gx_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_gx_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_cq_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_cq_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sc_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_sc_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gz_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_gz_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_xz_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_xz_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_sxs_index01.dbf'   to '/disk1/oradata/sdsrcdb/ctuni_sxs_index01.dbf'     ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_gs_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_gs_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_qh_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_qh_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_nx_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_nx_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_xj_index01.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_xj_index01.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_pub_data03.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_pub_data03.dbf'      ;
set newname for datafile '/disk/oradata/sdsrcdb/ctuni_pub_data04.dbf'    to '/disk1/oradata/sdsrcdb/ctuni_pub_data04.dbf'      ;
restore database ;
switch datafile all;
}


8、使用归档恢复
RMAN> recover database;


Starting recover at 2016-03-14 16:33:00
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=4 device type=DISK


starting media recovery


unable to find archived log
archived log thread=1 sequence=522
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 03/14/2016 16:33:01
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 522 and starting SCN of 90708322


出现问题,查看为currentlog 没有备份到,重新备份归档
catalog backuppiece '/disk1/rhpt/arch_SDSRCDB_20160315_11_1';


RMAN> recover database;
9. 打开数据库
SQL> alter database open resetlogs;


10、创建spfile,保证以后可以直接 startup就可以
SQL> create spfile from pfile='/disk1/sdpfile';


File created.

11、添加临时文件

alter tablespace temp add tempfile '/disk1/oradata/sdsrcdb/temp01.dbf' size 5000M ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值