中小型数据库 RMAN CATALOG 备份恢复方案(三)


在前两篇文章中描述了中小型数据库使用RMAN catalog设计备份与恢复方案,并给出了所有相关的脚本来从某种车程度上模拟Oracle Data Guard以减少硬件故障带来Prod服务器上数据库损失。在这边文章中主要描述Prod数据库的变迁在Bak server端如何进行恢复。

中小型数据库 RMAN CATALOG 备份恢复方案系列文章:

  • 中小型数据库 RMAN CATALOG 备份恢复方案(一)
  • 中小型数据库 RMAN CATALOG 备份恢复方案(二)
  • 中小型数据库 RMAN CATALOG 备份恢复方案(三)

1、恢复前提

按照前两篇文章的描述,我们制定了每天做一个level 0级备份并ftp整个备份集到Bak server。同时定时ftp Prod的归档日志到Bak server。

其次是每天会对Bak server端的数据库做还原(restore)操作。因此对于Bak server实现数据恢复所要做的是应用归档日志(含定时ftp的归档日志)

将数据库刷新到最新时刻。对于备份如恢复的间隔也可自行定义,如每2天做一次。下面是恢复的前提条件,否则需要手动备份或还原。

使用RMAN备份脚本已经完成RMAN备份,且备份被ftp到备份服务器

使用RMAN恢复脚本已经在备份服务器成功进行了还原

2、Prod DB上准备测试数据

SQL> select * from v$version where rownum<2;

BANNER
----------------------------------------------------------------
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL> select instance_name,host_name from v$instance;

INSTANCE_NAME    HOST_NAME
---------------- ---------------------------------------------
Ak3210          N10db03p

--为prod添加tablespace
SQL> create tablespace tbs_tmp datafile '/u02/database/Ak3210/oradata/tbs_tmp.dbf' size 10m autoextend on;

--基于新的tablespace添加表对象
SQL> create table xy(seq varchar2(20),who varchar2(20),dt varchar2(20)) tablespace tbs_tmp;

--插入数据
SQL> insert into xy select 'FirstArch','Robinson',to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual;

SQL> commit;

--对当前日志归档
SQL> alter system archive log current;

--下面是生成的归档日志
SQL> ho ls
arch_818416637_1_157.arc

--验证刚刚插入的记录是否存在于归档日志
SQL> ho strings arch_818416637_1_157.arc | grep "FirstArch"
        FirstArch

--再次插入新的数据
SQL> insert into xy select 'SecnodArch','Jackson',to_char(sysdate,'yyyymmdd hh:mi:ss') from dual;

SQL> commit;

SQL> alter system archive log current;

SQL> ho ls
arch_818416637_1_157.arc  arch_818416637_1_158.arc

SQL> ho strings arch_818416637_1_158.arc | grep "SecnodArch"
SecnodArch

--Author : Robinson Cheng
--Blog  : http://www.bkjia.com

--将归档日志文件复制到备份服务器
SQL> ho scp *.arc 192.168.250.101:/u02/database/Ak3210/archive
arch_818416637_1_157.arc                                      100%  34MB  34.2MB/s  00:00
arch_818416637_1_158.arc                                      100%  12KB  12.0KB/s  00:00

--Prod数据库的归档情况,当前Log sequence是159
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival            Enabled
Archive destination            /u02/database/Ak3210/archive/
Oldest online log sequence    157
Next log sequence to archive  159
Current log sequence          159
SQL> col name format a60
SQL> set linesize 160
SQL> alter session set nls_date_format='yyyymmdd hh24:mi:ss';  -->查询归档日志
SQL> select name,sequence#,status,COMPLETION_TIME from v$archived_log where status='A';

NAME                                                          SEQUENCE# S COMPLETION_TIME
------------------------------------------------------------ ---------- - -----------------
/u02/database/Ak3210/archive/arch_818416637_1_157.arc              157 A 20130731 16:34:30
/u02/database/Ak3210/archive/arch_818416637_1_158.arc              158 A 20130731 16:35:42

SQL> select * from xy;

SEQ                  WHO                  DT
-------------------- -------------------- --------------------
FirstArch            Robinson            20130731 16:34:15
SecnodArch          Jackson              20130731 16:35:35

  • 1
  • 2
  • 下一页

相关内容