Oracle
為沒有 DB_DOMAIN 的數據庫創建 Oracle DB LINK
我正在嘗試在這兩個數據庫之間創建一個數據庫連結。
我的本地數據庫是 11.2.0.3。
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- MYDB.DOMAINNAME SQL> select name, value from v$parameter where name in ('db_name', 'db_domain', 'global_names'); NAME VALUE -------------------- ---------------------------------------- db_domain global_names TRUE db_name mydb
遠端 DB 為 11.2.0.2,配置如下:
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- myremotedb SQL> select name, value from v$parameter where name in ('db_name', 'db_domain', 'global_names'); NAME VALUE -------------------- ---------- db_domain global_names FALSE db_name myremotedb
我想在本地數據庫中創建一個 DBLINK 到遠端數據庫。
我的 tnsnames(mydb 的機器)配置如下:
REMOTE-DATABASE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 192.168.1.2)(Port = 1521)) ) (CONNECT_DATA = (SID = myremotedb) ) )
然後,當我嘗試在本地數據庫中創建數據庫連結時,由於 global_names 參數設置為 true,oracle 將本地域名附加到數據庫連結名稱
SQL> create database link myremotedb@myuser connect to myuser identified by mypasswd using 'REMOTE-DATABASE'; Enlace con la base de datos creado. SQL> select db_link from user_db_links; DB_LINK ------------------------------ MYREMOTEDB.DOMAINNAME@MYUSER
如果我嘗試使用它,它會失敗
SQL> select * from dual@MYREMOTEDB@MYUSER; select * from dual@MYREMOTEDB@MYUSER * ERROR en línea 1: ORA-02085: database link MYREMOTEDB.DOMAINNAME@MYUSER connects to MYREMOTEDB SQL> select * from dual@MYREMOTEDB.DOMAINNAME@MYUSER; select * from dual@MYREMOTEDB.DOMAINNAME@MYUSER * ERROR en línea 1: ORA-02085: database link MYREMOTEDB.DOMAINNAME@MYUSER connects to MYREMOTEDB
在這種情況下如何創建此數據庫連結?
遠端數據庫沒有 db_domain。如何強制 oracle 創建一個沒有域名的 DBLINK?
問候!
你能告訴我們你的sqlnet.ora文件的內容嗎?
域名應在此處列出:
NAMES.DEFAULT_DOMAIN = domain.com.xxx
如果您沒有,請使用 netca 工具創建一個新的 sqlnet.ora 文件。- 創建該文件後,編輯它並使用您的域名添加條目!
太好了……是的,它正在工作
global_name=FALSE
。我正在測試將 expdp 轉儲文件從 onprim 上傳到 AWS RDS ..
**** SCRIPT STARTED Session: NKIM3@LIMSDEV3(3) 4/1/2019 4:18:41 PM **** BEGIN DBMS_FILE_TRANSFER.PUT_FILE( source_directory_object => 'DATA_PUMP_DIR', source_file_name => 'expdp_msrt_md_201904011535_file01.dmp', destination_directory_object => 'DATA_PUMP_DIR', destination_file_name => 'expdp_msrt_md_201904011535_file01.dmp', destination_database => 'to_rds2' ); END; ==> PL/SQL block executed -------------------------------------------------------------------------------- **** SCRIPT ENDED 4/1/2019 4:19:48 PM **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^