Oracle Database 11G RMAN 冷备异地恢复数据库
简述
该实验在 11G 的版本进行,先通过 RMAN 进行全库冷备,然后在异地通过 RMAN 进行恢复。
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
步骤
步骤
1. 从源数据库获取 pfile
SQL> create pfile='/orcl/app/oracle_rman/pfile.ora' from spfile;
2. 修正pfile
修改 pfile 文件的以下参数。
参数 | 默认值 | 含义 |
---|---|---|
orcl.__oracle_base | $ORACLE_BASE |
oracle 软件的基目录 |
*.audit_file_dest | $ORACLE_BASE/admin/$SID/adump |
审计文件目录 |
*.control_files | '$ORACLE_BASE/oradata/$SID/control01.ctl','$DB_RECOVERY_FILE_DEST/$SID/control02.ctl' |
控制文件的存储位置 |
*.db_name | $SID |
数据库的标识ID |
*.db_recovery_file_dest | $DB_RECOVERY_FILE_DEST |
快速恢复区的目录,默认为 $ORACLE_HOME/fast_recovery_area |
*.diagnostic_dest | $ORACLE_BASE |
诊断日志的目录 |
3. 异地数据库-用 pfile 启动数据库到 nomount 状态
SQL> startup nomount pfile=/orcl/app/oracle_rman/pfile.ora
4. 异地数据库-指定备份集恢复控制文件到指定路径
控制文件的新路径需要与 pfile 文件指定的 *.control_files
相一致。
RMAN> restore controlfile to '/orcl/app/oracle_rman/oradata/orcl/control01.ctl' from '/orcl/app/oracle_rman/fast_recovery_area/ORCL/backupset/2019_05_23//o1_mf_ncsnf_TAG20190523T220607_ggfbnr4m_.bkp';
RMAN> restore controlfile to '/orcl/app/oracle_rman/fast_recovery_area/orcl/control02.ctl' from '/orcl/app/oracle_rman/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_ncsnf_TAG20190523T220607_ggfbnr4m_.bkp';
5. 异地数据库-将备份集放入到新的快速恢复区
6. 异地数据库-将数据文件恢复到指定路径
RMAN> run {
set newname for datafile 1 to '/orcl/app/oracle_rman/oradata/orcl/system01.dbf';
set newname for datafile 2 to '/orcl/app/oracle_rman/oradata/orcl/sysaux01.dbf';
set newname for datafile 3 to '/orcl/app/oracle_rman/oradata/orcl/undotbs01.dbf';
set newname for datafile 4 to '/orcl/app/oracle_rman/oradata/orcl/users01.dbf';
set newname for datafile 5 to '/orcl/app/oracle_rman/oradata/orcl/example01.dbf';
restore database;
switch datafile all;
}
7. 异地数据库-备份控制文件到 trace
SQL> alter database backup controlfile to trace as '/orcl/app/oracle_rman/control_new.trc';
根据异地数据库的配置修改新生成的控制文件脚本。
8. 异地数据库-创建新的控制文件
关闭数据库后,继续将数据库用 pfile 文件启动到 nomount 状态。
SQL> startup nomount pfile=/orcl/app/oracle_rman/pfile.ora
生成新的控制文件。
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/orcl/app/oracle_rman/oradata/orcl/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/orcl/app/oracle_rman/oradata/orcl/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/orcl/app/oracle_rman/oradata/orcl/redo03.log' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/orcl/app/oracle_rman/oradata/orcl/system01.dbf',
'/orcl/app/oracle_rman/oradata/orcl/sysaux01.dbf',
'/orcl/app/oracle_rman/oradata/orcl/undotbs01.dbf',
'/orcl/app/oracle_rman/oradata/orcl/users01.dbf',
'/orcl/app/oracle_rman/oradata/orcl/example01.dbf'
CHARACTER SET WE8MSWIN1252
;
9. 异地数据库-打开数据库
以 RESETLOGS 模式打开数据库。
SQL> ALTER DATABASE OPEN RESETLOGS;
为临时表空间添加数据文件。
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 1G REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 2G;
详情
1 从源数据库获取备份集
1.1 查询数据库版本
确保数据库版本为 11G。
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production