SAP SQL Anywhere-Datenbank über dbinit erstellen

Datenbanken über dbinit erstellen

Es gibt mehrere Möglichkeiten, eine SQL Anywhere-Datenbank zu erstellen:

  1. über einen grafischen Assistenten im Datenbank-Browser SQL Central
  2. auf der Kommandozeile über das Dienstprogramm dbinit
  3. über eine CREATE DATABASE-Anweisung im iSQL-Tool

In diesem Artikel gehe ich nur auf die Erstellung über das Dienstprogramm dbinit ein.

Dienstprogramm dbinit

Mit Hilfe des Dienstprogrammes dbinit kann über eine Kommandozeile ganz schnell eine Datenbank erstellt werden. Der Vorteil dieses Programmes ist, dass sich der Aufruf auch einfach in ein Skript integrieren lässt.

Folgende Angaben sind zwingend oder sinnvollerweise notwendig:

Bei der Eingabe dieses Befehls in einer Kommandozeile (z.B. Eingabeaufforderung unter Windows) empfiehlt es sich, dass gewünschte Zielverzeichnis für die Anlage der Datenbank bereits erzeugt zu haben und in der Eingabeaufforderung dann in dieses Verzeichnis zu wechseln.

cd C:\Temp\Irgendwohinmkdir DbDircd DbDir

Hat man das Verzeichnis mit den SQL Anywhere-Dienstprogrammen nicht über die Pfad-Umgebungsvariable bekannt gemacht, dann muss man das Dienstprogramm über den vollen Pfad aufrufen. Im Fall meiner SQL Anywhere 17-Installation wäre das:

“C:\Program Files\SQL Anywhere 17\Bin64\dbinit.exe”

Wichtig sind die Anführungszeichen, da der Pfad Leerzeichen beinhaltet!

Jetzt rufen wir das Dienstprogramm auf und erzeugen die Datenbank:

“C:\Program Files\SQL Anywhere 17\Bin64\dbinit.exe”-dba NameDesDbAdminUsers,ganzSchwierigesPasswort-p 4kdatenbankname.db

Im aktuellen Verzeichnis (DbDir) entsteht jetzt die Datenbankdatei datenbankname.db. Sie hat eine Seitengröße von 4 kB und der Adminuser heißt NameDesDbAdminUsers.

Da wir keine Angaben zum Transaktionslog gemacht haben, heißt das Transaktionslog datenbankname.log und befindet sich im gleichen Verzeichnis. Es gibt keinen Transaktionslogspiegel.

Während der Erstellung zeigt das Dienstprogramm eine Reihe von Ausgaben:

SQL Anywhere-Dienstprogramm Initialisierung Version 17.0.4.2053CHAR-Kollatierungssequenz:  1252LATIN1(CaseSensitivity=Ignore)CHAR-Zeichensatzkodierung:  windows-1252NCHAR-Kollatierungssequenz:  UCA(CaseSensitivity=Ignore;AccentSensitivity=Ignore;PunctuationSensitivity=Primary)NCHAR-Zeichensatzkodierung:  UTF-8Datenbank ist nicht verschlüsseltSystemtabellen werden erstelltSystemansichten werden erstelltOptionswerte werden gesetztDatenbank “datenbankname.db” erfolgreich erstellt

Datenbank starten

Die neu angelegte Datenbank existiert jetzt, aber der Server hat sie nicht gestartet.

Über die gleiche Kommandozeile kann man diese jetzt einfach mal testweise starten. Ich verwende dazu das Programm dbeng17.exe - den sog. Personal Server. Das ist ein Datenbankserver, der nur zum lokalen Test (z.B. für Entwickler) gedacht ist.

Diesem Programm übergibt man einfach den Namen der zu startenden Datenbank:

“C:\Program Files\SQL Anywhere 17\Bin64\dbeng17.exe” datenbankname.db

Rechts unten im Tray (unter Windows) sieht man dann ein kleines Blitz-Symbol. Über das Kontextmenü lässt sich Wiederherstellen aufrufen. Dann öffnet sich ein Datenbankfenster, das die jeweils aktuellen Ausgaben des Servers anzeigt.

https://www.sqla.de/content/images/2019/03/grafik-2.png

Die Datenbank ist also vom Server gestartet worden. Im Verzeichnis ist jetzt eine weitere Datei enstanden, datenbankname.log. Das ist das Transaktionslog.

$ dirVerzeichnis von D:\DEV\SQLA\Datenbank-anlegen\DbDir11.03.2019  08:49              .11.03.2019  08:49              ..11.03.2019  08:49         2.613.248 datenbankname.db11.03.2019  08:49             4.096 datenbankname.log2 Datei(en),      2.617.344 Bytes

Über Herunterfahren kann jetzt die Datenbank wieder gestoppt werden.

#Admin