oracle的熱備份和冷備份


一、冷備份介紹:
   冷備份數據庫是將數據庫關閉之后備份所有的關鍵性文件包括數據文件、控制文件、聯機REDO LOG文件,將其拷貝到另外的位置。此外冷備份也可以包含對參數文件和口令文件的備份,但是這兩種備份是可以根據需要進行選擇的。,冷備份實際也是一種物理備份,是一個備份數據庫物理文件的過程。因為冷備份要備份除了重做日志以外的所有數據庫文件,因此也被成為完全的數據庫備份。它的優缺點如下所示:
1、優點:
        <1>只需拷貝文件即可,是非常快速的備份方法。
        <2>只需將文件再拷貝回去,就可以恢復到某一時間點上。
        <3>與數據庫歸檔的模式相結合可以使數據庫很好地恢復。
        <4>維護量較少,但安全性確相對較高。
2、缺點:
        <1>在進行數據庫冷備份的過程中數據庫必須處於關閉狀態。
   <2>單獨使用冷備份時,數據庫只能完成基於某一時間點上的恢復。
        <3>若磁盤空間有限,冷備份只能將備份數據拷貝到磁帶等其他外部存儲上,速度會更慢。
        <4>冷備份不能按表或按用戶恢復。
3、具體備份步驟如下:
        <1>以DBA用戶或特權用戶登錄,查詢動態性能視圖v$datafile、v$controlfile可以分別列出數據庫的數據文件以及控制文件。
SQL&gt; select name from v$datafile;
NAME 
-------------------------------------------------------------------------------- 
/u02/oradata/db01/system01.dbf 
/u02/oradata/db01/undotbs01.dbf 
/u02/oradata/db01/sysaux01.dbf 
/u02/oradata/db01/users01.dbf
SQL&gt; select name from v$controlfile;
NAME 
-------------------------------------------------------------------------------- 
/u02/oradata/db01/control01.ctl 
/u02/oradata/db01/control02.ctl 
/u02/oradata/db01/control03.ctl 
/u01/app/oracle/bak/control04.ctl
<2>以DBA用戶或特權用戶關閉數據庫。
SQL&gt; conn /  as sysdba; 
Connected. 
SQL&gt; shutdown normal 
Database closed. 
Database dismounted. 
ORACLE instance shut down.
<3>復制數據文件,復制時應該將文件復制到單獨的一個硬盤或者磁盤上。控制文件是相互鏡像的,因此只需復制一個控制文件即可。
cp /u02/oradata/db01/*.dbf  /u01/app/oracle/bak
cp /u02/oradata/db01/*.ctl  /u01/app/oracle/bak
<4>啟動例程打開數據庫。
SQL&gt; conn / as sysdba; 
Connected to an idle instance. 
SQL&gt; startup 
ORACLE instance started.
Total System Global Area  285212672 bytes 
Fixed Size                  1218992 bytes 
Variable Size              83887696 bytes 
Database Buffers          197132288 bytes 
Redo Buffers                2973696 bytes 
Database mounted. 
Database opened. 
SQL&gt;
二、熱備份:
   熱備份是在數據庫運行的情況下,采用archive log mode方式備份數據庫的方法。熱備份要求數據庫處於archive log模式下操作,並需要大量的檔案空間。一旦數據庫處於archive loh
模式,就可以進行備份了,當執行備份時,只能在數據文件級或表空間進行。
1、優點:
          <1>可在表空間或數據文件級備份,備份時間短。
<2>可達到秒級恢復(恢復到某一時間點上)。
          <3>可對幾乎所有數據庫實體作恢復。
          <4>恢復是快速的,在大多數情況下在數據庫仍工作時恢復。
<5>備份時數據庫仍可用。
2、缺點:
         <1>因難以維護,所以要特別仔細小心,不允許“以失敗而告終”。
         <2>若熱備份不成功,所得結果不可用於時間點的恢復。
         <3>不能出錯,否則后果嚴重。
3、設置初始歸檔模式:
設置歸檔模式數據庫必須處在mount而非open狀態下:
         <1>首先查看數據庫是否處在archive log模式下:
         SQL&gt; 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            2
         <2>在mount狀態下啟動數據庫:
         SQL&gt; startup mount; 
         ORACLE instance started.
         Total System Global Area  285212672 bytes 
         Fixed Size                  1218992 bytes 
         Variable Size              83887696 bytes 
         Database Buffers          197132288 bytes 
         Redo Buffers                2973696 bytes 
         Database mounted.
         <3>設置數據庫為歸檔模式:
        SQL&gt; alter database archivelog;
        Database altered.
        <4>打開數據庫:
SQL&gt; alter database open;
Database altered.
<5>將數據庫設置成自動歸檔,使用以下命令:
SQL&gt; alter system set log_archive_start=true scope=spfile;
System altered.
<6>確定數據庫處於歸檔模式下,並且設置自動存檔:
SQL&gt; 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   2 
Current log sequence           2
上面的Archive destination所定義的具體位置,可以查看$ORACLE_HOME/dbs/spfile<dbname>.ora文件中的db_recovery_file_dest參數的值。
 
4、聯機備份:
      聯機備份是熱備份的一種備份方法,是指當表空間處於ONLINE狀態時,備份表空間的所有數據文件和單個數據文件的過程。使用聯機備份的優點是不影響用戶在表空間上的所有訪問操作,但聯機備份的缺點可能生產更多的重做日志文件和歸檔日志文件。以下是聯機備份的具體步驟:
       <1>以DBA用戶或特權用戶登錄,確定表空間所包含的數據文件。通過查詢數據字典DBA_DATA_FILES,可以得到數據文件和表空間的對應關系:
SQL&gt; select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME 
-------------------------------------------------------------------------------- 
/u02/oradata/db01/users01.dbf
<2>設置表空間為備份模式,在復制表空間的數據文件之前必須將表空間設置成為備份模式:
SQL&gt; alter tablespace users begin backup;
Tablespace altered.
<3>復制users數據文件到備份目錄:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>復制后表空間就不需要設置成為備份模式了,因此可以將其返回正常模式:
SQL&gt;  alter tablespace users end backup;
Tablespace altered.
5、脫機備份:
      脫機備份也是熱備份的一種方法,是指當表空間處於offline時,備份表空間的所有數據文件以及單個數據文件的過程。它的優點是會生產較少的重做日志文件,缺點是當用戶正在進行脫機備份時所備份的表空間將不能訪問,由於SYSTEM系統表空間和正在使用的UNDO表空間不能被脫機,因此脫機備份不適用於SYSTEM表空間和正在使用的UNDO表空間。
        <1>使用DBA用戶或特權用戶登錄,確定表空間所包含的數據文件。這個和聯機備份的第一步相同:
SQL&gt; select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME 
-------------------------------------------------------------------------------- 
/u02/oradata/db01/users01.dbf
<2>設置表空間為脫機狀態,將表空間設置為脫機狀態后用戶將不能訪問該表空間上的任何對象,因此也可以確保OFFLINE的表空間的數據文件不會發生改變。
SQL&gt; alter tablespace users offline;
Tablespace altered.
SQL&gt; select tablespace_name,online_status from dba_data_files;
TABLESPACE_NAME                ONLINE_ 
------------------------------ ------- 
USERS                          OFFLINE 
SYSAUX                         ONLINE 
UNDOTBS1                       ONLINE 
SYSTEM                         SYSTEM
<3>復制users數據文件到備份目錄:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>復制完后將表空間置於online狀態:
SQL&gt; alter  tablespace users online;
Tablespace altered.
SQL&gt; select tablespace_name,online_status from dba_data_files;
TABLESPACE_NAME                ONLINE_ 
------------------------------ ------- 
USERS                          ONLINE 
SYSAUX                         ONLINE 
UNDOTBS1                       ONLINE 
SYSTEM                         SYSTEM
來源:http://candon123.blog.51cto.com/704299/249801/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM