利用RMAN IMAGE COPY,启动新的数据库
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,通过IMAGE COPY技术,可以得到一个数据库的完整副本,快速打开数据库,避免数据库还原和恢复的漫长时间。下面是利用IMAGE COPY进行一个数据库完整恢复的案例。由于该测试是在同一台数据库主机上
千家信息网最后更新 2025年11月08日利用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安全错误
数据库的锁怎样保障安全
怎么管理数据库
数据库课程设计商品销售系统
学网络安全做最牛的it新贵
如何理解网络安全法七十二条
网络安全法宣传周解读
hp战99-73软件开发
软件开发测试 工具
武威服务器数据恢复门店
网络安全教育考试
花样科技综合互联网平台
光伏资源数据库
通过堡垒机访问服务器
服务器tls
台州制造软件开发工具
京东服务器电脑是什么配置
电子科技大学计算机网络技术
网络安全管理平台项目
建立乡贤人才数据库的通知
服务器分配资源的方式
中国18届网络安全年会
中原科技学院网络技术中心
创造与魔法303服务器的主播
方舟服务器优质推荐
渠道网络技术有限公司
海拔互联网科技
波兰建华为网络安全中心
漂亮服务器
学计算机软件开发露西
交换机和服务器连接路由器
ado 数据库连接失败