Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

SQL Server 2008 – Réduction de la taille des fichiers Log

Parmi les options de configuration  d’une base de données on trouve le mode de récupération qui peut être Complet (Full), Journalisé en bloc (Bulk-Logged) ou Simple (Simple).

image

Si le mode de récupération d’une base de données est différent du mode Simple, il faut impérativement mettre en place une stratégie de sauvegarde des fichiers journaux de cette base de données sinon les fichiers log n’arrêteront par de croitre et consommer de l’espace disque.

Au cas où vous avez oublié de mettre en place cette stratégie et que votre disque commence à souffrir il faut impérativement réduire la taille des fichiers journaux volumineux, cet article décrit l’ensemble des actions à entreprendre pour réaliser cette action.

Identifier le nom logique d’un fichier Log d’une base de données

Pour identifier le nom logique d’un fichier journal d’une base de données nommée Demo il suffit d’exécuter la requête suivante :

SELECT DB_NAME(database_id) AS [Base de données],name AS [Nom Logique] ,
physical_name AS [Nom Physique]  FROM sys.master_files  
WHERE DB_NAME(database_id) = ‘Demo’ AND type = 1

Noter le nom qui apparaît au niveau de la colonne Nom Logique

Sauvegarder la base de données et le fichier Log

Avant de procéder à la réduction de la taille du fichier log et afin de sécuriser l’opération il faut procéder à une sauvegarde de la base de données et du fichier journal pour pouvoir la récupérer en cas de problème.

Pour cela il suffit d’exécuter les scripts suivants :

BACKUP DATABASE [Demo]
TO  DISK = N’F:\Backup\Demo.BAK’
WITH NOFORMAT, NOINIT, 
NAME = N’Demo-Full Database Backup’,
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

BACKUP LOG [Demo]
TO  DISK = N’F:\Backup\Demo.bak’
WITH NOFORMAT, NOINIT
NAME = N’Demo-Transaction Log  Backup’,
SKIP, NOREWIND, NOUNLOADSTATS = 10
GO

Réduire la taille du fichier log de la base de données

On peut réduire la taille du fichier log en exécutant le script SQL Suivant

USE [Demo]
GO
DBCC SHRINKFILE (N’Demo_log’ , 0, TRUNCATEONLY)
GO

Ou

En utilisant SQL Server Management Studio et en cliquant avec le bouton droit sur la base de données en question puis  sur Tasks ==> Shrink ==> Files

image

Au niveau de la fenêtre Shrink file – Demo.log :

  1. Vérifier que le type de fichier est bien Log
  2. Cocher la case Reduce unused space
  3. Cliquer sur Ok

  image

Si la taille du fichier Log n’est pas réduite suite à cette opération chose qui peut survenir si la fin du fichier log est considérée par SQL Server comme portion active non réductible, on peut forcer l’opération de réduction en changeant le mode de récupération de la base de données vers le mode simple, exécuter l’opération de troncature une autre fois et ensuite remettre le mode de récupération de la base de données au mode Complet (Full).

Pour changer le mode de récupération de la base vers le mode Simple exécuter le script suivant :

USE [master]
GO
ALTER DATABASE [Demo] SET RECOVERY SIMPLE WITH NO_WAIT
GO

Pour remettre le mode de récupération à Complet exécuter le script suivant :

USE [master]
GO
ALTER DATABASE [Demo] SET RECOVERY FULL WITH NO_WAIT
GO

Au niveau du script de la troncature on peut choisir la taille cible que doit prendre notre fichier log en utilisant la syntaxe suivante :

USE [Demo]
GO
DBCC SHRINKFILE (N’Demo_log’ , <Taille Cible en MB>)
GO

SharePoint 2007 – Erreur DCOM à l’installation dans une ferme de serveurs SharePoint

L’erreur DCOM est une erreur qui apparait quasi systématiquement après l’installation et la configuration d’une plateforme MOSS 2007. Cette erreur apparait sur tous les serveurs de la ferme et à des intervalles réguliers.

Cette erreur est due au droit « LOCAL Activation » manquant sur certains objets DCOM pour les utilisateurs SharePoint et principalement les comptes utilisés pour les pools d’application qui font partie du groupe IIS_WPG.

Exemple d’erreur

Type de l’événement : Erreur
Source de l’événement : DCOM
Catégorie de l’événement : Aucun
ID de l’événement : 10021
Date : 22/01/2008
Heure : 11:07:36
Utilisateur : N/A
Ordinateur : « Nom_Serveur »
Description : Le descripteur de sécurité d’exécution et d’activation défini pour l’application serveur COM avec le CLSID {61738644-F196-11D0-9953-00C04FD919C1}  n’est pas valide. Il contient des entrées de contrôle d’accès (ACE) avec des autorisations qui ne sont pas valides. Par conséquent, l’action demandée n’a pas été effectuée. Cette autorisation de sécurité peut être corrigée à l’aide de l’outil d’administration Services de composants.

Pour plus d’informations, consultez le centre Aide et support à l’adresse http://go.microsoft.com/fwlink/events.asp.

Pour remédier à cette erreur procédez comme suit :

Ajoutez l’utilisateur “Service Réseau” (NETWORK Service)  au groupe “Utilisateurs du modèle COM distribué” (Distributed COM Users).

 image

Accordez au groupe IIS_WPG les bons droits sur les composants IIS Admin Service et IIS WAMREG Admin Service

1 – Démarrez la console services de composants en exécutant : C:\Windows\System32\com\comexp.msc

      image

ou

Cliquez sur Démarrer | Outils D’administration | Services de composants

2 – Réinitialisez la configuration de la sécurité des composants IIS Admin Service et IIS WAMREG Admin Service :

Cliquez sur le composant IIS Admin Service avec le bouton droit puis cliquez sur Propriétés.

image

Sélectionnez l’onglet Sécurité et positionnez toutes les autorisations à Par Défaut (Use Default) puis cliquez sur le bouton OK.

image

Important : Réalisez la même opération pour le composant IIS WAMREG Admin Service.

Cliquez sur le composant IIS Admin Service avec le bouton droit puis cliquer sur Propriétés.

image

Sélectionnez l’onglet Sécurité, au niveau de la section Autorisation d’exécution et d’activation (« Launch and Activation Permissions »), côchez Personnaliser (« Customize ») puis cliquez sur Modifier (« Edit »).

image

Ajoutez le groupe IIS_WPG et accordez-lui toutes les autorisations.

image

Au niveau de la section Autorisations d’accès (« Access Permissions »), côchez Personnaliser (« Customize ») puis cliquez sur Modifier (« Edit »).

image

Ajoutez le groupe IIS_WPG et accordez-lui toutes les autorisations.

image

Vérifier les droits de configuration pour le groupe Utilisateurs.

Au niveau de la section Autorisations de configuration (« Configuration Permissions ») côchez Personnaliser (« Customize ») puis cliquez sur Modifier (« Edit »). 

image

Vérifiez que le groupe Utilisateurs dispose des autorisations Lecture (« Read ») et Autorisations Spéciales (« Special permissions »).

image   

Important : Réalisez la même opération pour le composant IIS WAMREG Admin Service.

A l’issue de cette procédure, l’erreur DCOM ne devrait plus ce produire !

Exchange 2007 – Attribut “Recipient Type Details” après une migration depuis Exchange 2003 vers Exchange 2007

Après une migration de boites aux lettres depuis une organisation Exchange 2003 vers une organisation Exchange 2007, il peut arriver que l’attribut “Recipient Type Details” ne soit pas défini en tant que “User Mailbox

Voici différent cas rencontrés :

Legacy Mailbox

Ceci est typiquement le type de boite aux lettres créé avec les outils Exchange 2003. Ce type de boite aux lettres fonctionne sous Exchange 2007 mais afin d’éviter la perte de certaines fonctionnalités d’Exchange 2007, il est préférable de la convertir.

Pour cela, une simple commande Powershell suffit :

Set-Mailbox –Identity “UserAlias” –ApplyMandatoryProperties

 

Linked Mailbox

Ceci indique que la boite aux lettre disposait d’un compte externe associé (autre que le compte SELF) avant la migration.

Pour résoudre le problème, il faut modifier les attributs de l’utilisateur en question (avec ADSIEdit) et modifier la valeur de l’attribut msExchRecipientTypeDetails de la valeur 2 à la valeur 1.

http://technet.microsoft.com/en-us/library/cc164371.aspx

Shared Mailbox

Ceci indique que le compte SELF est configuré en tant que compte externe associé sur la boite aux lettres.

Après la migration de la boite aux lettres, supprimer l’association du compte SELF en tant que compte externe associé. Ceci modifiera l’attribut msExchMasterAccountSid et lui donnera la valeur <Not Set>. Ensuite, lancer la commande Powershell suivante :

Set-Mailbox xxx –Type:Regular

 

http://technet.microsoft.com/en-us/library/bb201749.aspx