備份的方法
ORACLE數據庫有三種標準的備份。導出/導入(EXPORT/IMPORT) 、冷備份、熱備份。
導出備份是一種邏輯備份,這種方法包括讀取一系列的數據庫日志,并寫入文件中,這些日志的讀取與其所處位置無關。
冷備份和熱備份是物理備份(也稱低級備份),它涉及到組成數據庫的文件,但不考慮邏輯內容。
下面我們分別介紹一下這三種備份方法及其特點:
(一)、導出/導入(EXPORT/IMPORT)
EXPORT/IMPORT是用來將ORACLE中數據移出/移入數據庫。
1、EXPORT將數據庫中數據備份成一個二進制系統文件稱為“導出轉儲文件”(EXPORT DUMP FILE),并將重新生成數據庫寫入文件中。
它有三種模式:
a.用戶模式:導出用戶所有對象以及對象中的數據;
b.表模式:導出用戶所有表或者指定的表;
c.整個數據庫:導出數據庫中所有對象。
它的備份有三種類型:
a.完全型(COMPLETE EXPORT):備份整個數據庫;
b.積累型(COMULATIVE ERPORT):備份上一次積累型備份所改變的數據;
c.增量型(INCREAMENTAL EXPORT):備份上一次備份后改變的數據。
EXPORT 的命令可以交互式進行,各參數的具體含義見附錄。
在進行導出備份時我們要考慮一點問題,那就是導出的一致性,在導出過程 中導出每讀一次就讀取一個表,因而盡管導出是在一個特點時自己開始的,但不同的表讀取的時間不同,因此,導出開始讀一個表時,此時表中的數據才是導出的數據,這樣當大多數表按內部關鍵字和外部關鍵字相互聯系時,在導出過程中這些相關聯表的改變就會導致導出的不一致性,要避開這個,我們可以將導出過程安排在不對表操作的時候進行。另外,當ORACLE中RESTRICTEP CONSISTENT 選項就可以保證導出數據一致性。
2、IMPORT導入:
導入的過程是導出的逆過程,這個命令先讀取導出來的導出轉儲二進制文件,并運行文件,恢復對象用戶和數據。
IMPORT命令執(zhí)行的方法和EXPORT方案有關。
1、如果EXPORT所實施的是完全型方案(FULL)則在IMPORT時所有的數據對象,包括表空間,數據文件,用戶都會在導入時創(chuàng)建,但考慮到數據庫中的物理布局,預先創(chuàng)建表空間和用戶是有用的。
2、如果EXPORT使用的是INCREMENTAL/CUMULATIVE方式,則需要預先設置好表空間、用戶、數據文件。
(二):冷備份
冷備份發(fā)生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。
備份的方法 ORACLE數據庫有三種標準的備份。導出/導入(EXPORT/IMPORT) 、冷備份、熱備份。 導出備份是一種邏輯備份,這種方法包括讀取一系列的數據庫日志,并寫入文件中,這些日志的讀取與其所處位置無關。 冷備份和熱備份是物理備份(也稱低級備份),它涉及到組成數據庫的文件,但不考慮邏輯內容。 下面我們分別介紹一下這三種備份方法及其特點: (一)、導出/導入(EXPORT/IMPORT) EXPORT/IMPORT是用來將ORACLE中數據移出/移入數據庫。 1、EXPORT將數據庫中數據備份成一個二進制系統文件稱為“導出轉儲文件”(EXPORT DUMP FILE),并將重新生成數據庫寫入文件中。 它有三種模式: a.用戶模式:導出用戶所有對象以及對象中的數據; b.表模式:導出用戶所有表或者指定的表; c.整個數據庫:導出數據庫中所有對象。 它的備份有三種類型: a.完全型(COMPLETE EXPORT):備份整個數據庫; b.積累型(COMULATIVE ERPORT):備份上一次積累型備份所改變的數據; c.增量型(INCREAMENTAL EXPORT):備份上一次備份后改變的數據。 EXPORT 的命令可以交互式進行,各參數的具體含義見附錄。 在進行導出備份時我們要考慮一點問題,那就是導出的一致性,在導出過程 中導出每讀一次就讀取一個表,因而盡管導出是在一個特點時自己開始的,但不同的表讀取的時間不同,因此,導出開始讀一個表時,此時表中的數據才是導出的數據,這樣當大多數表按內部關鍵字和外部關鍵字相互聯系時,在導出過程中這些相關聯表的改變就會導致導出的不一致性,要避開這個,我們可以將導出過程安排在不對表操作的時候進行。另外,當ORACLE中RESTRICTEP CONSISTENT 選項就可以保證導出數據一致性。 2、IMPORT導入: 導入的過程是導出的逆過程,這個命令先讀取導出來的導出轉儲二進制文件,并運行文件,恢復對象用戶和數據。 IMPORT命令執(zhí)行的方法和EXPORT方案有關。 1、如果EXPORT所實施的是完全型方案(FULL)則在IMPORT時所有的數據對象,包括表空間,數據文件,用戶都會在導入時創(chuàng)建,但考慮到數據庫中的物理布局,預先創(chuàng)建表空間和用戶是有用的。 2、如果EXPORT使用的是INCREMENTAL/CUMULATIVE方式,則需要預先設置好表空間、用戶、數據文件。 (二):冷備份 冷備份發(fā)生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。 數據庫使用的每個文件都被備份下來,這些文件包括: ☆所有數據文件 ☆所有控制文件 ☆所有聯機REDO LOG 文件 ☆INIT.ORA文件(可選) 值得注意的是冷備份必須是數據庫關閉的情況下完成,當數據庫開著的時候,執(zhí)行數據庫文件系統備份無效。 作冷備份一般步驟是: 1:正常關閉要備份的實例(instance); 2: 備份整個數據庫到一個目錄 3:啟動數據庫 1: SQLDBA>connect internal SQLDBA>shutdown normal 2: SQLDBA>! cp <file> <backup directory> 或 SQLDBA>!tar cvf /dev/rmt/0 /wwwdg/oracle 3: SQLDBA>startup |
數據庫使用的每個文件都被備份下來,這些文件包括:
☆所有數據文件
☆所有控制文件
☆所有聯機REDO LOG 文件
☆INIT.ORA文件(可選)
值得注意的是冷備份必須是數據庫關閉的情況下完成,當數據庫開著的時候,執(zhí)行數據庫文件系統備份無效。
作冷備份一般步驟是:
1:正常關閉要備份的實例(instance);
2: 備份整個數據庫到一個目錄
3:啟動數據庫
1: SQLDBA>connect internal
SQLDBA>shutdown normal
2: SQLDBA>! cp <file> <backup directory>
或
SQLDBA>!tar cvf /dev/rmt/0 /wwwdg/oracle
3: SQLDBA>startup
三)熱備份(ACHIRELOG)
數據庫需要二十四小時運行,而且隨時有新的數據加入.數據丟失將影響整個公司.采用archivelog mode物理備份.
設置數據庫為automatic archivelog mode,
#su - oracle
%svrmgrl
svrmgrl>connect internal
svrmgrl>startup mount
svrmgrl>alter database archivelog
svrmgrl>shutdown
svrmgrl>exit
%vi initoracle7.ora
加入log_archive_start = true # if you want automatic archiving
log_archive_dest = $ORACLE_HOME/dbs/arch
log_archive_format = log%s.arc
%dbstart
%ps -ef|grep arch
oracle 1743 1 0 15:20:20 ? 0:00 ora_arch_oracle7
注:oracle database is in automatic archivelog mode
full offline entire database backup, 當數據庫初始完成后 這份備份是將來備份的基礎。它提供了所有與數據庫有關的拷貝.
熱備份可以在數據庫打開打情況下進行,一般通過使用Alter命令改變表空間的狀態(tài)來開始進行備份的,備份完成后,要恢其原來狀態(tài),否則redo log 會錯配,引起數據庫下次啟動時對受影響的表空間進行完全覆蓋。熱備份的要求是:
1.熱備份工作必需要求數據庫在Archivelog 方式下操作,在SQLDBA狀態(tài)下用alter database archivelog|noarchivelog命令可改變備份的模式。
2.熱備份只能在數據庫不使用或使用率低的情況下進行。
3.熱備份需要大量的檔案空間。
一般情況,Oracle 以循環(huán)的方式寫入Online redo log 文件,當填滿第一個redo log文件后寫第二個,直至最后一個,最后一個被填滿后,后臺進程LGWR就覆蓋第一個,在Archivelog方式下,后臺進程ARCH在每一個redo log 文件被覆蓋前,給它作一個拷貝,一般,這些文檔的redo log 文件被寫入磁盤或磁帶中。如果磁盤空間夠用,建議使用磁盤,這樣可大大減少完成備份所需的時間。
在作熱備份之前,要將config.ora文件中的log_archive_start 設為true 將log_archive_dest
規(guī)定archive redo log 文件的位置:
log_archive_dest=/wwwdg/oracle/arch/arch
log_archive_start=true
一旦數據庫運行在archivelog狀態(tài)下,就可以作備份了。熱備份的命令文件由三部分組成:
1、數據文件一個表空間一個空間地備份:
a.設置表空間為備份狀態(tài)。
b.備份表空間的數據文件。
c.恢復表空間為正常狀態(tài)。
2、備份歸檔要作log 文件:
a.臨時停止歸檔進程
b.log下那些在archive redo log目標目錄中的文件
c.重新啟動archive進程
d.備份歸檔的redo log 文件
3、用alter database backup controlfile命令來備份拷貝文件
在熱備份運行之前l(fā)og_archive_dest目錄可能已滿,這時就要備份目錄,然后刪除文件,釋放空間,這個過程有如下步驟:
1、暫時停止archive進程。
2、記錄在log_archive_dest目錄下的文件。
3、重新啟動archive 進程。
4、備份archive redo log 文件。
5、刪除目錄中的文件。備份的方法
ORACLE數據庫有三種標準的備份。導出/導入(EXPORT/IMPORT) 、冷備份、熱備份。
導出備份是一種邏輯備份,這種方法包括讀取一系列的數據庫日志,并寫入文件中,這些日志的讀取與其所處位置無關。
冷備份和熱備份是物理備份(也稱低級備份),它涉及到組成數據庫的文件,但不考慮邏輯內容。
下面我們分別介紹一下這三種備份方法及其特點:
(一)、導出/導入(EXPORT/IMPORT)
EXPORT/IMPORT是用來將ORACLE中數據移出/移入數據庫。
1、EXPORT將數據庫中數據備份成一個二進制系統文件稱為“導出轉儲文件”(EXPORT DUMP FILE),并將重新生成數據庫寫入文件中。
它有三種模式:
a.用戶模式:導出用戶所有對象以及對象中的數據;
b.表模式:導出用戶所有表或者指定的表;
c.整個數據庫:導出數據庫中所有對象。
它的備份有三種類型:
a.完全型(COMPLETE EXPORT):備份整個數據庫;
b.積累型(COMULATIVE ERPORT):備份上一次積累型備份所改變的數據;
c.增量型(INCREAMENTAL EXPORT):備份上一次備份后改變的數據。
EXPORT 的命令可以交互式進行,各參數的具體含義見附錄。
在進行導出備份時我們要考慮一點問題,那就是導出的一致性,在導出過程 中導出每讀一次就讀取一個表,因而盡管導出是在一個特點時自己開始的,但不同的表讀取的時間不同,因此,導出開始讀一個表時,此時表中的數據才是導出的數據,這樣當大多數表按內部關鍵字和外部關鍵字相互聯系時,在導出過程中這些相關聯表的改變就會導致導出的不一致性,要避開這個,我們可以將導出過程安排在不對表操作的時候進行。另外,當ORACLE中RESTRICTEP CONSISTENT 選項就可以保證導出數據一致性。
2、IMPORT導入:
導入的過程是導出的逆過程,這個命令先讀取導出來的導出轉儲二進制文件,并運行文件,恢復對象用戶和數據。
IMPORT命令執(zhí)行的方法和EXPORT方案有關。
1、如果EXPORT所實施的是完全型方案(FULL)則在IMPORT時所有的數據對象,包括表空間,數據文件,用戶都會在導入時創(chuàng)建,但考慮到數據庫中的物理布局,預先創(chuàng)建表空間和用戶是有用的。
2、如果EXPORT使用的是INCREMENTAL/CUMULATIVE方式,則需要預先設置好表空間、用戶、數據文件。
(二):冷備份
冷備份發(fā)生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。
備份的方法 ORACLE數據庫有三種標準的備份。導出/導入(EXPORT/IMPORT) 、冷備份、熱備份。 導出備份是一種邏輯備份,這種方法包括讀取一系列的數據庫日志,并寫入文件中,這些日志的讀取與其所處位置無關。 冷備份和熱備份是物理備份(也稱低級備份),它涉及到組成數據庫的文件,但不考慮邏輯內容。 下面我們分別介紹一下這三種備份方法及其特點: (一)、導出/導入(EXPORT/IMPORT) EXPORT/IMPORT是用來將ORACLE中數據移出/移入數據庫。 1、EXPORT將數據庫中數據備份成一個二進制系統文件稱為“導出轉儲文件”(EXPORT DUMP FILE),并將重新生成數據庫寫入文件中。 它有三種模式: a.用戶模式:導出用戶所有對象以及對象中的數據; b.表模式:導出用戶所有表或者指定的表; c.整個數據庫:導出數據庫中所有對象。 它的備份有三種類型: a.完全型(COMPLETE EXPORT):備份整個數據庫; b.積累型(COMULATIVE ERPORT):備份上一次積累型備份所改變的數據; c.增量型(INCREAMENTAL EXPORT):備份上一次備份后改變的數據。 EXPORT 的命令可以交互式進行,各參數的具體含義見附錄。 在進行導出備份時我們要考慮一點問題,那就是導出的一致性,在導出過程 中導出每讀一次就讀取一個表,因而盡管導出是在一個特點時自己開始的,但不同的表讀取的時間不同,因此,導出開始讀一個表時,此時表中的數據才是導出的數據,這樣當大多數表按內部關鍵字和外部關鍵字相互聯系時,在導出過程中這些相關聯表的改變就會導致導出的不一致性,要避開這個,我們可以將導出過程安排在不對表操作的時候進行。另外,當ORACLE中RESTRICTEP CONSISTENT 選項就可以保證導出數據一致性。 2、IMPORT導入: 導入的過程是導出的逆過程,這個命令先讀取導出來的導出轉儲二進制文件,并運行文件,恢復對象用戶和數據。 IMPORT命令執(zhí)行的方法和EXPORT方案有關。 1、如果EXPORT所實施的是完全型方案(FULL)則在IMPORT時所有的數據對象,包括表空間,數據文件,用戶都會在導入時創(chuàng)建,但考慮到數據庫中的物理布局,預先創(chuàng)建表空間和用戶是有用的。 2、如果EXPORT使用的是INCREMENTAL/CUMULATIVE方式,則需要預先設置好表空間、用戶、數據文件。 (二):冷備份 冷備份發(fā)生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。 數據庫使用的每個文件都被備份下來,這些文件包括: ☆所有數據文件 ☆所有控制文件 ☆所有聯機REDO LOG 文件 ☆INIT.ORA文件(可選) 值得注意的是冷備份必須是數據庫關閉的情況下完成,當數據庫開著的時候,執(zhí)行數據庫文件系統備份無效。 作冷備份一般步驟是: 1:正常關閉要備份的實例(instance); 2: 備份整個數據庫到一個目錄 3:啟動數據庫 1: SQLDBA>connect internal SQLDBA>shutdown normal 2: SQLDBA>! cp <file> <backup directory> 或 SQLDBA>!tar cvf /dev/rmt/0 /wwwdg/oracle 3: SQLDBA>startup |
數據庫使用的每個文件都被備份下來,這些文件包括:
☆所有數據文件
☆所有控制文件
☆所有聯機REDO LOG 文件
☆INIT.ORA文件(可選)
值得注意的是冷備份必須是數據庫關閉的情況下完成,當數據庫開著的時候,執(zhí)行數據庫文件系統備份無效。
作冷備份一般步驟是:
1:正常關閉要備份的實例(instance);
2: 備份整個數據庫到一個目錄
3:啟動數據庫
1: SQLDBA>connect internal
SQLDBA>shutdown normal
2: SQLDBA>! cp <file> <backup directory>
或
SQLDBA>!tar cvf /dev/rmt/0 /wwwdg/oracle
3: SQLDBA>startup
三)熱備份(ACHIRELOG)
數據庫需要二十四小時運行,而且隨時有新的數據加入.數據丟失將影響整個公司.采用archivelog mode物理備份.
設置數據庫為automatic archivelog mode,
#su - oracle
%svrmgrl
svrmgrl>connect internal
svrmgrl>startup mount
svrmgrl>alter database archivelog
svrmgrl>shutdown
svrmgrl>exit
%vi initoracle7.ora
加入log_archive_start = true # if you want automatic archiving
log_archive_dest = $ORACLE_HOME/dbs/arch
log_archive_format = log%s.arc
%dbstart
%ps -ef|grep arch
oracle 1743 1 0 15:20:20 ? 0:00 ora_arch_oracle7
注:oracle database is in automatic archivelog mode
full offline entire database backup, 當數據庫初始完成后 這份備份是將來備份的基礎。它提供了所有與數據庫有關的拷貝.
熱備份可以在數據庫打開打情況下進行,一般通過使用Alter命令改變表空間的狀態(tài)來開始進行備份的,備份完成后,要恢其原來狀態(tài),否則redo log 會錯配,引起數據庫下次啟動時對受影響的表空間進行完全覆蓋。熱備份的要求是:
1.熱備份工作必需要求數據庫在Archivelog 方式下操作,在SQLDBA狀態(tài)下用alter database archivelog|noarchivelog命令可改變備份的模式。
2.熱備份只能在數據庫不使用或使用率低的情況下進行。
3.熱備份需要大量的檔案空間。
一般情況,Oracle 以循環(huán)的方式寫入Online redo log 文件,當填滿第一個redo log文件后寫第二個,直至最后一個,最后一個被填滿后,后臺進程LGWR就覆蓋第一個,在Archivelog方式下,后臺進程ARCH在每一個redo log 文件被覆蓋前,給它作一個拷貝,一般,這些文檔的redo log 文件被寫入磁盤或磁帶中。如果磁盤空間夠用,建議使用磁盤,這樣可大大減少完成備份所需的時間。
在作熱備份之前,要將config.ora文件中的log_archive_start 設為true 將log_archive_dest
規(guī)定archive redo log 文件的位置:
log_archive_dest=/wwwdg/oracle/arch/arch
log_archive_start=true
一旦數據庫運行在archivelog狀態(tài)下,就可以作備份了。熱備份的命令文件由三部分組成:
1、數據文件一個表空間一個空間地備份:
a.設置表空間為備份狀態(tài)。
b.備份表空間的數據文件。
c.恢復表空間為正常狀態(tài)。
2、備份歸檔要作log 文件:
a.臨時停止歸檔進程
b.log下那些在archive redo log目標目錄中的文件
c.重新啟動archive進程
d.備份歸檔的redo log 文件
3、用alter database backup controlfile命令來備份拷貝文件
在熱備份運行之前l(fā)og_archive_dest目錄可能已滿,這時就要備份目錄,然后刪除文件,釋放空間,這個過程有如下步驟:
1、暫時停止archive進程。
2、記錄在log_archive_dest目錄下的文件。
3、重新啟動archive 進程。
4、備份archive redo log 文件。
5、刪除目錄中的文件。