Accès à la base de données tempdb sur des instances de base de données Microsoft SQL Server sur Amazon RDS - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès à la base de données tempdb sur des instances de base de données Microsoft SQL Server sur Amazon RDS

Vous pouvez accéder à la base de données tempdb sur vos instances de base de données Microsoft SQL Server sur Amazon RDS. Vous pouvez exécuter le code sur tempdb à l'aide de Transact-SQL via Microsoft SQL Server Management Studio (SSMS) ou via toute autre application cliente SQL standard. Pour plus d'informations sur la connexion à votre instance de base de données, consultez Connexion à une instance de base de données exécutant le moteur de base de données Microsoft SQL Server.

L'utilisateur principal pour votre instance de base de données bénéficie d'un accès CONTROL à tempdb afin qu'il puisse modifier les options de la base de données tempdb. L'utilisateur principal n'est pas le propriétaire de la base de données tempdb. Si nécessaire, l'utilisateur principal peut accorder un accès CONTROL à d'autres utilisateurs afin qu'ils puissent eux aussi modifier les options de la base de données tempdb.

Note

Vous ne pouvez pas exécuter de commandes DBCC (Database Console) sur la base de données tempdb.

Modification des options de la base de données tempdb

Vous pouvez modifier les options de base de données sur la base de données tempdb sur vos instances de base de données Amazon RDS. Pour plus d'informations sur les options qui peuvent être modifiées, veuillez consulter Base de données tempdb dans la documentation Microsoft.

Les options de base de données telles que les options de taille maximale des fichiers sont persistantes une fois que vous redémarrez votre instance de base de données. Vous pouvez modifier les options de base de données pour optimiser les performances lors de l'importation des données et pour éviter le manque d'espace de stockage.

Optimisation des performances lors de l'importation de données

Afin d'optimiser les performances lors de l'importation de grandes quantités de données dans votre instance de base de données, définissez les propriétés SIZE et FILEGROWTH de la base de données tempdb sur des grands chiffres. Pour plus d'informations sur la façon d'optimiser tempdb, veuillez consulter Optimisation des performances de la base de données tempdb dans la documentation Microsoft.

L'exemple suivant illustre la définition de la taille sur 100 Go et la croissance des fichiers sur 10 pour cent.

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

Prévention des problèmes de stockage

Pour éviter que la base de données tempdb utilise tout l'espace disque disponible, définissez la propriété MAXSIZE. L'exemple suivant illustre la définition de la propriété sur 2 048 Mo.

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

Réduction de la base de données tempdb

Il existe deux façons de réduire la base de données tempdb sur votre instance de base de données Amazon RDS. Vous pouvez utiliser la procédure rds_shrink_tempdbfile ou vous pouvez définir la propriété SIZE.

Utilisation de la procédure rds_shrink_tempdbfile

Vous pouvez utiliser la procédure Amazon RDS msdb.dbo.rds_shrink_tempdbfile pour réduire la base de données tempdb. Vous pouvez uniquement appeler rds_shrink_tempdbfile si vous disposez de l'accès CONTROL à tempdb. Lorsque vous appelez rds_shrink_tempdbfile, il n'y a aucun temps d'arrêt pour votre instance de base de données.

La procédure rds_shrink_tempdbfile possède les paramètres suivants.

Nom du paramètre Type de données Par défaut Obligatoire Description

@temp_filename

SYSNAME

obligatoire

Le nom logique du fichier à réduire.

@target_size

int

null

facultatif

La nouvelle taille du fichier en mégaoctets.

L'exemple suivant permet d'obtenir les noms des fichiers de la base de données tempdb.

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

L'exemple suivant réduit un fichier de base de données tempdb nommé test_file et demande une nouvelle taille de 10 mégaoctets :

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

Configuration de la propriété SIZE

Vous pouvez également réduire la base de données tempdb en configurant la propriété SIZE et en redémarrant votre instance de base de données. Pour plus d'informations sur le redémarrage de votre instance de base de données, consultez Redémarrage d'une instance de base de données.

L'exemple suivant illustre la définition de la propriété SIZE sur 1 024 Mo.

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

Configuration de TempDB pour les déploiements multi-AZ

Si votre instance de base de données RDS pour SQL Server est dans un déploiement multi-AZ utilisant la mise en miroir de base de données (DBM) ou des groupes de disponibilité Always On (AG), gardez à l'esprit les considérations suivantes concernant l'utilisation de la base de données. tempdb

Vous ne pouvez pas répliquer les tempdb données de votre instance de base de données principale vers votre instance de base de données secondaire. Lorsque vous basculez vers une instance de base de données secondaire, tempdb cette instance de base de données secondaire sera vide.

Vous pouvez synchroniser la configuration des options de tempdb base de données, y compris ses paramètres de dimensionnement des fichiers et de croissance automatique, entre votre instance de base de données principale et votre instance de base de données secondaire. La synchronisation de la tempDB configuration est prise en charge sur toutes les versions de RDS pour SQL Server. Vous pouvez activer la synchronisation automatique de la tempdb configuration à l'aide de la procédure stockée suivante :

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

Avant d'utiliser la procédure rds_set_system_database_sync_objects stockée, assurez-vous d'avoir défini votre tempdb configuration préférée sur votre instance de base de données principale plutôt que sur votre instance de base de données secondaire. Si vous avez modifié la configuration sur votre instance de base de données secondaire, votre tempdb configuration préférée peut être supprimée lorsque vous activez la synchronisation automatique.

Vous pouvez utiliser la fonction suivante pour vérifier si la synchronisation automatique de la tempdb configuration est activée :

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

Lorsque la synchronisation automatique de la tempdb configuration est activée, une valeur est renvoyée pour le object_class champ. Lorsqu'elle est désactivée, aucune valeur n'est renvoyée.

Vous pouvez utiliser la fonction suivante pour rechercher la dernière fois que les objets ont été synchronisés, en heure UTC :

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Par exemple, si vous avez modifié la tempdb configuration à 01h00 puis que vous exécutez la rds_fn_server_object_last_sync_time fonction, la valeur renvoyée pour last_sync_time doit être postérieure à 01h00, ce qui indique qu'une synchronisation automatique s'est produite.

Si vous utilisez également la réplication des tâches de l'agent SQL Server, vous pouvez activer la réplication à la fois pour les tâches SQL Agent et pour la tempdb configuration en les fournissant dans le @object_type paramètre :

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

Pour plus d'informations sur la réplication des tâches de l'agent SQL Server, consultezActivation de la réplication des tâches de l'agent SQL Server.

Au lieu d'utiliser la procédure rds_set_system_database_sync_objects stockée pour garantir la synchronisation automatique des modifications de tempdb configuration, vous pouvez utiliser l'une des méthodes manuelles suivantes :

Note

Nous vous recommandons d'activer la synchronisation automatique de la tempdb configuration à l'aide de la procédure rds_set_system_database_sync_objects stockée. L'utilisation de la synchronisation automatique évite d'avoir à effectuer ces tâches manuelles chaque fois que vous modifiez votre tempdb configuration.

  • Tout d'abord, modifiez votre instance de base de données et désactivez le déploiement multi-AZ, puis modifier tempdb, puis enfin réactivez le déploiement multi-AZ. Cette méthode n'entraîne aucun temps d'arrêt.

    Pour plus d'informations, consultez Modification d'une instance de base de données Amazon RDS.

  • Tout d'abord, modifiez tempdb dans l'instance principale d'origine, puis exécutez un basculement manuel et enfin modifiez tempdb dans la nouvelle instance principale. Cette méthode implique un temps d'arrêt.

    Pour plus d'informations, consultez Redémarrage d'une instance de base de données.