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
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
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 |
---|---|---|---|---|
|
SYSNAME |
— |
Erforderlich |
Der logische Name der Datei, die verkleinert werden soll. |
|
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 danntempdb
auf der neuen primären Instance. Bei dieser Methode kommt es zu einem Ausfall.Weitere Informationen finden Sie unter Neustarten einer DB-Instance.