27.05.2002

Prozeduren:
Die sp_configure beinhaltet die Einstellungen einer Instanz wie name oder value-Werte
Die sp_dboption-Prozedur lässt sich an oder abschalten und laesst damit Massenkopien, Einzelbenutzermodi und Transaktionsprotokolle aus. Letztere werden damit komplett ausgeschaltet.
Die sp_help gibt fast saemtliche Informationen ueber ein Projekt aus, u.a. Spaltenanzahl, Datentypen, etc. aehnlich wie im Enterprise-Manager.
sp_lock, sp_spaceused gibt Informationen ueber verfuegbaren Speicherplatz bezogen auf die Datenbank sowie ueber die Fuellmenge der Reihen, usw.
sp_who gibt Info's zu Logins und ueber laufende Prozesse.

NTFS-Rechte:

Obwohl wir testweise einem Rechner alle NTFS-Rechte fuer andere Benutzer entzogen haben, hat der Anmeldename der SQL-Datenbank, in unserem Fall SQL2, Zugriffsrechte zum Erstellen von Datenbanken. Der Grund ist, dass wir diesen Benutzer zur lokalen Gruppe der Administratoren hinzugefuegt haben. Zudem hat derjenige, der sich an dem SQL-Server anmeldete, Domaenenadministrator-Rechte. Das laesst folgende Schluesse zu. Der SQL-Server verbindet sich zum einen auf zwei Verbindungsprotokollen. Auf IP-Sockets (Port 1344) und auf Named Pipes. Letzteren interessieren Freigaberechte zum Beispiel ueberhaupt nicht. Der SQL-Server simuliert dem W2k-System unter anderem die als remote angemeldeten Benutzer als lokale.

Bezeichnungsvorgaben fuer DB's

Das erste Namenszeichen darf ein Unterstrich (_) oder Buchstabe sein. Nichts anderes! WEitere Namenszeichen duerfen das Dollarzeichen ($), Buchstaben oder Zahlen sein. Auf der sicheren Seite ist man, wenn die Datenbanken mit nicht mehr als 8 Zeichen geschrieben wird. (Es funktioniert allerdings bis zu 14 oder 16 Zeichen fast immer problemlos.) Weiterhin sollte man keine Experimente mit Unterscheidung zwischen Gross- und Kleinschreibung veranstalten. ADABAS konnte beispielsweise auf Tabellenebene nur Grossschreibung. Tabellen sollten ebenfalls keine Sonder- und Leerzeichen im Namen beinhalten. Dass man reservierte Woerter (Backup, Plan, Name, Exec, ID, etc.) nicht benutzen sollte, ist trivial.

Die Datenbank, die Geschwindigkeitsmaessig die wichtigste Rolle spielt, ist die TempDB. Deswegen bekommt diese ein eigenes Speicherplatzsystem...

Will man die Dateien getrennt oder zusammen verschieben, die eine Datenbank ausmachen, muss man mit RM in Alle Tasks die Datenbank trennen. Natuerlich sollte man geschaut haben, wo sich die Datenbank befindet. Danach gehe ich mit dem Explorer bei und verschiebe die Datenbankdateien. Danach gehe ich in den jew. Instanznamen und mit RM auf Datenbank anhaengen in Alle Tasks. Der Pfad laesst sich auswaehlen und der Name der Datenbank laesst sich aendern. Mit einem Klick auf OK und der Bestaetigungsmeldung ist die Datenbank wieder online und erscheint in unserer Instanz. Allerdings kann man das Trennen auch mit einer Prozedur ausloesen (sp_detach_db [Name DB], true). Zum Anhaengen verwendet man folgenden Befehl: sp_attach_db [Name DB] , @filename = '[Pfad der .mdf-Datei]'.

Wir haben uns fuer einen Teil unserer MCDBA-Zeit fuer ein Projekt entschieden, welches folgende Eckdaten beinhaltet:

Wir haben als Projekt fuenf Server mit folgenden Daten:

SRV M SRV 1 SRV 2 Heim 1 Heim 2
NT4 / SQL 6.5 NT4 / SQL 6.5 NT4 / SQL 6.5 W2k / SQL 6.5 W2k / SQL 6.5
jede Nacht Abgleich
jede Nacht Sicherung
Abgleich mit M (Master) gelegentlich
Sicherung gelegentlich

SRV M steht mit SRV 2 ueber eine Standleitung 56kB in Verbindung.
SRV M steht mit SRV 1 ueber eine 256 KB-Standleitung in Verbindung.
Die beiden Heim-Server gleichen sich mit dem Master ueber 64-128kB-Leitungen ab, welche keine Standleitungen sind.

Die Datenbankstrukturen sind identisch, aber die Daten variieren. Ebenso wie die DB-Groesse, welche zwischen 800 MB und 3,5 GB schankt. Die Prozeduren schwanken ebenfalls von ihrem Aufbau her auf den versch. Servern.
Alle Standorte koennen auf jeden Server mit ihrem FrontEnd zugreifen, wobei jeder Server auch einen Standort darstellt.
Die Standorte rufen die Kopfzeilen auf und sehen ihre Daten, allerdings wird bei weiteren Fragen eine ODBC-Verbindung zu dem jew. DB-Server aufgebaut und der Rest der Daten in Erfahrung gebracht. Durch die relativ kleine Uebertragung der Kopfdaten nachts ergibt sich die unterschiedl. Groesse der DB's.
 
Als Ziel haben wir folgende Punkte: