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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Datenbank starten und Verbindung mit ihr herstellen » SQL Anywhere-Datenbankserver verwenden » Datenbankserver außerhalb der aktuellen Sitzung betreiben

 

Datenbankserver als Daemon unter Unix

Um den Datenbankserver unter Unix im Hintergrund und damit unabhängig von der laufenden Sitzung zu betreiben, können Sie ihn als Daemon ausführen.

Hinweis

Verwenden Sie nicht die Option "&", um den Datenbankserver im Hintergrund auszuführen. Wenn Sie den Unix-Befehl "&" (kaufmännisches "Und") verwenden, um den Datenbankserver im Hintergrund auszuführen, funktioniert dies nicht, weil der Server entweder sofort herunterfährt oder aufhört zu reagieren. Sie müssen den Datenbankserver als Daemon ausführen.

Außerdem gilt: Wenn Sie versuchen, einen Server im Hintergrund aus einem Programm mit der Sequenz fork()-exec() zu starten, wird dies nicht funktionieren. Wenn Sie es tun müssen, fügen Sie die Option -ud der Liste der Datenbankserveroptionen hinzu.

Sie können den Unix-Datenbankserver als Daemon auf eine der folgenden Arten betreiben:

  1. Benutzen Sie die Option -ud, wenn Sie den Datenbankserver starten. Zum Beispiel:

    dbsrv12 -ud demo
  2. Benutzen Sie das Tool "dbspawn", um den Datenbankserver zu starten. Zum Beispiel:

    dbspawn dbsrv12 demo

    Ein Vorteil von "dbspawn" besteht darin, dass der dbspawn-Prozess nicht heruntergefahren wird, bis er bestätigt hat, dass der Daemon gestartet wurde und bereit ist, Anforderungen entgegen zu nehmen. Wenn aus irgendeinem Grund der Daemon nicht startet, ist der Exit-Code für "dbspawn" ein von Null verschiedener Wert.

    Wenn Sie den Daemon direkt mit der Option -ud starten, erstellen die Befehle dbeng12 and dbsrv12 den Daemonprozess und geben ihr Ergebnis sofort zurück (sie werden beendet und der nächste Befehl kann ausgeführt werden), bevor der Daemon sich selbst initialisiert und versucht, eine der im Befehl angegebenen Datenbanken zu öffnen.

    Wenn Sie herausfinden wollen, ob ein Daemon eine oder mehrere Anwendungen ausführt, die den Datenbankserver verwenden werden, können Sie "dbspawn" verwenden, um zu gewährleisten, dass der Daemon läuft, bevor Sie die Anwendung starten. Nachstehend finden Sie ein Beispiel dafür, wie Sie einen Test mit einem csh-Skript ausführen.



    #!/bin/csh
    # start the server as a daemon and ensure that it is
    # running before you start any applications
    dbspawn dbsrv12 demo
    if ( $status != 0 ) then
       echo Failed to start demo server
       exit
    endif
    # ok, now you can start the applications
    ...

    Dieses Beispiel benutzt ein sh-Skript, um zu testen, ob der Daemon läuft, bevor die Anwendungen gestartet werden.



    #!/bin/sh
    # start the server as a daemon and ensure that it is
    # running before you start any applications
    dbspawn dbsrv12 demo
    if [ $? != 0 ]; then
       echo Failed to start demo server
       exit
    fi
    # ok, now you can start the applications
    ...
  3. Starten Sie einen Daemon aus einem C-Programm, wie zum Beispiel:

    ...
    if( fork() == 0 ) {
          /* child process = start server daemon */
          execl( "/opt/sqlanywhere12/bin/dbsrv12",
    "dbsrv12", "-ud", "demo" );
       exit(1);
    }
    /* parent process */
    ...

    Beachten Sie, dass die Option -ud benutzt wird.

 Siehe auch