image copy oracle,利用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 sysdba

SQL> 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:41

current log archived

using channel ORA_DISK_1

channel ORA_DISK_1: starting archived log backup set

channel ORA_DISK_1: specifying archived log(s) in backup set

input archived log thread=1 sequence=2 RECID=1 STAMP=961989888

input archived log thread=1 sequence=3 RECID=2 STAMP=966842424

input archived log thread=1 sequence=4 RECID=3 STAMP=966842833

input archived log thread=1 sequence=5 RECID=4 STAMP=966842838

input archived log thread=1 sequence=6 RECID=5 STAMP=966842911

input archived log thread=1 sequence=7 RECID=6 STAMP=966842915

input archived log thread=1 sequence=8 RECID=7 STAMP=966844055

input archived log thread=1 sequence=9 RECID=8 STAMP=966844059

input archived log thread=1 sequence=10 RECID=9 STAMP=966844121

channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:42

channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:43

piece handle=/oracle/app/oracle/product/11.2.0.4/db_1/dbs/12sq1nmp_1_1 tag=SRCDB-IMAGE comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished backup at 2018-01-31 07:48:43

Starting backup at 2018-01-31 07:48:43

using channel ORA_DISK_1

channel ORA_DISK_1: starting incremental level 1 datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00001 name=/oracle/app/oracle/oradata/srcdb/system01.dbf

input datafile file number=00002 name=/oracle/app/oracle/oradata/srcdb/sysaux01.dbf

input datafile file number=00005 name=/oracle/app/oracle/oradata/srcdb/ggtbs01.dbf

input datafile file number=00003 name=/oracle/app/oracle/oradata/srcdb/undotbs01.dbf

input datafile file number=00004 name=/oracle/app/oracle/oradata/srcdb/users01.dbf

channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:43

channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:44

piece handle=/oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1 tag=SRCDB-IMAGE comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting incremental level 1 datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

including current control file in backup set

including current SPFILE in backup set

channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:45

channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:46

piece handle=/oradata/srcdb_img/SRCDB-LVL1-14sq1nms_1_1 tag=SRCDB-IMAGE comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished backup at 2018-01-31 07:48:46

Starting backup at 2018-01-31 07:48:46

current log archived

using channel ORA_DISK_1

channel ORA_DISK_1: starting archived log backup set

channel ORA_DISK_1: specifying archived log(s) in backup set

input archived log thread=1 sequence=11 RECID=10 STAMP=966844126

channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:46

channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:47

piece handle=/oracle/app/oracle/product/11.2.0.4/db_1/dbs/15sq1nmu_1_1 tag=SRCDB-IMAGE comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished 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:57

using channel ORA_DISK_1

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: specifying datafile copies to recover

recovering datafile copy file number=00001 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1niv

recovering datafile copy file number=00002 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2

recovering datafile copy file number=00003 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njk

recovering datafile copy file number=00004 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njl

recovering datafile copy file number=00005 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njh

channel ORA_DISK_1: reading from backup piece /oradata/srcdb_img/SRCDB-LVL1-0vsq1nko_1_1

channel ORA_DISK_1: piece handle=/oradata/srcdb_img/SRCDB-LVL1-0vsq1nko_1_1 tag=SRCDB-IMAGE

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting incremental datafile backup set restore

channel ORA_DISK_1: specifying datafile copies to recover

recovering datafile copy file number=00001 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1niv

recovering datafile copy file number=00002 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2

recovering datafile copy file number=00003 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njk

recovering datafile copy file number=00004 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njl

recovering datafile copy file number=00005 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njh

channel ORA_DISK_1: reading from backup piece /oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1

channel ORA_DISK_1: piece handle=/oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1 tag=SRCDB-IMAGE

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:01

Finished recover at 2018-01-31 07:48:59

--5. 源库执行备份控制文件操作,获取日志中的信息SQL> alter database backup controlfile to trace;

--    Set #1. NORESETLOGS case

STARTUP NOMOUNT

CREATE 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 sysdba

SQL> 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 292

LOGFILE

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 512

DATAFILE

'/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=srcdb

SQL> 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值