Further. Forward. Faster. Avec Microsoft SQL Server 2012 !


Lancement Virtuel de SQL Server 2012

Découvrez la vision de Microsoft sur l’avenir des données !

image

De la gestion à l’analyse des données, de Big Data au Cloud, assistez à l’évènement mondial de lancement de SQL Server 2012 au cours duquel seront annoncées les dates de sortie et découvrez la vision de Microsoft sur l’avenir des données !

Le 8 mars prochain à 9 heures du matin, SQL Server 2012 se dévoile lors du lancement virtuel en ligne !

Le lancement virtuel rassemble Microsoft, ses partenaires et ses clients pendant une journée, autour de plus de 30 sessions vidéos destinées les décideurs informatiques et les professionnels de l’IT.

Le lancement virtuel, c’est aussi des centaines de cadeaux à gagner, des dizaines de partenaires à votre écoute et toute la communauté rassemblée pour un évènement unique !

image

Publié dans Evènements, SQL Server | Tagué | Laisser un commentaire

Interview de Christophe Laporte sur SQL Server et Windows Server Core

Une vidéo de quelques minutes (interview par Jean-marc Monfort) sur SQL Server 2012 édition Core.

Accent Toulousain de rigueur avec une bonne dose de rhume … Enjoy.

 

Le lien : http://youtu.be/6SoqxDHHfsU

Publié dans SQL Server, Evènements | Tagué | Laisser un commentaire

Database Mirroring – Certificats expirés

Depuis SQL Server 2005 (SP1) il est possible de mettre une base de données en miroir. Cette solution de haute disponibilité et/ou de disaster recovery solutionne quelques problématiques liées au RTO (la bascule se fait très rapidement) et au RPO (il n’y a pas de perte de données pour un miroir synchrone lorsque toutes les instances sont en cours d’exécution).

Lorsque qu’une transaction arrive sur le server principal, cette transaction est alors “dupliquée” vers les serveur miroir. En mode synchrone, un acquittement n’est renvoyé à l’applicatif client que lorsque l’instance principale et l’instance miroir ont écrit sur disque (dans le fichier LDF) la transaction. En mode asynchrone, le client reçoit un acquittement lorsque le serveur principal, et seulement lui, a écrit l’information dans le journal des transactions.

Les communications entre instances (principal, miroir et éventuellement témoin) se font au travers de points de terminaison TCP, ou end points.

Pour s’authentifier mutuellement, il existe deux possibilités :

  • Soit les instances sont dans le même domaine active directory, auquel cas, l’authentification du compte de service de chaque instance peut suffire,
  • Soit les instances sont dans des domaines ou des workgroups distincts, auquel cas l’authentification passe par des certificats.

Et comme tous certificats, ceux utilisés par SQL Server ont une durée de validité … De un an si aucune mention contraire n’a été spécifiée lors de leur création.

CREATE CERTIFICATE Certificate_Principal_Instance
   WITH SUBJECT = 'Certificate Principal Instance';
GO

Un certificat généré de la sort va expirer un an après. Un tel cas s’est présenté à moi il y a quelques jours. Le journal d’évènement de SQL Server présente alors des erreurs du type :

Database Mirroring login attempt failed with error: ‘Connection handshake failed. The certificate used by this endpoint was not found: Certificate expired. Use DBCC CHECKDB in master database to verify the metadata integrity of the endpoints. State 85.’. [CLIENT: xxx.xxx.xxx.xxx]

Pas de panique pour autant, les connexions et les transactions sur le serveur principal sont toujours possible. En fait la base n’est plus protégée, les bascules ne seront pas possibles.

Le changement de certificat est possible, sans casser le miroir ni provoquer d’indisponibilité. Voici un petit script qui vous permettra de changer vos certificats.


--
-- Pause du mirroring
--

:Connect Principal_Instance
USE master;
ALTER DATABASE my_mirrorred_db SET PARTNER SUSPEND; 
GO


--
-- Création et sauvegarde des nouveaux certificats 
--

:Connect Principal_Instance
USE master;
CREATE CERTIFICATE [New_Certificate_Principal_Instance]
WITH SUBJECT = 'New Certificate Principal Instance',
START_DATE='01/01/2012', 
EXPIRY_DATE='01/01/2020'; 
GO
BACKUP CERTIFICATE New_Certificate_Principal_Instance 
TO FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Principal_Instance.cer';
GO

:Connect Mirror_Instance
USE master;
CREATE CERTIFICATE [New_Certificate_Mirror_Instance]
WITH SUBJECT = 'New Certificate Mirror Instance',
START_DATE='01/01/2012', 
EXPIRY_DATE='01/01/2020'; 
GO
BACKUP CERTIFICATE New_Certificate_Mirror_Instance 
TO FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Mirror_Instance.cer';
GO

:Connect Witness_Instance
USE master;
CREATE CERTIFICATE [New_Certificate_Witness_Instance]
WITH SUBJECT = 'New Certificate Witness Instance',
START_DATE='01/01/2012', 
EXPIRY_DATE='01/01/2020'; 
GO
BACKUP CERTIFICATE New_Certificate_Witness_Instance 
TO FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Witness_Instance.cer';
GO


--
-- Ajout des nouveaux certificates sur autres servers de la session de mise en miroir
--

:Connect Principal_Instance
USE master;
CREATE CERTIFICATE New_Certificate_Mirror_Instance
   AUTHORIZATION SQL_User_Mirror_Instance
   FROM FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Mirror_Instance.cer'
GO
CREATE CERTIFICATE New_Certificate_Witness_Instance
   AUTHORIZATION SQL_User_Witness_Instance
   FROM FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Witness_Instance.cer'
GO


:Connect Mirror_Instance
USE master;
CREATE CERTIFICATE New_Certificate_Principal_Instance
   AUTHORIZATION SQL_User_Principal_Instance
   FROM FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Principal_Instance.cer'
GO
CREATE CERTIFICATE New_Certificate_Witness_Instance
   AUTHORIZATION SQL_User_Witness_Instance
   FROM FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Witness_Instance.cer'
GO

:Connect Witness_Instance
USE master;
CREATE CERTIFICATE New_Certificate_Principal_Instance
   AUTHORIZATION SQL_User_Principal_Instance
   FROM FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Principal_Instance.cer'
GO
CREATE CERTIFICATE New_Certificate_Mirror_Instance
   AUTHORIZATION SQL_User_Mirror_Instance
   FROM FILE = '\\FileServer\FileShare\Certificates_backup\New_Certificate_Mirror_Instance.cer'
GO


--
-- Mise à jour des endpoint du mirroring pour utiliser les nouveaux certificats
--

:Connect Principal_Instance
USE master;
ALTER ENDPOINT Endpoint_Mirroring 
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE [New_Certificate_Principal_Instance])
GO

:Connect Mirror_Instance
USE master;
ALTER ENDPOINT Endpoint_Mirroring 
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE [New_Certificate_Mirror_Instance])
GO

:Connect Witness_Instance
USE master;
ALTER ENDPOINT Endpoint_Mirroring 
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE [New_Certificate_Witness_Instance])
GO

--
-- Reprise du Mirroring
--

:Connect Principal_Instance
USE master;
ALTER DATABASE my_mirrorred_db SET PARTNER RESUME; 
GO

Rien de bien compliqué …

N’hésitez pas non plus à tester SQL Server 2012 qui propose une version très améliorée du database mirroring. Les groupes de disponibilité (AlwaysOn Availability Groups) permettent de pallier à différentes lacunes du DBM :

  • On peut grouper plusieurs bases et les protéger, la bascule sur un serveur secondaire se fera pour toutes les bases du groupe.
  • On peut avoir jusqu’à 4 instances secondaires.
  • Au maximum 2 réplicas en bascule automatique.
  • Au maximum 3 réplicas en mode synchrone.
  • Le REDO se fait en permanence sur les serveurs secondaires ce qui permet d’avoir accès en lecture seule sans passer par un snapshot de base de donnée.
  • La sauvegarde peut se faire sur les réplicas secondaires (Backup Database with COPY_ONLY,  Backup LOG).
  • Ajout d’un listener qui permet d’avoir un nom réseau et une adresse IP virtuelle pour les groupe de disponibilité, évitant ainsi les problèmes de chaines de connexion ne supportant pas le Failover Partner et qui élimine le problème des serveurs liés.
  • Les bases sur le réplica sont en mode d’isolation read committed snapshot et les statistiques d’index temporaires sont créées en TempDB.
  • La réplication est supportée (pour l’éditeur et l’abonné).
  • Le listener permet aussi d’aiguiller les requêtes qui font de la lecture seule (SELECT).
  • Les bases de données partiellement contenues permettent de se détacher de la base Master pour l’authentification.
Publié dans SQL Server | Tagué , | Laisser un commentaire

Techdays 2012 – AlwaysOn, les slides de la session

Publié dans Evènements, SQL Server | Tagué , | Laisser un commentaire

Slide pour aller plus loin – TechDays 2012

image

Publié dans Evènements | Tagué | Laisser un commentaire

Techdays TV – Suivez l’évènement en direct

Get Microsoft Silverlight

Publié dans Evènements | Tagué | Laisser un commentaire

Serveurs Core et Virtualisation–La vidéo

La vidéo de la session que j’ai animé aux journées SQL Server 2011 est en ligne. Les quelques lignes de script que j’ai utilisées durant la session sont accessibles ici.

image

Encore une fois désolé pour la voix, j’étais relativement … malade et j’avais bien du mal à respirer! Merci à tous ceux qui étaient présents à cette session. N’oubliez pas non plus que nous avons besoin de votre feedback sur ces journées afin de coller aux mieux à vos attentes pour la prochaine édition.

Enjoy.

Publié dans Evènements, SQL Server | Tagué | Laisser un commentaire