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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Datenbank starten und Verbindung mit ihr herstellen » Mit Datenbankdateien arbeiten

 

Zusätzliche DBSpaces verwenden

Typischer Bedarf für große Datenbanken

Bei den meisten Datenbanken ist eine Datenbankdatei ausreichend. Für Benutzer von großen Datenbanken können jedoch manchmal zusätzliche Dateien erforderlich werden. Zusätzliche Datenbankdateien sind außerdem praktisch, um zusammengehörige Daten in eigenen Dateien zu gruppieren.

Wenn Sie eine Datenbank initialisieren, enthält sie eine Datenbankdatei. Die erste Datenbankdatei wird als Hauptdatei oder System-DBSpace bezeichnet. Standardmäßig werden alle Datenbankobjekte und alle Daten in der Hauptdatei gespeichert.

Ein DBSpace ist eine zusätzliche Datenbankdatei, die zusätzlichen Speicherplatz für Daten bereitstellt. Eine Datenbank kann in bis zu 13 verschiedenen Dateien gespeichert sein (einer Hauptdatei und 12 DBSpaces). Jede Tabelle muss zusammen mit ihren Indizes in einer Datenbankdatei enthalten sein. Der SQL-Befehl CREATE DBSPACE fügt der Datenbank eine neue Datei hinzu.

Temporäre Tabellen werden nur im temporären DBSpace ("temporary") erstellt werden.

Es gibt mehrere Methoden, den DBSpace anzugeben, in dem eine Basistabelle oder ein anderes Datenbankobjekt erstellt wird. In der folgenden Aufzählung haben Speicherorte, die durch Methoden definiert werden, die in der Aufzählung zuerst angegeben sind, Vorrang vor den Methoden, die in der Aufzählung weiter unten stehen.

  1. IN DBSPACE-Klausel (wenn angegeben)

  2. default_dbspace-Option (wenn eingestellt)

  3. DBSpace "system"

Wenn ein DBSpace-Name einen Punkt enthält und nicht in Anführungszeichen steht, generiert der Datenbankserver einen Fehler für den Namen.

Jede Datenbankdatei hat eine zulässige Höchstgröße von 228 (ca. 268 Mio.) Datenbankseiten. So kann beispielsweise eine Datenbankdatei, die mit einer Datenbankseitengröße von 4 KByte eingerichtet wurde, zu einer maximalen Größe von einem Terabyte (228*4 KByte) anwachsen. In der Praxis begrenzt jedoch die zulässige Dateigröße im physischen Dateisystem, in dem die Datei erstellt wurde, die maximale Dateigröße in erheblichem Maße.

Während einige ältere Dateisysteme die Dateigröße auf ein Maximum von 2 GByte beschränken, kann in vielen Systemen, wie etwa in Windows unter Verwendung des NTFS-Dateisystems, die gesamte Datenbankdateigröße genutzt werden. Wenn die Datenmenge in der Datenbank die maximale Dateigröße überschreitet, ist es erforderlich, die Daten auf mehr als eine Datenbankdatei zu verteilen. Außerdem können auch aus anderen Gründen als der Dateigrößenbegrenzung mehrere DBSpaces eingerichtet werden, z.B. um zusammengehörige Objekte zu gruppieren.

Hinweise zur maximal zulässigen Dateigröße auf unterstützten Betriebssystemen finden Sie unter SQL Anywhere-Einschränkungen von Größe und Anzahl.

Sie können die sa_disk_free-Systemprozedur verwenden, um Informationen über den für einen DBSpace verfügbaren Speicherplatz abzurufen. Weitere Hinweise finden Sie unter sa_disk_free_space-Systemprozedur.

Die Systemansicht SYSDBSPACE enthält Informationen zu allen DBSpaces für eine Datenbank. Weitere Hinweise finden Sie unter SYSDBSPACE-Systemansicht.

Vorhandene Datenbanken aufteilen

Wenn Sie vorhandene Datenbankobjekte auf mehrere DBSpaces aufteilen wollen, müssen Sie Ihre Datenbank entladen und die generierte Befehlsdatei (standardmäßig reload.sql benannt) ändern, um die Datenbank neu zu erstellen. In der Datei reload.sql fügen Sie IN-Klauseln der CREATE TABLE-Anweisungen hinzu, um die DBSpaces für alle Tabellen zu bestimmen, die nicht in die Hauptdatei aufgenommen werden sollen.

Berechtigungen für DBSpaces

SQL Anywhere unterstützt Berechtigungen für DBSpaces. Nur die CREATE-Berechtigung wird unterstützt. Die CREATE-Berechtigung ermöglicht es Benutzern, Datenbankobjekte im angegebenen DBSpace zu erstellen. Sie können eine CREATE-Berechtigung für einen DBSpace erteilen, indem Sie eine GRANT CREATE-Anweisung ausführen. Weitere Hinweise finden Sie unter GRANT-Anweisung.

DBSpace-Berechtigungen verhalten sich folgendermaßen:

  • Ein Benutzer, der versucht, ein neues Objekt mit darunterliegenden Daten zu erstellen, muss die CREATE-Berechtigung für den DBSpace haben, in den die Daten platziert werden.

  • Selbst wenn eine GRANT CREATE ON-Anweisung ausgeführt wurde, muss der Benutzer (Berechtigungsempfänger) RESOURCE -Berechtigung haben, um neue Datenbankobjekte zu erstellen.

  • Die aktuelle Liste der Objekte, die in spezielle DBSpaces platziert werden können und die CREATE-Berechtigung erfordern, umfasst Tabellen, Indizes, Textindizes und materialisierte Ansichten. Beachten Sie, dass normale Ansichten und Prozeduren keine darunterliegenden Daten haben und keine CREATE-Berechtigung erfordern.

  • Einem Benutzer kann die CREATE-Berechtigung direkt erteilt werden, oder er kann die Berechtigung durch die Mitgliedschaft in einer Gruppe erben, der die Berechtigung erteilt wurde.

  • Es ist möglich, der PUBLIC-Gruppe die CREATE-Berechtigung für einen bestimmten DBSpace zu erteilen. In diesem Fall kann jeder Benutzer, der auch die RESOURCE-Berechtigung hat, Objekte im DBSpace erstellen.

  • Ein neu erstellter DBSpace erteilt PUBLIC automatisch die CREATE-Berechtigung für sich selbst.

  • Es ist möglich, Berechtigungen zu entziehen, wenn Sie z.B. versuchen, einen DBSpace zu sichern. Berechtigungen für die interne DBSpaces "system" und "temporary" können auch für die Zugriffsteuerung verwendet werden.

  • Das Erstellen von lokalen temporären Tabellen erfordert keine Berechtigungen. DBSpace-Berechtigungen wirken sich nicht auf die Erstellung von lokalen temporären Tabellen aus. Das Erstellen von globalen temporären Tabellen erfordert jedoch RESOURCE- und CREATE-Berechtigung für den DBSpace "temporary".

Siehe auch

DBSpaces erstellen
Speicherplatz für Datenbankdateien vorbelegen
DBSpace löschen