zoukankan      html  css  js  c++  java
  • ORACLE_RMAN备份恢复

    1、创建rman数据库
    (1)为目录创建一个单独的表空间
    先创建一个back数据库
    创建表空间
    create tablespace back datafile 'filename' size 500m;
    (2)创建rman用户
    create user rman identified by rman default tablespace back temporary tablespace temp;
    (3)该rman授予权限
    grant connect,resource,recovery_catalog_owner to rman;
    (4)创建恢复目录
    $rman
    connect catalog rman/rman
    create catalog tablespace back;
    (5)注册目标数据库

    连接数据库
    rman target system/system@db1 catalog rman/rman@catalog
    修改tnsnames.ora文件增加SERVER=DEDICATED,修改后如下:
    DB1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = yninfo_dafen)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER=DEDICATED)(SERVICE_NAME = db1)
        )
      )

    注册数据库
    register database;

    2、注销数据库
    (1)连接目标数据库,获取目标数据库ID
    rman target system/system@db1 catalog rman/rman@catalog
    得到rman(dbid=1231209694)的信息
    (2)查询恢复目录
    select db_key,db_id from db where db_id=1231209694;
    (3)注销数据库
    execute dbms_rcvcat.unregisterdatabase(1,1231209694)

    3、备份/恢复
    备份整个数据库
    backup full tag 'basicdb' format '/bak/prod/full_%u_%s_%p' database;
    备份一个表空间
    backup tag 'tsuser' format '/bak/prod/tsuser_%u_%s_%p' tablespace users;
    备份归档日志
    backup tag 'alog' format '/bak/prod/archive/arcbk_%u_%s_%p' archivelog all delete input;

    全库备份:
    run{
    allocate channel c1 type disk;
    allocate channel c2 type disk;
    allocate channel c3 type disk;
    backup full tag 'basicdb' format '/bak/prod/full_%u_%s_%p' database;
    include current controlfile;
    sql 'alter system archive log current';
    backup fileaperset 3 format '/bak/prod/arch_%u_%s_%p'
    archivelog all delete input;
    release channel c1;
    release channel c2;
    release channel c3;
    }

    全库恢复:
    rman>
    run {
    allocate channel 'dev1' type disk   ;
    allocate channel 'dev2' type disk ;
    allocate channel 'dev3' type disk ;
    restore  database ;
    recover database ;
    release channel dev1 ;
    release channel dev2 ;
    release channel dev3 ;
    }

    4、维护rman
    1)查看rman信息
    list backup;查看rman的信息
    report obsolete;列出过期备份
    删除过期备份
    run{
    alocate channel for maintenance type disk;
    change backup id delete;
    releace channel;
    }
    2)同步或重置rman
    如果目标数据库物理对象发生了变化,如添加一个数据文件,需用如下命令同步:
    resync catalog;
    如果目标数据库reset了数据库,需用如下命令同步:
    reset database;
    当手工删除了数据库的归档文件后,需执行以下脚本同步:
    run{
    allocate channel for maintenance type disk;
    change archivelog all crosscheck;
    release chyannel;
    }
    当手工删除了数据库的rman备份后,需要执行以下脚本来同步:
    run{
    allocate channel fro maintenance type disk;
    recosscheck backup;
    delete expired backup;
    release channel;
    }


    5、自动备份
    1)生成备份脚本文件backup.rcv如下:
    connect target system/system@db1
    connect rcvcat rman/rman@back
    run{
    allocate channel c1 type disk;
    allocate channel c2 type disk;
    allocate channel c3 type disk;
    backup full tag 'db1' format 'D:/oracle/backup/full_%u_%s_%p' database
    include current controlfile;
    sql 'alter system archive log current';
    backup filesperset 3 format 'D:/oracle/backup/arch_%u_%s_%p'
    archivelog all delete input;
    release channel c1;
    release channel c2;
    release channel c3;
    }

    2)生成执行文件backup.bat(linux生成.sh文件)如下:
    rman cmdfile=D:/oracle/backup/delete.rcv msglog=D:/oracle/backup/backup.txt
    3)加入调度
    at 23:00 /every:Su cmd/c "D:/oracle/backup/delete.bat"
    表示星期天23点对数据库备份

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/flcandclf/archive/2007/05/30/1630448.aspx

  • 相关阅读:
    spring bean的作用域
    Web前端开发CSS规范总结
    前端技术都包含哪些?
    Web安全常见问题及解决方法
    如何让手游更省带宽,耗电量更少?TBR渲染架构解析!
    新手学Java,有哪些入门知识点?
    如何让手游内存占用更小?从内存消耗iOS实时统计开始
    动作游戏老是卡?试试从这些方面提升流畅度
    开发者必知!2020年大前端发展趋势解读
    游戏编程入门! 想成为专业的游戏开发程序员需要掌握哪些?
  • 原文地址:https://www.cnblogs.com/axon/p/13707848.html
Copyright © 2011-2022 走看看