您的位置:首页 > 数据库 > Oracle

Oracle 归档与非归档的切换

2006-11-10 19:27 169 查看
归档时,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

就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: