web-dev-qa-db-ja.com

AzureからSQLにBACPACファイルをインポートして空のデータベースを作成する

AzureデータベースからData-Tier_applicationをエクスポートして、そのBACPACを作成しました。

BACPACのインポートに使用しようとしているSQLエディション:

SQL Server 2016 Express。

SQL Server 2017 Developer Edition。

エラーを修正するためにいくつかのビューと手順を削除すると、すべてが修正されました。

これで3GBのBACPACファイルがあり、それをSQL Server 2016または2017にインポート(右クリック-データベースメニューのデータ層アプリケーションをSSMSからインポート)しようとすると、次のエラーが表示されます: enter image description here

次のエラーメッセージが表示されます。

TITLE:Microsoft SQL Server Management Studio

パッケージをインポートできませんでした。警告SQL72012:オブジェクト

[DATABASE_NAME_Data]はターゲットに存在しますが、[ターゲットデータベースには存在するがソースには存在しないオブジェクトのドロップステートメントを生成する]チェックボックスを選択してもドロップされません。

警告SQL72012:オブジェクト[DATABASE_NAME_Log]はターゲットに存在しますが、[ターゲットデータベースにはあるがソースにはないオブジェクトのdropステートメントを生成する]チェックボックスをオンにしてもドロップされません。

エラーSQL72014:.Net SqlClientデータプロバイダー:メッセージ7609、レベル17、状態5、行2フルテキスト検索がインストールされていないか、フルテキストコンポーネントを読み込めません。エラーSQL72045:スクリプト実行エラー。実行されたスクリプト:CREATE FULLTEXT INDEX ON [dbo]。[Table]([Nome] LANGUAGE 1033、[field_1] LANGUAGE 1033)KEY INDEX [PK_Table] ON [table];

復元するのは初めてなので、これらのDATAとLOGを既に保持することはできません。

.BACPACファイルを.Zipに変更すると、多数のBCPファイルを含むDATAフォルダーが表示されます。

enter image description here

Bacpacファイルには3GBがあります。

ウェブサイトからの他の回答は、「最後まで待つ」とだけ言っていますが、エクスポートは4日前に終了しました。

別のデータベースから別のBACPACファイルがあり、それをSQLサーバーに正常にインポートできます。エクスポート時に、両方のBACPACファイルに同じ手順を実行しました。

2
Racer SQL

私はその問題に数分遭遇し、bacpacからフルテキストのものを削除する方法を見つけました。

私はこのPowerShellスクリプトを見つけました(ただし、スクリプトを理解して使用するよりも速かったため、手動でバックアップを修正しました)。

https://Gist.github.com/JohnLBevan/6a8876f71a25aa600254d7127cf1a819

  1. バックアップの名前をZipに変更します
  2. model.xmlおよびOrigin.xmlを抽出する
  3. テキストエディターでmodel.xmlを開き、「fulltext」を探します
  4. XML内のすべてのフルテキスト要素を削除します
  5. ヘッダーでフルテキストをfalseに設定します
  6. 編集されたxmlのSHA256ハッシュを計算します(そのためにhashtabを使用しました)
  7. Origin.xmlのハッシュ/チェックサムを修正する
  8. 更新されたファイルをZipに追加します
  9. 名前をbacpacに戻し、インポートします。
  10. 「自分のマシンで動作しました」-お役に立てば幸いです
3
wischi