rman异机备份恢复

来源:这里教程网 时间:2026-03-03 17:46:34 作者:

https://blog.csdn.net/weixin_52188141/article/details/118788172

rman异机备份恢复之backup_log.txt

rman异机备份恢复.txt 前提: CONFIGURE CONTROLFILE AUTOBACKUP off; CONFIGURE RETENTION POLICY TO REDUNDANCY 1; 当 CONFIGURE CONTROLFILE AUTOBACKUP OFF;时,仅备份1号数据文件(system)和全备数据库时,会自动备份控 制文件和参数文件。 而当控制文件自动备份关闭时,备份脚本仅【包含备份全库及备份归档(不包含备份控制文件时)】,数据库备份顺序是 备份数据库->自动备份控制文件和参数文件->备份归档。 --备份脚本 run { backup as compressed backupset full format '/opt/oracle/oraback/snrcs/snrcs_full_%d_%T_%s.bak' database; sql 'alter system archive log current'; backup archivelog all format '/opt/oracle/oraback/snrcs/snrcs_arch_%d_%T_%s.bak'; delete noprompt obsolete; delete noprompt archivelog until time 'sysdate-15'; } ============= 在异地机器上恢复如下 ============= 1.在目标库上,还原spfile文件 export ORACLE_SID=snrcs rman target / startup nomount; 注意:这里会报错,主要是没有静态参数文件,可以先忽略 2.恢复spfile rman target / restore spfile to '/opt/oracle/product/11.2.0/db_1/dbs/spfilesnrcs.ora' from '/home/oracle/tmp /snrcs_full_SNRCS_20220818_1578.bak'; 3.利用spfile生成pfile,然后编辑pfile,修改参数pfile export ORACLE_SID=snrcs sqlplus / as sysdba show parameter spfile create pfile from spfile; --编辑pfile *.archive_lag_target=600 *.audit_file_dest='/opt/oracle/admin/snrcs/adump' #*.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='/data1/snrcs/control01.ctl','/data1/snrcs/control02.ctl' *.db_block_size=8192 *.db_cache_size=10240M *.java_pool_size=512M *.large_pool_size=2048M *.pga_aggregate_target=10240M *.shared_pool_size=3072M *.db_domain='' *.db_files=4096 *.db_name='snrcs' *.db_recovery_file_dest='/opt/oracle/fast_recovery_area' *.db_recovery_file_dest_size=214748364800 *.diagnostic_dest='/opt/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=snrcsXDB)' *.job_queue_processes=30 *.license_max_sessions=400 *.lock_sga=true *.log_archive_dest_1='LOCATION=/data1/snrcs/archive' *.log_archive_format='snrcs_%t_%s_%r.arc' *.nls_date_format='YYYY-MM-DD HH24:MI:SS' *.open_cursors=300 *.parallel_max_servers=0 *.processes=2000 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' *.utl_file_dir='/home/oracle/tmp' mkdir -p /opt/oracle/admin/snrcs/adump mkdir -p /data1/snrcs mkdir -p /data1/snrcs/archive --spfile文件查看 strings spfilesnrcs.ora 4.修改后的pfile,重启到nomount并再重新创建spfile sqlplus / as sysdba shutdown immediate; startup nomount pfile='/opt/oracle/product/11.2.0/db_1/dbs/initsnrcs.ora'; create spfile from pfile; shutdown immediate; startup nomount show parameter spfile 5.还原控制文件 rman target / restore controlfile from '/home/oracle/tmp/snrcs_full_SNRCS_20220818_1578.bak'; alter database mount; --检查备份,删除过期备份并重新注册备份 crosscheck backup; delete noprompt expired backup; catalog start with '/home/oracle/tmp/'; --检查备份信息 list backup; list backup of database summary; list backup of controlfile; list backup of archivelog all; 6.根据备份信息,restore和recover 数据库 --查询数据文件号 report schema; --如果数据文件路径改变需要重新定义文件路径 set newname for datafile 1 to 'xxxxxxxxxxxxxxxxxxx'; --执行 run {       set newname for datafile 1  to '/data1/snrcs/system01.dbf'; set newname for datafile 2  to '/data1/snrcs/sysaux01.dbf'; set newname for datafile 3  to '/data1/snrcs/undotbs01.dbf'; set newname for datafile 4  to '/data1/snrcs/users01.dbf'; set newname for datafile 5  to '/data1/snrcs/undotbs02.dbf'; set newname for datafile 6  to '/data1/snrcs/undotbs03.dbf'; set newname for datafile 7  to '/data1/snrcs/ETL_USER01.dbf'; set newname for datafile 8  to '/data1/snrcs/snail_rcs01.dbf'; set newname for datafile 9  to '/data1/snrcs/snail_rcs02.dbf'; set newname for datafile 10 to '/data1/snrcs/snail_rcs03.dbf'; set newname for datafile 11 to '/data1/snrcs/snail_rcs04.dbf'; set newname for datafile 12 to '/data1/snrcs/snail_rcs05.dbf'; set newname for datafile 13 to '/data1/snrcs/snail_rcs06.dbf'; set newname for datafile 14 to '/data1/snrcs/snail_rcs07.dbf'; set newname for datafile 15 to '/data1/snrcs/snail_rcs08.dbf'; set newname for datafile 16 to '/data1/snrcs/snail_rcs09.dbf'; set newname for datafile 17 to '/data1/snrcs/snail_rcs10.dbf'; set newname for datafile 18 to '/data1/snrcs/snail_rcs11.dbf'; set newname for datafile 19 to '/data1/snrcs/snail_rcs12.dbf'; set newname for datafile 20 to '/data1/snrcs/snail_rcs13.dbf'; set newname for datafile 21 to '/data1/snrcs/sysaux02.dbf'; restore database; switch datafile all; recover database; } 7.重建temp临时文件和redo日志文件 --查询 sqlplus / as sysdba select member from gv$logfile union all select name from gv$tempfile; --执行 rman target / run{                                                                                                                sql "alter database rename file ''/data1/oradata/snrcs/redo01.log'' to ''/data1/snrcs/redo01.log'' ";  sql "alter database rename file ''/data1/oradata/snrcs/redo02.log'' to ''/data1/snrcs/redo02.log'' ";  sql "alter database rename file ''/data1/oradata/snrcs/redo03.log'' to ''/data1/snrcs/redo03.log'' ";  sql "alter database rename file ''/data1/oradata/snrcs/redo04.log'' to ''/data1/snrcs/redo04.log'' ";  sql "alter database rename file ''/data1/oradata/snrcs/redo05.log'' to ''/data1/snrcs/redo05.log'' ";    }   run{                                                                                                                sql "alter database rename file ''/data1/oradata/snrcs/temp01.dbf'' to ''/data1/snrcs/temp01.dbf'' ";  sql "alter database rename file ''/data1/oradata/snrcs/temp02.dbf'' to ''/data1/snrcs/temp02.dbf'' ";  sql "alter database rename file ''/data1/oradata/snrcs/temp03.dbf'' to ''/data1/snrcs/temp03.dbf'' ";  } 8.恢复完成,最后 alter database open resetlogs;

相关推荐