Zugriff auf die Datenbank tempdb in Microsoft-SQL-Server-DB-Instances in Amazon RDS - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugriff auf die Datenbank tempdb in Microsoft-SQL-Server-DB-Instances in Amazon RDS

Sie können auf die tempdb-Datenbank auf Ihren Microsoft-SQL-Server-DB-Instances auf Amazon RDS zugreifen. Sie können Code auf tempdb mit Transact-SQL über Microsoft SQL Server Management Studio (SSMS) oder über eine andere Standard-SQL-Clientanwendung ausführen. Weitere Informationen zum Herstellen einer Verbindung zur DB-Instance finden Sie unter Herstellen einer Verbindung zu einer DB-Instance in der Microsoft SQL Server-Datenbank-Engine.

Der Hauptbenutzer der DB-Instance erhält CONTROL-Zugriff auf tempdb, so dass dieser Benutzer die tempdb-Datenbankoptionen ändern kann. Der Hauptbenutzer ist nicht der Besitzer der tempdb-Datenbank. Falls notwendig, kann der Hauptbenutzer anderen Benutzern den CONTROL-Zugriff gewähren, damit diese ebenfalls die tempdb-Datenbankoptionen ändern können.

Anmerkung

Für die tempdb-Datenbank können keine Datenbankkonsolenbefehle (Database Console Commands, DBCC) ausgeführt werden.

Ändern der Datenbankoptionen für tempdb

Sie können die Datenbankoptionen für die tempdb-Datenbank auf den Amazon-RDS-DB-Instances ändern. Weitere Informationen darüber, welche Optionen geändert werden können, finden Sie unter tempdb Database in der Microsoft-Dokumentation.

Datenbankoptionen wie z. B. die Optionen für die maximale Dateigröße bleiben nach einem Neustart der DB-Instance bestehen. Sie können die Datenbankoptionen ändern, um die Leistung beim Datenimport zu optimieren und um Speicherplatzmangel vorzubeugen.

Optimieren der Leistung beim Import von Daten

Setzen Sie die Eigenschaften SIZE und FILEGROWTH der Datenbank "tempdb" auf hohe Zahlenwerte, um beim Importieren von großen Datenmengen in die DB-Instance die Leistung zu optimieren. Weitere Informationen zur Optimierung von tempdb finden Sie unter Optimieren der Leistung von tempdb in der Microsoft-Dokumentation.

Im folgenden Beispiel wird die Größe auf 100 GB und das Datenwachstum auf 10 Prozent eingestellt.

alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)

Vorbeugen von Speicherproblemen

Legen Sie einen Wert für die Eigenschaft tempdb fest, damit die MAXSIZE-Datenbank nicht den gesamten verfügbaren Speicherplatz belegt. Im folgenden Beispiel wird diese Eigenschaft auf 2048 MB festgelegt.

alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)

Verkleinern der Datenbank tempdb

Es gibt zwei Möglichkeiten, um die tempdb-Datenbank auf der Amazon-RDS-DB-Instance zu verkleinern. Sie können die Prozedur rds_shrink_tempdbfile verwenden oder einen Wert für die Eigenschaft SIZE definieren.

Verwenden der Prozedur rds_shrink_tempdbfile

Mithilfe der Amazon-RDS-Prozedur msdb.dbo.rds_shrink_tempdbfile verkleinern Sie die tempdb-Datenbank. Sie können rds_shrink_tempdbfile nur aufrufen, wenn Sie CONTROL-Zugriff auf tempdb haben. Durch den Aufruf von rds_shrink_tempdbfile wird keine Betriebsunterbrechung der DB-Instance verursacht.

Die Prozedur rds_shrink_tempdbfile hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

@temp_filename

SYSNAME

Erforderlich

Der logische Name der Datei, die verkleinert werden soll.

@target_size

int

Null

optional

Die neue Größe für diese Datei in Megabytes.

Im folgenden Beispiel werden die Namen der Dateien für die tempdb-Datenbank abgerufen.

use tempdb; GO select name, * from sys.sysfiles; GO

Im folgenden Beispiel wird eine tempdb-Datenbankdatei mit dem Namen test_file verkleinert und die neue Größe auf 10 MB festgelegt:

exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;

Festlegen der Eigenschaft SIZE

Sie können die tempdb-Datenbank auch verkleinern, indem Sie die Eigenschaft SIZE festlegen und anschließend die DB-Instance neu starten. Weitere Informationen zum Neustart der DB-Instance finden Sie unter Neustarten einer DB-Instance.

Im folgenden Beispiel wird die Eigenschaft SIZE auf 1024 MB festgelegt.

alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)

TempDB-Konfiguration für Multi-AZ-Bereitstellungen

Wenn sich Ihre DB-Instance von RDS für SQL Server in einer Multi-AZ-Bereitstellung mit Datenbankspiegelung (DBM) oder AlwaysOn Availability Groups (AGs) befindet, beachten Sie die folgenden Überlegungen für die Verwendung der tempdb Datenbank.

Sie können keine tempdb Daten von Ihrer primären DB-Instance auf Ihre sekundäre DB-Instance replizieren. Wenn Sie ein Failover auf eine sekundäre DB-Instance durchführen, ist tempdb diese sekundäre DB-Instance leer.

Sie können die Konfiguration der tempdb Datenbankoptionen, einschließlich der Einstellungen für Dateigröße und automatisches Wachstum, von Ihrer primären DB-Instance mit Ihrer sekundären DB-Instance synchronisieren. Die Synchronisierung der tempDB Konfiguration wird auf allen Versionen von RDS für SQL Server unterstützt. Sie können die automatische Synchronisierung der tempdb Konfiguration mithilfe der folgenden gespeicherten Prozedur aktivieren:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'TempDbFile';
Wichtig

Bevor Sie die rds_set_system_database_sync_objects gespeicherte Prozedur verwenden, stellen Sie sicher, dass Sie Ihre bevorzugte tempdb Konfiguration für Ihre primäre DB-Instance und nicht für Ihre sekundäre DB-Instance festgelegt haben. Wenn Sie die Konfigurationsänderung auf Ihrer sekundären DB-Instance vorgenommen haben, wird Ihre bevorzugte tempdb Konfiguration möglicherweise gelöscht, wenn Sie die automatische Synchronisierung aktivieren.

Sie können die folgende Funktion verwenden, um zu überprüfen, ob die automatische Synchronisierung der tempdb Konfiguration aktiviert ist:

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

Wenn die automatische Synchronisation der tempdb Konfiguration aktiviert ist, gibt es einen Rückgabewert für das object_class Feld . Wenn es deaktiviert ist, wird kein Wert zurückgegeben.

Sie können die folgende Funktion verwenden, um in UTC-Zeit zu ermitteln, wann Objekte zuletzt synchronisiert wurden:

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Wenn Sie beispielsweise die tempdb Konfiguration um 01:00 Uhr geändert und dann die rds_fn_server_object_last_sync_time Funktion ausgeführt haben, last_sync_time sollte der für zurückgegebene Wert nach 01:00 Uhr liegen, was darauf hinweist, dass eine automatische Synchronisation stattgefunden hat.

Wenn Sie auch die Auftragsreplikation von SQL Server Agent verwenden, können Sie die Replikation sowohl für SQL-Agent-Aufträge als auch für die tempdb Konfiguration aktivieren, indem Sie sie im @object_type Parameter angeben:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';

Weitere Informationen zur Replikation von SQL Server Agent-Aufträgen finden Sie unter Aktivieren der Auftragsreplikation von SQL Server Agent.

Alternativ zur Verwendung der rds_set_system_database_sync_objects gespeicherten Prozedur können Sie eine der folgenden manuellen Methoden verwenden, um sicherzustellen, dass tempdb Konfigurationsänderungen automatisch synchronisiert werden:

Anmerkung

Wir empfehlen, die automatische Synchronisierung der tempdb Konfiguration mithilfe der rds_set_system_database_sync_objects gespeicherten Prozedur zu aktivieren. Die automatische Synchronisation verhindert, dass Sie diese manuellen Aufgaben jedes Mal ausführen müssen, wenn Sie Ihre tempdb Konfiguration ändern.

  • Ändern Sie zuerst die DB-Instance und deaktivieren Sie Multi-AZ. Dann modifizieren Sie "tempdb" und aktivieren abschließend wieder Multi-AZ. Durch diese Methode entsteht keine Ausfallzeit.

    Weitere Informationen finden Sie unter Ändern einer Amazon RDS-DB-Instance.

  • Ändern Sie zuerst tempdb auf der ursprünglichen primären Instance, führen Sie dann manuell ein Failover durch, und ändern Sie dann tempdb auf der neuen primären Instance. Bei dieser Methode kommt es zu einem Ausfall.

    Weitere Informationen finden Sie unter Neustarten einer DB-Instance.