Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Pflege der Datenbank » SQL Anywhere-Hochverfügbarkeitsoptiopn » Datenbankspiegelungssystem einrichten

 

Systemereignisse bei der Datenbankspiegelung

Die folgenden Systemereignisse werden bei der Datenbankspiegelung unterstützt:

  • MirrorFailover   Dieses Ereignis wird jedesmal ausgelöst, wenn ein Datenbankserver Eigentümer der gespiegelten Datenbank wird. Es wird z.B. ausgelöst, wenn ein Server erstmals startet und bestimmt, dass er der Eigentümer der Datenbank sein soll. Es wird auch ausgelöst, wenn ein Server, der bisher als Spiegelserver gedient hat, feststellt, dass der Primärserver ausgefallen ist, und nach Beratungen mit dem Arbiterserver bestimmt, dass er Eigentümer werden soll.

  • MirrorServerDisconnect   Wenn die Verbindung zwischen dem Primärserver und dem Spiegel- oder Arbiterserver getrennt wird, wird das Ereignis MirrorServerDisconnect ausgelöst. Im Handler für dieses Ereignis ist der Wert von EVENT_PARAMETER( 'MirrorServerName' ) der Name des Servers, dessen Verbindung verloren ging.

Ereignisse werden auf einem Server nicht ausgelöst, wenn dieser derzeit als Spiegelserver agiert. Überdies können Spiegelungsereignisse nicht für die Ausführung auf einem Arbiterserver definiert werden, da Ereignisse nur im Kontext der Datenbank ablaufen, in der sie definiert wurden, und der Arbiterserver keine Kopie der gespiegelten Datenbank verwendet.

Sie können diese Ereignisse als einen Mechanismus verwenden, um Benachrichtigungen via E-Mail zu senden, dass möglicherweise Aktionen in der Spiegeldatenbank erforderlich sind. Diese Ereignisse werden möglicherweise nicht in allen Situationen ausgelöst, die dazu führen, dass die auf dem Primärserver laufende Datenbank nicht verfügbar ist. Ein Stromausfall, der den Primär- und den Spiegelserver betrifft, würde z.B. verhindern, dass eines dieser Ereignisse ausgelöst wird. Wenn diese Art von Überwachung erforderlich ist, kann sie auf einem separaten Computer mittels einer Skriptsprache implementiert werden, wobei "dbping" periodisch aufgerufen wird, um sich mit der Spiegeldatenbank zu verbinden. Siehe Ping-Dienstprogramm (dbping).

Das folgende Beispiel erstellt ein Ereignis, das einen Administrator benachrichtigt, wenn ein Failover auftritt:



CREATE EVENT mirror_server_unavailable
TYPE  MirrorServerDisconnect 
HANDLER
BEGIN
 CALL xp_startmail ( mail_user ='George Smith',
                     mail_password ='mypwd' );
 CALL xp_sendmail( recipient='DBAdmin',
    subject='Mirror server disconnect occurred',
    "message"='The following server is unavailable in the mirroring system: '
    || event_parameter( 'MirrorServerName' ) );
 CALL xp_stopmail ( );
END;
 Siehe auch