如何查看、启动或关闭oracle数据库的归档模式

Oracle数据库可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog)
  归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来麻烦。
  本文简单介绍如何启用和关闭数据库的归档模式。
  1.shutdown normal或shutdown immediate关闭数据库
  [oracle@oracle oracle]$ sqlplus “/ as sysdba”
  SQL*Plus: Release 9.2.0.4.0 – Production on Sat Oct 15 15:48:36 2005
  Copyright (c) 1982, 2002, Oracle Corporation.? All rights reserved.
  Connected to:
  Oracle9i Enterprise Edition Release 9.2.0.4.0 – Production
  With the Partitioning option
  JServer Release 9.2.0.4.0 – Production
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  2.启动数据库到mount状态
  SQL> startup mount;
  ORACLE instance started.
  Total System Global Area? 101782828 bytes
  Fixed Size?????????????????? 451884 bytes
  Variable Size????????????? 37748736 bytes
  Database Buffers?????????? 62914560 bytes
  Redo Buffers???????????????? 667648 bytes
  Database mounted.
不过今天在本机数据库上更改Oracle数据库中的非归档模式改为归档模式的时候,发现Windows下用命令行关闭Oracle数据库后,按照上述方法启动,却老是提示错误,上网也没有找到解决方法;最后发现用shutdown关闭数据库后,不能马上使用startup打开数据库,应该先连接到一个空的例程,然后再启动数据库,下面是尝试的过程,希望可以帮到大家,只在Windows下碰到该问题,Linux和Unix下不是很清楚,有待验证。
??? SQL> conn sys/sys@test as sysdba
  已连接。
////这里也可以直接用SQL> conn / as sysdba来连接
??? SQL> shutdown normal
  数据库已经关闭。
  已经卸载数据库。
  ORACLE 例程已经关闭。
??? SQL> startup mount
  ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
??? SQL> startup mount
  ORA-24324: 未初始化服务句柄
  ORA-01041: 内部错误, hostdef 扩展名不存在
??? SQL>
  ////这里一定要再连接一次,否则会无法启动数据库!网上说什么更改监听文件或者sqlnet文件都是无济于事的!!!
??? SQL> conn sys/sys@test as sysdba
  已连接到空闲例程。
??? SQL> startup
  ORACLE 例程已经启动。
  3.启用或停止归档模式
  如果要启用归档模式,此处使用
  alter database archivelog 命令。
  SQL> alter database archivelog;
  Database altered.
  SQL> alter database open;
  Database altered.
  SQL> archive log list;
  Database log mode????????????? Archive Mode
  Automatic archival???????????? Enabled
  Archive destination??????????? /opt/oracle/oradata/conner/archive
  Oldest online log sequence???? 148
  Next log sequence to archive?? 151
  Current log sequence?????????? 151
  如果需要停止归档模式,此处使用:
  alter database noarchivelog 命令。
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  SQL> startup mount;
  ORACLE instance started.
  Total System Global Area? 101782828 bytes
  Fixed Size?????????????????? 451884 bytes
  Variable Size????????????? 37748736 bytes
  Database Buffers?????????? 62914560 bytes
  Redo Buffers???????????????? 667648 bytes
  Database mounted.
  SQL> alter database noarchivelog;
  Database altered.
  SQL> alter database open;
  Database altered.
  SQL> archive log list;
  Database log mode????????????? No Archive Mode
  Automatic archival???????????? Enabled
  Archive destination??????????? /opt/oracle/oradata/conner/archive
  Oldest online log sequence???? 149
  Current log sequence?????????? 152
  4.修改相应的初始化参数
  Oracle10g之前,还需要修改初始化参数使数据库处于自动归档模式。
  在pfile/spfile中设置如下参数:
  log_archive_start = true
  重启数据库此参数生效,此时数据库处于自动归档模式。
  也可以在数据库启动过程中,手工执行:
  archive log start
  使数据库启用自动归档,但是重启后数据库仍然处于手工归档模式。
?查看oracle数据库当前运行的归档方式,可以用SQL> archive log list;来查询,查看Database log mode 的状态,需要在sys用户权限下。



无觅相关文章插件,快速提升流量

“如何查看、启动或关闭oracle数据库的归档模式”有1条评论

commenter

2012-01-18增加在Windows下启动数据库时报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务;ORA-24324: 未初始化服务句柄;ORA-01041: 内部错误, hostdef 扩展名不存在这三个错误的解决办法。