237 lines
9.8 KiB
Plaintext
237 lines
9.8 KiB
Plaintext
CREATDB(MUTOS) DABA16 CREATDB(MUTOS)
|
|
|
|
NAME
|
|
creatdb - Erstellen einer Datenbank
|
|
|
|
UEBERSICHT
|
|
creatdb [ -uname ] [ -e ] [ -m ] [ -/+c ]
|
|
[ -/+q ] [ -1 | -2 | -4 | -8 ] dbname
|
|
|
|
|
|
BESCHREIBUNG
|
|
Creatdb erstellt eine neue DABA-Datenbank oder modifiziert
|
|
den Status einer existierenden.
|
|
|
|
Der dieses Kommando fuer das Erstellen einer neuen Datenbank
|
|
ausfuehrende Nutzer wird zum Datenbankadministrator (DBA)
|
|
fuer diese Datenbank. Das Modifizieren einer existierenden
|
|
Datenbank ist nur dem DBA erlaubt. Der DBA hat spezielle
|
|
Befugnisse, die dem gewoehnlichen Nutzer nicht erlaubt sind.
|
|
|
|
Dbname ist der Name der zu erstellenden Datenbank. Dieser
|
|
Name muss ueber die Datenbanknamen aller DABA-Nutzer eindeu-
|
|
tig sein.
|
|
|
|
|
|
Das Flag -u mit dem unmittelbar folgenden Login-Namen
|
|
name gestattet es, sich als Nutzer mit dem Login-Namen name
|
|
auszugeben.
|
|
|
|
|
|
Die Flags -/+c und -/+q spezifizieren Optionen (Auswahlmo-
|
|
eglichkeiten) fuer die Datenbank. Das Flag der Form +x
|
|
schaltet eine Option "ein" und -x die Option "aus".
|
|
|
|
Es gibt die Moeglichkeit, die Seitengroesse der Datenbank an
|
|
das Betriebssystem anzupassen. Unterstuetzt werden Sei-
|
|
tengroessen von 512, 1024, 2048 und 4096 Bytes (2048 und
|
|
4096 Byte nur bei 32-Bit-Rechnern). Durch die Angabe des
|
|
Flags -1 wird eine Datenbank mit einer Seitengoesse von 512,
|
|
durch das Flags -2 mit 1024, durch -4 mit 2048 und durch -8
|
|
mit 4096 Byte erstellt.
|
|
Standard an einem 16-Bit-Rechner ist 1024.
|
|
Die Formen koennen parallel in einem System angelegt wer-
|
|
den. DABA verwaltet diesen Unterschied intern. Datenbanken
|
|
bestimmter Seitengroesse koennen nicht in solche mit einer
|
|
anderen Seitengroesse konvertiert werden, dazu muessen sie
|
|
logisch auskopiert und wieder einkopiert werden
|
|
(copydb(mutos)).
|
|
Das -c Flag schaltet die sogenannte "Gleichzeitigkeitssteue-
|
|
rung" aus (Standard : "ein").
|
|
Das +q Flag schaltet die sogenannte "Anfragenmodifikation"
|
|
ein (Standard : "ein").
|
|
|
|
|
|
Die Gleichzeitigkeitssteuerung sollte niemals ausgeschaltet
|
|
werden, es sei denn fuer Datenbanken, die nie von mehr als
|
|
einem Anwender genutzt werden. Wenn mehrere Nutzer die
|
|
Nutzer-Relationen niemals geteilt (shared) anwenden, so darf
|
|
die Gleichzeitigkeitskontrolle dennoch niemals ausgeschaltet
|
|
werden, da die System-Relationen immer noch geteilt genutzt
|
|
werden. Wenn die Gleichzeitigkeitssteuerung nicht instal-
|
|
liert wurde, wird die Gleichzeitigkeitssteuerung genauso
|
|
reagieren, als waere sie ausgeschaltet.
|
|
|
|
Die Anfragenmodifikation muss eingeschaltet sein, wenn die
|
|
Schutz-, die Integritaets- und Sichten-Subsysteme genutzt
|
|
werden sollen.
|
|
Das Schutz-Subsystem ueberwacht, dass die Befugnisse nicht
|
|
uebertreten werden, das Integritaets-Subsystem die Einhal-
|
|
tung der Integritaetsbedingungen und das Sichten-Subsystem
|
|
gestattet das Definieren und Handhaben der Sichten.
|
|
Es ist zu bemerken, dass mit eingeschalteter Anfragenmodifi-
|
|
kation DABA in einigen Faellen leicht verlangsamt arbeitet.
|
|
Es ist moeglich, fuer eine existierende Datenbank die Anfra-
|
|
genmodifikation einzuschalten, wenn sie ausgeschaltet war.
|
|
Sie kann aber nicht ausgeschaltet werden, wenn sie "ein"
|
|
war.
|
|
|
|
In Datenbanken, fuer die die Anfragenmodifikation ausge-
|
|
schaltet wurde, werden neue Relationen mit allen Befugnissen
|
|
fuer alle Nutzer erstellt. Fuer Datenbanken mit anwendbarer
|
|
Anfragenmodifikation werden neue Relationen standardmaessig
|
|
ohne Zugriffsbefugnis, ausser fuer den Eigentuemer, er-
|
|
stellt.
|
|
|
|
Datenbank-Optionen fuer eine existierend Datenbank koennen
|
|
durch die Spezifikation des -e Flag modifiziert werden. Die
|
|
Datenbank wird entsprechend den spezifizierten Flags an-
|
|
gepasst.
|
|
Beispielsweise schaltet :
|
|
|
|
creatdb -e +q meine_db
|
|
|
|
die Anfragenmodifikation fuer die Datenbank "meine_db" ein
|
|
(Die Gleichzeitigkeitssteuerung bleibt entsprechend der vor-
|
|
herigen Spezifikation erhalten). Nur der Datenbankadmini-
|
|
strator (DBA) darf das -e Flag nutzen.
|
|
|
|
Wenn die Anfragenmodifikation eingeschaltet wurde, werden
|
|
danach neue Relationen ohne Zugriffsbefugnis erstellt. Die
|
|
vorher erstellten Relationen besitzen jedoch noch die Befug-
|
|
nis fuer jedermann.
|
|
Die destroy Anweisung kann benutzt werden, um die globalen
|
|
Befugnisse zu entfernen, nachdem selektive Befugnisse mit
|
|
der permit Anweisung spezifiziert wurden.
|
|
|
|
Der DABA-Systemverantwortliche kann das -u Flag verwenden,
|
|
um einen anderen DBA und nicht sich selbst, anzugeben. Das
|
|
Flag muss unmittelbar vom Login-Namen des zukuenftigen DBA
|
|
gefolgt werden.
|
|
|
|
Das -m Flag zeigt an, dass das MUTOS-Directory, in dem die
|
|
Datenbank residieren soll, bereits existiert. Das wird nur
|
|
benoetigt, wenn das Directory ein montiertes (mounted)
|
|
File-System darstellt, was fuer sehr grosse Datenbanken der
|
|
Fall sein kann. Das Directory muss existieren (als
|
|
.../data/base/dbname ), muss den File-Modus 777 besitzen,
|
|
und alle Files muessen leer sein (siehe BEISPIELE).
|
|
|
|
Der DABA-Systemverantwortliche kann im Directory
|
|
.../data/base ein File erstellen, das eine einzelne Zeile
|
|
als vollstaendigen Pfadnamen der Lokalisation der Datenbank
|
|
enthaelt. Das wird fuer ausgelagerte Datenbanken genutzt.
|
|
Das File muss daba als Eigentuemer und einen File-Modus 600
|
|
besitzen. Wenn die Datenbank erstellt wird, wird sie nicht
|
|
im Directory
|
|
.../data/base sondern entsprechend dem Pfadnamen erzeugt.
|
|
Wenn beispielsweise das File
|
|
.../data/base/peterdb die Zeile
|
|
|
|
/mnt/peter/database
|
|
|
|
enthaelt, wird die Datenbank "peterdb" im Directory
|
|
/mnt/peter/database und nicht in
|
|
.../data/base/peterdb erstellt.
|
|
|
|
BEISPIEL[E]
|
|
creatdb demo
|
|
creatdb -upeter +q peters_db
|
|
creatdb -e +q +c -upeter peters_db
|
|
|
|
creatdb -upeter -c peters_db
|
|
creatdb -e +c peters_db
|
|
|
|
Montiertes Filesystem im DABA-DB-Pfad .../data/base
|
|
|
|
Soll eine Datenbank z.B. db_in_mount auf einem separaten
|
|
Filesystem, das im DABA-Datenbankpfad .../data/base mit
|
|
mount montiert wird, erstellt werden, ist das Folgendes zu
|
|
tun.
|
|
|
|
Der DABA-Systemverantwortliche daba (login: daba) richtet
|
|
das Datenbank-Directory ein und setzt den richtigen File-
|
|
Modus:
|
|
|
|
mkdir .../data/base/db_in_mount
|
|
chmod 777 .../data/base/db_in_mount
|
|
|
|
Der MUTOS-Systemverantwortliche root (login: root) montiert
|
|
im Directory
|
|
|
|
.../data/base/db_in_mount das Filesystem,
|
|
auf dem die Datenbank residieren soll.
|
|
|
|
Der DBA der Datenbank fuehrt folgendes Kommando aus:
|
|
|
|
creatdb -m db_in_mount
|
|
|
|
Vor jeder Benutzung der Datenbank db_in_mount ist dafuer zu
|
|
sorgen, dass das Filesystem montiert worden ist.
|
|
|
|
Das Anlegen von ausgelagerten Datenbanken
|
|
|
|
|
|
|
|
Als ausgelagerte Datenbanken werden solche bezeichnet, die
|
|
nicht, wie ueblich, im Datenbankpfad .../data/base angelegt
|
|
werden. Das kann sinnvoll sein, wenn z.B. mehrere Datenban-
|
|
ken als ein Komplex auf einem separaten Datentraegern an-
|
|
gelegt werden muessen.
|
|
|
|
Ausgelagerte Datenbanken koennen ausschliesslich vom DABA-
|
|
Systemverantwortlichen daba im Auftrage eines anderen Nut-
|
|
zers angelegt werden!
|
|
|
|
Wenn die Datenbank db_aus_mount im Directory
|
|
/mount/peters_dbs existieren, der Nutzer peter der DBA die-
|
|
ser Datenbank sein wird, die mit Anfragenmodifikation und
|
|
Gleichzeitigkeitssteuerung arbeiten soll, ist das Folgende
|
|
zu tun:
|
|
|
|
Der DABA-Systemverantwortliche daba (Login: daba) gibt die
|
|
folgenden Kommandos:
|
|
|
|
login: daba
|
|
passwd:
|
|
|
|
cd data/base
|
|
creatdb -upeter +c +q db_aus_mount
|
|
|
|
In "/mount/peters_dbs"
|
|
koennte ein Datentaeger
|
|
montiert werden.
|
|
|
|
mkdir /mount/peters_dbs/dbs_a
|
|
|
|
chmod 700 /mount/peters_dbs/dbs_a
|
|
|
|
Der File-Name "dbs_a"
|
|
ist ein beliebiger.
|
|
In "/mount/peters_dbs/dbs_a"
|
|
koennte ein Datentraeger montiert werden.
|
|
|
|
mkdir /mount/peters_dbs/dbs_a/db_a
|
|
|
|
chmod 777 /mount/peters_dbs/dbs_a/db_a
|
|
|
|
Der Name "db_a" ist ein beliebiger.
|
|
Hier eine Datentraeger zu montieren
|
|
ist nicht sinnvoll.
|
|
|
|
mv db_aus_mount/* /mount/peters_dbs/dbs_a/db_a
|
|
|
|
rmdir db_aus_mount
|
|
|
|
echo /mount/peters_dbs/dbs_a/db_a >db_aus_mount
|
|
|
|
chmod 600 db_aus_mount
|
|
|
|
|
|
FILES
|
|
.../sys/etc/dbtmplt6.3
|
|
.../data/base/*
|
|
|
|
SIEHE AUCH
|
|
destroydb(mutos), permit(ql), users(files)
|