記一次oracle數據庫復制過程


記錄一次自己數據庫復制的過程(從公司測試環境復制到客戶測試環境),主要是每次自己都會忘記,不如記錄一下,方便自己以后找,因此,本篇內容不會很詳細,主要是用於給我自己提醒,相對於一種記筆記的效果

cmd命令導入導出庫

一開始,我是打算使用cmd輸命令進行導入導出數據的,因為以前試過這樣比較方便,也不會出現什么clob,blob數據錄入時候的報錯,省力省心,只是命令給忘記了,百度了一會兒,使用命令如下:

exp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y

即:exp 用戶名/密碼@實例名 file=保存的dmp文件路徑 full=y

然后不出所料的報了什么標識符無效的錯誤,當時沒想到是oracle版本問題,然后又試了下以下命令

exp root/123456@127.0.0.1:1521/orcl owner=root file=d:\test.dmp

結果還是報了個標識符無效,只是是另一個標識符,這時候反應過來,版本不匹配,我本地裝的是oracle11,公司測試庫裝的是oracle10,隨后百度半天,未果。。。。無奈放棄使用命令導出庫,不過內容還是得補全一下,以下導入命令暫未測試,先記錄下

imp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y

即:imp 用戶名/密碼@實例名 file=導入的dmp文件路徑 full=y

----------------------------------------------------------------------------2019-04-02改動---------------------------------------------------

今天正好又需要我挪數據庫數據,我還是更為喜歡用cmd的exp命令來操作,之前是太過粗略了,正好這次記錄下。

首先在執行exp命令之前,先進行如下操作:

1.執行如下sql,該sql執行完的結果將會是查詢出一堆sql語句,例如“alter table APP_AUDIT allocate extent;”這一類的,其中的表名指的就是那些表內無數據內容的表,具體原理我不太懂,反正是將查出的結果sql再全部執行一遍,之后再進行exp命令導出,此時導出來的結果中會包含那些空內容的表,省略該步操作的,會導致導出的dmp中不包含無數據內容的表結構。

select 'alter table '|| table_name || ' allocate extent;'
from user_tables
where num_rows = 0 or num_rows is null;

2.執行如下exp命令,與此前的不同是原先用的full=y,此處用的owner指定用戶對象,這樣導出感覺快很多,原先我用full=y的模式導了十多分鍾跑不完,估計是同一個服務器下其他的數據庫有什么影響吧,我不太懂這塊,反正用full=y的模式我手動終止了文件大小都有2m以上了,而指定owner的情況下導完沒出錯也就800k。

exp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp owner=root

3.正常執行imp命令,這個上面寫的沒啥問題,就是再多個ignore=y,忽略一些錯誤,比如表已經存在啥的

imp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y ignore=y

 


PLSQL導入導出庫

隨后選擇換用了PLSQL工具進行導入導出數據庫,操作順序如下:

第一步:登陸待導出用戶,選擇菜單欄tools——Export User Objects...——彈出的界面選擇相應的user,然后選好output file即保存地址,點擊Export,完成對象導出(此處導出內容包含結構、序列、觸發器等,不包含表數據)

第二步:切換導入用戶,選擇菜單欄tools——Import Tables...——彈出界面選擇SQL Inserts界面,僅修改下面的impor file路徑為第一步導出的sql文件即可,點擊import(完成表結構、序列、觸發器的導入)

第三步:切換導出用戶,選擇菜單欄tools——Export Tables...——選擇全部表,再排除包含clob和bolb字段的表,以及內容特別多的日志表,下面選擇PL/SQL Developer,選擇相應導出地址,點擊Export,完成數據導出,導出的文件是pde文件

第四步:切換導入用戶,選擇菜單欄tools——Import Tables...——彈出界面選擇PL/SQL Developer界面,import file路徑選擇第三步導出的pde文件即可,點擊import,完成數據導入

最后再去處理那些第三步排除掉的那幾個表,這時候就自己想辦法了,我是使用navicat工具同步那幾個表的數據的,因為平時我這個用的比較多,plsql反而用的比較少。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM