ORACLE 從一個實例遷移到另一個實例實戰記錄

 

ORACLEschema的數據遷移linux

 

測試環境server不夠,而同事需要新的oracle環境。把生產環境的數據拉一份過來搭建內部的系統跑;這個實例使用頻率不高而且需要的資源不是很是多,因此準備在原有的負載不高的oracleserver上,又一次開一個新的實例,這樣可以節省數據庫server資源。數據庫

 

 

 

1DBCA建庫

         使用DBCA在linux上創建第二個oracle實例,詳細搭建過程參考:http://blog.csdn.net/mchdba/article/details/51418063session

 

 

2、從線上導出數據庫

         因爲線上的環境和新的實例不同,因此假設使用rman備份的話。在恢復的時候就需要設置很是多參數。不是太方便。因此準備使用expdp來進行數據的導出,而後使用impdp進行數據的導入工做。antd

 

         線上主要有2個schemas,因此導出2個schema的數據就能夠。一個是powerdesk、一個是plas。oracle

 

(2.1) 導出數據

         expdppowerdesk/pl_eahys0418 DIRECTORY=dir_dp DUMPFILE=powerdesk_20160829.dmpschemas=powerdesk  LOGFILE=zxg.log;post

         expdppowerdesk/pl_ethys0418 DIRECTORY=dir_dp DUMPFILE=plas_20160829.dmp schemas=plas LOGFILE=zxg.log;spa

        

(2.2) 數據傳輸

[oracle@azure_earth_dbm1_3_111 dir_dp]$ scpplas_20160829.dmp powerdesk_20160829.dmp 192.168.121.61:/home/oracle/.net

The authenticity of host '192.168.121.61(192.168.121.61)' can't be established.server

RSA key fingerprint is0a:c7:1c:89:1d:9d:a2:e1:6c:36:68:d9:18:b4:ab:cc.blog

Are you sure you want to continueconnecting (yes/no)? yes

Warning: Permanently added '192.168.121.61'(RSA) to the list of known hosts.

oracle@192.168.121.61's password:

plas_20160829.dmp                                                                                                                                                                                                                          100% 1067MB   5.4MB/s   03:16   

powerdesk_20160829.dmp                                                                                                                                                                                                                     100%   13GB  4.9MB/s   44:24   

[oracle@azure_earth_dbm1_3_111 dir_dp]$

 

 

 

3、在新的實例上準備帳號

在使用impdp的時候,可以先建立對應的schema帳號。這樣導入的時候,可以進行schema到schema之間的數據遷移。

(3.1) 建立新的表空間

         createtablespace powerdesk  

         logging 

         datafile'/home/oradata/ysdb3/powerdesk01.DBF'

         size50m 

         autoextendon 

         next50m  

         extentmanagement local; 

 

         createtablespace plas  

         logging 

         datafile'/home/oradata/ysdb3/plas01.DBF'

         size50m 

         autoextendon 

         next50m  

         extentmanagement local;   

        

 

(3.2) 建立新的用戶

         CREATEUSER powerdesk PROFILE "DEFAULT"    IDENTIFIED BY "powerdes0418" DEFAULT TABLESPACE"POWERDESK"     ACCOUNT UNLOCK;

        

         CREATEUSER plas PROFILE "DEFAULT" IDENTIFIED BY "plas0418"DEFAULT TABLESPACE "PLAS"    ACCOUNT UNLOCK;

 

(3.2) 給新的用戶賦權

         grantconnect,resource to powerdesk;

         Grantdba to powerdesk;

 

         grantcreate session to plas;

         grantconnect,resource to plas;

        

 

4、在新的實例上導入數據

(4.1) 準備文件夾

         # 先創建導入文件夾

         createdirectory dir_dp1 as '/home/oracle/';

 

         # 賦予文件夾權限

         grantcreate,write,read to dir_dp1;

 

         # 賦予用戶對文件夾的操做權限

         Grantread,write on directory dir_dp1 to powerdesk;

         Grantread,write on directory dir_dp1 to plas;

 

        

(4.2) 使用IMPDP導入數據  

time impdp system/yueworldpddirectory=dir_dp1 dumpfile=powerdesk_20160829.dmpREMAP_SCHEMA=powerdesk:powerdesk TABLE_EXISTS_ACTION=REPLACE PARALLEL=8

 

time impdp system/yueworldpd directory=dir_dp1dumpfile=plas_20160829.dmp REMAP_SCHEMA=plas:plas TABLE_EXISTS_ACTION=REPLACEPARALLEL=8

 

 

 

5schema1schema2的遷移

Oracle 從一個用戶expdp導出再impdp導入到還有一個用戶,可以使用REMAP_SCHEMA=user1:user2來實現:

        

假設想導入的用戶已經存在:

         1.導出用戶 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp

         2.導入用戶 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmpREMAP_SCHEMA=user1:user2 EXCLUDE=USER

 

假設想導入的用戶不存在:

         1.導出用戶 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp

         2.導入用戶 impdp system/passsystem directory=dumpdir dumpfile=user1.dmpREMAP_SCHEMA=user1:user2

         3.user2會本身主動創建,其權限和使用的表空間與user1一樣,但此時用user2沒法登陸,必須改動user2的密碼

相關文章
相關標籤/搜索