欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-05-30 11:44:04
...

在前两篇文章中描述了中小型数据库使用RMAN catalog设计备份与恢复方案,并给出了所有相关的脚本来从某种车程度上模拟Oracle Dat

在前两篇文章中描述了中小型数据库使用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

    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 :

    --将归档日志文件复制到备份服务器
    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

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