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_dest与log_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_2为db_recovery_file_dest目录即可。