ORACLE 이색 구조 연결

ORACLE    
 、WHERE TO DO:
    
ORACLE  :  Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production(GBK)
target DB :SYBASE Adaptive Enterprise 15.0.2 (utf8)
		   DB2/AIX64 9.7.2
Transparent Gateway:11g R2

 、HOW TO DO:
oracle            ,    :
1. Generic Heterogeneous Services,      
        non-oracle db client,     odbc        ,  oracle  hs     odbc   dblink        。
2. Transparent Gateway,    
        ,    non-oracle db    ,          ,  dblink      。

 、DO:
1. Generic Heterogeneous Services,        DB2    
    :   target non-oracle db odbc     ,    hs         dblink  。
          odbc  db      ,   client  。
           :
   1)  odbc 
         db  odbc       ,      db2  ,         。
   2)   initdg4odbc.ora      HS_FDS_CONNECT_INFO
      ORACLE_HOME>\hs\admin   init<SID Name>.ora,  sid name  ,   sid         。         :initDB2.ora
            
     HS_FDS_CONNECT_INFO=DB2  
     (  DB2 odbc    ,     DB2 )
   3)    
                  。(             )
     LISTENER=
  (DESCRIPTION_LIST=
    (DESCRIPTION=
      (ADDRESS LIST=
        (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = 1521))
      )
    )
  )
   SID_LIST_LISTENER =
    (SID_DESC =
      (PROGRAM = dg4odbc)
     (SID_NAME = DB2)   
       (ORACLE_HOME = C:\oracle\ora)
     )
   )
  :PROGRAM = dg4odbc,11g      hsodbc
      SID_NAME = DB2,DB2 init<SID Name>.ora SID Name.
      ORACLE_HOME = C:\oracle\ora, Home  。
   4)    dblink  。
    create database link to_db2 connect to <username> identified by <password> using 
    '
    (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST =<your Oracle host machine>)(PORT = 1521))
     )
    (CONNECT_DATA =
       (SID = DB2)
     )
     (HS=OK)
   )
    '
  :    tnsname  , (HS=OK)    。
    5)    ok
    6)Done

2. Transparent Gateway,      sybase    
    :      ,         dblink  。
         odbc,   non-oracle db client  ,    Transparent Gateway。
          :
    1)       home   tg4***,   tg4sybs  
                  db  ,       。    oracle     。      admin  ,  initdg4sybs.ora    ,    init< Gateway SID>.ora,Gateway SID            。
           oracle  ,     。   
    HS_FDS_CONNECT_INFO=[10.11.11.11]:4100/data 
    HS_FDS_TRACE_LEVEL=OFF
 	HS_FDS_RECOVERY_ACCOUNT=RECOVER
	HS_FDS_RECOVERY_PWD=RECOVER
    2)    
    LISTENER=
  (DESCRIPTION_LIST=
    (DESCRIPTION=
      (ADDRESS LIST=
        (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = 1521))
      )
    )
  )
   SID_LIST_LISTENER =
    (SID_DESC =
      (PROGRAM = dg4sybs)
     (SID_NAME = dg4sybs)   
       (ORACLE_HOME = C:\product\11.2.0\tg_1)
     )
   )
  :PROGRAM = dg4sybs,     ,       db     ,    dg4***  
      SID_NAME = dg4sybs,dg4sybs init<Gateway SID>.ora Gateway SID.
      ORACLE_HOME = C:\product\11.2.0\tg_1,    home  。
                              home    NETWORK 
   3)  dblink
	create database link to_sybase connect to <username> identified by <password> using 
    '
    (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST =<your Oracle host machine>)(PORT = 1521))
     )
    (CONNECT_DATA =
       (SID = dg4sybs)
     )
     (HS=OK)
   )
  :    tnsname  , (HS=OK)    。sid init<Gateway SID>.ora   sid
   4)    ok
   5)Done

 、SUMMARY
                 :
                 odbc                     odbc  ,           ,       。
	           ,        。
          ,             ,                 。          odbc,       。
    sybase             ,        " ",  oracle              。

 、TROUBLESHOOTING
   1.ORA-28528:               
     [oracle][odbc sybase wire protocol driver]string data,right truncated.error in column 3.{01004}
    ora-02063:   2Line(  to_sybase)
   ORA-28528:
Heterogeneous Services datatype conversion error Cause: Either an Oracle datatype could not be converted to a non-Oracle datatype, or a non-Oracle datatype could not be converted to an Oracle datatype. The following are possible reasons for for the conversion failure: -- overflow problems (in the case of numbers) -- length limitations (in the case of character strings) -- invalid values passed into the conversion routines
Action: Contact customer support of the agent vendor. If the problem is due to size discrepancies between Oracle and the non-Oracle system, it may not be possible to convert the value

2.ora-28511:      sid=……           rpc  
ORA-28511:
lost RPC connection to heterogeneous remote agent using SID=string Cause: A fatal error occurred in one of the following places: -- the connection between the ORACLE server and the agent -- the heterogeneous services remote agent itself -- the connection to the non-Oracle system This error occurred after communication had been established successfully.
Action: Check for network problems and remote host crashes. The problem is probably in the agent software. If so, contact a customer support representative of the agent vendor.
sybase        odbc    db        ,    odbc      ,      ,     。        。

3.ora-28500:  oracle  oracle        :[MICROSOFT][ODBC       ]                  
     :      ,sid     。      。

4.ora-28500:  oracle  oracle        :[IBM][CLI DRIEVER] SQL30082N        ,      “24”("username and/or password invalid").sqlstate=08001
  :   、     。ora-28500              。

5.ora-02050:    4.7.2886   ,            
ORA-02050:
transaction string rolled back, some remote DBs may be in-doubt Cause: network or remote failure in 2PC.
Action: Notify operations; remote DBs will automatically re-sync when the failure is repaired.
  : dba         ,       。
      dbms_transaction.purge_lost_db_entry('4.7.2886');commit;
            。
phase       local_state    remote_state       action
prepare     collecting           /              DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY
             prepared             /        	  rollback force PURGE_LOST_DB_ENTRY
commit      prepared        commited        commit force       PURGE
             commited        commited             PURGE_LOST_DB_ENTRY
forget      commited            /         	  PURGE_LOST_DB_ENTRY

좋은 웹페이지 즐겨찾기