Migration SQL Server 2008 vers 2012

1 : Objectif

Ce document a pour but de définir un mode opératoire pour la migration de SQL Server 2008 vers SQL Server 2012.

Il vise à décrire les étapes à suivre pour la restauration de la base de données, la migration et le déploiement d’une solution SSIS.

2 : Restauration de la base de données

Pour la restauration de la base de données je vous invite à suivre les étapes suivantes :

Etape 1 : Connectez-vous à votre instance SQL Server 2012 via SQL Management Studio.

Image 1 Tutorial Migration SQL Server 2008 vers 2012

Etape 2 : Faites clics  droits sur Bases de données  -> Restaurer la base de données… .

Image 2 Tutorial Migration SQL Server 2008 vers 2012

Etape 3 : A partir de l’unité choisissez la source de données que vous souhaitez restaurer en ajoutant le chemin d’accès du fichier .bak (Dans mon exemple je restaure « MCNEXT_Tests.bak »

Image 3 Tutorial Migration SQL Server 2008 vers 2012

Etape 4 : Après avoir ajouté le fichier « .bak » sélectionnez la base de destination.

Image 4 Tutorial Migration SQL Server 2008 vers 2012

Sélectionner la Base de données ajouté.

Etape 5 : Cliquez sur « ok » pour lancer la restauration.

Etape 6 : Afin de visualiser la base de données cliquez sur Actualisez

3 : Migration des packages  SSIS

Pour la migration d’un package SSIS je vous invite à suivre les étapes suivantes :

Etape 1: Nouveau projet

-> Choisissez ‘Integration Services Project’

Image 5 Tutorial Migration SQL Server 2008 vers 2012

Etape 2 : Sélectionnez la solution SSIS à importer

Image 6 Tutorial Migration SQL Server 2008 vers 2012

Etape 3 : Assistant de conversion

Image 7 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Suivant

Etape 4 :  

Image 8 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Terminer

Etape 5 : Assistant de mise à niveau de Package SSIS

Image 9 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Suivant

Etape 6 :

Image 10 Tutorial Migration SQL Server 2008 vers 2012

-> Sélectionnez le package

Etape 7 :

Image 11 Tutorial Migration SQL Server 2008 vers 2012

-> Sélectionnez : « Update connection strings to use new provider names » et « Continue upgrade process when a package upgrade fails

Etape 8 : Fin de l’assistant

Image 12 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Terminer

Etape 9 :

Image 13 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Fermer

Etape 10 :

Image 14 Tutorial Migration SQL Server 2008 vers 2012

4 : La conversion en modèle de déploiement de projet

Si vous avez créé le projet sous SQL Server 2012, le projet utilise le modèle de déploiement du projet par défaut sinon dans le cas d’une migration il faut le convertir en modèle de déploiement de projet.

Pour cela je vous invite à suivre les étapes suivantes :

Etape 1 : Faites clics  droits sur la solution SSIS  -> Convertir le projet en modèle de déploiement… .       1

Etape 2 : Assistant Conversion de projet Integration Services

2

-> Cliquez sur le bouton Suivant

 Etape 3 : Définir les options sur la page Sélectionner les package

3

-> Sélectionnez le package

Etape 4 : Définir les options sur la page Spécifier les propriétés du projet

4

-> Indiquez le nom du projet.

-> Sélectionnez le niveau de protection des packages

-> Tapez une description facultative du projet

Etape 5 : Définir les options sur la page Mettre à jour la tâche d’exécution de package

5

-> Cliquez sur le bouton Suivant

Etape 6 : Définir les options sur la page Sélectionner les configurations

6

-> Ajoutez les configurations de package que vous souhaitez remplacer à l’aide de paramètres

7

-> Sélectionnez les configurations de package que vous souhaitez remplacer par des paramètres.

-> Sélectionnez « Remove configurations from all packages after conversion » afin de Supprimer les configurations de tous les packages après la conversion

Etape 7 : Définir les options sur la page Créer des paramètres

8

->Sélectionnez le package.

->Indiquez le nom du paramètre.

->Sélectionnez l’étendue du paramètre, package ou projet.

Etape 8 : Définir les options sur la page Configurer les paramètres

9

->Indiquez le chemin d’accès aux sources de données

Etape 9 :

10

->Cliquez sur le bouton Suivant

Etape 10 : La page Effectuer la conversion indique l’état de la conversion du projet

11

->Cliquez sur le bouton Ferme

5 : Déploiement

Le déploiement est une chose qui a pas mal changé dans SQL Server 2012, un nouveau dossier est apparu dans management studio : « Integration Services Catalogs ».

Ce dossier sera l’endroit où les packages seront déployés et l’endroit où les variables d’environnement seront créées.

12

Avant de pouvoir déployer des projets sur le serveur Integration Services, celui-ci doit contenir le catalogue SSISDB. Le programme d’installation de SQL Server 2012 ne crée pas automatiquement le catalogue vous devez le créer manuellement

Pour cela je vous invite à suivre les étapes suivantes :

Etape 1 : Créer un catalog

13

->Faites clics  droits sur Integration Services Catalogs  -> Créer un Catalog… .

14

->Saisissez un mot de passe

15

Les objets stockés dans le catalogue SSISDB sont les projets, les packages, les paramètres, les environnements et l’historique opérationnel.

Etape 2 : Déployer

16

->Faites clics droits sur la solution SSIS  -> Déployer… .

Etape 3 : Assistant Déploiement d’Integration Services

17

->Cliquez sur le bouton Suivant

Etape 4 : Sélectionner une source

18

->Sélectionnez Fichier de déploiement de projet

->Entrez le chemin d’accès du fichier .ispac

Etape 5 :

19

->Entrez le nom du serveur.

->Sélectionnez la destination du projet.

Etape 6 :

20

->Cliquez sur déployer

Etape 7 : Fin de l’assistant

21

->Cliquez sur Fermer pour quitter l’assistant

La solution SSIS est installée dans le Management Studio

22

L’autre nouveauté de SSIS dans SQL Server 2012 c’est la gestion des environnements, il vous suffit maintenant de créer un environnement dans SSIS pour chaque environnement physique (Dev, Prod…) et d’y attribuer les valeurs correspondantes.

Pour cela je vous invite à suivre les étapes suivantes :

Etape 8 : Faites clics  droits sur le dossier Environnement  -> Créer Environnement… .

0

Etape 9 :

24

->Tapez un nom pour l’environnement

Etape 10 : Faites clics  droits sur Environnement  -> Propriétés… .

25

Etape 11: Dans la page « Variables »

 26

->Choisissez un nom de la variable.

->Sélectionnez le Type de la variable

->Entrez la Valeur de la variable d’environnement.

Etape 12: Dans la page « Permissions »: Vous pouvez accorder ou refusez des autorisations pour les rôles et les utilisateurs.

27

->Cliquez sur ok pour enregistrer les propriétés de l’environnement.

Etape 13 : Dans l’Explorateur d’objets, faites clics  droits sur la solution  -> Configurer… .

28

Etape 14: Dans la page « Références »: procédez comme suit pour ajouter une variable:

29

->Cliquez sur Ajouter pour ajouter un environnement

->Cliquez sur  ok pour enregistrer la référence dans l’environnement.

Etape 15:

Dans l’onglet « Connection Managers » de la page « Paramètre » : Vous pouvez mapper la variable d’environnement à une propriété du gestionnaire de connexions.

30

->cliquez sur le bouton Parcourir en regard du champ Valeur.

->Sélectionnez variable d’environnement.

->Choisissez la variable d’environnement que vous avez créée.

->Cliquez deux fois sur ok pour enregistrer vos modifications.

Etape 16: Faites clics  droits sur le package  -> Exécute… .

31

    32

->Sélectionnez l’environnement.

->Cliquez sur ok pour lancer l’exécution.

Tutorial rédigé par Laila TABII

Configuration de la topologie de recherche sharepoint 2013

Les GEDs SharePoint dépassent couramment le million de documents.

Dans ce contexte, il faut créer (au moins) deux indexeurs en équilibre de charge, ce qui nous permettra en plus d’offrir de la tolérance de panne.

1.       Préambule

La source d’info :

On retrouve logiquement une grande partie du paramétrage de fast sur http://technet.microsoft.com/fr-fr/library/jj219705.aspx

un PFE indien a fait un post de blog dessus.

Les prérequis :

Pas de tests en prod !

          Deux serveurs SharePoint 2013 sur lesquels on n’a pas encore crée de service de recherche (de toute façons, vous ne voulez pas du wizard pour une install en production 😉

  • o   Le service de recherche ne doit pas être démarré sur les autres nœuds. Si oui, il faut faire un Stop-SPEnterpriseSearchServiceInstance -identity (noeud)

          Un répertoire local de stockage sur chaque serveur ou (mieux) plusieurs répertoires sur un espace partagé. Ils doivent exister et êtres vides.

  • o   Sur ces répertoires, le compte de ferme doit avoir le contrôle. Ceci se fait en accordant une permission au groupe local WSS_ADMIN_WPG qui le contient.
  • o   Un bug fait que les répertoires sont testés localement sur le serveur ou on lance le script. Ils doivent donc être tous être crées sur ce nœud si le stockage est local.

          Classiquement :

  • o   Ouvrir une session avec le compte d’Install de la ferme
  • o   Lancer Powershell en mode administrateur

Si vous avez créé un service de recherche avec une topologie incorrecte, ou que le script échoue, une chance, dropper un service applicatif prend deux lignes J

 $spapp = Get-SPServiceApplication -Name « Search Service Application »
 Remove-SPServiceApplication $spapp -RemoveData

A faire avant chaque tentative. Gardez aussi à l’esprit que l’ordonnanceur interne de SharePoint n’est pas en temps réel, il vaut mieux donc attendre 5 mn avant de relancer le script au cas  où un job serait encore dans la file du SPTIMER.

2.       Les rôles

On doit répartir les rôles query, admin, stats et content sur nos deux nœuds.

Dans mon exemple, je suivrais la matrice suivante :

ROLE

SPIDX1 (Principal)

SPIDX2 (Backup)

CRAWL

X

X

ADMIN

X

 

CONTENT

X

X

STATS

X

 

QUERY

X

X

3.       Les partitions

          Le minimum pour l’équilibrage est deux partitions  (0/1)

          Le minimum pour la tolérance de panne est de découper en un maitre et un replica pour chaque partition (0/1 répliqué en 1/0)

On aura donc quatre composants Index.

4.       Le script

Partant de cette configuration, on peut commencer à écrire le script :

J’ai utilisé la nomenclature du technet.

# RAZ!

# Supprime le service applicatif et les BDD existantes

$spapp = Get-SPServiceApplication -Name « Search Service Application »

Remove-SPServiceApplication $spapp -RemoveData

#==============================================================

#Configuration Search Service Application (SSA)

#==============================================================

$SearchApplicationPoolName = « SearchAdminApplicationPool »

$SearchApplicationPoolAccountName = « SP2013\SP_SEARCH »

$SearchServiceApplicationName = « Search Service Application »

$SearchServiceApplicationProxyName = « Search Service Application Proxy »

$DatabaseInstance = « SQL2012\SPSQL2013 »

$DatabaseName = « Sharepoint2013_SearchService »

#Nom des serveurs d’index

$App1 = “SPIDX1”

$App2 = « SPIDX2 »

#Reps Exemples. Attention à mettre deux reps differents en Stockage partagé!

$IndexLocationServer1 = « D:\IDX_HostA »

$IndexLocationServer2 = « D:\IDX_HostB »

# Création des reps (avec le bug local)

New-Item -Path « \\SPIDX1\d$\IDX_HOSTA » -type directory -force

New-Item -Path « \\SPIDX1\d$\IDX_HOSTB » -type directory -force

New-Item -Path « \\SPIDX2\d$\IDX_HOSTB » -type directory -force

#==============================================================

# Création du Pool s’il n’existe pas

#==============================================================

Write-Host -ForegroundColor DarkGray « Test – Pool SSA »

$SPServiceApplicationPool = Get-SPServiceApplicationPool -Identity $SearchApplicationPoolName -ErrorAction SilentlyContinue

if (!$SPServiceApplicationPool)

{

Write-Host -ForegroundColor Yellow « Création – Pool SSA »

$SPServiceApplicationPool = New-SPServiceApplicationPool -Name $SearchApplicationPoolName -Account $SearchApplicationPoolAccountName -Verbose

}

#==============================================================

#Search Service Application

#==============================================================

Write-Host -ForegroundColor DarkGray « Test – SSA »

$SearchServiceApplication = Get-SPEnterpriseSearchServiceApplication -Identity $SearchServiceApplicationName -ErrorAction SilentlyContinue

if (!$SearchServiceApplication)

{

Write-Host -ForegroundColor Yellow « Création – SSA »

$SearchServiceApplication = New-SPEnterpriseSearchServiceApplication -Name $SearchServiceApplicationName -ApplicationPool $SPServiceApplicationPool.Name -DatabaseServer $DatabaseInstance -DatabaseName $DatabaseName

}

Write-Host -ForegroundColor DarkGray « Test – SSA Proxy »

$SearchServiceApplicationProxy = Get-SPEnterpriseSearchServiceApplicationProxy -Identity $SearchServiceApplicationProxyName -ErrorAction SilentlyContinue

if (!$SearchServiceApplicationProxy)

{

Write-Host -ForegroundColor Yellow « Création – SSA Proxy »

New-SPEnterpriseSearchServiceApplicationProxy -Name $SearchServiceApplicationProxyName -SearchApplication $SearchServiceApplicationName

}

#==============================================================

# Démarrer le service – IDX1

#==============================================================

$HostA = Get-SPEnterpriseSearchServiceInstance -Identity $App1

Write-Host -ForegroundColor DarkGray « Test – SSI 1 »

if($HostA.Status -ne « Online »)

{

Write-Host -ForegroundColor Yellow « Démarrage – SSI 1 »

Start-SPEnterpriseSearchServiceInstance -Identity $HostA

While ($HostA.Status -eq « Online »)

{

Start-Sleep -s 5

}

Write-Host -ForegroundColor Yellow « SSI 1 Démarré »

}

#==============================================================

# Démarrer le service – IDX2

#==============================================================

$HostB = Get-SPEnterpriseSearchServiceInstance -Identity $App2

Write-Host -ForegroundColor DarkGray  » Test – SSI 2″

if($HostB.Status -ne « Online »)

{

Write-Host -ForegroundColor Yellow  » Démarrage– SSI 2″

Start-SPEnterpriseSearchServiceInstance -Identity $HostB

While ($HostB.Status -eq « Online »)

{

Start-Sleep -s 5

}

Write-Host -ForegroundColor Yellow « SSI 2 Démarré »

}

#==============================================================

# Créer une nouvelle topologie vide pour pouvoir la modifier, et la remplir.

#==============================================================

$InitialSearchTopology = $SearchServiceApplication |

Get-SPEnterpriseSearchTopology -Active

$NewSearchTopology = $SearchServiceApplication | New-SPEnterpriseSearchTopology

#==============================================================

# Composants IDX1 : Stats, Index, Crawl, Admin, Query

#==============================================================

New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA

New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA

New-SPEnterpriseSearchCrawlComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA

New-SPEnterpriseSearchAdminComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA

New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA

#==============================================================

# Composants IDX2: Index, Crawl, Query (noeud de backup)

#==============================================================

New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostB

New-SPEnterpriseSearchCrawlComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostB

New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostB

#==============================================================

# Création de deux indexs, deux partitions = 4 replicas

# spécifier les répertoires permet d’éviter de le stocker dans « Office Servers… »

# A = 0/1 B= 1/0

#==============================================================

New-SPEnterpriseSearchIndexComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA -IndexPartition 0 -RootDirectory $IndexLocationServer1

New-SPEnterpriseSearchIndexComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostB -IndexPartition 1 -RootDirectory $IndexLocationServer2

New-SPEnterpriseSearchIndexComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostA -IndexPartition 1 -RootDirectory $IndexLocationServer1

New-SPEnterpriseSearchIndexComponent -SearchTopology $NewSearchTopology -SearchServiceInstance $HostB -IndexPartition 0 -RootDirectory $IndexLocationServer2

#==============================================================

# Enregistrement de la topologie

#==============================================================

Write-Host -ForegroundColor Yellow « Enregistrement tolologie »

Set-SPEnterpriseSearchTopology -Identity $NewSearchTopology

#==============================================================

# Suppression de l’ancienne

#==============================================================

Write-Host -ForegroundColor DarkGray « Suppression tolologie.old »

Remove-SPEnterpriseSearchTopology -Identity $InitialSearchTopology -Confirm:$false

Write-Host -ForegroundColor Yellow « Supprimée »

#==============================================================

#Check Search Topology

#==============================================================

Get-SPEnterpriseSearchStatus -SearchApplication $SearchServiceApplication -Text

Write-Host -ForegroundColor Yellow « Topologie configurée! »

 5.       Résultat attendu :

topo

 On peut aussi tester en ligne de commande par, par exemple,

 Get-SPEnterpriseSearchStatus –SearchApplication « Serch Service Application »

 Emmanuel ISSALY

Architecte Infrastructure Sharepoint

MCNEXT

 

 

Indexation DataWarehouse

L’indexation d’un entrepôt de données est délicate :

  • si vous avez trop peu d’indexes les temps de chargement de votre entrepôt seront optimum mais les temps de requêtage seront déplorables
  • au contraire, si vous avez trop d’indexes, les temps de chargement vont exploser mais les performances de requêtage seront excellentes.

Afin de prévoir un plan d’indexation optimum vous devez prendre en compte certains critères :

  • le type d’entrepôt (archive vs temps (quasi) réel)
  • la taille des dimensions et des tables de faits
  • le nombre d’utilisateurs ayant accès à l’entrepôt (le nombre d’accès concurrents max à gérer)
  • le type d’accès aux données (ad-hoc ou via des interfaces d’applications structurées)
  • le mode d’alimentation (upsert, annule/remplace …)
  • etc …

Voici néanmoins quelques règles basiques à respecter lors du design de votre entrepôt.

Lire la suite