1.改变非归档模式到归档模式:
1)SQL> conn / as sysdba (以DBA身份连接数据库) 2)SQL> shutdown immediate;(立即关闭数据库) 3)SQL> startup mount (启动实例并加载数据库,但不打开) 4)SQL> alter database archivelog; (更改数据库为归档模式) 5)SQL> alter database open; (打开数据库) 6)SQL> alter system archive log start; (启用自动归档) 7)SQL> exit (退出)使用RMAN做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用。
SQL> archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 8当前日志序列 10SQL> select name,log_mode from v$database;NAME LOG_MODE--------- ------------ORCL NOARCHIVELOGSQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 855982080 bytesFixed Size 2180544 bytesVariable Size 553650752 bytesDatabase Buffers 293601280 bytesRedo Buffers 6549504 bytes数据库装载完毕。SQL> alter database archivelog;数据库已更改。SQL> alter database open;数据库已更改。SQL> alter system archive log start;系统已更改。SQL> archive log lit;SP2-0718: 非法的 ARCHIVE LOG 选项SQL> archive log list;数据库日志模式 存档模式自动存档 启用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 8下一个存档日志序列 10当前日志序列 10SQL>
2.改变归档模式到非归档模式:
1)SQL>shutdown normal 或shutdown immediate; 2)SQL>startup mount; 3)SQL>alter database noarchivelog; 4)SQL>alter database open;SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 855982080 bytesFixed Size 2180544 bytesVariable Size 553650752 bytesDatabase Buffers 293601280 bytesRedo Buffers 6549504 bytes数据库装载完毕。SQL> alter database noarchivelog;数据库已更改。SQL> alter database open;数据库已更改。SQL> archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 8当前日志序列 10SQL> select name,log_mode from v$database;NAME LOG_MODE--------- ------------ORCL NOARCHIVELOGSQL>
3.归档相关命令
select name,log_mode from v$database;查看归档状态archive log list;查看归档状态archive log stop; archive log start; archive log list; show parameters; show parameters log_archive_start; show parameters log_archive_max_process; #归档进程数 alter system set log_archive_max_process=5; #将归档进程数改为5 select * from v$bgprocess; #检察后台进程执行手动归档:
(1)对所有没有归档的重做日志进行归档:
通过ALTER SYSTEM ARCHIVE LOG ALL;
(2)当前的重做日志文件进行归档:
ALTER SYSTEM ARCHIVE CURRENT
(3)指定日志序列号的重做日志文件进行归档
ALTER SYSTEM ARCHIVE LOG SEQUCNE 56;
(4)指定日志组编号的重做日志文件进行归档
ALTER SYSTEM ARCHIVE LOG GROUP 2
(5)指定联机的重做日志文件进行归档
ALTER SYSTEM ARCHIVE LOG
LOGFILE 'D:\oracle\oradata\work\REDO01.LOG '
(6) 将下一个没有归档的重做日志文件组进行归档:
ALTER SYSTEM ARCHIVE LOG NEXT
4.指定归档日志文件路径:动态修改归档路径:
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';也可以把联机重做日志归档到远程机器上,如:log_archive_dest_3='SERVICE=standby1';
或是修改初始何参数文件pfile,加入log_archive_dest_1='location=/oracle/oracle10g/……'
5、归档默认格式
SQL> show parameter log_archive_format; NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_format string %t_%s_%r.dbf
%t表示Thread Number %表示指定日志序列号 %r表示重置日志的ID resetlogs ID.
6、查看数据库中的归档进程
SQL> select * from v$bgprocess where paddr<>'00' and name like '%ARC%'; PADDR PSERIAL# NAME DESCRIPTION ERROR---------------- ---------- ----- ---------------------------------------------------------------- ----------00000000DC1F6190 1 ARC0 Archival Process 0 000000000DF1CD448 1 ARC1 Archival Process 1 000000000DC1F6978 1 ARC2 Archival Process 2 448