镜像联机重做日志
Oracle 数据库维护在线重做日志文件,以最大限度地减少数据库中的数据丢失。
重做日志文件记录对数据库缓冲区缓存中的数据所做的所有更改,但有一些例外;例如,在直接写入的情况下。
重做日志文件用于在实例失败等情况下恢复尚未写入数据文件的已提交数据。
重做日志文件仅用于恢复。
添加在线重做日志组
在某些情况下,我们可能需要创建其他日志文件组。
例如,添加组可以解决可用性问题。
要创建一组新的联机重做日志文件,请使用以下命令:
ALTER DATABASE ADD LOGFILE ('/DISK3/log3a.rdo','/DISK4/log3b.rdo') size 1M;
在 OMF 中,以下语句创建重做日志组并在 OMF 的 Oracle 文档中解释的参数指定的路径中自动添加日志成员(无需指定文件名)。
ALTER DATABASE ADD LOGFILE;
警告
删除重做日志组和重做日志文件时,必须至少有两个重做日志组,每个重做日志组必须至少有一个日志成员。
删除联机重做日志成员
要删除联机重做日志组的成员,请使用以下命令:
ALTER DATABASE DROP LOGFILE MEMBER '/DISK4/log2b.dbf';
相同的语句适用于 OMF,找到日志文件成员 full_path_file_name 并删除该成员。
SQL 语句中接受 Oracle Managed Files 的文件名,只要文件名用于标识现有文件,就像其他文件名一样。
删除联机重做日志组
要删除一组联机重做日志文件,请使用以下命令:
ALTER DATABASE DROP LOGFILE GROUP 3;
相同的语句适用于 OMF,找到组号并发出上述命令。
获取有关组和成员的信息
以下查询从控制文件返回有关联机重做日志文件的信息:
SQL> select group#, sequence#, bytes, members, status from v$log; GROUP# SEQUENCE# BYTES MEMBERS STATUS ---------- ---------- ---------- ---------- --------------- 1 41 20971520 1 INACTIVE 2 42 20971520 1 CURRENT 2 rows selected.
以下查询返回有关组所有成员的信息:
SQL> select * from v$logfile; GROUP# STATUS MEMBER ---------- ------- ------------------------------------------------------------ 1 /u03/databases/v1020/redologs/v1020_redolog01.dbf 2 /u03/databases/v1020/redologs/v1020_redolog02.dbf 2 rows selected.
添加联机重做日志成员
我们可以使用以下命令将新成员添加到现有重做日志文件组:
ALTER DATABASE ADD LOGFILE MEMBER /DISK4/log1b.rdo' TO GROUP 1, '/DISK4/log2b.rdo' TO GROUP 2;
在 OMF 中,不需要添加联机重做日志成员步骤,因为它们会在发出 ADD LOGFILE 时自动添加。
联机重做日志成员
组中的每个联机重做日志文件都称为成员。
组中的每个成员具有相同的日志序列号和相同的大小。
每次服务器开始写入日志组时都会分配日志序列号,以唯一标识每个重做日志文件。
当前日志序列号存储在控制文件和所有数据文件的标题中。
联机重做日志组
一组相同的联机重做日志文件副本称为联机重做日志组。
后台进程 LGWR 同时将相同的信息写入一个组中的所有联机重做日志文件。
Oracle 数据库至少需要两个联机重做日志文件组才能正常运行数据库。
我们建议至少三个。