zoukankan      html  css  js  c++  java
  • 一个残缺的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




    版权声明: 原创作品,允诺转载,转载时请务必以超链接方式标明文章 原始来由 、作者信息和本声明。否则将清查法律责任。

  • 相关阅读:
    DRF初始准备
    树与二叉树知识点总结(一)
    html牛刀小试
    Python算法黑科技collection模块
    栈和队列知识点总结
    python结束程序的三种技巧
    爬虫01
    Django大结局
    Django报错 Forbidden (CSRF token missing or incorrect.): 解决方法
    Django进阶
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1973862.html
Copyright © 2011-2022 走看看