[英]Many hosts in jdbc connection to teradata
我們正在使用jdbc網址,例如:
jdbc:teradata://10.77.59.100/DATABASE=MY_DB, CHARSET=UTF8
現在,我的jdbc連接有問題,因為我們的teradata數據庫在群集模式下工作。 我試着寫:
jdbc:teradata://10.77.59.100,10.77.59.101/DATABASE=MY_DB, CHARSET=UTF8
但這是行不通的。
是否可以在jdbc url中設置第二個Teradata服務器,它如何在MySQL中工作? 例如:
jdbc:mysql://192.168.29.20:3306,192.168.29.20:6306/mysql
謝謝!
通常,當Teradata環境配置有多個節點時,IP地址將映射到DNS中的多個COP條目。 然后,您可以為JDBC連接提供不帶COP后綴的主機名,它將隨機選擇一個COP條目來嘗試連接。 如果第一個COP條目未成功,它將嘗試另一個。
jdbc:teradata://DatabaseServerName/database=MY_DB,CHARSET=UTF8
然后COP發現將嘗試DatabaseServerNameCOP1
然后DatabaseServerNameCOP2
,直到耗盡可用COP條目或超時。
可以將COP發現功能作為連接字符串中的參數禁用: COP=OFF
。 然后,JDBC將僅嘗試使用指定的主機名。
我為此問題發布了最終解決方案。 我在主機文件中添加了映射到多個COP條目的IP地址。
10.77.51.100 intd1 intd1cop1 intdcop1
10.77.51.101 intd2 intd2cop1 intdcop2
10.77.51.102 intd3 intd3cop1 intdcop3
10.77.51.103 intd4 intd4cop1 intdcop4
然后,我設置JDBC連接字符串。 Teradata主機名,不帶COP后綴。
jdbc:teradata://intd/database=MY_DB,CHARSET=UTF8
現在,如果其中一個節點不可用,我們將自動切換到隨機選擇的另一個節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.