Ce tutoriel présente deux méthodes pour cloner une base de données Microsoft SQL Server exécutée sur Compute Engine. L'une d'entre elles consiste à utiliser des instantanés de disque persistant. L'autre méthode utilise la sauvegarde et la restauration SQL Server natives, en transférant la sauvegarde à l'aide de Cloud Storage. Cloud Storage est le service de stockage d'objets de Google Cloud. Il offre un moyen simple, sécurisé, durable et hautement disponible de stocker des fichiers.
Le clonage est le processus de copie d'une base de données en ligne sur un autre serveur. La copie est indépendante de la base de données existante et est conservée en tant qu'instantané à un moment précis. Vous pouvez utiliser une base de données clonée à des fins diverses sans charger le serveur de production ou nuire à l'intégrité des données de production. Voici certains objectifs de ce processus :
- Effectuer des requêtes analytiques
- Effectuer des tests de charge ou d'intégration sur vos applications
- Extraire des données pour remplir des entrepôts de données
- Effectuer des tests sur les données
Chaque méthode de clonage décrite dans ce tutoriel présente des avantages et des inconvénients. La méthode la plus adaptée dépend de votre situation. Le tableau suivant met en évidence certains problèmes clés.
Problème | Méthode 1 : Instantanés de disque | Méthode 2 : Sauvegarde et restauration à l'aide de Cloud Storage |
---|---|---|
Espace disque supplémentaire requis pour les instances SQL Server | Aucun espace disque supplémentaire requis | Espace supplémentaire requis pour le stockage du fichier de sauvegarde lors de la création et de la restauration |
Charge supplémentaire sur les instances SQL Server sources lors du clonage | Aucune charge supplémentaire | Charge supplémentaire sur le processeur et les E/S lors de la création et de l'importation des fichiers de sauvegarde |
Durée du clonage | Relativement rapide pour les bases de données volumineuses | Relativement lent pour les bases de données volumineuses |
Clonage possible à partir d'instances SQL Server externes à Google Cloud | Non | Oui |
Complexité | Séquence complexe de commandes pour installer des disques clonés | Ensemble de commandes relativement simples pour le clonage |
Possibilité d'exploiter des systèmes de sauvegarde existants | Oui, si le système de sauvegarde utilise des instantanés de disque Google Cloud | Oui, si le système de sauvegarde écrit des fichiers de sauvegarde SQL Server natifs dans Cloud Storage |
Précision du clonage | Ne peut cloner que des disques entiers | Ne peut cloner que la base de données spécifiée |
Cohérence des données | Cohérence au moment de l'instantané | Cohérence au moment de la sauvegarde |
Pour ce tutoriel, nous partons du principe que vous connaissez l'administration système de Microsoft Windows, PowerShell et Microsoft SQL Server à l'aide de Microsoft SQL Server Management Studio.
Objectifs
- Découvrez comment exécuter une instance SQL Server sur Google Cloud.
- Apprendre à créer une base de données de démonstration sur un disque secondaire
- Découvrez comment cloner une base de données SQL Server à l'aide d'instantanés de disque Compute Engine.
- Découvrez comment cloner une base de données SQL Server en transférant une sauvegarde à l'aide de Cloud Storage.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
- Compute Engine
- Cloud Storage
- Licences Microsoft Windows et SQL Server
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
- Activez l'API Compute Engine. Activer l'API
Assurez-vous de remplir les conditions préalables suivantes :
- Vous utilisez le navigateur Google Chrome.
- Installez le client RDP (Remote Desktop Protocol) de votre choix Pour plus d'informations, voir les clients Bureau à distance de Microsoft. Si un client RDP est déjà installé, vous pouvez ignorer cette tâche.
Configurer l'environnement
Pour suivre ce tutoriel, vous devez configurer votre environnement informatique avec les éléments suivants :
- Une instance SQL Server sur Compute Engine (nommée
sql-server-prod
) pour représenter votre serveur de base de données de production. - Un disque supplémentaire (nommé
sql-server-prod-data
) associé à votre serveur de production pour stocker votre base de données de production. - Une copie de l'exemple de base de données SQL Server Wide World Importers pour simuler la base de données de production que vous souhaitez cloner.
- Une instance SQL Server sur Compute Engine (nommée
sql-server-test
) pour représenter votre serveur de base de données de test. Vous clonez votre base de données sur ce serveur.
Cette architecture est décrite dans le schéma suivant.
Créer l'instance de VM de production
Pour simuler un environnement de production, vous devez configurer une instance de VM Compute Engine exécutant SQL Server sur Windows Server.
L'instance de VM de ce tutoriel utilise deux disques : un disque de 50 Go pour le système d'exploitation et les comptes utilisateur, et un disque de 100 Go pour le stockage de la base de données.
Dans Compute Engine, l'utilisation de disques distincts n'offre aucun avantage en termes de performances. Les performances des disques sont déterminées par la capacité de stockage totale de tous les disques associés à une instance et par le nombre total de processeurs virtuels sur votre instance de VM. Par conséquent, la base de données et le fichier journal peuvent résider sur le même disque.
Console
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur Créer.
Dans le champ Nom, saisissez
sql-server-prod
.Dans le champ Région, sélectionnez us-east1.
Pour la Zone, sélectionnez us-east1-b.
Sous Configuration de la machine, définissez le type de machine sur n1-standard-2 (deux processeurs virtuels).
À côté de la description du disque de démarrage, cliquez sur Modifier.
Dans le panneau Disque de démarrage, cliquez sur l'onglet Images publiques.
Dans la liste déroulante Système d'exploitation, sélectionnez SQL Server sur Windows Server.
Dans la liste déroulante Version, sélectionnez SQL Server 2022 Standard sur Windows Server 2022 Datacenter.
Assurez-vous que les valeurs suivantes sont définies :
- Le champ Type de disque de démarrage est défini sur Disque persistant standard.
- Le champ Taille (Go) est défini sur 50.
Cliquez sur Sélectionner.
Sous Identité et accès aux API, définissez le paramètre Champs d'application sur Autoriser l'accès complet à l'ensemble des API Cloud.
Développez Gestion, sécurité, disques, mise en réseau et location unique.
Cliquez sur l'onglet Disques.
Cliquez sur Add new disk (Ajouter un disque) add.
Dans le champ Nom, saisissez
sql-server-prod-data
.Dans le champ Taille (Go), saisissez
100
.Cliquez sur OK.
Cliquez sur Créer.
Cloud Shell
Ouvrez Cloud Shell.
Initialisez les variables suivantes :
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Où :
VPC_NAME
: nom de votre VPCSUBNET_NAME
: nom de votre sous-réseau
Définissez votre ID de projet par défaut :
gcloud config set project
PROJECT_ID
Remplacez
PROJECT_ID
par l'ID de votre projet Google Cloud.Définissez votre région par défaut :
gcloud config set compute/region
REGION
Remplacez
REGION
par l'ID de la région dans laquelle vous souhaitez effectuer le déploiement.Définissez votre zone par défaut :
gcloud config set compute/zone
ZONE
Remplacez
ZONE
par l'ID de la zone dans laquelle vous souhaitez effectuer le déploiement.Créez une instance Compute Engine à l'aide de l'image d'application pour SQL Server 2022 Standard sur Windows Server 2022 Datacenter :
REGION=$(gcloud config get-value compute/region) ZONE=$(gcloud config get-value compute/zone) gcloud compute instances create sql-server-prod \ --machine-type=n1-standard-2 \ --scopes=cloud-platform \ --image-family=sql-std-2022-win-2022 \ --image-project=windows-sql-cloud \ --boot-disk-size=50GB \ --boot-disk-device-name=sql-server-prod \ --create-disk="mode=rw,size=100,type=pd-standard,name=sql-server-prod-data,device-name=sql-server-prod-data" \ --subnet=$SUBNET_NAME
Cette commande accorde à l'instance un accès complet aux API Google Cloud, crée un disque secondaire de 100 Go et associe le disque à l'instance. Vous pouvez ignorer l'avertissement sur les performances du disque, car vous n'avez pas besoin de performances élevées pour ce tutoriel.
Se connecter à l'instance de VM
Dans Google Cloud Console, accédez à la page Instances de VM.
Attendez environ cinq minutes que l'instance de VM soit prête.
Pour surveiller le processus d'initialisation de la VM, consultez sa sortie du port série dans Cloud Shell :
gcloud compute instances tail-serial-port-output sql-server-prod
L'initialisation est terminée lorsque le message suivant s'affiche.
Instance setup finished. sql-server-prod is ready to use.
Appuyez sur Ctrl+C pour arrêter de surveiller le port série.
Cliquez sur le nom de l'instance
sql-server-prod
pour ouvrir la page Informations sur l'instance de VM.Sous Accès à distance, cliquez sur Définir un mot de passe Windows, puis sur Définir pour créer votre compte sur la machine distante.
Cette étape génère automatiquement votre mot de passe. Notez le mot de passe ou copiez-le dans un fichier temporaire sécurisé.
Dans la section Compute Engine de la console Google Cloud, cliquez sur le menu déroulant RDP et sélectionnez l'option Télécharger le fichier RDP. pour télécharger le fichier RDP correspondant à votre instance.
Utilisez ce fichier pour vous connecter à l'instance à l'aide d'un client RDP. Pour plus d'informations, voir les clients Bureau à distance de Microsoft.
Lorsque vous y êtes invité, saisissez le mot de passe que vous venez de générer, puis cliquez sur OK.
Pour accepter le certificat du serveur et vous connecter à votre instance Windows distante, cliquez sur Continuer.
Lorsque vous êtes invité à indiquer si votre ordinateur peut être détecté par d'autres PC et appareils du réseau, cliquez sur Non.
Configurer le disque supplémentaire
Le deuxième disque installé sur l'instance de production sert à stocker votre base de données de production. Ce disque est vide. Vous devez donc le partitionner, le formater et l'installer.
- Dans une session RDP connectée à votre instance
sql-server-prod
, cliquez sur le bouton Démarrer dans la barre des tâches Windows, saisissezdiskpart
, puis cliquez sur diskpart pour ouvrir l'outil DiskPart. - Lorsque vous êtes invité à autoriser l'application à apporter des modifications, cliquez sur Oui.
Affichez une liste des disques associés à votre instance :
list disk
Le résultat est le suivant :
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 50 GB 0 B Disk 1 Online 100 GB 100 GB
Le disque 1 (100 Go) est votre disque de données.
Sélectionnez le disque de données :
select disk 1
Initialisez le disque :
clean
Créez une table de partition GUID :
convert gpt
Créez la partition de données en utilisant l'intégralité du disque :
create partition primary
Répertoriez les volumes disponibles :
list volume
Le résultat est le suivant :
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 C NTFS Partition 49 GB Healthy Boot Volume 1 FAT32 Partition 100 MB Healthy System Volume 2 RAW Partition 99 GB Healthy
Le volume 2 (99 Go) est votre disque de données.
Sélectionnez le volume :
select volume 2
Formatez la partition avec le système de fichiers NTFS et nommez-la
data
:format quick fs=ntfs label=data
Installez le disque en tant que lecteur D :
assign letter=d
Quittez l'outil DiskPart :
exit
Télécharger l'exemple de base de données
Pour configurer votre environnement pour cet exercice de clonage, procédez comme suit :
- Créez une structure de répertoires sur le lecteur D (
data
) pour stocker votre base de données. - Téléchargez le fichier de sauvegarde complète de l'exemple de base de données SQL Server Wide World Importers. Cette base de données simule la base de données de production que vous souhaitez cloner.
Pour créer le répertoire et télécharger le fichier de sauvegarde, procédez comme suit :
Dans votre session RDP, cliquez sur le bouton Démarrer dans la barre des tâches Windows, saisissez
PowerShell
, puis sélectionnez l'application Windows PowerShell.Lorsque l'invite PowerShell s'affiche, créez une structure de répertoires pour le stockage de la base de données :
mkdir D:\sql-server-data\wideworldimporters
Téléchargez le fichier de sauvegarde pour le lecteur D :
bitsadmin /transfer sampledb /dynamic /download /priority FOREGROUND ` https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak ` D:\sql-server-data\WideWorldImporters-Full.bak
Restaurer l'exemple de base de données
Vous devez restaurer l'exemple de base de données pour gérer le lecteur D (data
), de manière interactive à l'aide des assistants Microsoft SQL Server Management Studio (SSMS) ou directement en exécutant une commande Transact-SQL.
Assistant SSMS
- Dans votre session RDP, cliquez sur le bouton Start (Démarrer) dans la barre des tâches Windows, saisissez
ssms
, puis sélectionnez Microsoft SQL Server Management Studio (Run as Administrator) (Exécuter en tant qu'administrateur). - Après le démarrage de l'application, cliquez sur Connect (Connecter) pour vous connecter au moteur de base de données
sql-server-prod
à l'aide de l'authentification Windows. - Dans l'explorateur d'objets, faites un clic droit sur Databases (Bases de données), puis sélectionnez Restore Database (Restaurer la base de données).
- Dans Source, sélectionnez Device (Appareil), puis cliquez sur le bouton [...] à côté du nom de l'appareil.
- Dans la boîte de dialogue Select backup devices (Sélectionner des appareils de sauvegarde), assurez-vous que l'option File (Fichier) est sélectionnée pour Backup media type (Type de support de sauvegarde), puis cliquez sur Add (Ajouter).
- Dans le sélecteur de fichiers, accédez à
D:\sql-server-data
, cliquez sur le fichierWideWorldImporters-Full.bak
, puis sur OK. Cliquez sur OK pour fermer la boîte de dialogue Select backup devices (Sélectionner des appareils de sauvegarde).
La boîte de dialogue Restore Database (Restaurer la base de données) contient désormais des données concernant la sauvegarde de la base de données Wide World Importers.
Dans Select a page (Sélectionner une page), cliquez sur Files (Fichiers).
Cochez la case Relocate all files to folder (Déplacer tous les fichiers dans le dossier).
Dans les champs Data file folder (Dossier de fichiers de données) et Log file folder (Dossier de fichiers journaux), saisissez
D:\sql-server-data\wideworldimporters
.Cliquez sur OK pour lancer l'opération de restauration.
Après quelques minutes, vous êtes informé que la base de données est restaurée.
Transact-SQL
- Dans votre session RDP, cliquez sur le bouton Start (Démarrer) dans la barre des tâches Windows, saisissez
ssms
, puis sélectionnez Microsoft SQL Server Management Studio (Run as Administrator) (Exécuter en tant qu'administrateur). - Après le démarrage de l'application, cliquez sur Connect (Connecter) pour vous connecter au moteur de base de données
sql-server-prod
à l'aide de l'authentification Windows. - Sélectionnez File > New > Query with Current Connection (Fichier > Nouveau > Requête avec la connexion actuelle) pour ouvrir une nouvelle fenêtre de requête.
Lancez une restauration à partir du fichier de sauvegarde que vous avez téléchargé :
USE [master] GO RESTORE DATABASE [WideWorldImporters] FROM DISK = N'D:\SQL-SERVER-DATA\WideWorldImporters-Full.bak' WITH FILE = 1, MOVE N'WWI_Primary' TO N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters.mdf', MOVE N'WWI_UserData' TO N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters_UserData.ndf', MOVE N'WWI_Log' TO N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters.ldf', MOVE N'WWI_InMemory_Data_1' TO N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters_InMemory_Data_1', NOUNLOAD, STATS = 5 GO
Cette commande restaure la base de données et le fichier journal dans le répertoire
D:\sql-server-data\wideworldimporters
.Faites un clic droit sur le code de la requête, puis cliquez sur Execute (Exécuter).
Attendez quelques minutes que la restauration de la base de données se termine. Vous pouvez cliquer sur Refresh refresh (Actualiser) dans l'explorateur d'objets pour voir si la base de données est répertoriée dans l'arborescence des bases de données. Une fois la restauration de la base de données terminée, vous pouvez fermer la fenêtre de requête sans enregistrer.
Pour vérifier que l'exemple de base de données fonctionne, vous pouvez exécuter une requête.
Dans Microsoft SQL Server Management Studio, sélectionnez File > New > Query with Current Connection (Fichier > Nouveau > Requête avec la connexion actuelle) pour ouvrir une nouvelle fenêtre de requête, puis copiez le code suivant :
SELECT top(100) i.InvoiceDate, i.InvoiceID, i.CustomerID, c.CustomerName, i.ConfirmedDeliveryTime, i.ConfirmedReceivedBy FROM WideWorldImporters.Sales.Invoices i JOIN WideWorldImporters.Sales.Customers c ON i.CustomerID=c.CustomerID WHERE i.ConfirmedDeliveryTime IS NOT NULL ORDER BY i.InvoiceDate desc;
Cette requête extrait les informations récapitulatives des 100 dernières factures envoyées.
Faites un clic droit sur la fenêtre de requête, puis cliquez sur Execute (Exécuter).
Le volet Results (Résultats) affiche les informations récapitulatives.
Créer l'instance de VM de test
Dans cette section, vous allez créer une instance SQL Server nommée sql-server-test
comme destination de la base de données clonée. La configuration de cette instance est identique à celle de l'instance de production. Cependant, vous ne créez pas de deuxième disque de données. À la place, vous associez le disque de données comme décrit plus loin dans ce tutoriel.
Console
Accédez à la page Instances de VM.
Cliquez sur Créer.
Dans le champ Nom, saisissez
sql-server-test
.Dans le champ Région, sélectionnez us-east1.
Pour Zone, sélectionnez us-east1-b.
Sous Configuration de la machine, définissez le type de machine sur n1-standard-2 (deux processeurs virtuels).
À côté de l'image Disque de démarrage, cliquez sur Modifier.
Dans le panneau Disque de démarrage, cliquez sur l'onglet Images publiques.
Dans la liste déroulante Système d'exploitation, sélectionnez SQL Server sur Windows Server.
Dans la liste déroulante Version, sélectionnez SQL Server 2022 Standard sur Windows Server 2022 Datacenter.
Assurez-vous que les valeurs suivantes sont définies :
- Le champ Type de disque de démarrage est défini sur Disque persistant standard.
- Le champ Taille (Go) est défini sur 50.
Cliquez sur Sélectionner.
Sous Identité et accès aux API, définissez le paramètre Champs d'application sur Autoriser l'accès complet à l'ensemble des API Cloud.
Cliquez sur Créer.
Cloud Shell
Ouvrez Cloud Shell.
Créez l'instance SQL Server de test :
gcloud compute instances create sql-server-test \ --machine-type=n1-standard-2 \ --scopes=cloud-platform \ --image-family=sql-std-2022-win-2022 \ --image-project=windows-sql-cloud \ --boot-disk-size=50GB \ --boot-disk-device-name=sql-server-test \ --subnet=$SUBNET_NAME
Vous pouvez ignorer l'avertissement sur les performances du disque, car vous n'avez pas besoin de performances élevées pour ce tutoriel.
Se connecter à l'instance de VM
Dans Google Cloud Console, accédez à la page Instances de VM.
Attendez environ cinq minutes que l'instance de VM soit prête.
Pour surveiller le processus d'initialisation de la VM, consultez sa sortie du port série dans Cloud Shell :
gcloud compute instances tail-serial-port-output sql-server-prod
L'initialisation est terminée lorsque le message suivant s'affiche.
Instance setup finished. sql-server-test is ready to use.
Appuyez sur Ctrl+C pour arrêter de surveiller le port série.
Cliquez sur le nom de l'instance
sql-server-test
pour afficher la page Informations sur l'instance de VM.Sous Accès à distance, cliquez sur Définir un mot de passe Windows, puis sur Définir pour créer votre compte sur la machine distante.
Cette étape génère automatiquement votre mot de passe. Notez le mot de passe ou copiez-le dans un fichier temporaire sécurisé.
Dans la section Compute Engine de la console Google Cloud, cliquez sur le menu déroulant RDP et sélectionnez l'option Télécharger le fichier RDP. pour télécharger le fichier RDP correspondant à votre instance.
Utilisez ce fichier pour vous connecter à l'instance à l'aide d'un client RDP. Pour plus d'informations, voir les clients Bureau à distance de Microsoft.
Lorsque vous y êtes invité, saisissez le mot de passe que vous venez de générer, puis cliquez sur OK.
Pour accepter le certificat du serveur et vous connecter à votre instance Windows distante, cliquez sur Continuer.
Lorsque vous êtes invité à indiquer si vous souhaitez que votre PC soit visible, cliquez sur Non.
Cloner la base de données à l'aide d'instantanés de disque Compute Engine
Pour cloner une base de données SQL Server exécutée sur Compute Engine, vous pouvez la stocker sur un disque de données distinct et utiliser des instantanés de disque persistant pour créer un clone de ce disque.
Les instantanés de disque persistant vous permettent d'obtenir une copie des données sur disque à un moment précis. La programmation des instantanés de disque permet de sauvegarder automatiquement vos données.
Dans cette section du tutoriel, vous allez :
- réaliser un instantané du disque de données du serveur de production ;
- créer un disque à partir de l'instantané ;
- Installer le nouveau disque sur le serveur de test
- Associer la base de données de ce disque à SQL Server sur l'instance de test.
Le schéma suivant montre comment une base de données est clonée à l'aide d'instantanés de disque.
Créer l'instantané de disque
Console
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur le nom de l'instance
sql-server-prod
.Sur la page Détails de l'instance de VM, cliquez sur le disque
sql-server-prod-data
.Cliquez sur Créer un instantané.
Nommez-le
sql-server-prod-data-snapshot
.Pour l'Emplacement, sélectionnez Régional.
Vérifiez que la région est définie sur
us-east1
(la même que vos instances de VM).Sélectionnez l'option Activer VSS.
Cette option utilise le Volume Shadow Copy Service (VSS) de Microsoft Windows pour créer un instantané cohérent.
Cliquez sur Créer.
Au bout de quelques minutes, votre instantané est créé.
Cloud Shell
Ouvrez Cloud Shell.
Créez un instantané de votre disque de données dans la même zone que l'instance de VM :
gcloud compute disks snapshot sql-server-prod-data \ --snapshot-names=sql-server-prod-data-snapshot \ --guest-flush \ --zone="${ZONE}"
L'option
--guest-flush
utilise le Volume Shadow Copy Service (VSS) de Microsoft Windows pour créer un instantané cohérent. Au bout de quelques minutes, votre instantané est créé.
Associer l'instantané du disque à l'instance de test
Vous devez créer un disque de données à partir de l'instantané que vous avez créé, puis l'associer à l'instance sql-server-test
.
Console
Dans les étapes suivantes, vous allez créer un disque persistant, utiliser le contenu de l'instantané du disque de production, puis associer le disque à l'instance de test.
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur le nom de l'instance
sql-server-test
.Sur la page Informations sur l'instance de VM, cliquez sur Modifier.
Cliquez sur Add new disk (Ajouter un disque) add.
Nommez le nouveau disque
sql-server-test-data
.Pour le Type de source, sélectionnez Instantané.
Pour l'instance
sql-server-prod-data-snapshot
que vous avez créée, sélectionnez l'Instantané source.Assurez-vous que l'option Mode est définie sur Lecture/Écriture.
Cliquez sur OK.
Cloud Shell
Ouvrez Cloud Shell.
Créez un disque persistant en utilisant le contenu de l'instantané du disque de production :
gcloud beta compute disks create sql-server-test-data \ --size=100GB \ --source-snapshot=sql-server-prod-data-snapshot \ --zone="${ZONE}"
Associez le nouveau disque à votre instance
sql-server-test
avec des autorisations de lecture/écriture :gcloud compute instances attach-disk sql-server-test \ --disk=sql-server-test-data --mode=rw
Installer le nouveau disque de données sous Windows
Le disque que vous avez créé est associé à l'instance de VM, mais est hors connexion, et le volume est en lecture seule. Pour configurer le volume comme étant en lecture-écriture et installable, procédez comme suit :
- Dans la fenêtre du client RDP connecté à votre instance
sql-server-test
, cliquez sur le bouton Démarrer de la barre des tâches Windows, saisissezdiskpart
, puis cliquez sur diskpart pour ouvrir DiskPart. - Lorsque vous êtes invité à autoriser l'application à apporter des modifications, cliquez sur Oui.
Affichez la liste des disques associés à votre instance :
list disk
Le résultat est le suivant :
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 50 GB 0 B Disk 1 Offline 100 GB 0 B *
Votre disque de données (Disque 1, 100 Go) est hors connexion.
Sélectionnez le disque de données :
select disk 1
Mettez le disque en ligne :
online disk
Répertoriez les volumes disponibles :
list volume
Le résultat est le suivant :
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 C NTFS Partition 49 GB Healthy Boot Volume 1 FAT32 Partition 100 MB Healthy System Volume 2 RAW Partition 99 GB Healthy
Le volume 2 (99 Go) est votre volume de données. Il est répertorié comme masqué, sans lettre de lecteur.
Sélectionnez le volume :
select volume 2
Supprimez les attributs définis lorsque vous avez créé le volume à partir de l'instantané :
attr volume clear readonly hidden nodefaultdriveletter shadowcopy
Cette commande rend le volume installable.
Installez le volume en tant que lecteur D :
assign letter=d
Quittez l'outil DiskPart :
exit
Réinitialiser la propriété et les autorisations d'un fichier
Étant donné que vous avez créé le disque de données en prenant un instantané sur l'instance sql-server-prod
, les ID utilisateur relatifs à la propriété et aux autorisations des fichiers sont différents de ceux de l'instance sql-server-test
. Vous devez modifier la propriété des fichiers pour l'attribuer à un utilisateur sur l'instance sql-server-test
et mettre à jour les autorisations pour que les fichiers soient lisibles pour l'utilisateur local et l'utilisateur MSSQLSERVER
.
- Dans la fenêtre du client RDP connecté à votre instance
sql-server-test
, cliquez sur le bouton Démarrer dans la barre des tâches Windows, puis saisissezcmd
. - Ouvrez l'application Invite de commandes en tant qu'administrateur.
Définissez l'utilisateur du service
MSSQLSERVER
en tant que propriétaire des fichiers dans le dossiersql-server-data
:icacls d:\sql-server-data /setowner "nt service\mssqlserver" /t
Réinitialisez l'ensemble des autorisations sur tous les fichiers du dossier
sql-server-data
de premier niveau :icacls d:\sql-server-data /reset /t
Mettez à jour les listes de contrôle d'accès (LCA) du dossier
sql-server-data
:icacls d:\sql-server-data /grant Administrators:(oi)(ci)f "nt service\mssqlserver":(oi)(ci)f "owner rights":(oi)(ci)f %USERNAME%:(oi)(ci)f
Désactivez l'héritage du dossier racine du lecteur, de sorte que seules les autorisations précédentes soient appliquées :
icacls d:\sql-server-data /inheritancelevel:r
Quittez l'application Invite de commandes :
exit
L'instance SQL Server et l'utilisateur local de l'instance sql-server-test
peuvent désormais accéder aux fichiers de la base de données.
Associer la base de données clonée
Vous devez maintenant associer la base de données clonée du lecteur D (data
) à l'instance SQL Server de test. Vous pouvez associer la base de données de manière interactive à l'aide des assistants Microsoft SQL Server Management Studio ou directement en exécutant une commande Transact-SQL.
Assistant SSMS
- Dans la session RDP connectée à votre instance
sql-server-test
, cliquez sur le bouton Start (Démarrer) de la barre des tâches Windows, saisissezssms
, puis sélectionnez Microsoft SQL Server Management Studio (Exécuter en tant qu'administrateur). - Cliquez sur Connect (Connecter) pour vous connecter au moteur de la base de données
sql-server-test
à l'aide de l'authentification Windows. - Dans l'explorateur d'objets, faites un clic droit sur Databases (Bases de données), puis sélectionnez Attach (Associer).
- Dans l'assistant Attach databases (Associer des bases de données), cliquez sur Add (Ajouter).
- Accédez au répertoire
D:\sql-server-data\wideworldimporters
, cliquez sur le fichierWideWorldImporters.mdf
, puis sur OK. Cliquez sur OK pour associer la base de données.
Après quelques instants, votre base de données clonée est associée. Vous pouvez cliquer sur Refresh refresh (Actualiser) dans l'explorateur d'objets pour voir si la base de données est répertoriée dans l'arborescence des bases de données.
Transact-SQL
- Dans une session RDP connectée à votre ins