Oacle归档模式是ORACLE热备份的必要条件,特别是7X24生产数据库,必须要工作在归档模式。网上有说归档文件可否放在裸设备上,理论上应该可以,但是每一次归档都产生一个归档文件,那么我们务必建很多裸设备。所以我们倾向于归档文件存于文件系统中。假定e:/arch为归档目录。
Sqlplus /nolog
Conn /as sysdba #sysdba用户登陆
查看归档模式:
SQL> archive log list
数据库日志模式       非存档模式
自动存档             禁用
存档终点             USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     14
当前日志序列           16
显示末归档。
关闭ORACLE
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
启动到MOUNT状态:
SQL> startup mount
ORACLE 例程已经启动。
 
Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             272632756 bytes
Database Buffers          322961408 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
更改归档模式:
SQL> ALTER DATABASE ARCHIVELOG;
数据库已更改。
查看归档模式:
SQL> archive log list
数据库日志模式       存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     14
下一个存档日志序列   16
当前日志序列           16
显示数据库已归档。
Oracle9i以前版本需要开启log_archive_start 参数
SQL> alter system set log_archive_start = true scope=spfile;
设定归档地址, log_archive_dest指定归档文件存放的路径,该路径只能是本地磁盘,默认为空。如果设置log_archive_dest,就不能设置log_archive_dest_n,也不能设置db_recovery_file_dest也就是说log_archive_destlog_archive_dest_n是两套不同的归档方法,只能用一个。
 
SQL> alter system set log_archive_dest=' e:\arch ';
alter system set log_archive_dest=' e:\arch '
*
1 行出现错误
:
ORA-02097:
无法修改参数, 因为指定的值无效

ORA-16018:
无法将 LOG_ARCHIVE_DEST LOG_ARCHIVE_DEST_n DB_RECOVERY_FILE_DEST 一起使用
SQL> alter system set db_recovery_file_dest='';
系统已更改。
SQL> alter system set log_archive_dest=' e:\arch ';
系统已更改。
打开数据库:
SQL> alter database open
/
测试归档:
SQL>alter system switch logfile.
系统已更改.
查看归档情况:
SQ>select * from v$archived_log
另外从OS(e:\arch)目录也可以看到有文件生成。
更改归档路径:
SQL> alter system set log_archive_dest=' ';
SQL> alter system set log_archive_dest_1=' e:\arch ' scope=spfile;
如果想db_recovery_file_dest目录产生归档,设定log_archive_dest_2db_recovery_file_dest目录即可。