Oracle—使用者管理的備份

來源:互聯網
上載者:User

Oracle—使用者管理的備份(一)

一.首先要知道資料庫中資料表空間和檔案的資訊,有幾個效能檢視,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,dba_tablespaces,dba_data_files可以用它們來查看錶空間或者檔案的位置和名字,其中dba_data_files可以查看到每個資料檔案屬於哪個資料表空間。

參考閱讀:

Oracle教程:使用者管理的備份

推薦閱讀:

Oracle基礎教程之通過RMAN複製資料庫

RMAN備份策略制定參考內容

RMAN備份學習筆記

OracleDatabase Backup加密 RMAN加密

對於查看每個資料檔案屬於哪個資料表空間也可以用$datafile,v$tablespace來join一下。

例如:

SQL> select  t.name tablespace,d.name datafile from  v$tablespace t  join  v$datafile d  on t.ts#=d.ts#;

TABLESPACE                    DATAFILE

------------------------------              -----------------------------------

SYSTEM                        /u01/oradata/wilson/system01.dbf

SYSAUX                        /u01/oradata/wilson/sysaux01.dbf

UNDOTBS1                      /u01/oradata/wilson/undotbs01.dbf

USERS                          /u01/oradata/wilson/users01.dbf

EXAMPLE                        /u01/oradata/wilson/example01.dbf

PAUL                          /u01/oradata/wilson/paul01.dbf

SUN                            /u01/oradata/wilson/sun01.dbf

SMALLUNDO                      /u01/oradata/wilson/smallundo1.dbf

ASSM                          /u01/oradata/wilson/assm_1.dbf

MSSM                          /u01/oradata/wilson/mssm_1dbf

PAUL                          /u01/oradata/wilson/paul02.dbf

二.備份的方式

1.處於非歸檔模式

在非歸檔模式下,關閉資料庫執行完整的備份是唯一的選擇。

在上面給出的視圖中找到每個檔案的位置,要備份的有控制檔案和整個資料檔案集,最好把臨時檔案和spfile,password檔案(它們在/u01/oracle/dbs中)一起也備份了。

在備份之前必須乾淨的關閉資料庫,那麼對於聯機重做日誌沒有必要備份。但是如果是出現不乾淨的關閉資料庫,那麼必須備份聯機重做日誌,不然還原後無法開啟資料庫。(其實無論在什麼情況下,最好都備份)

2.處于歸檔模式

在歸檔模式下,既可以在關閉資料庫時備份也可以在開啟資料庫時備份;

(一)在關閉資料庫時備份和非歸檔模式備份是一樣,有一個差別就是不備份聯機重做日誌了,改為備份歸檔日誌。

(二)在開啟資料庫時備份,備份是非一致性的,所以必須備份歸檔記錄檔。

有下面三個步驟:

(1)備份控制檔案

備份控制檔案有兩種方式,

alter database backup confile to <filename>;

alter database backup confile to  trace as <filename>;

第一種形式產生一個二進位備份,輸出檔案將是當前控制檔案的嚴格的讀一致性副本;

第二種形式產生一個邏輯備份,在指定檔案中使用一組SQL命令來建立一個新的控制檔案,並且包含與當前的控制檔案相同的資料庫物理結構資訊。

這裡說明一下create controlfile命令,它必須在非載入模式下執行,並且在control_files參數指定的位置產生一個新的控制檔案;這個命令產生的新控制檔案只包含與物理結構有關的資料;例如RMAN備份將會丟失。

在作業系統下建立個目錄/tmp/con,用第一種形式備份控制檔案;

SQL> alter database backup  controlfile to '/tmp/con/c1.ctl';

Database altered.

SQL> !ls -l /tmp/con

total 9636

-rw-r----- 1 oracle oinstall 9846784 Aug 23 10:07 c1.ctl

用第二種形式備份控制檔案;

SQL> alter database backup controlfile to trace as '/tmp/con/c2.ctl';

Database altered.

SQL> !ls -l /tmp/con

total 9648

-rw-r----- 1 oracle oinstall 9846784 Aug 23 10:07 c1.ctl

-rw-r--r-- 1 oracle oinstall    7107 Aug 23 10:11 c2.ctl

只要控制檔案發生變化就要備份它,建議每次備份時都備份一下控制檔案。

(2)關于歸檔記錄檔備份

先執行alter system archive log current,再找到歸檔日誌位置,複製到別的地方即可。

有關歸檔日誌的設定請參照:歸檔模式

(3)當他們的資料表空間置於備份模式時複製資料檔案;

有關備份模式請參照:oracle中backup模式

查看有哪些資料表空間;

SQL> select tablespace_name,contents from dba_tablespaces;

TABLESPACE_NAME                CONTENTS

------------------------------                  ---------

SYSTEM                        PERMANENT

SYSAUX                        PERMANENT

UNDOTBS1                      UNDO

TEMP                          TEMPORARY

USERS                          PERMANENT

EXAMPLE                        PERMANENT

PAUL                          PERMANENT

MYTEMP                        TEMPORARY

SUN                            PERMANENT

SMALLUNDO                      UNDO

ASSM                          PERMANENT

TABLESPACE_NAME                CONTENTS

------------------------------                ---------

MSSM                          PERMANENT

12 rows selected.

查看一下資料表空間中有哪些資料檔案;

SQL> select tablespace_name,file_name from  dba_data_files;

TABLESPACE_NAME                FILE_NAME

------------------------------ -----------------------------------

PAUL                          /u01/oradata/wilson/paul01.dbf

USERS                          /u01/oradata/wilson/users01.dbf

UNDOTBS1                      /u01/oradata/wilson/undotbs01.dbf

SYSAUX                        /u01/oradata/wilson/sysaux01.dbf

SYSTEM                        /u01/oradata/wilson/system01.dbf

EXAMPLE                        /u01/oradata/wilson/example01.dbf

SUN                            /u01/oradata/wilson/sun01.dbf

SMALLUNDO                      /u01/oradata/wilson/smallundo1.dbf

ASSM                          /u01/oradata/wilson/assm_1.dbf

MSSM                          /u01/oradata/wilson/mssm_1dbf

PAUL                          /u01/oradata/wilson/paul02.dbf

11 rows selected.

在備份前,先建立個目錄/tmp/hb

把sun資料表空間改為backup模式下,

SQL> alter tablespace sun begin backup;

Tablespace altered.

備份資料表空間下的資料檔案,

SQL> !cp  /u01/oradata/wilson/sun01.dbf  /tmp/hb

查看一下結果,

SQL> !ls  -l /tmp/hb

total 20516

-rw-r----- 1 oracle oinstall 20979712 Aug 22 23:01 sun01.dbf

結束備份,

SQL> alter tablespace sun  end backup;

Tablespace altered.

在資料庫開啟的情況下手動備份(在歸檔模式下),必須執行begin  backup,雖然可以在作業系統層面上備份,但是其備份的將不能使用。

也可以使用SQL> alter database  begin  backup;

Database altered.

把所有的資料表空間一次性的全部處於backup模式。

還有一點就是不能備份暫存資料表空間,甚至不能將他們置於備份模式。

SQL> alter tablespace temp begin  backup;

alter tablespace temp begin  backup

*

ERROR at line 1:

ORA-03217: invalid option for alter of TEMPORARY TABLESPACE

(4)備份參數檔案和口令檔案

對它們的備份不是必須的,但是為了方便的還原它們,最好還是備份了;

參數檔案,為了備份spfile,使用下面的命令產生個文字檔。

SQL> create pfile='initwilson.ora' from spfile;

如果動態參數檔案在某個時候受損,那麼在非載入模式下使用該命令重新建立它或者在關閉執行個體時也可以執行,、

Create spfile from  pfile=’initwilson.ora’;

口令檔案,為了備份口令檔案,儲存用來建立它的命令的一個副本。如:

orapwd file=$ORACLE_HOME/dbs/orapwd<SID>  password=oracle  entries=5;

其中<SID>是執行個體名稱。如果口令檔案某個時刻被損壞,那麼簡單運行該指令碼來重新建立它。

續:Oracle—使用者管理的備份(二)

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.