Rumah >pangkalan data >tutorial mysql >中小型数据库 RMAN CATALOG 备份恢复方案(三)

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

WBOY
WBOYasal
2016-06-07 17:31:261026semak imbas

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

    linux

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn