zoukankan      html  css  js  c++  java
  • oracle的rman备份恢复

    1.名次解释:
     restore: 还原
     recover: 恢复
     备份集: 类似tablespace
     备份片: 一个数据文件可跨多个备份片,但在一个备份集中
    2.准则:
     a. 当文件被还原时,该文件不能被数据库实例使用.
     b. 只有增量级别为0备份或完全备份,映像拷贝可被还原;其他级别的增量备份和归档日志用于恢复。
     
    一. 配置RMAN备份
    1. 切换备份模式,oracle9i 启动归档进程
    2. 调整redolog分组
    SQL> select * from v$logfile
    SQL> alter database add logfile group 4 ('/u01/oradata/yang/redo04a.rdo','/u01/oradata/yang/redo04b.rdo') size 50M; //添加一个新的日志组,组编号为4,存在两个组成员,大小各位50M
    SQL> alter database add logfile member '/u01/oradata/yang/redo01.rdo' to group 1;   //添加一个新的成员到日志组1
    3. 配置archivelog目的地
    4. 配置rman备份脚本和恢复策略
    关键是联机重做日志和控制文件
    语言环境NLS_LANG
    一。rman备份
    check logical
    set maxcorrupt
    RMAN> connect target sys/sys@cttest
    {
     allocate channel d1 type disk;
     backup
     incremental level=0 cumulative
     database
     format '/oradata/cttest/backup/db0_%d_%s_%p_%t'
     tag="whole_inc0';
     release channel d1;
    }
    {
     allocate channel d1 type disk;
     backup archivelog
      from time 'sysdate-2'
      format '/oradata/cttest/backup/ar0_%d_%s_%p_%t';
     release channel d1;
    }
    {
     allocate channel d1 type disk;
     backup archivelog
      from time 'sysdate-3' until time 'sysdate-2'
      format '/oradata/cttest/backup/ar0_%d_%s_%p_%t';
      delete input;
     release channel d1;
    }


    二。rman 恢复
    1. restore->recover增量备份->recover archive on Disk->recover archive on backupset
       控制文件被restore了只能进行不完全恢复
    ORACLE_SID;
    ORACLE_BASE;
    ORACLE_HOME;
    ORACLE_DATA;
    ORACLE_ADMIN
    mkdir $ORACLE_ADMIN/pfile
    mkdir $ORACLE_ADMIN/bdump
    mkdir $ORACLE_ADMIN/cdump
    mkdir $ORACLE_ADMIN/udump
    mkdir $ORACLE_ADMIN/create
    mkdir -p $ORACLE_DATA/archive
    2.如果改名字,在init.ora在

    run{
     allocate channel d1 type disk;
     restore database;
     recover database;
    }

    三。rman监控

    select sid,serial#,context,sofar,totalwork,
    round(sofar/totalwork*100,2) "% Complete",opname
    from v$session_longops;

    select * from v$backup_corruption

    四. dataguard创建和同步
    a. 创建
    connect target sys/practise@test
    connect auxiliary sys/sys@standby
    run{
       set command id to 'standby Creation';
       allocate auxiliary channel d1 type disk;
       duplicate target database for standby dorecover;
    b. 恢复归档日志
    SQL> set logsource /oradata/practise/archive
    SQL> recover standby database;

    c. 查看
    SQL> alter database open read only;
    SQL> select * from device;
    SQL> shutdown immediate;
    SQL> startup nomount;
    SQL> alter database mount standby database;

    d. 配置管理恢复
    log_archive_dest_1 用于手工恢复
    standby_archive_dest_1用于管理恢复
    instance_name和service_name可以不同,db_name必须相同
     主服务器的archive进程通过net8与备服务器的RFS通信,把日志保存在standby_arch_dest_1
    目录下。
    在standby数据库上启动管理恢复:
    SQL>recover managed standby database;
    SQL>recover managed standby dtabase cancel;
    在主数据库上设置net8
    SQL>alter system set log_archive_dest_2="MANDATORY service=STANDBY reopen=30"  --必须成功,重试时间
    SQL>alter system set log_archive_dest_state_2=ENABLE|DEFER;
    只读打开:
    SQL>recover managed standby database cancel;
    SQL>alter database open read only;
    返回恢复模式:
    sQL> shutdown immediate
    SQL> startup nomount;
    SQL> alter database mount standby database;
    SQL> recover managed standby database;

    激活数据库
    SQL>recover managed standby database cancel;
    SQL>alter database activate standby database;
    SQL>shutdown;
    SQL>startup

    1)sqlloader direct特性无法复制
    2)添加数据文件无法复制

  • 相关阅读:
    【转载】Unity的内存管理与性能优化
    [转载]有关placement new
    国内外有用的课程资源
    os模块批量重命名多个工作簿
    利用xlwings将一个工作表,拆成多个工作簿
    利用xlwings批量打开同一文件夹下的N多EXCEL表格
    回归初心,探索真我写在2022年的开始
    利用xlwings在多个工作簿中批量新增工作表
    今日份试题,关于Python办公自动化应用
    随想
  • 原文地址:https://www.cnblogs.com/itfriend/p/1887978.html
Copyright © 2011-2022 走看看