Oracle 11g 冷備和熱備

經過手工管理數據庫備份的方式一般是在對數據庫進行文件方面的操做,這個過程須要管理員全面參與而且手工完成。與使用RMAN不一樣的是手工管理再也不徹底依賴系統定義的參數進行配置。sql


手工冷備步驟數據庫

在徹底關閉數據庫的狀況下,咱們能夠經過拷貝數據庫的數據文件,控制文件和重作日誌文件來完整的備份數據庫。安全

登陸數據庫:bash

# sqlplus sys as sysdba


首先查看文件位置:oracle

SQL> select file_name from dba_data_files;
SQL> select name from v$controlfile;
SQL> select group#,member,status from v$logfile;

安全關閉數據庫:app

SQL> shutdown immediate;

而後依次建立datafile,controlfile, redofile三個備份目錄,將對應文件一次拷貝到這三個目錄便可。ide

對數據庫恢復也只須要將備份的數據拷貝到原來的位置,而後啓動數據庫便可。spa


手工熱備步驟日誌

在使用聯機熱備功能的時候須要將數據置於歸檔模式.進程

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     27
Next log sequence to archive   29
Current log sequence	       29
SQL>

顯示處於開啓狀態。查看進程狀態正常:

[root@temp-test ~]# ps -ef|grep arc
oracle    8724     1  0 Nov06 ?        00:00:02 ora_arc0_orcl
oracle    8726     1  0 Nov06 ?        00:00:04 ora_arc1_orcl
oracle    8728     1  0 Nov06 ?        00:00:02 ora_arc2_orcl
oracle    8730     1  0 Nov06 ?        00:00:02 ora_arc3_orcl

設置歸檔日誌文件的冗餘,保證數據安全:

查看歸檔日誌相關參數:

SQL> show parameter log_archive_dest;

新建三個目錄,分別存放三分相同的歸檔日誌做爲冗餘備份:

[oracle@temp-test ~]$ mkdir -p /data/app/backup/arc{1..3} 
[oracle@temp-test ~]$ ll /data/app/backup/
total 0
drwxr-xr-x 2 oracle oinstall 6 Nov  7 13:44 arc1
drwxr-xr-x 2 oracle oinstall 6 Nov  7 13:44 arc2
drwxr-xr-x 2 oracle oinstall 6 Nov  7 13:44 arc3

設置3個歸檔目錄:

SQL> alter system set log_archive_dest_1='location=/data/app/backup/arc1 mandatory';
System altered.
SQL> alter system set log_archive_dest_2='location=/data/app/backup/arc2 optional';
System altered.
SQL> alter system set log_archive_dest_3='location=/data/app/backup/arc3';
System altered.

查看設置信息:

SQL> show parameter log_archive;

mandatory表示強制日誌歸檔的目錄,要求日誌數據必須歸檔成功後才能夠切換,optional是可選的歸檔不成功也能夠切換日誌,若是optional目錄損壞,不影響日誌歸檔。

執行日誌切換,歸檔文件會保存到指定的目錄中:

SQL> alter system switch logfile;
System altered.

生成三份相同的歸檔文件:

[oracle@temp-test backup]$ tree /data/app/backup/
/data/app/backup/
├── arc1
│   └── 1_29_959021937.dbf
├── arc2
│   └── 1_29_959021937.dbf
└── arc3
    └── 1_29_959021937.dbf

設置最少必須歸檔成功的日誌數量,必須成功兩份:

SQL> alter system set log_archive_min_succeed_dest=2;
System altered.
SQL> show parameter log_archive_min_succeed_Dest;
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_min_succeed_dest     integer 2

因爲總共只有三個冗餘文件,若是設置的數量大於3會報錯。

備份數據,查看錶空間對應的數據文件:

SQL> col file_name for a47
SQL> col tablespace_name for a10
SQL> select file_id,file_name,tablespace_name from dba_data_files;
   FILE_ID FILE_NAME   TABLESPACE
---------- ----------------------------------------------- ----------
 4 /data/app/oracle/oradata/orcl/users01.dbf   USERS
 3 /data/app/oracle/oradata/orcl/undotbs01.dbf   UNDOTBS1
 2 /data/app/oracle/oradata/orcl/sysaux01.dbf   SYSAUX
 1 /data/app/oracle/oradata/orcl/system01.dbf   SYSTEM
 5 /data/app/oracle/oradata/orcl/example01.dbf   EXAMPLE

這裏咱們備份USER表,ID爲4,將表置於備份模式:

SQL> alter tablespace users begin backup;
Tablespace altered.

查看備份狀態,ID爲4的user表顯示爲active:

SQL> select * from v$backup;
     FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
 1 NOT ACTIVE       0
 2 NOT ACTIVE       0
 3 NOT ACTIVE       0
 4 ACTIVE 1529624 07-NOV-17
 5 NOT ACTIVE       0

而後直接使用系統的cp命令,拷貝對應目錄下的數據文件,到備份目錄便可。而後結束備份模式:

SQL> alter tablespace users end backup;
Tablespace altered.
SQL> select * from v$backup;
     FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
 1 NOT ACTIVE       0
 2 NOT ACTIVE       0
 3 NOT ACTIVE       0
 4 NOT ACTIVE 1529624 07-NOV-17
 5 NOT ACTIVE       0

將當前重作日誌信息寫入歸檔日誌文件:

SQL> alter system archive log current;
System altered.
# 一段時間後,檢查點恢復一致
SQL> select checkpoint_change#, file# from v$datafile;
CHECKPOINT_CHANGE#FILE#
------------------ ----------
   1530603    1
   1530603    2
   1530603    3
   1530603    4
   1530603    5
相關文章
相關標籤/搜索