Oracle备份主要保护以下三类文件:- datafile
- controlfile
- redo
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------
1 1 109 52428800 1 NO CURRENT 2644768 23-SEP-12
2 1 107 52428800 1 NO INACTIVE 2585151 22-SEP-12
3 1 108 52428800 1 NO INACTIVE 2616854 23-SEP-12
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE
------ ------- ------- -------------------------------------------------- -------------------------
1 ONLINE E:\ORACLE\WPENG\WPENG\REDO01.LOG NO
2 ONLINE E:\ORACLE\WPENG\WPENG\REDO02.LOG NO
3 ONLINE E:\ORACLE\WPENG\WPENG\REDO03.LOG NO
归档/非归档模式
归档OR非归档的信息存储在控制文件中。
数据库默认情况是出于非归档模式。
非归档模式:
- 完全脱机备份(冷备份 - shutdown + Copy)
归档模式:
在联机日志切换的时候,就会产生相应的归档日志文件
归档日志文件路径:
使用闪回恢复区
-- 设置参数 闪回恢复区 大小
SQL> alter system set db_recovery_file_dest_size = 2048m ;
System altered.
-- 设置参数 闪回恢复区 路径
SQL> alter system set db_recovery_file_dest='E:\app\WPeng\product\11.1.0\flash_recover_area\';
System altered.
-- 默认使用log_archive_dest_10
SQL> alter system set log_archive_dest_10='location=use_db_recovery_file_dest';
System altered.
-- 查看修改之后的结果:
SQL> show parameter db_rec
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string E:\app\WPeng\product\11.1.0\fl
ash_recover_area\
db_recovery_file_dest_size big integer 2G
db_recycle_cache_size big integer 0
SQL> show parameter log_arc
切换归档日志模式:
--查询是否处于归档模式
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination E:\app\WPeng\product\11.1.0\db_1\RDBMS
Oldest online log sequence 107
Current log sequence 109
--或者SQL查询
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
-- 需要shutdown修改database的状态
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
-- 将数据库启动到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area 1319546880 bytes
Fixed Size 2114656 bytes
Variable Size 503319456 bytes
Database Buffers 805306368 bytes
Redo Buffers 8806400 bytes
Database mounted.
-- 修改数据的归档模式
SQL> alter database archivelog;
Database altered.
-- 查询 修改之后的归档模式
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination E:\app\WPeng\product\11.1.0\db_1\RDBMS
Oldest online log sequence 107
Next log sequence to archive 109
Current log sequence 109
-- 最后Open Database
SQL> alter database open;
Database altered.
产生归档日志文件:
-- 对currnt online redo log file 进行归档
SQL> alter system archive log current;
System altered.
手动归档之前,系统首先进行的是一个联机日志的切换。
-- 切换联机日志
SQL> alter system switch logfile;
System altered.
9I之前
系统只能使用以下两个参数,设置归档路径:
log_archive_dest
log_archive_duplex_dest
9I之后
系统做了改进,废弃以前的两个参数,使用了10个系统参数,设置归档日志路径。
log_archive_dest_1
-- 作为闪回恢复路径使用
log_archive_dest_10
log_archive_dest_2
log_archive_dest_3
log_archive_dest_4
log_archive_dest_5
log_archive_dest_6
log_archive_dest_7
log_archive_dest_8
log_archive_dest_9
在使用闪回恢复区的时候,Oracle可以有效地将,恢复or日志相关的文件,都整理到该闪回恢复区,使得目录结构较为整洁;
而在没有使用闪回恢复区之前,归档日志文件存储路径可能较为分散,但是使用以下SQL查询:
select * from v$archived_log;
存储在闪回恢复区和没有存储在闪回恢复区,两者之间的命名也是有一定区别的!
如果没有存储在闪回恢复区,可以使用以下参数,设置归档日志的命名格式:
log_archive_format string ARC%S_%R.%T