在oracle数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
一要使OARCLE数据库进行日志的自动归档,需要做两方面的事情,一是数据库日志模式的设置(database log mode,可为Archive Mode和No Archive Mode),另外就是自动归档模式设置(Automatic archival,可为Enabled和Disabled)。
二如何查看数据库的现行日志和自动归档模式的设置:可用archive log list命令来查看。
[@more@]自动归档模式设置(Automatic archival,可为Enabled和Disabled),在该模式下,数据库启动一个arch进程,专门负责将redo logs写到系统归档设备的相应目录下。
改变非归档模式到归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.这一步非非常重要!
改变归档模式到非归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
启用自动归档,在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora文件中):
LOG_ARCHIVE_START=TURE/FALSE
LOG_ARCHIVE_DEST= ---归档路径
LOG_ARCHIVE_FORMAT= ---归档命名方式
几种设置情况:
(1) Database log mode Archive Mode
Automatic archival Enabled
这是在大部分生产环境中的ORACLE数据库日志及归档模式设置,这种情况下,做好数据库的定期备份(有热备和冷备)和归档日志备份,可有效的将数据库恢复到有归档日志的全部时间点。
(2) Database log mode Archive Mode
Automatic archival Disabled
这种情况下,数据库不能自动归档,需要进行手工归档。如果所有在线日志都写满了,又没有的及时进行手工归档的话,由于LGWR没有可用的在线日志可写,数据库将会挂在这儿,只有进行手工归档后,有可用的在线日志后才能继续。在生产环境中应该避免这种情况。
手工归档操作如下:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG ALL;
数据库将会把在线日志进行归档处理
(3) Database log mode NO Archive Mode
Automatic archival Enabled
有些相对欠缺经验的管理员在进行设置时,只在数据库参数文件中设置了LOG_ARCHIVE_START=TRUE,然后在数据库起来后查看到ARCH归档进程已经起来了,可是尽管ORACLE已经作了几次日志切换,但还是没有归档日志,这时的设置就是这种情况,如果数据库不是处在ARVHIVELOG模式,redolog 还是不会被归档。
(4) Database log mode NO Archive Mode
Automatic archival Disabled
这种设置是刚安装的oracle数据库的缺省设置,开发环境也大部分如此。即没有进行归档。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/786540/viewspace-1005031/ ,如需转载,请注明出处,否则将追究法律责任。