Si vous souhaitez migrer des données depuis SQL Server 2017, consultez la page Migrer des données entre SQL Server 2017 et Cloud SQL pour SQL Server à l'aide de fichiers de sauvegarde.
Ce tutoriel s'adresse aux administrateurs système, développeurs, ingénieurs, administrateurs de bases de données ou ingénieurs DevOps souhaitant migrer des données de SQL Server 2008 vers Cloud SQL pour SQL Server 2017 ou effectuer une mise à niveau de SQL Server 2008 vers SQL Server 2017.
Dans ce tutoriel, nous partons du principe que vous disposez d'une licence pour SQL Server 2008 et que vous connaissez bien les produits suivants :
- Microsoft SQL Server 2008
- Microsoft SQL Server 2017
- Microsoft PowerShell
- Cloud Storage
- Cloud SQL
Objectifs
- Créer une instance Cloud SQL pour SQL Server
- Créer un bucket Cloud Storage
- Sauvegarder votre base de données
- Importer la base de données dans Cloud SQL pour SQL Server
- Valider les données importées
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
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
Dans la console Google Cloud, 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. Découvrez comment vérifier que la facturation est activée pour votre projet.
Activez les API Cloud Storage et Cloud SQL.
Installez et initialisez Google Cloud CLI sur le serveur qui exécute SQL Server 2008.
Dans la console Google Cloud, accédez à Cloud Shell.
En bas de la fenêtre de la console Google Cloud, une session Cloud Shell s'ouvre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
Créer l'instance Cloud SQL et le bucket Cloud Storage
Dans Cloud Shell, créez l'instance Cloud SQL pour SQL Server 2017 Enterprise vers laquelle vous migrerez ultérieurement la base de données :
gcloud beta sql instances create target \ --database-version=SQLSERVER_2017_ENTERPRISE \ --cpu=2 \ --memory=5GB \ --root-password=sqlserver12@ \ --zone=us-central1-f
La création de l'instance peut prendre quelques minutes. Le nom d'utilisateur racine par défaut est
sqlserver
et le mot de passe par défaut estsqlserver12@
. Pour ce tutoriel, vous créez l'instance dans la zoneus-central1-f
. Pour en savoir plus sur les zones, consultez la page Emplacements Cloud.Créez un bucket Cloud Storage pour stocker le fichier de sauvegarde avant l'importation des données dans Cloud SQL :
gcloud storage buckets create "gs://bucket-name" --location=US
Remplacez
bucket-name
par un nom unique pour le bucket Cloud Storage.
Sauvegarder la base de données
Dans cette section, vous allez vous connecter au serveur Windows exécutant SQL Server 2008, créer une sauvegarde de la base de données et importer la base de données de sauvegarde dans Cloud Storage.
Connectez-vous au serveur Windows exécutant SQL Server 2008 via RDP. Il peut s'agir du serveur principal ou d'une instance de serveur répliquée.
Lancez l'outil de ligne de commande PowerShell.
Dans le terminal à partir duquel vous avez installé la CLI gclous, créez un dossier de sauvegarde :
mkdir c:\backup
Créez une sauvegarde de la base de données dans le dossier de sauvegarde :
osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
Remplacez
db-name
par le nom de la base de données que vous souhaitez migrer vers Cloud SQL.Copiez le fichier de sauvegarde dans le bucket Cloud Storage :
$PROJECT_ID = (gcloud sql instances describe target --format='value(project)' ) gcloud storage cp c:\backup\db-name.bak gs://bucket-name --no-clobber
Importer le fichier de sauvegarde dans Cloud SQL
Dans Cloud Shell, récupérez le compte de service associé à l'instance Cloud SQL et enregistrez-le dans une variable :
SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \ --format='value(serviceAccountEmailAddress)') echo $SVC_EMAIL_ADDRESS
Google Cloud crée un compte de service lorsque vous créez l'instance Cloud SQL. Vous utilisez le compte de service pour autoriser l'instance Cloud SQL à accéder aux ressources dont elle a besoin.
Autorisez le compte de service à écrire dans le bucket Cloud Storage :
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyBucketWriter
Autorisez le compte de service à lire les fichiers dans le bucket Cloud Storage :
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyObjectReader
Importez le fichier de sauvegarde dans la base de données Cloud SQL :
gcloud beta sql import bak target \ gs://bucket-namedb-name.bak \ --database db-name
Valider l'importation des données
Dans cette section, vous allez vérifier que les données ont bien été importées.
Dans Cloud Shell, installez la boîte à outils SQL Server :
sudo apt-get install -y mssql-tools
Si vous acceptez les conditions de la licence, saisissez
yes
lorsque vous y êtes invité.Pour accéder de manière sécurisée à votre instance Cloud SQL, téléchargez le proxy Cloud SQL :
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
Démarrez le proxy Cloud SQL :
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
Exécutez une requête pour vérifier les données dans une ou plusieurs tables :
/opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
Remplacez
query-string
par la requête SQL que vous souhaitez exécuter.Lorsque vous y êtes invité, saisissez le mot de passe
sqlserver12@
.
Effectuer un nettoyage
Le moyen le plus simple d'éviter la facturation consiste à supprimer le projet Google Cloud que vous avez créé pour le tutoriel.Supprimer le projet
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Étape suivante
- Apprenez-en davantage sur les clés de chiffrement gérées par le client (CMEK) dans Cloud SQL pour SQL Server.
- Découvrez comment configurer la connectivité IP privée avec Cloud SQL pour SQL Server.
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.