【恩墨學院】DBMS_FILE_TRANSFER為ASM的檔案傳輸提供了新的選擇

恩墨學院發表於2017-11-09

2017-08-03 蓋國強 

 

編輯手記:從Oracle 10g開始,Oracle提供了DBMS_FILE_TRANSFER程式包,為本地資料庫和遠端資料庫間,ASM和檔案系統間傳輸資料庫檔案提供了新的選擇。Oracle內部的小小變化,往往給運維帶來極大的便利。本文揀選自《循序漸進Oracle》,我們再次回顧學習。

 

有了DBMS_FILE_TRANSFER,資料庫檔案的傳輸就方便了許多,尤其是在傳輸基於ASM儲存的資料檔案時,不再侷限於利用RMAN來進行傳輸,為我們提供了更多的選擇。

 

在使用DBMS_FILE_TRANSFER時一些注意事項:

1DBMS_FILE_TRANSFER具備一定的限制,單個資料庫檔案必須是512位元組的整數倍並且檔案大小必須小於或者等於2TB,但是這基本上算不上什麼弱點,我們的絕大多數需求都可以被滿足。

 

2DBMS_FILE_TRANSFER支援線上備份,如果傳輸正在被修改的檔案,很可能會導致檔案的不一致。這時候透過DBMS_FILE_TRANSFER傳輸的檔案要做recovery才能使用,為了保持一致性,建議將檔案offline再進行DBMS_FILE_TRANSFER傳輸。

 

3、如果利用DBMS_FILE_TRANSFER進行備份,建議自定義備份策略,並將檔案置於hot backup 模式。

 

4、對於檔案系統,傳輸的檔案可以是各種型別的檔案,但如果源端或者目標端是ASM儲存,則只能是資料庫檔案。

5、為了正常執行該程式包,執行使用者必須有以下許可權:

source_directory_object引數指定的目錄物件有read許可權;對 destination_directory_object指定的目錄物件有write許可權

 

接下來我們一起來學習DBMS_FILE_TRANSFER 包的使用:

 

DBMS_FILE_TRANSFER 包一共包含了3個儲存過程,分別提供本機之間複製(COPY_FILE)、本機從遠端主機獲取(GET_FILE)以及本機上傳至遠端主機(PUT_FILE)三種傳輸資料庫檔案的功能。

 

恩墨學院-專注oracle大資料培訓

 

以上過程的引數中,除了檔名稱外,最關鍵的是DIRECTORY目錄引數,這個目錄需要預先設定,並且要求傳輸使用者對相應的目錄具有讀或者寫的許可權。

 

看以下測試,首先透過asmcmdDATADG下建立一個asmbk目錄:



恩墨學院-專注oracle大資料培訓

 

然後在資料庫內部建立兩個DIRECTORY

 

恩墨學院-專注oracle大資料培訓

 

現在DBMS_FILE_TRANSFER就可以大顯身手,快速的幫助我們解決檔案傳輸的問題:

 

恩墨學院-專注oracle大資料培訓

 

看一下ASM磁碟組上的內容,實際上檔案的位置是在DATAFILE下,asmbk下存放的是一個別名:


恩墨學院-專注oracle大資料培訓

DBMS_FILE_TRANSFER包更強大的功能是基於網路的遠端PUT_FILECOPY_FILE功能,這兩個功能透過db link實現。以下是一個簡單測試。

 

首先在遠端資料庫建立測試使用者及目錄,並進行授權:

 

恩墨學院-專注oracle大資料培訓

 

接下來在本地資料庫配置tnsnames.ora檔案,並建立DB Link

 

恩墨學院-專注oracle大資料培訓

 

接下來就可以透過DB Link進行遠端的檔案操作了,PUT_FILE可以將檔案傳輸至遠端主機:

 

恩墨學院-專注oracle大資料培訓

 

在遠端節點可以立刻檢查到這個檔案的存在:

 

恩墨學院-專注oracle大資料培訓

 

進一步的,可以將遠端檔案讀取到本地:

 

恩墨學院-專注oracle大資料培訓

 

本地ASM儲存中,馬上獲得了這個檔案:

 

恩墨學院-專注oracle大資料培訓

 

而進一步的,將表空間置於熱備模式下,可以透過DBMS_FILE_TRANSFER包將資料庫熱備到遠端主機,甚至可以基於次來建立遠端的Dataguard資料庫,有時在資料庫巨大,備份恢復空間不足時,透過這種方式進行資料傳輸與備庫建立未嘗不是一種妙解:

 

恩墨學院-專注oracle大資料培訓

 

DBMS_FILE_TRANSFER為我們提供了多一個選擇和靈活性,很多時候,Oracle的一個小小的增強如果能夠恰如其份的利用,就能夠發揮巨大的優勢。瞭解了Oracle的種種可能之後,我們才能夠靈活運用,如臂使指。

 

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

相關文章