首先查看数据库现有模式可使用以下语句
select name,log_mode from v$database;
也可以用下面的语句
archive log list;(该方法需要as sysdba)
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /export/home/oracle/product/8.1.7/dbs/arch
Oldest online log sequence 28613
Current log sequence 28615
SQL> SELECT NAME,LOG_MODE from V$DATABASE;
NAME LOG_MODE
-------- ------------
BIGSUN NOARCHIVELOG
对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:
1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';
该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测
例如再添加一个日志位置可使用以下语句
SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';
2.关闭数据库
SQL> shutdown immediate
3.启动数据mount状态:
SQL> startup mount;
4、修改数据库为归档模式:
SQL> alter database archivelog;
5、打开数据库,查询:
SQL> alter database open;
修改日志文件命名格式:
SQL> alter system set log_archive_max_processes = 5;
SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
修改完成后可以查看日志模式是否修改成功!
特别指出的是在Oracle 9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。
Oracle 9i启动归档
1,sqlplus "/ as sysdba" 在DOS命令行下运行进入SQL管理员操作控制台。
2,shutdown immediate; 关闭ORACLE数据库。
3,startup mount; 启动数据库到mount状态
4,alter database archivelog(noarchivelog); 启用(禁止)归档模式。
5,alter database open; 打开数据库。
6,archive log list; 查看是否开启了归档模式
7,archive log start(stop); 开启(停止)归档模式。
8, alter system switch logfile; --强制系统进行日志切换,可马上观察到归档日志�