[英]sid not returned by cfprocparam that is connected to oracle database
[英]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=...
您還應該考慮使用datapump ( expdp
和impdp
)而不是遺留的exp
和imp
,因為您使用的是11g。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.