Oracle 备份基础知识

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




 

你可能感兴趣的:(Oracle 备份基础知识)