检查点进程(CKPT):
使用检查点信息更新数据文件标题
使用检查点信息更新控制文件
在完全检查点向DBWn发出信号
重做日志文件:
记录对数据库进行的更改
应用多路复用避免丢失
日志写进程的写入时间:
提交时
三分之一已满时
每隔3秒
在DBWn写入之前
实例恢复的阶段:
1.数据文件不同步
2.前滚(重做)该阶段称为缓存恢复或者前滚,即将online redo log里的变化全部重新应用到数据文件上,该阶段结束后,数据文件中同时存在已提交和未提交的数据。
3.文件中的提交和未提交数据
4.打开数据库
5.回退(还原)该阶段称为回滚或事务恢复,即将失败前还未提交的变化,进行回滚,保证该阶段结束后,数据文件中只存在已提交的数据。
6.文件中的提交数据
优化实例恢复
在实例恢复期间,必须将检查点位置与重做日志末尾之间的事务处理应用到数据文件。
通过控制检查点位置与重做日志末尾之间的差异可优化实例恢复。
要配置数据库的最大可恢复性,必须执行以下操作:
计划常规备份
多路复用控制文件
1.ASM存储,每个磁盘组上保存一个副本。
2.文件系统存储,至少有两个副本,分别位于不同磁盘。
1)使用alter system set control_files = 更改SPFILE
2)关闭数据库
3)将控制文件复制到新位置
4)打开数据库并确认已经添加了新控制文件
多路复用重做日志组
1.每个组至少有两个成员
2.在每个磁盘驱动器上有一个成员
3.在每个磁盘控制器上有一个成员
保留重做日志的归档副本
配置快速恢复区:
强烈建议使用,可以简化备份存储管理
位置由DB_RECOVERY_FILE_DEST参数指定
大小由DB_RECOVERY_FILE_DEST_SIZE参数指定
足够大,可存放备份、归档日志、闪回日志、镜像控制文件和镜像重做日志
使用检查点信息更新数据文件标题
使用检查点信息更新控制文件
在完全检查点向DBWn发出信号
重做日志文件:
记录对数据库进行的更改
应用多路复用避免丢失
日志写进程的写入时间:
提交时
三分之一已满时
每隔3秒
在DBWn写入之前
实例恢复的阶段:
1.数据文件不同步
2.前滚(重做)该阶段称为缓存恢复或者前滚,即将online redo log里的变化全部重新应用到数据文件上,该阶段结束后,数据文件中同时存在已提交和未提交的数据。
3.文件中的提交和未提交数据
4.打开数据库
5.回退(还原)该阶段称为回滚或事务恢复,即将失败前还未提交的变化,进行回滚,保证该阶段结束后,数据文件中只存在已提交的数据。
6.文件中的提交数据
优化实例恢复
在实例恢复期间,必须将检查点位置与重做日志末尾之间的事务处理应用到数据文件。
通过控制检查点位置与重做日志末尾之间的差异可优化实例恢复。
要配置数据库的最大可恢复性,必须执行以下操作:
计划常规备份
多路复用控制文件
1.ASM存储,每个磁盘组上保存一个副本。
2.文件系统存储,至少有两个副本,分别位于不同磁盘。
1)使用alter system set control_files = 更改SPFILE
2)关闭数据库
3)将控制文件复制到新位置
4)打开数据库并确认已经添加了新控制文件
多路复用重做日志组
1.每个组至少有两个成员
2.在每个磁盘驱动器上有一个成员
3.在每个磁盘控制器上有一个成员
保留重做日志的归档副本
配置快速恢复区:
强烈建议使用,可以简化备份存储管理
位置由DB_RECOVERY_FILE_DEST参数指定
大小由DB_RECOVERY_FILE_DEST_SIZE参数指定
足够大,可存放备份、归档日志、闪回日志、镜像控制文件和镜像重做日志
根据保留策略自动进行管理
--实验
--文件系统存储控制文件多工
SYS@PROD2> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/app/oracle/oradata/PROD2/
control01.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
SYS@PROD2> alter system set control_files='/u01/app/oracle/oradata/PROD2/control01.ctl','/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl' scope=spfile;
System altered.
SYS@PROD2> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@ocm1 PROD2]$ cp /u01/app/oracle/oradata/PROD2/control01.ctl control02.ctl
[oracle@ocm1 PROD2]$ ls
archivelog backupset control02.ctl onlinelog
[oracle@ocm1 PROD2]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 6 21:06:31 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SYS@PROD2> startup
ORACLE instance started.
Total System Global Area 958341120 bytes
Fixed Size 1348972 bytes
Variable Size 314575508 bytes
Database Buffers 637534208 bytes
Redo Buffers 4882432 bytes
Database mounted.
Database opened.
SYS@PROD2> select name from v$database;
NAME
---------
PROD2
SYS@PROD2> select name from v$controlfile;
NAME
----------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/PROD2/control01.ctl
/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl
--日志文件多工
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/oracle/oradata/wyzc10g/redo03.log
/u01/oracle/oradata/wyzc10g/redo02.log
/u01/oracle/oradata/wyzc10g/redo01.log
[oracle@luo ~]$ ls /u01/oracle/flash_recovery_area/
WYZC10G
[oracle@luo ~]$ rlwrap sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Tue Dec 6 21:39:19 2016
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options
SQL> alter database add logfile member '/u01/oracle/flash_recovery_area/WYZC10G/redo01.log' to group 1;
Database altered.
SQL> alter database add logfile member '/u01/oracle/flash_recovery_area/WYZC10G/redo02.log' to group 2;
Database altered.
SQL> alter database add logfile member '/u01/oracle/flash_recovery_area/WYZC10G/redo03.log' to group 3;
Database altered.
SQL> select group#, members from v$log;
GROUP# MEMBERS
---------- ----------
1 2
2 2
3 2
--开启归档
SQL> select log_mode from v$database; --查看当前模式
LOG_MODE
------------
NOARCHIVELOG
SQL> archive log list; --另一种方法
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 54
Current log sequence 56
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 398458880 bytes
Fixed Size 2096568 bytes
Variable Size 159384136 bytes
Database Buffers 230686720 bytes
Redo Buffers 6291456 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.