簡體   English   中英

Oracle導出數據庫具有不同的SID

[英]Oracle export database with different SID

我一直在oracle中使用exp和imp命令來導出和導入我的數據庫。

我經常使用

exp My_DB/MyPass file=dump_My_DB_20130729.dmp

imp My_DB/MyPass file=/tmp/dump_My_DB_20130729.dmp fromuser=My_DB touser=My_DB

My_DB是hte user / db,MyPass是密碼。

我的數據庫一直使用SID = orcl

我們的基礎架構團隊現在已經克隆了My_DB數據庫並輸入了另一個SID(orcl2),users / databsae名稱是相同的。 SID是唯一的區別

如何使用exp和imp導出和導入。 我發現這個鏈接描述了設置全局sid變量,我認為它將更新我導出/導入的數據庫。 理想情況下,我想切換命令,所以我不必去改變環境變量。

但是,我無法通過文檔看到這樣做的任何方式

是否有一種簡單的方法來更改出口的SID?

謝謝

如果tnsnames.ora文件中有兩個數據庫的條目,則可以指定要用作連接字符串一部分的TNS別名

exp My_DB/MyPass@orcl2 file=dump_My_DB_20130729.dmp

假設別名設置為與SID同名,如:

orcl=
 (DESCRIPTION= 
   (ADDRESS=(PROTOCOL=tcp)(HOST=my.host)(PORT=1521)) 
   (CONNECT_DATA=(SID=orcl)))
orcl2=
 (DESCRIPTION= 
   (ADDRESS=(PROTOCOL=tcp)(HOST=my.host)(PORT=1521)) 
   (CONNECT_DATA=(SID=orcl2)))

如果您在同一台機器上執行此操作,則數據庫處於打開狀態,那么DBA可能已在全局tnsnames.ora中對其進行了配置。 如果它不存在,或者您想要覆蓋它,則可以創建自己的文件並將環境變量TNS_ADMIN指向它所在的目錄。

它也更有可能包含連接數據部分中的SERVICE_NAME ,而不是SID ,盡管它們可能是相同的。 如果您知道服務名稱,則可以繞過tnsnames.ora文件(如果您願意):

exp My_DB/MyPass@//my.host:1521/<service_name> file=...

您還應該考慮使用datapumpexpdpimpdp )而不是遺留的expimp ,因為您使用的是11g。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM