一、查看数据库运行模式
可以用超级用户(INTERNAL)在SQLPLUS中使用命令ARCHIVE LOG LIST查看
SQL archive log list
Database log mode No Archive Mode
Automatic archivalDisabled
Archive destination /eXPort/home/Oracle/prodUCt/8.1.7/dbs/arch
Oldest online log sequence 28613
Current log sequence28615
或者用:
SQL SELECT NAME,LOG_MODE FROM V$DATABASE;
NAMELOG_MODE
--------------------
BIGSUNNOARCHIVELOG
如看到如上情况,则证实是非归档(NOARCHIVELOG)模式。
二、关闭数据库
通知相关人员后,发布如下命令关闭数据库:
SQL shutdown immediate
三、设置相应的初始化参数
参数文件一般存放在$ORACLE_HOME/dbs目录下,格式为:initSID.ora,其中SID为数据库名。可以使用VI命令进行编辑。
1、设置归档路径
a)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数
这两个参数指明了归档日志存放的两个路径,假如只设置第一个,则归档日志只存放到一个路径。
例:
log_archive_dest=/disk1/archive
log_archive_duplex_dest=/disk2/archive
b)LOG_ARCHIVE_DEST_n参数
其中n为1-5的整数,必需从低到高设置,下面举例说明:
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"
LOCATION要害字说明是本机的一个目录,而SERVICE要害字说明是已经在Net8中进行了配置的其他数据库主机的别名。
MANDATORY要害字说明联机日志文件必须要成功归档到这个目录后才能被覆写(联机日志文件是重复使用的文件)。缺省为可选(OPTIONAL),即即使归档不成功也可以覆写。在设置时应该至少有一个本地(LOCATION)强制(MANDATORY)归档目录。
REOPEN要害字说明假如归档不成功时系统要重新尝试归档,缺省每300秒尝试一次直到成功。可以通过=n来指定尝试的时间间隔,如log_archive_dest_2中的时间间隔为600秒,而log_archive_dest_1中的时间间隔为300秒。
a)和b)两种方式是排斥的,即只能设置其中的一种,a)和b)的不同之处在于:
a)最多只能设置2个归档路径,而b)最多可设置5个。
a)中只能指定本地目录,b)中可指定远程服务目录。
假如使用a)方式,则log_archive_dest是强制(MANDATORY)归档目录,而log_archive_duplex_dest为可选(OPTIONAL)目录。
a)中不能使用REOPEN要害字。
所以推荐使用b)方式。
2、设置归档日志文件名格式
例:
log_archive_format=arch%S.arc
其中%S为日志序列号,则生成的归档日志文件名为arch001.arc、arch002.arc等。
3、设置最小归档成功数
例:
log_archive_min_succeed_dest=2
此参数说明至少有2个归档路径归档成功后才能覆写联机日志文件,此参数和归档路径参数联用。
如归档路径参数设置为:
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 OPTIONAL"
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"
则log_archive_dest_1必须归档成功(MANDATORY),log_archive_dest_2、log_archive_dest_3中必须有一个归档成功(log_archive_min_succeed_dest=2)后才能覆写联机日志文件。同样,假如log_archive_dest_n中的MANDATORY要害字个数大于log_archive_min_succeed_dest,则log_archive_min_succeed_dest的设置不起作用。
4、控制归档路径是否可用
例:
log_archive_dest_state_1=DEFER
log_archive_dest_state_2=ENABLE
此参数和log_archive_dest_n参数配对使用,缺省值为ENABLE,假如想停止使用一个归档目录,只需将其对应的log_archive_dest_state_n参数值设置为DEFER。
5、实现自动归档(可选)
log_archive_start=true
log_archive_max_processes=2
在ORACLE中,自动归档的进程名为ARC0、ARC1等,log_archive_start参数说明是否采用自动归档,值为true表示采用,为false时必须采用命令来手工备份。log_archive_max_processes表示在log_archive_start为true时运行几个归档进程来完成归档工作,取值范围为1-10。
四、更改数据库运行模式
在SQLPLUS中执行命令:
SQL startup mount
SQL alter database archivelog;
SQL alter database open;
至此,模式转化工作已经大功告成。但需要注重的是,由于更改了数据库结构,如有数据库安全方面的需要,必须关闭数据库并完全备份。