oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入、删除、更新等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。如果数据库处于非归档模式,联机日志在切换时就会丢弃,而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。
归档模式和非归档模式的优缺点归档模式的优点
归档模式的缺点
非归档模式的缺点
非归档模式的优点
非归档模式不生成归档日志,从数据安全角度来说,这种模式缺点是主要的,而优点可以忽略不计。
对于oracle 9i启用日志归档的方法如下:
ALTER SYSTEM SET log_archive_start=TRUE SCOPE=spfile;
ALTER SYSTEM SET log_archive_dest_1='location=/u01/oradata/MYSID/archive/' SCOPE=spfile;
ALTER SYSTEM SET log_archive_format='arch_%t_%s.arc' SCOPE=spfile;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ARCHIVE LOG START;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
在oracle 10g中log_archive_start参数和archive log start命令被废弃。其方法如下:
ALTER SYSTEM SET log_archive_dest_1='location=/u01/oradata/MYSID/archive/' SCOPE=spfile;
ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=spfile;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
由于ALTER DATABASE ARCHIVELOG仅当数据库以独占模式挂载时,才能执行该命令。这意味着必须先停止整个群集数据库,然后才能执行该操作。
1、设置相关的存档参数
ALTER SYSTEM SET log_archive_start = TRUE范围= spfile;
ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile;
ALTER SYSTEM SET log_archive_format ='arch_%t_%s.arc'SCOPE = spfile;
2、由于我们需要以独占模式挂载数据库,因此我们必须还更改以下参数
ALTER SYSTEM SET cluster_database=FALSE SCOPE=spfile;
3、停止集群
$ srvctl stop database -d MYDB
4、在群集关闭的情况下,我们可以连接到单个节点并发出以下命令。
STARTUP MOUNT;
ARCHIVE LOG START;
ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET cluster_database=TRUE SCOPE=spfile;
SHUTDOWN IMMEDIATE;
请注意,该CLUSTER_DATABASE参数已被重置为其原始值。由于数据文件和spfile在所有实例之间共享,因此该操作仅需要从单个节点执行。
5、再次启动集群数据库
$ srvctl start database -d MYDB
当前设置将所有存档日志放置在同一目录中。这是可以接受的,因为线程(%t)是存档格式的一部分,可以防止实例之间的任何名称冲突。如果需要位于特定于节点的位置,LOG_ARCHIVE_DEST_1则可以为每个实例使用相关的SID前缀。
如果LOG_ARCHIVE_DEST_n未设置参数,则已归档的重做日志将放置在FRA中。如果要手动指定其位置和文件名格式,可以按以下步骤进行操作。
1、设置归档相关参数
ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile;
ALTER SYSTEM SET log_archive_format ='arch_%t_%s_%r.arc'SCOPE = spfile;
2、由于我们需要以独占模式挂载数据库,因此我们还必须更改以下参数。
ALTER SYSTEM SET cluster_database=FALSE SCOPE=spfile;
3、在群集关闭的情况下,我们可以连接到单个节点并发出以下命令。
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET cluster_database=TRUE SCOPE=spfile;
SHUTDOWN IMMEDIATE;
请注意,该CLUSTER_DATABASE参数已被重置为其原始值。由于数据文件和spfile在所有实例之间共享,因此该操作仅需要从单个节点执行。
4、启动集群数据库
$ srvctl start database -d MYDB
从10gR2开始,您不再需要CLUSTER_DATABASE在此过程中重置参数。
如果LOG_ARCHIVE_DEST_n未设置参数,则已归档的重做日志将放置在FRA中。如果要手动指定其位置和文件名格式,可以按以下步骤进行操作。
1、设置归档相关参数
ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile;
ALTER SYSTEM SET log_archive_format ='arch_%t_%s_%r.arc'SCOPE = spfile;
2、在命令行中,我们可以使用以下命令停止整个集群数据库并以装入模式启动它。
$ srvctl stop database -d MYDB
$ srvctl start database -d MYDB -o mount
一旦数据库处于mount模式可以用下面的命令启动归档
sqlplus / as sysdba
ALTER DATABASE ARCHIVELOG;
EXIT;
由于数据文件和spfile在所有实例之间共享,因此该操作仅需要从单个节点执行。
3、停止并重新启动集群数据库
$ srvctl stop database -d MYDB
$ srvctl start database -d MYDB
配置方法同oracle 10gR2
配置方法同oracle 10gR2
1、此文汇集了oracle各版本单机和集群启用归档的方法,以备工作中查询备用。