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

    配置可恢复性

    控制文件

    SQL> show parameter control_files

    SQL> select * from v$controlfile;

    1,修改路径:

    $ cd $ORACLE_HOME/dbs

    $ cp spfileorcl.ora spfileorcl.ora.bak

    SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl', '/home/oracle/control02.ctl' scope=spfile;

    SQL> shutdown immediate

    $ mv /u01/app/oracle/fast_recovery_area/orcl/control02.ctl /home/oracle/control02.ctl

    SQL> startup

    SQL> show parameter control_files

    SQL> select * from v$controlfile;

    2,增加镜像:

    SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl', '/home/oracle/control02.ctl', '/home/oracle/control03.ctl' scope=spfile;

    SQL> shutdown immediate

    $ cp /home/oracle/control02.ctl /home/oracle/control03.ctl

    SQL> startup

    SQL> show parameter control_files

    SQL> select * from v$controlfile;

     

    日志文件:

    增加成员和日志组:

    SQL> select GROUP#, SEQUENCE#, STATUS, MEMBERS from v$log;

    SQL> select GROUP#, MEMBER from v$logfile;

    SQL> alter database add logfile member '/home/oracle/redo01b.log' to group 1;

    SQL> alter database add logfile member '/home/oracle/redo02b.log' to group 2;

    SQL> alter database add logfile member '/home/oracle/redo03b.log' to group 3;

    SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/orcl/redo04.log', '/home/oracle/redo04b.log') size 50M;

     

    FRA:

    SQL> show parameter db_recovery

     

    backupset: 10GB,  archived log: 5GB

     

    10+5, 10G

    数据文件:

    开启归档模式:

    SQL> archive log list 检查当前设置

    SQL> shutdown immediate

    SQL> startup mount

    SQL> alter database archivelog;打开 noarchivelog关闭

    SQL> alter database open;

    SQL> archive log list

    SQL> show parameter log_archive_dest

    SQL> select group#, sequence#, status, archived from v$log;

    SQL> alter system switch logfile;

    SQL> select group#, sequence#, status, archived from v$log;

    SQL> select NAME, SEQUENCE#, STATUS from v$archived_log;

    $ ls /u01/app/oracle/fast_recovery_area/ORCL

     

    RMAN配置

     

    $ rman target / 或rman target sys/password@orcl

    RMAN> show all; 查看目标数据库备份设置

    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP On;

    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP clear;

    RMAN> backup tablespace users;

    RMAN> list backup;

    SQL> desc v$backup_set 浏览器中也可以查看

    RMAN备份

    不归档 归档

    online offline online offline

    完全  部分  完全  部分     完全  部分  完全  部分

     

    shutdown nomount mount open

     

    备份数据文件:

    SQL> select file_id, file_name from dba_data_files;

    RMAN> backup datafile 4;

    RMAN> backup datafile 4, 5;

    RMAN> backup datafile '/u01/app/oracle/oradata/orcl/users01.dbf';

    RMAN> backup tablespace users;表空间对应一个或多个数据文件

    RMAN> backup tablespace users, example;

    RMAN> backup database;

    RMAN> list backup;

    desc v$backup_set,浏览器查看备份

     

    增量备份:

    RMAN> backup incremental level 0 tablespace users;

    RMAN> list backup of tablespace users;

    SQL> create table t1(x int) tablespace users;

    SQL> insert into t1 values (1);

    SQL> commit;

    RMAN> backup incremental level 1 tablespace users;

    RMAN> backup incremental level 1 tablespace users;

    SQL> create table t2(x int) tablespace users;

    SQL> insert into t2 values (1);

    SQL> commit;

    RMAN> backup incremental level 1 cumulative tablespace users;

    RMAN> list backup of tablespace users;

     

    开启块跟踪:减少数据块扫描时间

    SQL> alter database enable block change tracking using file '/home/oracle/blk_trk.chg';

    需要重新连接会话

    SQL> select * from v$block_change_tracking;

    SQL> select DATAFILE_BLOCKS, BLOCKS_READ, BLOCKS, USED_CHANGE_TRACKING from v$backup_datafile where INCREMENTAL_LEVEL>0;

    SQL> create table t3(x int) tablespace users;

    SQL> insert into t3 values (1);

    SQL> commit;

    RMAN> backup incremental level 1 tablespace users;

    SQL> select DATAFILE_BLOCKS, BLOCKS_READ, BLOCKS, USED_CHANGE_TRACKING from v$backup_datafile where INCREMENTAL_LEVEL>0;

    SQL> alter database disable block change tracking; 关闭

     

    增量更新:只备份数据变化

    SQL> create table t1(x int) tablespace users;

    SQL> insert into t1 values (1);

    SQL> commit;

    RMAN> backup incremental level 1 for recover of copy with tag 'update_copy' tablespace users; 第一次创建的是0级备份

    RMAN> list copy; 记录time和scn

    SQL> insert into t1 values (2);

    SQL> commit;

    RMAN> backup incremental level 1 for recover of copy with tag 'update_copy' tablespace users; 第2次创建的是1级备份

    RMAN> list backup; backupset格式

    RMAN> recover copy of tablespace users with tag 'update_copy';

    RMAN> list copy; time和scn更新

     

    脚本形式:

    RMAN> run {

    backup incremental level 1 for recover of copy with tag 'update_copy' tablespace users;

    recover copy of tablespace users with tag 'update_copy';

    }

     

    备份归档日志:

    RMAN> list archivelog all;

    RMAN> backup archivelog all delete all input;

    RMAN> list archivelog all;

    RMAN> list backup;

     

    备份的维护:

    查看:

    RMAN> list backup; 备份集

    RMAN> list copy; 镜像拷贝

    RMAN> list backup of tablespace users; 查看表空间备份集

    RMAN> list backup of datafile 4;

    RMAN> list archivelog all;

    检查备份:

    RMAN> delete backup; 删除备份

    RMAN> delete copy;

    RMAN> list backup; list copy;

    RMAN> report need backup; 根据策略检查

    RMAN> backup tablespace users;

    RMAN> report need backup REDUNDANCY 5;

    RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

    RMAN> report need backup;

    RMAN> CONFIGURE RETENTION POLICY clear;

    RMAN> report obsolete;超过冗余度的备份

    删除备份:

    RMAN> delete backupset of tablespace users;

    RMAN> delete backupset 1234;

    RMAN> backup tablespace users;

    RMAN> backup tablespace users;

    RMAN> show all;

    RMAN> delete obsolete;删除超过冗余度的备份

    crosscheck: 交叉检查 看控制文件能跟备份文件对上么

    RMAN> delete backup;

    RMAN> backup tablespace users;

    RMAN> list backup of tablespace users;

     

    $ mv /u01/app/oracle/fast_recovery_area/ORCL/backupset/…  改名

    RMAN> restore datafile 4; 恢复 报错

    RMAN> crosscheck backup;

    RMAN> list backup of tablespace users; 报废状态

    RMAN> list expired backup;

     

    $ mv /u01/app/oracle/fast_recovery_area/ORCL/backupset/… 恢复原名

    RMAN> crosscheck backup;

    RMAN> list backup of tablespace users; 可用状态

    RMAN> delete expired backup;

     

    catalog:恢复到控制文件

    $ cp /u01/app/oracle/fast_recovery_area/ORCL/backupset/…  复制

    RMAN> delete backup;

    RMAN> list backup; backupset消失

    $ mv /u01/app/oracle/fast_recovery_area/ORCL/backupset/… 恢复原名

    RMAN> catalog recovery area noprompt;扫描备份文件加到控制文件里

    RMAN> list backup; backupset恢复

     

  • 相关阅读:
    body.filters 出现未指明错误
    利用sql server创建可重复运行的存储过程
    有关如何阻止ASP.NET的按钮控件提交页面的小发现
    ASP.NET 2.0中减少ViewState大小的一点小发现
    DataSet 的 Tables 属性对表名大小写敏感性的解惑[翻译]
    利用Sql Server Management Studio 创建视图的问题
    在用数据绑定的时候我为什么不能把焦点移出(Tab out)我的控件?(译)
    什么是 Change Notification,为什么它很重要(译)
    Rms For Sharepoint
    sharepoint 2010 容量边界
  • 原文地址:https://www.cnblogs.com/shan2017/p/7367462.html
Copyright © 2011-2022 走看看