一、查看oracle是否为归档模式
1.SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 /home/oracle/oracle11g/dbs/arch
最早的联机日志序列 6
当前日志序列 8
2.SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
其中NOARCHIVELOG为非归档模式,ARCHIVELOG为归档模式
二、设置oracle为归档模式/或是非归档模式(必须是归档模式下才能修改为非归档模式)
1.设置oracle为归档模式
SQL> shutdown immediate ---安全模式关闭数据库
SQL> startup mount ---启动数据库到mount(启动实例并加载数据库,但是不打开数据库)
SQL> alter database archivelog ---修改数据库为归档模式
SQL> alter database open --打开数据库
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 /home/oracle/oracle11g/dbs/arch
最早的联机日志序列 6
下一个存档日志序列 8
当前日志序列 8
查看数据库已为归档模式
2.设置成非归档模式
SQL>SHUTDOWN NORMAL/IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE NOARCHIVELOG;
SQL>ALTER DATABASE OPEN;
下面的操作为非必要的:
三、修改归档路径
oracle当前的存档位置为:
SQL> archive log list
存档终点 /home/oracle/oracle11g/dbs/arch
修改:
SQL> alter system set log_archive_dest='/oradata/arch/';
系统已更改。
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 /oradata/arch/
最早的联机日志序列 6
下一个存档日志序列 8
当前日志序列 8
四、修改归档进程数
查看当前归档最大进程数
SQL> show parameter log_archive_max_process
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes integer 4
ps -ef|greo ora_
oracle 3605 1 0 21:51 ? 00:00:00 ora_arc0_zhxan
oracle 3607 1 0 21:51 ? 00:00:00 ora_arc1_zhxan
oracle 3609 1 0 21:51 ? 00:00:00 ora_arc2_zhxan
oracle 3611 1 0 21:51 ? 00:00:00 ora_arc3_zhxan
更改归档进程数:
SQL> alter system set log_archive_max_processes=1;
系统已更改。
再查看发现归档进程已为1个
oracle 3605 1 0 21:51 ? 00:00:00 ora_arc0_zhxan
五、验证归档(生产环境慎重)
SQL> alter system switch logfile;
系统已更改。
查看归档路径下是否生成归档日志
[oracle@ZHXAN oradata]$ ls arch/
1_8_813389244.dbf
已经生成
六、和归档日志相关的一些动态试图
V$ARCHIVED_LOG
V$ARCHIVE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES