我有一個在Apache Tomcat上運行並使用H2數據庫的SpringMVC應用程序。 基礎架構包含兩臺運行其自己的Tomcat服務器的應用程序服務器(允許它們命名爲A & B)。我也有一個H2數據庫集羣。H2數據庫集羣恢復
在一個系統(A)我跑以下命令
java org.h2.tools.Server -tcp -tcpPort 9101 -tcpAllowOthers -baseDir server1
另一方(B),我跑
java org.h2.tools.Server -tcp -tcpPort 9101 -tcpAllowOthers -baseDir server2
我開始在機器A
java org.h2.tools.CreateCluster
-urlSource jdbc:h2:tcp://IpAddrOfA:9101/~/test
-urlTarget jdbc:h2:tcp://IpAddrOfB:9101/~/test
-user sa
-serverList IpAddrOfA:9101,IpAddrOfB:9101
羣集
當任何一臺服務器出現故障時,已經提到過,必須刪除失敗的數據庫,重新啓動服務器,然後重新啓動運行CreateCluster。
我有以下問題嗎?
- 如果兩個服務器都下來,我怎麼能確定,該數據庫 刪除,這樣我可以重新啓動服務器並重新運行集羣?
- CreateCluster包含一個urlSource和urlTarget。我需要是 具體爲給他們與先前給出的相同的價值或我 可以互換他們沒有任何副作用?
- 我是否需要從兩臺機器運行CreateCluster命令? 如果是這樣,我是否需要交換urlSource和urlTarget?
- 有沒有辦法知道這兩個服務器是否都是 正在運行?我希望如果兩個IP地址都是 ,那麼兩個IpAddress都會返回,如果只有一個IP地址,則返回一個IpAddress,否則沒有任何一個全部都是 。