障害リカバリ・スクリプトの作成
障害を検出した後、クラスタ・マネージャは、障害リカバリの疑似コードで示されたプロシージャを効果的に実行するスクリプトを実行する必要があります。
Detect problem {
if (Master == unavailable) {
FailedDataDatabase = Master
FailedDSN = Master_DSN
SurvivorDatabase = Subscriber
switch users to SurvivorDatabase
}
else {
FailedDatabase = Subscriber
FailedDSN = Subscriber_DSN
SurvivorDatabase = Master
}
}
Fix problem....
If (Problem resolved) {
Get state for FailedDatabase
if (state == "failed") {
ttDestroy FailedDatabase
ttRepAdmin -dsn FailedDSN -duplicate
-from SurvivorDatabase -host SurvivorHost
-uid ttuser
-pwd ttuser
}
else {
ttAdmin -repStart FailedDSN
}
while (backlog != 0) {
wait
}
}
Switch users back to Master.これは、マスターまたはサブスクライバのいずれかのデータベースに適用します。マスターで障害が発生すると、一部のトランザクションが失われる場合があります。