以下内容在11G环境为基础的,10g版本会有一些差别,比如开启归档需要多设置参数log_archive_start=true,10g环境可以点击文章最后链接访问其他别的文章。


开启归档日志后应该做一个全库备份的,否则没有备份文件,开启归档日志是没有意义的。


查看归档模式状态:

SQL> archive log list;
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     47
当前日志序列           49


查看日志状态:

SQL> select group#,status,archived from v$log;

    GROUP#      STATUS                ARCHIVED
   ----------             -----------------       -------------------------------
     1                     CURRENT           NO
     2                     ACTIVE                NO
     3                     ACTIVE                NO


开启归档过程:

1.关库

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

2.启动到mount

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  780824576 bytes
Fixed Size      2217424 bytes
Variable Size    599788080 bytes
Database Buffers   176160768 bytes
Redo Buffers      2658304 bytes
数据库装载完毕。

3.开启归档
SQL> alter database archivelog;

数据库已更改。

4.数据库启动到open

SQL> alter database open;

数据库已更改。

5.验证:

SQL> archive log list;
数据库日志模式            存档模式
自动存档                       启用
存档终点                       USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1
下一个存档日志序列     3
当前日志序列                3



禁用归档的过程:

1.关库:

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

2.启动到mount

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  780824576 bytes
Fixed Size      2217424 bytes
Variable Size    599788080 bytes
Database Buffers   176160768 bytes
Redo Buffers      2658304 bytes
数据库装载完毕。

3.禁用归档:

SQL> alter database noarchivelog;

数据库已更改。

4.数据库启动到 open:

SQL> alter database open;

数据库已更改。

5.验证:

SQL> archive log list;
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     2
当前日志序列           4



修改归档目录:

1.修改参数:

SQL> alter system set log_archive_dest_1='location=/home/oracle/files' scope=spfile;

系统已更改。

  *如果需要多个归档位置可使用如下命令;

SQL> alter system set log_archive_dest_2='location=/home/oracle/files_2' scope=spfile;

系统已更改。

2.使修改的参数生效:

由于之前的修改只是对spfile做的,并未对内存生效,要使其生效需要重启数据库。


3.修改归档目录的大小:

SQL> alter system set db_recovery_file_dest_size=2G;

系统已更改。


查看归档文件在操作系统上的位置:

sql> select name from v$archived_log;      而后在操作系统中确认查询所列出的文件



其他:


查看日志记录模式:

SQL> select log_mode from v$database;

LOG_MODE
------------------------------------
NOARCHIVELOG


查询数据库是否在归档模式中:

SQL> select archiver from v$instance;

ARCHIVER
---------------------
STOPPED


sql> alter system set log_archive_format=''arch_%d_%t_%r_%s.log''  #设置归档日记命名格式

 show parameters log_archive_max_process;  #归档进程数  


alter system set log_archive_max_process=5;  #将归档进程数改为5  



select * from v$bgprocess;     #检察后台进程  



log_archive_start=true开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false




相关数据字典


V$ARCHIVED_LOG


V$ARCHIVE_DEST


V$LOG_HISTORY


V$DATABASE







扩展:


    1.oracle 如何关闭打开归档日志:   http://www.jb51.net/article/32296.htm


    2.Oracle关闭和开启归档日志:  http://www.2cto.com/database/201203/1


    3.开启和关闭归档模式:  http://tophandxing.blog.163.com/blog/static/1097148201241575052263/