標籤:
Oracle GoldenGate for Sql Server串連oracle資料庫的時候還是比較容易的,命令列下面只要:
GGSCI> dblogin useridalias [ alias name]
或者
GGSCI> dblogin userid [ user name ] password [ password ]
就好了
如果是在MS SQL Server下面,也可以採用以下命令通過odbc串連:
GGSCI> dblgoin sourcedb [ dsn ]
這裡SQL SERVER和Oracle是不同的,Sql server 用的是dsn名,同樣可以串連好。
但是在進行extract和replicat的時候你會得到以下錯誤:
ERROR OGG-00551 Database operation failed: Couldn‘t connect to DSN001. ODBC error: SQLSTATE 37000 native database error 4060. [Microsoft][SQL Server Native Client 11.0][SQL Server]無法開啟登入所請求的資料庫 "baseapp"。登入失敗。.
在英文系統下面可能是這樣的錯誤:
ERROR OGG-00551 Database operation failed: Couldn’t connect to [ dsn001 ]. ODBC error: SQLSTATE 37000 native database error 4060. [Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot open database “db_name” requested by the login. The login failed.
這種錯誤提示非常的坑,不能按照字面意思去解決這個問題,無論修改odbc裡面dsn的登陸還是sqlserver裡面的授權都沒用,而實際上在GGSCI裡面同樣的操作是沒有問題的。
而解決這個問題的方法很簡單:
開啟Microsoft SQL Server Management Studio,在安全性->登入名稱->選擇NT AUTHORITY\SYSTEM->右鍵->屬性->伺服器角色->勾選sysadmin就可以了
產生這個問題的原因在於GoldenGate的 manager(mgr)服務是以服務的方式啟動並執行,在windows下是SYSTEM賬戶啟動並執行,而SYSTEM賬戶可能沒有許可權訪問Sql server資料庫
另外一個是我們一般安裝Sql server都選的混合模式,所以建立ODBC串連都是使用的整合賬戶登入;
Oracle GoldenGate for Sql Server串連ODBC失敗的處理方法