Oracle 归档与非归档的切换

来源:互联网 发布:云计算商业模式的变化 编辑:程序博客网 时间:2024/05/19 12:13

归档时,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

就可以了。