Oracle 备份基础知识

Oracle备份主要保护以下三类文件:
  1. datafile
  2. controlfile
  3. 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)

归档模式:

在联机日志切换的时候,就会产生相应的归档日志文件

归档日志文件路径:

  • flash recover area (备份恢复文件,便于管理)
    -- 查询归档日志存放路径
    SQL> show parameter DB_RECOVERY_FILE_DEST;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string      d:\oracle\product\10.2.0/flash_recovery_area
    db_recovery_file_dest_size           big 
    integer 2G

使用闪回恢复区

--  设置参数 闪回恢复区 大小
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.
  • 手动归档 和 切换日志 其实在10g之后,就没有什么区别,差不多
  • 但是在10g之前,两者之间,还有有差别的:10g之前,需要设置手动自动归档(
    log_archive_start),否则切换之后,归档进程有可能没有立即执行归档操作,导致Oracle暂时挂起

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;

存储在闪回恢复区和没有存储在闪回恢复区,两者之间的命名也是有一定区别的!

  • O1_MF_1_114_862BTW8C_.ARC
  • ARC00109_0781547223.001

如果没有存储在闪回恢复区,可以使用以下参数,设置归档日志的命名格式:

log_archive_format                   string      ARC%S_%R.%T




 

posted on 2012-10-11 14:42 盐城小土包 阅读(179) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿

随笔档案(14)

文章分类(18)

文章档案(18)

搜索

最新评论

阅读排行榜

评论排行榜