在Oracle中将归档与非归档切换的方法
归档时,Oralce会自动的将所产后的日志记录自动的归档,非归档模式,则将产生的日志覆盖,对于大多数的DB来说,要求是运行在归档状态下。
归档与非归档的切换,一般有两种方法,一种是在创建数据库进,选项到归档与非归档模式,另一种是,在DB运行过程中,进行切换。
对于第一种,创建时可以选择,不再说明。
对于第二种:需要说明的是,归档与非归档的切换,只能在DB的 Mount 状态下进行。所以要切换,首先要让DB到Mount 状态下。切换完成后,再将DB置于 Open 状态下。
过程如下:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 97589952 bytes
Fixed Size 453312 bytes
Variable Size 58720256 bytes
Database Buffers 37748736 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list
数据库日志模式 存档模式
自动存档 禁用
存档终点 D:/oracle/ora92/RDBMS
最早的概要日志序列 121
下一个存档日志序列 123
当前日志序列 123
SQL> alter database open;
数据库已更改。
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
那么,如何知道当前的DB是不是运行在归档模式下呢?
有以下的两种方法:
第一:静态视图法:
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
还有一种,是用Oracle提供的命令法:
SQL> archive log list
数据库日志模式 存档模式
自动存档 禁用
存档终点 D:/oracle/ora92/RDBMS
最早的概要日志序列 121
下一个存档日志序列 123
当前日志序列 123
对于上面的“自动存档 禁用”,意思是将当前归档是否自动进行,如果不是,就要手动归档了。
即:如果DB是“存档模式”,但自动存档是“禁用”时,此时Oracle允许归档,但是要手工归档,是“启用”时,DB会自动归档。
手工归档可以用下面的方法:
SQL> alter system switch logfile;
可以将当前的日志文件进行切换。
现在数据库处于归档模式,要从归档模式转变成非归档模式,操作如下:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 85006980 bytes
Fixed Size 453252 bytes
Variable Size 46137344 bytes
Database Buffers 37748736 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter database noarchivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 启用
存档终点 d:/oracle/ora92/RDBMS
最早的概要日志序列 31
当前日志序列 33
就可以了。
本文地址:http://www.45fan.com/a/question/69214.html