服务器 频道

Oracle中实现从非归档模式到归档模式的转化

  【IT168 服务器学院】一、查看数据库运行模式

  可以用超级用户(INTERNAL)在SQLPLUS中使用命令ARCHIVE LOG LIST查看

  SQL> archive log list

  Database log mode No Archive Mode

  Automatic archivalDisabled

  Archive destination /export/home/oracle/product/8.1.7/dbs/arch

  Oldest online log sequence  28613

  Current log sequence28615

  或者用:

  SQL> SELECT NAME,LOG_MODE FROM V$DATABASE;

NAMELOG_MODE

  --------------------

  BIGSUNNOARCHIVELOG

  如看到如上情况,则证明是非归档(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;

  至此,模式转化工作已经大功告成。但需要注意的是,由于更改了数据库结构,如有数据库安全方面的需要,必须关闭数据库并完全备份。

  

0
相关文章