利用RMAN IMAGE COPY,启动新的数据库
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,通过IMAGE COPY技术,可以得到一个数据库的完整副本,快速打开数据库,避免数据库还原和恢复的漫长时间。下面是利用IMAGE COPY进行一个数据库完整恢复的案例。由于该测试是在同一台数据库主机上
千家信息网最后更新 2025年02月01日利用RMAN IMAGE COPY,启动新的数据库
通过IMAGE COPY技术,可以得到一个数据库的完整副本,快速打开数据库,避免数据库还原和恢复的漫长时间。下面是利用IMAGE COPY进行一个数据库完整恢复的案例。由于该测试是在同一台数据库主机上面进行,因此需要注意ORACLE_SID环境变量,以及相关路径下的文件不能被覆盖。
--1. 创建DB 0级 IMAGE COPY 备份
[oracle@sqlaudit ~]$ rman target /RMAN> BACKUP AS COPY INCREMENTAL LEVEL 0 TAG 'SRCDB-IMAGE' DATABASE FORMAT '/oradata/srcdb_img/SRCDB-LVL0-%U';
--2. 创建测试数据
[oracle@sqlaudit ~]$ sqlplus / as sysdbaSQL> create table scott.test_backup 2 as 3 select rownum rn from dual connect by rownum <= 1000000;
--3. 创建DB 1级 IMAGE COPY 备份
RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF TAG 'SRCDB-IMAGE' DATABASE FORMAT '/oradata/srcdb_img/SRCDB-LVL1-%U' PLUS ARCHIVELOG;Starting backup at 2018-01-31 07:48:41current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=2 RECID=1 STAMP=961989888input archived log thread=1 sequence=3 RECID=2 STAMP=966842424input archived log thread=1 sequence=4 RECID=3 STAMP=966842833input archived log thread=1 sequence=5 RECID=4 STAMP=966842838input archived log thread=1 sequence=6 RECID=5 STAMP=966842911input archived log thread=1 sequence=7 RECID=6 STAMP=966842915input archived log thread=1 sequence=8 RECID=7 STAMP=966844055input archived log thread=1 sequence=9 RECID=8 STAMP=966844059input archived log thread=1 sequence=10 RECID=9 STAMP=966844121channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:42channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:43piece handle=/oracle/app/oracle/product/11.2.0.4/db_1/dbs/12sq1nmp_1_1 tag=SRCDB-IMAGE comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2018-01-31 07:48:43Starting backup at 2018-01-31 07:48:43using channel ORA_DISK_1channel ORA_DISK_1: starting incremental level 1 datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/oracle/app/oracle/oradata/srcdb/system01.dbfinput datafile file number=00002 name=/oracle/app/oracle/oradata/srcdb/sysaux01.dbfinput datafile file number=00005 name=/oracle/app/oracle/oradata/srcdb/ggtbs01.dbfinput datafile file number=00003 name=/oracle/app/oracle/oradata/srcdb/undotbs01.dbfinput datafile file number=00004 name=/oracle/app/oracle/oradata/srcdb/users01.dbfchannel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:43channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:44piece handle=/oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1 tag=SRCDB-IMAGE comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01channel ORA_DISK_1: starting incremental level 1 datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:45channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:46piece handle=/oradata/srcdb_img/SRCDB-LVL1-14sq1nms_1_1 tag=SRCDB-IMAGE comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2018-01-31 07:48:46Starting backup at 2018-01-31 07:48:46current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=11 RECID=10 STAMP=966844126channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:46channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:47piece handle=/oracle/app/oracle/product/11.2.0.4/db_1/dbs/15sq1nmu_1_1 tag=SRCDB-IMAGE comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2018-01-31 07:48:47
--4. 对 DB 0级 IMAGE COPY 备份进行恢复操作
RMAN> RECOVER COPY OF DATABASE WITH TAG 'SRCDB-IMAGE';Starting recover at 2018-01-31 07:48:57using channel ORA_DISK_1channel ORA_DISK_1: starting incremental datafile backup set restorechannel ORA_DISK_1: specifying datafile copies to recoverrecovering datafile copy file number=00001 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1nivrecovering datafile copy file number=00002 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2recovering datafile copy file number=00003 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njkrecovering datafile copy file number=00004 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njlrecovering datafile copy file number=00005 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njhchannel ORA_DISK_1: reading from backup piece /oradata/srcdb_img/SRCDB-LVL1-0vsq1nko_1_1channel ORA_DISK_1: piece handle=/oradata/srcdb_img/SRCDB-LVL1-0vsq1nko_1_1 tag=SRCDB-IMAGEchannel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:01channel ORA_DISK_1: starting incremental datafile backup set restorechannel ORA_DISK_1: specifying datafile copies to recoverrecovering datafile copy file number=00001 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1nivrecovering datafile copy file number=00002 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2recovering datafile copy file number=00003 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njkrecovering datafile copy file number=00004 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njlrecovering datafile copy file number=00005 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njhchannel ORA_DISK_1: reading from backup piece /oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1channel ORA_DISK_1: piece handle=/oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1 tag=SRCDB-IMAGEchannel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:01Finished recover at 2018-01-31 07:48:59
--5. 源库执行备份控制文件操作,获取日志中的信息
SQL> alter database backup controlfile to trace;-- Set #1. NORESETLOGS caseSTARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE "SRCDB" NORESETLOGS FORCE LOGGING ARCHIVELOG......;
--6. 创建新的对象,用于后续完全恢复时进行稽核
SQL> create table scott.test22 (id number);SQL> alter system switch logfile;SQL> shutdown immediate;
--7. 创建 IMAGE COPY 数据库所需的参数文件(参数文件中的db_name不能修改,audit_file_dest与control_files路径要进行调整)
[oracle@sqlaudit ~]$ cd $ORACLE_HOME/dbs[oracle@sqlaudit dbs]$ cp orapwsrcdb orapwsrcdbnew[oracle@sqlaudit dbs]$ strings spfilesrcdb.ora > initsrcdbnew.ora[oracle@sqlaudit dbs]$ cat initsrcdbnew.ora | grep '/oracle/'*.audit_file_dest='/oracle/app/oracle/admin/srcdbnew/adump'*.control_files='/oradata/srcdb_img/control01.ctl','/oradata/srcdb_img/control02.ctl'[oracle@sqlaudit dbs]$ mkdir -p /oracle/app/oracle/admin/srcdbnew/adump
--8. 启动数据库实例
[oracle@sqlaudit dbs]$ export ORACLE_SID=srcdbnew[oracle@sqlaudit dbs]$ sqlplus / as sysdbaSQL> startup nomount;
--9. 复制在线日志文件到新目录用于完全恢复
[oracle@sqlaudit archive]$ cp /oracle/app/oracle/oradata/srcdb/redo01.log /oradata/srcdb_img/redo01.log[oracle@sqlaudit archive]$ cp /oracle/app/oracle/oradata/srcdb/redo02.log /oradata/srcdb_img/redo02.log[oracle@sqlaudit archive]$ cp /oracle/app/oracle/oradata/srcdb/redo03.log /oradata/srcdb_img/redo03.log
--10. 重建控制文件
CREATE CONTROLFILE REUSE DATABASE "SRCDB" NORESETLOGS MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292LOGFILE GROUP 1 '/oradata/srcdb_img/redo01.log' SIZE 50M BLOCKSIZE 512, GROUP 2 '/oradata/srcdb_img/redo02.log' SIZE 50M BLOCKSIZE 512, GROUP 3 '/oradata/srcdb_img/redo03.log' SIZE 50M BLOCKSIZE 512DATAFILE '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1niv', '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2', '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njk', '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njl', '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njh'CHARACTER SET WE8MSWIN1252;SQL> SELECT NAME FROM V$DATAFILE;
--11. 源库检查检查需要注册的日志文件
[oracle@sqlaudit dbs]$ export ORACLE_SID=srcdbSQL> startup mount;RMAN> list backup of archivelog all;BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ -------------------19 3.50K DISK 00:00:00 2018-01-31 07:48:46 BP Key: 19 Status: AVAILABLE Compressed: NO Tag: SRCDB-IMAGE Piece Name: /oracle/app/oracle/product/11.2.0.4/db_1/dbs/15sq1nmu_1_1 List of Archived Logs in backup set 19 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- ------------------- ---------- --------- 1 11 969636 2018-01-31 07:48:41 969648 2018-01-31 07:48:46
--12. 新库注册源库的日志文件
SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_11_961988430.dbf';SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_12_961988430.dbf';SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_13_961988430.dbf';SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_14_961988430.dbf';SQL> RECOVER DATABASE;SQL> ALTER DATABASE OPEN;
--13. 创建新的临时文件
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/srcdb_img/temp01.dbf' SIZE 100M AUTOEXTEND OFF;
文件
数据
数据库
备份
日志
参数
路径
控制
检查
测试
漫长
主机
信息
副本
变量
实例
对象
技术
时间
是在
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
Y系数据库建设
租港服务器需要备案吗
银河麒麟服务器yum挂载
昆明智能化软件开发网上价格
wps中if找重复数据库
数据库课程设计连接web
中旭网络技术有限公司
服务器接收并推送消息
青岛瑞比软件开发有限公司
网络安全公司开业致辞
好的数据库开发平台
怎么正确租用并使用游戏服务器
网络安全策略设计原则
网络安全法培训免费ppt
hive2怎么退出数据库
天津网络技术转让价格表格
什么是vr服务器
后台服务器开发技巧
计算机网络技术最新发展
中信银行的软件开发工作内容
山西军工守时模块服务器云主机
中山市中环广场软件开发
软件开发怎么积攒人脉
软件工程发票 软件开发发票
软件开发还是游戏开发好
正版数据库是什么原因
网络安全搭配的词
数据库如何查平均值最大值
服务器租赁软件开发
1901网络安全演练