1、首先查看当前数据库是否处于归档模式

1)select name, log_mode from v$database;

log_mode的值为 NOARCHIVELOG 表示数据库处于非归档模式

log_mode的值为 ARCHIVELOG 表示数据库处于归档模式

2)archive log list; (此方法需要 as sysdba)

Database log mode 的值为 No Archive Mode

Automatic archival 的值为 Disabled

表示当前数据库处于非归档模式


Database log mode 的值为 Archive Mode

Automatic archival 的值为 Enabled

表示数据库已开启归档模式

2、非归档模式的数据库更改为归档模式

1)关闭数据库:shutdown immediate;

2)启动数据库到mount状态:startup mount;

3)修改数据库为归档模式:alter database archivelog;

4)打开数据库:alter database open;

5)验证:archive log list;

6)选择性修改日志文件命名格式(操作完重启数据库生效):

alter system set log_archive_max_processes = 5;

alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

7)选择性更改日志文件路径:

alter system set log_archive_dest_1='location=/data/archivelog/orcl';

此时 Archive destination的值更改为 /data/archivelog/orcl

再添加一个日志位置可使用以下语句:

alter system set log_archive_dest_2='location=/bak/orcl/archive_log';

8)归档当前重做日志:

select name from v$archived_log;

alter system archive log current;

3、归档模式的数据库更改为非归档模式

1)关闭数据库:

alter system archive log current;

shutdown immediate;

2)启动数据库到mount状态:startup mount;

3)查看的数据库的归档信息:

archive log list;

或者

select name, log_mode from v$database;

4)更改归档模式为非归档模式:alter database noarchivelog;

5)查看的数据库的归档信息:

archive log list;

或者

select name, log_mode from v$database;

6)打开数据库:alter database open;

参考链接:

https://blog.csdn.net/weixin_36707770/article/details/53885423

http://blog.itpub.net/29674916/viewspace-2127979/