web-dev-qa-db-ja.com

Azure SQL DatabaseへのSQL Serverバックアップの復元

SQLバックアップ.bakファイルを単純に取得し、それを復元ポイントとして使用してAzure SQL Databaseに新しいデータベースを生成する方法はありますか?

この状況で一般的に推奨されるウィザードは、使用するカスタムファイルを作成することを望んでいますが、暗号化されたオブジェクト(関数とビュー)をpし、それを実現する別の方法は見当たりません。

46
Mister Positive

ローカルマシンに既にデータベースがある場合は、SQL Management Studioを使用してAzureに直接移行できます。次の手順を実行します:

SSMSでデータベース名を右クリックします。 mssms

表示されるウィザードに従ってください。

SSMS v17を実行している場合、Azure SQLデータベースのエディション、サイズ、およびサービス目標を構成できます。

61
razon

現在、Azure SQL Databaseはその機能をサポートしていません。 Azure SQL Databaseで復元する唯一の方法は、BACPACファイルからのインポートです。このガイドに従って、BACPACファイルを使用してAzure SQL DBに移行できます。 https://Azure.Microsoft.com/en-us/documentation/ articles/sql-database-cloud-migrate /

他のオプションは、 VM内のSQL Server を使用することです。これにより、.bakファイルの復元が可能になります。

24
Joseph Idziorek

Azure SQL Serverで.BAKファイルを取得するには、このスレッドの両方の回答のアドバイスに従いました。

以下の手順を完了する前に、ラップトップのSQLインスタンスでBAKファイルの復元が失敗しました(バックアップはSQL2016からであり、SQL2014と互換性がありません)。 EDX.org:“ DAT216xリレーショナルデータウェアハウスの配信”からトレーニングに取り組んでおり、トレーニングから次の2つのファイルをダウンロードしました:AdventureWorks2016CTP3.bakおよびAdventureWorksDW2016CTP3.bak

AzureDBへのBAK

  1. USER:Joseph Idziorek | ANSWER:VMでSQL Serverを使用します。これにより、.bakファイルの復元が可能になります

これら2つのビデオ(YouTubeでホスト)に従って、MCAトレーニングで使用するAzure VMおよびSQL Instanceを作成しました…デモ:Microsoft Azureサービス(VM、SQL)のプロビジョニング)。 9:00分のビデオでは、関連するAzureリソースをプロビジョニングする方法を示しています。ビデオでは、次のステップで使用されるAzure SQL Databaseの接続文字列を取得する方法も示しています。

Azure VMリモートセッション接続からSSMSに、BAKからデータベースを復元しました。

  1. USER:razon | ANSWER:(データベース名)を右クリックして、タスク> SQL Azureへのデータベースのデプロイ…

SSMS SQLインスタンスへのAzure VMリモートセッション接続から、ウィザード「SQL Azureへのデータベースのデプロイ」を実行しました。接続が正常に完了した後、展開が完了するまでに数分かかりました。 注:Azureデータベースでは「Windows」がサポートされていないため、「SQL Server認証」を使用する必要があります。 Azure SQL Server認証は、この回答の前半で提供されたビデオリンクで実証されました

展開環境

@@ servername @@ 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                                                             |
+------------------------------------------------------------------------------------------------------+

結果

Azureにデータベースをデプロイは、このメッセージでステップImporting databaseのシナリオで失敗しました。互換性のないオブジェクトを削除した後、Azure DBの展開は成功しました。

データベースをインポートしています...

TITLE:Microsoft SQL Server Management Studio

パッケージをインポートできませんでした。

警告SQL0:SQL Server 2016をターゲットプラットフォームとして指定するプロジェクトでは、Microsoft Azure SQL Database v12との互換性の問題が発生する場合があります。

エラーSQL72014:.Net SqlClientデータプロバイダー:メッセージ40536、レベル16、状態2、行1

「MEMORY_OPTIMIZEDテーブル」は、データベースのこのサービス層ではサポートされていません。 Windows Azure SQL Databaseのさまざまなサービス層での機能サポートの詳細については、Books Onlineを参照してください。

エラーSQL72045:スクリプト実行エラー。実行されたスクリプト:

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)

ボタン:

OK

スクリーンショット:

互換性のないオブジェクトを削除した後、Azure DBの展開は成功しました。 (注:これを数回しなければなりませんでした。MEMORY_OPTIMIZEDに対してRedgate SQLSearchを試しましたが、テーブル定義にキーワードが含まれていても "検索結果なし"と言い続けました。

enter image description here

現在、Azureは、バックアップ(.bak)ファイルを使用したAzure SQLインスタンスでのデータベースの復元をサポートしていません。ただし、SQLデータベースをAzure SQLに移行する方法は他にもたくさんあります。たとえば、SQL Server Management Studioを使用して、メンションを展開するか、.bacpacファイルにバックアップを作成してから、SSMSエクスポート/インポートまたはMicrosoftデータベース移行支援ツールを使用してインポートします。以下のリンクは、これらの方法をステップバイステップのプロセスとして説明しているので役立ちます。

SSMSエクスポート/インポートを使用してSQLデータベースをAzure SQL Databaseに移行する方法

SSMSデプロイを使用してSQLデータベースをAzure SQL Databaseに移行する方法

Microsoft Database Migration Assistant(DMA)ツールを使用してSQLデータベースをAzure SQLインスタンスに移行する

0
vivek