我们大家都知道在Oracle数 据库的实际开发环境与相关测试环境中,Oracle数据库的实际日志模式与自动的Oracle归档模式,在一般的情况下是不设置的,主要目的是有利于系统 应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。
但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时 备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
虽然Oracle数据库的日志模式和自动归档设置并不复杂,但其中的一些概念和操作过程还是容易混淆的,现在根据本人的经验,分析介绍如下,所用环 境为UNIX(HPUX,SOLARIES,AIX,TRU64UNIX)和Oracle8.
一要使OARCLE数据库进行日志的自动归档
需要做两方面的事情,一是数据库日志模式的设置(database log mode,可为Archive Mode和No Archive Mode),另外就是自动Oracle归档模式设置(Automatic archival,可为Enabled和Disabled)。
二如何查看数据库的现行日志和自动归档模式的设置:
可用archive log list命令来查看。
例如:
运行在日志自动Oracle归档模式下的数据库系统查看结果如下(一般是生产环境)
- SVRMGR> archive log list
- Database log mode Archive Mode
- Automatic archival Enabled
- Archive destination/backup/archivelog
- Oldest online log sequence 2131
- Next log sequence to archive 2133
- Current log sequence 2133
没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境)
- SVRMGR> archive log list
- Database log mode No Archive Mode
- Automatic archival Disabled
- Archive destination/u01/app/Oracle/product/8.0.5/dbs/arch
- Oldest online log sequence 194
- Current log sequence 196
三数据库日志模式的设置
在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG模式。由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为 ARCHIVE MODE的。
如要确定一系统数据库的日志模式设置,除了(二)中的方法外也可以执行如下操作查看:
- SVRMGR> Select * from V$DATABASE
- NAME CREATEDLOG_MODE CHECKPOINT ARCHIVE_CH
- ---- ----------------- ------------ ---------- ----------
- ORCL 05/21/97 17:55:06 NOARCHIVELOG 172185 170808
将数据库的日志模式设置切换(Archive Mode 和No Archive Mode之间的切换)的步骤和操作如下:
1. 关闭运行的数据库实例
- SVRMGRL> shutdown
在进行日志模式切换之前,必须将运行的数据库正常关闭。
2. 备份数据库
该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。
3. 启动数据库实例到mount状态,但不要打开。
- SVRMGRL> startup mount
注意:如果是使用OPS的话,请只打开一个数据库实例进行Oracle归档模式切换操作。
4. 切换数据库日志模式。
- SVRMGRL> alter database archivelog;
(设置数据库为归档日志模式)
或
- SVRMGRL> alter database noarchivelog;
(设置数据库为归档日志模式)
5. 打开数据库
- SVRMGRL> alter database open;
上述的相关内容就是对Oracle归档模式的切换的描述,希望会给你带来一些帮助在此方面。