重做日志文件和 RAC
在 Oracle RAC 数据库中,每个实例必须至少有两组重做日志文件。
在使用 ALTER DATABASE ENABLE INSTANCE instance_name 命令启用新实例之前,我们必须分配重做日志组。
当我们使用 DBCA 创建数据库时,DBCA 会根据需要自动将重做日志文件分配给实例。
我们可以在初始数据库创建期间或者作为创建后步骤根据需要更改重做日志组的数量和重做日志文件的大小。
当前组填满后,实例开始写入下一个日志文件组。
如果数据库处于 ARCHIVELOG 模式,则每个实例都必须将填充的联机日志组保存为在控制文件中进行跟踪的归档重做日志文件。
在数据库恢复期间,检查所有启用的实例以查看是否需要恢复。
如果从 Oracle RAC 数据库中删除实例,则应禁用该实例的重做线程,以便 Oracle 在数据库恢复期间不必检查该线程。
当特定生产 Oracle RAC 数据库的实例数量发生变化时,必须考虑重做日志管理。
例如,如果我们在策略管理的数据库中增加服务器池的基数,并且将新服务器分配给服务器池,那么如果我们启用了 Oracle 托管文件 (OMF),则 Oracle Clusterware 在新服务器上启动一个实例。
如果实例启动并且没有可用的线程或者重做日志文件,那么如果数据库使用 Oracle ASM 或者任何集群文件系统,则 Oracle Clusterware 会自动启用重做线程并分配关联的重做日志文件和撤消。
对于管理员管理的数据库,每个实例都有自己的联机重做日志组。
创建这些重做日志组并建立组成员。
要将重做日志组添加到特定实例,请在 ALTER DATABASE ADD LOGFILE 语句中指定 INSTANCE 子句。
如果在添加重做日志组时不指定实例,则重做日志组会添加到我们当前连接的实例中。
每个实例必须至少有两组重做日志文件。
在使用 ALTER DATABASE ENABLE INSTANCE instance_name 命令启用新实例之前,我们必须分配重做日志组。
当前组填满后,实例开始写入下一个日志文件组。
如果数据库处于 ARCHIVELOG 模式,则每个实例都必须将填充的联机日志组保存为在控制文件中进行跟踪的归档重做日志文件。
在数据库恢复期间,检查所有启用的实例以查看是否需要恢复。
如果我们从 Oracle RAC 数据库中删除一个实例,那么我们应该禁用该实例的重做线程,以便 Oracle 在数据库恢复期间不必检查该线程。
我们可以查询 V$THREAD 以查看当前正在使用的线程。
查询 V$LOG 以列出重做日志文件及其所属线程。