• 一个完好的Oracle rman备份规复参考示例




        来源:赛迪网    作者:Benson

    完好的Oracle rman备份规复参考示例:

     

    1、建rman库作为repository

    $more createrman_db1.sh

    set echo on

    spool makedb1.log

    create database rman

    datafile '/export/home/oracle/oradata/rman_data/system.dbf' size 50m autoextend

    on next 640K

    logfile '/export/home/oracle/oradata/rman_data/redo0101.log' SIZE 10M,

    '/export/home/oracle/oradata/rman_data/redo0201.log' SIZE 10M

    maxdatafiles 30

    maxinstances 8

    maxlogfiles 64

    character set US7ASCII

    national character set US7ASCII

    ;

    disconnect

    spool off

    exit

    @/export/home/oracle/8.1.6/rdbms/admin/catalog.sql;

    REM 指导奸淫* ALTER SYSTEM TABLESPACE 指导奸淫

    ALTER TABLESPACE SYSTEM

    DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR

    EASE 50);

    ALTER TABLESPACE SYSTEM

    MINIMUM EXTENT 64K;

    REM 指导奸淫* TABLESPACE FOR ROLLBACK 指导奸淫*

    CREATE TABLESPACE RBS DATAFILE '/export/home/oracle/oradata/rman_data/rbs.dbf' s

    ize 50m

    AUTOEXTEND ON NEXT 512K

    MINIMUM EXTENT 512K

    DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 10 MAXEXTENTS UNLIMITED PC

    TINCREASE 0 );

    REM 指导奸淫* TABLESPACE FOR TEMPORARY 指导奸淫*

    CREATE TABLESPACE TEMP DATAFILE '/export/home/oracle/oradata/rman_data/temp.dbf'

    size 50m

    AUTOEXTEND ON NEXT 64K

    MINIMUM EXTENT 64K

    DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR

    EASE 0) TEMPORARY;

    REM 奸淫* Creating four rollback segments 指导指导奸淫*

    CREATE PUBLIC ROLLBACK SEGMENT RBS_0 TABLESPACE RBS

    STORAGE ( OPTIMAL 64000K );

    ALTER ROLLBACK SEGMENT "RBS_0" ONLINE;

    REM 奸淫* SYS and SYSTEM users 指导指导奸淫*

    alter user sys temporary tablespace TEMP;

    alter user system temporary tablespace TEMP;

    disconnect

    spool off

    exit

    $more createrman_db3.sh

    spool crdb3.log

    @/export/home/oracle/8.1.6/rdbms/admin/catproc.sql

    @/export/home/oracle/8.1.6/rdbms/admin/caths.sql

    @/export/home/oracle/8.1.6/rdbms/admin/otrcsvr.sql

    connect system/manager

    @/export/home/oracle/8.1.6/sqlplus/admin/pupbld.sql

    disconnect

    spool off

    exit

    2、建repository存放的表空间和rman用户

    $more createrman_db4.sh

    connect internal

    create tablespace rman_ts

    datafile '/export/home/oracle/oradata/rman_data/rman_ts.dbf'

    size 20M default storage (initial 100K next 100K pctincrease 0);

    create user rman_hainan identified by rman_hainan

    temporary tablespace TEMP

    default tablespace rman_ts quota unlimited on

    rman_ts;

    grant recovery_catalog_owner to rman_hainan;

    grant connect ,resource to rman_hainan;

    3、建catalog,注册目的数据库

    $more createrman_db5.sh

    rman catalog rman_hainan/rman_hainan@rman msglog=rman.log

    create catalog ;

    exit;

    rman target sys/oracle@db1

    connect catalog rman_hainan/rman_hainan@rman

    register database;

    exit;

    4、可以劈脸做备份了

    5、做全备

    $more rmanshell

    . /export/home/oracle/.profile

    rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile /export/home/oracle/ba

    ckup_level0.rcv log /export/home/oracle/backup.log

    $more backup_level0.rcv

    resync catalog;

    run {

    allocate channel t1 type disk;

    backup

    incremental level 0

    skip inaccessible

    tag hot_db_bk_level0

    filesperset 3

    format '/export/home/oracle/bk_%s_%p_%t.bk'

    (database);

    sql 'alter system archive log current';

    backup

    filesperset 10

    format '/export/home/oracle/a1_%s_%p_%t.ac'

    (archivelog all delete input);

    backup

    format '/export/home/oracle/df_t%t_s%s_p%p.ct'

    current controlfile ;

    }

    6、做增备

    $more rmanshell1

    rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile backup_level1.rcv log

    backup.log

    $more backup_level1.rcv

    resync catalog;

    run {

    allocate channel t1 type disk;

    backup

    incremental level 1

    skip inaccessible

    tag hot_db_bk_level1

    filesperset 3

    format 'bk_%s_%p_%t.bk1'

    (database);

    sql 'alter system archive log current';

    backup

    filesperset 10

    format 'a1_%s_%p_%t.ac1'

    (archivelog all delete input);

    backup current controlfile;

    }

    1、 删除旧的全备

    $rman rcvcat rman_hainan/rman_hainan@rman target /

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN-06005: connected to target database: TEST (DBID=1692992254)

    RMAN-06008: connected to recovery catalog database

    RMAN> list backupset;

    RMAN-03022: compiling command: list

    List of Backup Sets

    Key Recid Stamp LV Set Stamp Set Count Completion Time

    ------- ---------- ---------- -- ---------- ---------- ----------------------

    38 145 399987408 0 399987406 153 11-JUN-00

    根据key来删除旧的备份。

    RMAN> allocate channel for maintenance type disk;

    RMAN> change backupset 169 delete; ----------THIS IS THE COMMAND TO REMOVE THE ENTRY & OS FILE

    做完后可以看到list backupset和行使系统的文件都没有了。

    2、 规复

    (1) 将数据库启动到nomount形状:

    $svrmgrl

    Oracle Server Manager Release 3.1.6.0.0 - Production

    Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.

    Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production

    With the Partitioning option

    JServer Release 8.1.6.0.0 - Production

    SVRMGR> connect internal

    Connected.

    SVRMGR> startup nomount;

    ORACLE instance started.

    Total System Global Area 339275684 bytes

    Fixed Size 94116 bytes

    Variable Size 318685184 bytes

    Database Buffers 16384000 bytes

    Redo Buffers 4112384 bytes

    SVRMGR> exit

    Server Manager complete.

    (2) 规复节制文件:

    $rman rcvcat rman_hainan/rman_hainan@rman target /

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN-06006: connected to target database: test (not mounted)

    RMAN-06008: connected to recovery catalog database

    RMAN> run {

    2> allocate channel d1 type disk;

    3> restore controlfile;

    4> release channel d1;

    5> }

    (3) 恢双数据文件

    RMAN> run {

    2> allocate channel d1 type disk;

    3> sql "alter database mount";

    4> restore datafile 1;

    5> restore datafile 2;

    6> restore datafile 3;

    7> restore datafile 4;

    8> release channel d1;

    9> }

    (4) 规复日志文件

    RMAN> run {

    2> set archivelog destination to '/export/home/oracle/admin/test/arch';

    3> allocate channel d1 type disk;

    4> restore archivelog all;

    5> release channel d1;

    6> }

    会把一切的日志文件规复。

    (5) 根据日志做recover

    $svrmgrl

    Oracle Server Manager Release 3.1.6.0.0 - Production

    Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.

    Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production

    With the Partitioning option

    JServer Release 8.1.6.0.0 - Production

    SVRMGR> connect internal

    Connected.

    SVRMGR> recover database using backup controlfile until cancel;

    ORA-00279: change 51054 generated at 06/11/2000 11:38:37 needed for thread 1

    ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_3.arc

    ORA-00280: change 51054 for thread 1 is in sequence #3

    Specify log: {=suggested | filename | AUTO | CANCEL}

    Log applied.

    ORA-00279: change 51058 generated at 06/11/2000 11:38:44 needed for thread 1

    ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_4.arc

    ORA-00280: change 51058 for thread 1 is in sequence #4

    ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_3.arc' no longer

    needed for this recovery

    Specify log: {=suggested | filename | AUTO | CANCEL}

    Log applied.

    ORA-00279: change 51074 generated at 06/11/2000 11:40:20 needed for thread 1

    ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_5.arc

    ORA-00280: change 51074 for thread 1 is in sequence #5

    ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_4.arc' no longer

    needed for this recovery

    Specify log: {=suggested | filename | AUTO | CANCEL}

    cancel

    Media recovery cancelled.

    SVRMGR> alter database open resetlogs;

    Statement processed.

    规复完成。

    SVRMGR> select table_name from user_tables;

    TABLE_NAME

    ------------------------------

    BONUS

    DEPT

    EMP

    SALGRADE

    TEST

    TEST_ZMY

    ZMY

    ZMY_DEPT

    ZMY_EMP

    9 rows selected.

    可以检搜检到,一切的都规复了,包括全备份后的事件。(只需有归档日志,都可以规复)。

    3、规复后rman数据库的同步

    $rman rcvcat rman_hainan/rman_hainan@rman target /

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN-06005: connected to target database: TEST (DBID=1692992254)

    RMAN-06008: connected to recovery catalog database

    RMAN> reset database;

    RMAN-03022: compiling command: reset

    RMAN-03023: executing command: reset

    RMAN-08006: database registered in recovery catalog

    RMAN-03023: executing command: full resync

    RMAN-08029: snapshot controlfile name set to default value: ?/dbs/snapcf_@.f

    RMAN-08002: starting full resync of recovery catalog

    RMAN-08004: full resync complete




    版权声明: 原创作品,答应转载,转载时请务必以超链接体例标明文章 原始出处 、作者信息和本声明。不然将清查功令责任。

  • 相关阅读:
    153. Find Minimum in Rotated Sorted Array
    228. Summary Ranges
    665. Non-decreasing Array
    661. Image Smoother
    643. Maximum Average Subarray I
    4.7作业
    面向对象编程
    常用模块3
    3.31作业
    常用模块2
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1974036.html
Copyright © 2020-2023  润新知