为数据库可恢复性做准备

保护控制文件:控制文件用于加载数据库,控制文件可恢复,但有时不容易,要保证控制文件的位置至少两个位于 不同物理设备上。
查看控制文件的路径
sql> show parameter control_files
控制文件操作要在数据库关闭的情况下进行。
sql> shutdown immediate;
sql>  host copy 原路径/control01.ctl 新路径/control02.ctl
sql>  startup nomount;
sql>  alter system set control_files = " 原路径/control01.ctl ","新路径/control02.ctl"
sql>   scope=spfile;
sql>  startup force;
保护联机重做日志文件:Oracle运行时至少需要两个联机重做日志文件组,保证两个组之间正常交换。增减更多的联机日志文件组来提高性能。一般每个日志组有 一个成员,保险起见每个组至少要有两个成员。Dg可以做到,联机日志文件保证在实例崩溃后SMON进程进行前滚恢复。实例崩溃,联机日志文件损坏会造成库起不来。
select group#,sequence#,members,status from v$log;
SQL> select group#,sequence#,members,status from v$log;

    GROUP#  SEQUENCE#    MEMBERS STATUS
---------- ---------- ---------- ----------------
         1         10          1 CURRENT
         2          8          1 INACTIVE
         3          9          1 INACTIVE
INACTIVE 未活动的组
CURRENT 当前写的组
SQL> alter system switch logfile;   强制进行日志切换,任何正在执行的DML操作会发生自动日志切换。
System altered.
SQL> select group#,sequence#,members,status from v$log;
    GROUP#  SEQUENCE#    MEMBERS STATUS
---------- ---------- ---------- ----------------
         1         10          1 ACTIVE
         2         11          1 CURRENT
         3          9          1 INACTIVE
ACTIVE 表示当前仍活跃的组
实例恢复时需要状态为 Active 和 current 的组, 检查点前移Active的组将变成Inactive:alter system checkpoint;会强制检查点进入最新状态,Active变成INACTIVR。
增加联机重做日志成员语句:
SQL> alter database add logfile member
SQL> '路径/redo01A.log' to group 1;
SQL> select group#,status,member from v$logfile;

    GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
         3
/u01/app/oracle/oradata/song/redo03.log

         2
/u01/app/oracle/oradata/song/redo02.log

         1
/u01/app/oracle/oradata/song/redo01.log

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

    GROUP#  SEQUENCE#    MEMBERS STATUS
---------- ---------- ---------- ----------------
         1         10          2 INACTIVE
         2         11          1 CURRENT
         3          9          1 INACTIVE

SQL>  select group#,status,member from v$logfile;

    GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
         3
/u01/app/oracle/oradata/song/redo03.log

         2
/u01/app/oracle/oradata/song/redo02.log

         1
/u01/app/oracle/oradata/song/redo01.log


    GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
         1 INVALID
/u01/app/oracle/oradata/song/redo01A.log
归档日志模式和归档器进程
归档可将联机重做日志进行保留即被复制为归档日志,归档打开会启动一组后台进程--归档器进程ARCn,默认情况下会有四个(Arc0,Arc,ARC2,ARC3)最多可启动30个。
归档日志文件名中嵌入的变量:
%d   唯一的数据库标识,如果将多个数据库归档到同一目录,这是必须的。
%t    线程号,显示为V$instance中的THREAD列。除了在RAC数据库中使用,这个变量没任何意义。
%r    场景号,如果进行不完全恢复这个变量尤为重要。
%s    日志切换序列号。这个变量可以保证任何一个数据库中的日志都不会彼此重写。

 归档可指定一个目标,安全起见可以指定多个进行多路复用。
做DG时副本可能全用到
数据库转换为归档模式:
创建归档目录
windows 
c:\> md c:\oracle\archive1
c:\>  md c:\oracle\archive2
unix
$ mkdir /oracle/archive1
$ mkdir /oracle/archive2
连接数据库(sys)
sqlplus / nolog
conn / as sysdba
设置归档目录,控制归档日志文件名格式
alter system set log_archive_dest1='location=/oracle/archive1/' scope=spfile;
alter system set log_archive_dest2='location=/oracle/archive2/' scope=spfile;
alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile;
关闭数据库
shutdown immediate;
起到加载模式
startup mount;
将数据库转化为归档模式。
alter database archivelog;
打开数据库
alter database open;
确认数据库为归档模式,并查询运行归档器状态。
select log_mode from v$database;
select archiver from v$instance;
强制进行日志切换
alter system switch logfile;
查看归档至两个目标
select name from v$archived_log;
 
保护归档重做日志
LOG_ARCHIVE_DEST_n最多可设置10个,至少一个是本地磁盘设备(系统上的目录或一个ASM设备)
每个归档日志目标都可设置为强制的或可选的,与另一实例参数相关LOG_ARCHIVE_MIN_SUCEED_DEST,
LOG_ARCHIVE_DEST_1='location=/u02/orcl/arch1 mandatory'
LOG_ARCHIVE_DEST_2='location=/u02/orcl/arch2 optional'
LOG_ARCHIVE_DEST_3='location=/u02/orcl/arch3 optional'
LOG_ARCHIVE_MIN_SUCEED_DEST =2
这表示在联机日志成功的归档到第一个目标,并且生成两个副本才能重写联机日志文档。
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30134870/viewspace-1453277/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30134870/viewspace-1453277/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值