天天看點

oracle的熱備份和冷備份

轉自:http://candon123.blog.51cto.com/704299/249801/

一、冷備份介紹:    冷備份資料庫是将資料庫關閉之後備份所有的關鍵性檔案包括資料檔案、控制檔案、聯機REDO LOG檔案,将其拷貝到另外的位置。此外冷備份也可以包含對參數檔案和密碼檔案的備份,但是這兩種備份是可以根據需要進行選擇的。,冷備份實際也是一種實體備份,是一個備份資料庫實體檔案的過程。因為冷備份要備份除了重做日志以外的所有資料庫檔案,是以也被成為完全的資料庫備份。它的優缺點如下所示: 1、優點:         <1>隻需拷貝檔案即可,是非常快速的備份方法。         <2>隻需将檔案再拷貝回去,就可以恢複到某一時間點上。         <3>與資料庫歸檔的模式相結合可以使資料庫很好地恢複。         <4>維護量較少,但安全性确相對較高。 2、缺點:         <1>在進行資料庫冷備份的過程中資料庫必須處于關閉狀态。    <2>單獨使用冷備份時,資料庫隻能完成基于某一時間點上的恢複。         <3>若磁盤空間有限,冷備份隻能将備份資料拷貝到錄音帶等其他外部存儲上,速度會更慢。         <4>冷備份不能按表或按使用者恢複。 3、具體備份步驟如下:         <1>以DBA使用者或特權使用者登入,查詢動态性能視圖v$datafile、v$controlfile可以分别列出資料庫的資料檔案以及控制檔案。

SQL> 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> 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> conn /  as sysdba; 

Connected. 

SQL> 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> conn / as sysdba; 

Connected to an idle instance. 

SQL> 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>

二、熱備份:    熱備份是在資料庫運作的情況下,采用archive log mode方式備份資料庫的方法。熱備份要求資料庫處于archive log模式下操作,并需要大量的檔案空間。一旦資料庫處于archive loh 模式,就可以進行備份了,當執行備份時,隻能在資料檔案級或表空間進行。 1、優點:           <1>可在表空間或資料檔案級備份,備份時間短。 <2>可達到秒級恢複(恢複到某一時間點上)。           <3>可對幾乎所有資料庫實體作恢複。           <4>恢複是快速的,在大多數情況下在資料庫仍工作時恢複。 <5>備份時資料庫仍可用。 2、缺點:          <1>因難以維護,是以要特别仔細小心,不允許“以失敗而告終”。          <2>若熱備份不成功,所得結果不可用于時間點的恢複。          <3>不能出錯,否則後果嚴重。 3、設定初始歸檔模式: 設定歸檔模式資料庫必須處在mount而非open狀态下:          <1>首先檢視資料庫是否處在archive log模式下:          SQL> 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> 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> alter database archivelog;         Database altered.         <4>打開資料庫:

SQL> alter database open; Database altered. <5>将資料庫設定成自動歸檔,使用以下指令: SQL> alter system set log_archive_start=true scope=spfile; System altered. <6>确定資料庫處于歸檔模式下,并且設定自動存檔: SQL> 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.ora檔案中的db_recovery_file_dest參數的值。  

4、聯機備份:       聯機備份是熱備份的一種備份方法,是指當表空間處于ONLINE狀态時,備份表空間的所有資料檔案和單個資料檔案的過程。使用聯機備份的優點是不影響使用者在表空間上的所有通路操作,但聯機備份的缺點可能生産更多的重做日志檔案和歸檔日志檔案。以下是聯機備份的具體步驟:        <1>以DBA使用者或特權使用者登入,确定表空間所包含的資料檔案。通過查詢資料字典DBA_DATA_FILES,可以得到資料檔案和表空間的對應關系:

SQL> select file_name from dba_data_files where tablespace_name='USERS'; FILE_NAME 

/u02/oradata/db01/users01.dbf <2>設定表空間為備份模式,在複制表空間的資料檔案之前必須将表空間設定成為備份模式: SQL> alter tablespace users begin backup; Tablespace altered. <3>複制users資料檔案到備份目錄: [oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak <4>複制後表空間就不需要設定成為備份模式了,是以可以将其傳回正常模式: SQL>  alter tablespace users end backup; Tablespace altered.

5、脫機備份:       脫機備份也是熱備份的一種方法,是指當表空間處于offline時,備份表空間的所有資料檔案以及單個資料檔案的過程。它的優點是會生産較少的重做日志檔案,缺點是當使用者正在進行脫機備份時所備份的表空間将不能通路,由于SYSTEM系統表空間和正在使用的UNDO表空間不能被脫機,是以脫機備份不适用于SYSTEM表空間和正在使用的UNDO表空間。         <1>使用DBA使用者或特權使用者登入,确定表空間所包含的資料檔案。這個和聯機備份的第一步相同:

/u02/oradata/db01/users01.dbf <2>設定表空間為脫機狀态,将表空間設定為脫機狀态後使用者将不能通路該表空間上的任何對象,是以也可以確定OFFLINE的表空間的資料檔案不會發生改變。 SQL> alter tablespace users offline; Tablespace altered. SQL> 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> alter  tablespace users online; Tablespace altered. SQL> select tablespace_name,online_status from dba_data_files; TABLESPACE_NAME                ONLINE_ 

USERS                          ONLINE 

SYSTEM                         SYSTEM

上一篇: 中文javadoc
下一篇: cacti 中文

繼續閱讀