web-dev-qa-db-fra.com

Restauration de la sauvegarde SQL Server dans la base de données Azure SQL

Existe-t-il un moyen de prendre simplement un fichier .bak de sauvegarde SQL et de l'utiliser comme point de restauration pour générer une nouvelle base de données sur Azure SQL Database?

L’assistant que je vois généralement recommandé dans cette situation souhaite créer un fichier personnalisé à utiliser, mais il jette un œil sur les objets chiffrés (fonctions et vues) et je ne vois pas d’autre moyen de le faire fonctionner.

46
Mister Positive

Si vous avez déjà une base de données sur une machine locale, vous pouvez la migrer directement sur Azure à l'aide de SQL Management Studio. Suivez ces étapes:

Faites un clic droit sur le nom de la base de données dans SSMS: mssms

Suivez l'assistant qui apparaît alors.

Si vous exécutez SSMS v17, vous pouvez configurer l'objectif d'édition, de taille et de service de la base de données SQL Azure.

61
razon

Azure SQL Database ne prend actuellement pas en charge cette fonctionnalité. La seule méthode de restauration dans Azure SQL Database est l'importation à partir de fichiers BACPAC. Vous pouvez migrer vers Azure SQL DB à l'aide de fichiers BACPAC en suivant ce guide: https://Azure.Microsoft.com/en-us/documentation/ articles/sql-database-cloud-migrate /

L'autre option est d'utiliser SQL Server dans une VM , ce qui permettrait de restaurer un fichier .bak.

24
Joseph Idziorek

Pour obtenir mon fichier .BAK sur Azure SQL Server, j'ai suivi les conseils des deux réponses fournies dans ce fil.

Avant de terminer les étapes ci-dessous, la restauration du fichier BAK a échoué sur l'instance SQL de mon ordinateur portable (les sauvegardes provenaient de SQL2016 et n'étaient pas compatibles avec SQL2014). Je travaillais sur une formation de EDX.org: "DAT216x: fournir un entrepôt de données relationnel" et j'avais téléchargé ces deux fichiers à partir de la formation: AdventureWorks2016CTP3.bak et AdventureWorksDW2016CTP3.bak.

BAK à AzureDB

  1. [~ # ~] utilisateur [~ # ~] : Joseph Idziorek | [~ # ~] answer [~ # ~] : utilisez SQL Server dans une machine virtuelle, ce qui permettrait de restaurer un fichier .bak.

J'ai suivi ces 2 vidéos (hébergées sur YouTube) pour créer le Azure VM et SQL Instance à utiliser dans la formation MCA… Démo: approvisionnement de Microsoft Azure Services (VM, SQL). La vidéo de 9 heures montre comment mettre en service les ressources Azure pertinentes. La vidéo montre également comment obtenir la chaîne de connexion pour la base de données Azure SQL, utilisée à l'étape suivante.

Depuis Azure VM connexion de session distante à SSMS, j'ai procédé à la restauration de la base de données à partir de BAK.

  1. [~ # ~] utilisateur [~ # ~] : razon | [~ # ~] répondre [~ # ~] : clic droit (nom de la base de données)> Tâches> Déployer la base de données vers SQL Azure…

À partir de la connexion de session à distance Azure VM à l'instance SQL SSMS), j'ai exécuté l'assistant "Déployer la base de données sur SQL Azure" . Une fois la connexion établie, le déploiement prend quelques minutes. REMARQUE: vous devez utiliser "Authentification SQL Server" car "Windows" n'est pas pris en charge pour la base de données Azure. L'authentification Azure SQL Server a été démontrée dans le lien vidéo fourni. plus tôt dans cette réponse.

Environnements de déploiement

@@ nom_serveur @@ version

+------------------------------------------------------------------------------------------------------+
| Source                                                                                               |
+------------------------------------------------------------------------------------------------------+
| data216x                                                                                             |
|                                                                                                      |
| Microsoft SQL Server 2016 (SP1-CU13) (KB4475775) - 13.0.4550.1 (X64)                                 |
| Jan 10 2019 19:31:11                                                                                 |
| Copyright (c) Microsoft Corporation                                                                  |
| Developer Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor) |
+------------------------------------------------------------------------------------------------------+
| Target                                                                                               |
+------------------------------------------------------------------------------------------------------+
| sqlserver-dat216x                                                                                    |
|                                                                                                      |
|                                                                                                      |
| Microsoft SQL Azure (RTM) - 12.0.2000.8                                                              |
| Dec 19 2018 08:43:17                                                                                 |
| Copyright (C) 2018 Microsoft Corporation                                                             |
+------------------------------------------------------------------------------------------------------+

Résultats

Le Déployer la base de données sur Azure a échoué dans mon scénario de l'étape Importing database avec ce message. Une fois les objets incompatibles supprimés, le déploiement de la base de données Azure a abouti.

Importation de la base de données ...

TITRE: Microsoft SQL Server Management Studio

Impossible d'importer le package.

Avertissement SQL0: un projet spécifiant SQL Server 2016 comme plate-forme cible peut rencontrer des problèmes de compatibilité avec Microsoft Azure SQL Database v12.

Erreur SQL72014: Fournisseur de données .Net SqlClient: Msg 40536, niveau 16, état 2, ligne 1

Les tables MEMORY_OPTIMIZED ne sont pas prises en charge dans ce niveau de service de la base de données. Consultez la documentation en ligne pour plus de détails sur la prise en charge des fonctionnalités dans différents niveaux de service de la base de données Windows Azure SQL.

Erreur SQL72045: Erreur d'exécution du script. Le script exécuté:

CREATE TYPE [Sales].[SalesOrderDetailType_inmem] AS TABLE (
    [OrderQty]       SMALLINT NOT NULL,
    [ProductID]      INT      NOT NULL,
    [SpecialOfferID] INT      NOT NULL,
    INDEX [IX_SpecialOfferID] NONCLUSTERED HASH ([SpecialOfferID]) WITH (BUCKET_COUNT = 8),
    INDEX [IX_ProductID] NONCLUSTERED HASH ([ProductID]) WITH (BUCKET_COUNT = 8))
    WITH (MEMORY_OPTIMIZED = ON);

(Microsoft.SqlServer.Dac)

BOUTONS:

D'accord

Capture d'écran:

Après avoir supprimé l'objet incompatible, le déploiement de la base de données Azure a abouti. ( NOTE: j'ai dû le faire plusieurs fois. J'ai essayé Redgate SQLSearch pour MEMORY_OPTIMIZED mais il n'arrêtait pas de dire "pas de résultats de recherche" même si la définition de la table incluait le mot clé.)

enter image description here

0

Actuellement, Azure ne prend pas en charge la restauration de la base de données sur une instance SQL Azure à l'aide du fichier de sauvegarde (.bak). Mais il existe de nombreuses autres manières de migrer la base de données SQL vers Azure SQL. Par exemple, à l'aide de la mention de déploiement SQL Server Management Studio ou en effectuant la sauvegarde dans le fichier .bacpac, puis en l'important à l'aide de l'exportation/importation SSMS ou de l'outil d'assistance à la migration de base de données Microsoft. Le lien ci-dessous vous sera utile car ils expliquent ces méthodes en tant que processus étape par étape.

Comment migrer une base de données SQL vers une base de données SQL Azure à l'aide de l'exportation/importation SSMS

Comment migrer une base de données SQL vers une base de données SQL Azure à l'aide du déploiement SSMS

Migration de la base de données SQL vers une instance SQL Azure à l'aide de l'outil DMA (Assistant de migration de base de données)

0
vivek