了解oracle的归档模式,就需要了解oracle的工作方式,简单讲oracle是将数据处理任务(事务)都做的记录,所有事情都是在日志中记录的。
开启归档模式简单来说,就是设置oracle将操作数据库的日志整理归档成文件后保存到指定位置。
默认的非归档模式,就是将这些日志丢弃了。
oracle安装好后,默认是没有开启归档模式的。
归档日志有什么用呢?
归档日志就是oracle对数据事务处理的全记录,也就是oracle对数据操作的所有操作顺序与操作内容。
有了归档日志,就可以知道oracle具体在什么时间做了什么。
oracle可以根据归档日志,将数据库还原到任意时间点,前提是归档日志必须是全的,中间没有断档。
这在oracle数据库故障恢复起到非常重要的作用。
1. 查看数据库是否为归档模式
[oracle@testdb ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 10 21:42:13 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning option
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Current log sequence 3
SQL>
SQL> archive log list;
2. 修改数据库为归档模式。
必须在mount状态下修改。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 784998400 bytes
Fixed Size 2232472 bytes
Variable Size 473960296 bytes
Database Buffers 306184192 bytes
Redo Buffers 2621440 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
3. 查看归档日志保存的位置
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 3
Current log sequence 3
SQL>
4. 修改归档日志保存位置
从oracle10g 开始,归档日志可以同时保存在两个位置,以防不测。
SQL> alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log';
SQL> alter system set log_archive_dest_2='location=/data/oracle/log2/archive_log';
原文地址:http://blog.51cto.com/sf1314/2083580