Backup And Recovery User's Guide-對於聯機表空間和資料檔案進行使用者管理的備份

LuiseDalian發表於2014-03-02

對於聯機表空間和資料檔案進行使用者管理的備份

在資料OPEN時可以備份聯機表空間的所有資料檔案或特定的資料檔案。

過程根據表空間是read/wirte或者是read-only而不同。

注意不能備份臨時表空間

對於聯機read/write表空間進行使用者管理的備份

必須將read/write表空間置於備份模式中。可以使用ALTER TABLESPACE …BEGIN BACKUP語句將表空間置於備份模式中。

在備份模式中,資料庫會拷貝所有改變的資料塊到redo流中去。

當使用ALTER TABLESPACE…END BACKUP語句或ALTER DATABASE END BACKUP語句,使表空間脫離備份模式時,

資料庫會增加資料檔案檢查點SCN到當前的資料庫檢查點SCN

 

當還原使用這種方式備份的資料檔案時,如果需要恢復,則資料庫會請求適當的重做日誌檔案集並應用。

重做日誌中包含恢復資料檔案所需要的所有改變並使資料檔案一致。

練習:備份聯機read/write表空間

--0. 凡是聯機備份都需要資料庫執行於歸檔模式中

--0.1 關庫

sys@TESTDB11>shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

--0.2 啟動到MOUNT狀態

sys@TESTDB11>startup mount

ORACLE instance started.

Total System Global Area  855982080 bytes

Fixed Size                  2230792 bytes

Variable Size             641730040 bytes

Database Buffers          209715200 bytes

Redo Buffers                2306048 bytes

Database mounted.

--0.3 改為歸檔模式

sys@TESTDB11>alter database archivelog;

Database altered.

--0.4. 開啟資料庫

sys@TESTDB11>alter database open;

Database altered

--0.5 檢視歸檔狀態

sys@TESTDB11>archive log  list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     87

Next log sequence to archive   89

Current log sequence           89

--1. 在備份表空間之前,查詢DBA_DATA_FILES檢視來確認表空間的資料檔案. 假設想備份USERS表空間

sys@TESTDB11>col file_name for a50

sys@TESTDB11>select tablespace_name, file_name

  2  from dba_data_files

  3  where tablespace_name = 'USERS';

TABLESPACE_NAME                FILE_NAME

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

USERS                          /u01/app/oracle/oradata/TestDB11/users01.dbf

--2. 標記聯機表空間備份開始

sys@TESTDB11>alter tablespace users begin backup;

Tablespace altered.

--3. 備份資料檔案

[oracle@S1011:/export/home/oracle]$ cp /u01/app/oracle/oradata/TestDB11/users01.dbf /disk01/TestDB11/users01_`date "+%m_%d_%y"`.dbf

[oracle@S1011:/export/home/oracle]$ cd /disk01/TestDB11/

[oracle@S1011:/disk01/TestDB11]$ ls

users01_06_27_13.dbf  users01_06_28_13.dbf

--4. 結束表空間的聯機備份

sys@TESTDB11>alter tablespace users end backup;

Tablespace altered.

--5 歸檔未歸檔的重做日誌,這樣恢復表空間備份所需要的redo資訊就被歸檔了。

sys@TESTDB11>alter system archive log current;

System altered.

注意

如果沒有成功地使表空間退出備份模式,則Oracle會持續地拷貝表空間中的資料到聯機重做日誌,引起效能問題。

如果在關閉資料庫時,表空間仍然處於備份模式,則會產生ORA-01149錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1097945/,如需轉載,請註明出處,否則將追究法律責任。

相關文章