保护控制文件:控制文件用于加载数据库,控制文件可恢复,但有时不容易,要保证控制文件的位置至少两个位于 不同物理设备上。
查看控制文件的路径
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/