L'opération de réduction n'est pas dupliquée sur la base de données miroir lorsque vous utilisez la mise en miroir de base de données dans SQL Server 2005

Traductions disponibles Traductions disponibles
Numéro d'article: 937531 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Lorsque vous utilisez la mise en miroir de base de données dans Microsoft SQL Server 2005, SQL Server propage automatiquement les modifications sur la base de données principale vers la base de données miroir. Toutefois, si vous exécutez DBCC SHRINKDATABASE ou les instructions de DBCC SHRINKFILE pour réduire la base de données principal, l'opération de réduction n'est pas dupliquée sur la base de données miroir.

Cause

La mise en miroir de base de données changera les tailles de fichier physique uniquement après une point de contrôle.

Contournement

Méthode 1

Pour contourner ce problème, exécutez les instructions suivantes pour créer une procédure stockée dans la base de données master. Then, use this stored procedure to shrink the principal database instead of running the DBCC SHRINKDATABASE statement or the DBCC SHRINKFILE statement.
     use master
       go
       if object_id ('sp_shrink_mirrored_database', 'P') is not null 
         drop proc sp_shrink_mirrored_database 
       go
       create procedure sp_shrink_mirrored_database @dbname sysname, @target_percent int = null
       as
       begin
         declare @filename sysname
         declare @filesize int
         declare @sql nvarchar(4000)
         
         if @target_percent is null
           dbcc shrinkdatabase (@dbname)
         else 
           dbcc shrinkdatabase (@dbname, @target_percent)
         declare c cursor for 
         select [name], [size] from sys.master_files where type=0 and database_id = db_id (@dbname)
         open c
         fetch next from c into @filename, @filesize
         while @@fetch_status=0
         begin
           set @filesize=(@filesize+1)*8
           set @sql='alter database [' + @dbname + '] modify file ( name=' 
             + @filename + ', size=' + cast(@filesize as nvarchar) + 'kb )'
           execute sp_executesql @sql
           fetch next from c into @filename, @filesize
         end
         close c
         deallocate c
       end
       go
For example, if you want to shrink the mydb database, run the following statement.
EXEC sp_shrink_mirrored_database 'mydb'

Méthode 2

Émettre un point de contrôle manuelle après réduction des fichiers sur la base de données principale.

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "S'applique à".

Propriétés

Numéro d'article: 937531 - Dernière mise à jour: mercredi 12 mai 2010 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Mots-clés : 
kbmt kbtshoot kbexpertiseadvanced kbsql2005engine kbprb KB937531 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 937531
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com