Oracle中對數據對象和數據的管理,無疑都是使用PL/SQL Developer來進行管理,該工具也提供給我們很多方便、快捷的操作,使得我們不再為Oracle本身丑陋、難用的UI而抱怨。由於我們一般都是建建表、查查數據的操作居多,較少會考慮系統的整個Oracle的完整備份操作。但是在我們一些發布操作中,我們必須考慮如何把Oracle的對象、表數據導出到Sql腳本中,並且把創建Oracle表空間、創建Oracle數據庫的操作也放到腳本中,這樣我們就方便快速還原或者部署Oracle數據庫到新的機器上了。
本文主要介紹如何結合Sql腳本和PL/SQL Developer工具來實現創建表空間、創建數據庫、備份數據庫、數據導出等操作,然后實現Oracle對象創建、導入數據等操作,方便我們快速了解、創建所需要的部署Sql腳本和數據庫操作。
1、 准備數據庫創建腳本
create tablespace whc_tbs datafile 'E:\oracle\oradata\whcdb\whc.dbf' size 100M; --DROP TABLESPACE whc_tbs INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; create user whc identified by whc default tablespace whc_tbs; grant connect,resource to whc; grant dba to whc; --Revoke dba from whc;
其中--的注釋語句是刪除命名空間和移除DBA用戶的權限的。
以上這些腳本是為了我們在新建一個表空間和Oracle數據庫的時候使用的。
其中E:\oracle\oradata\whcdb\whc.dbf路徑是我們要存放數據庫數據的位置,因此要保證該路徑有足夠的空間和足夠的訪問權限,否則會失敗的。
2、 導出數據庫對象
在PL/SQL Developer的菜單Tools=>Export User Objects中出來一個對話框界面,然后框選要到處的Oracle 數據庫對象,包括表,序列,存儲過程,視圖,函數等等,並指定導出的文件名稱,如下操作。
3)導出表數據
導出表結構和其他對象后,我們下一步就是把數據庫的表數據進行導出,PL/SQL Developer工具支持導出數據到PL/SQL數據庫腳本中,如下所示。這樣導出的腳本,我們可以在PL/SQL Developer工具導入或者自己通過Sql plus 工具進行導入。
至此,我們就已經完成了三種腳本了,包括創建數據庫空間和數據庫腳本、創建Oracle數據庫對象(表、存儲過程、視圖、序列等)、創建導入數據的腳本,這樣三種合一,就是一個完整的數據庫了。最后一步就是我們如何導入數據庫對象和數據的問題了。
4)導入數據庫對象及數據
導入數據庫對象和數據的操作一樣,都可以通過Import Tables操作實現,我們指定剛才上面兩步創建的數據庫腳本,執行即可再新的環境中創建數據庫對象和數據庫數據了。如下所示。
執行的數據界面如下所示。
完成上面幾個步驟,我們在新的數據庫環境中,就具備了所有的東西了,順利完成整個Oracle數據庫對象及數據的遷移工作。
以上值得注意的是,我們導出Oracle對象和數據的時候,默認還是原來Oracle數據庫的表空間和數據庫用戶名稱的,如果我們想要在新的數據庫服務器中指定不同的表空間和數據庫用戶對象,那么我們就需要替換生成的sql腳本,並在第一步指定合理的表空間和數據庫用戶。
如果是Linux平台下的數據庫服務器,第一步操作也是差不多的,就是指定表空間的路徑名稍微不同,其他操作並無差異。