---
title: "ブロブ移行ツールを使え"
slug: "use-the-blob-migration-tool"
abstract: "SQL DatabaseからAzure Storageへブロブを移行します。"
---
# ブロブ移行ツールを使え

SQL DatabaseからAzure StorageへのBlob移行を支援するために、Blob移行ツールを使用します。移行プロセス中はダウンタイムがゼロで、SQLデータベースから自動的に削除されることはありません。ただし、移行を始める前に現在のデータをバックアップしておくのは良い習慣です。

## 前提条件

SitecoreインスタンスのBlob移行ツールを使う前に、以下の条件を満たす必要があります:

-   Sitecore 9.3以降をインストールしてください
-   [Enable Azure Blob Storage for Sitecore blobs](https://doc.sitecore.com/xp/ja/developers/104/sitecore-experience-manager/enable-the-azure-blob-storage-module-for-sitecore-blobs.html "Enable the Azure Blob Storage module for Sitecore blobs")
-   [デフォルトプロバイダーの設定](https://doc.sitecore.com/xp/ja/developers/104/sitecore-experience-manager/enable-the-azure-blob-storage-module-for-sitecore-blobs.html "Enable the Azure Blob Storage module for Sitecore blobs") - PaaSインストールのデフォルトプロバイダーはMicrosoft Azure ® Blob Storageモジュールです。移行プロセス中に作成されたすべての新しいブロブがAzure Storageで作成されるようにするには、Microsoft Azure Storage Blob Providerをデフォルトのプロバイダーとして設定する必要があります。

以下のPowerShellスクリプトを用意してください。Azure Blob Storageモジュールはこれらを使ってSQLデータベースからAzureストレージへのブロブ移行を支援します。スクリプトはContent Management (CM)およびContent Delivery(CD)のウェブアプリケーション内のAppData/Migrationフォルダ内にあります。

-   Invoke-Migration.ps1 - このスクリプトを使ってSQLデータベースからAzureストレージへのブロブを移行する。このスクリプトを使用する際は、以下の例とパラメータ表を参照してください。
    
    .\\Invoke-Migration.ps1 -SqlDBConnectionNames @("master", "web") -AzureBlobConnectionName "azureblob" -BlobContainerName "blobcontainer" -Force \*>&1 | Tee-Object -FilePath Invoke-Migration.log
    
    表2。Invoke-Migration.ps1
    
    パラメータ
    
    概要
    
    SqlDBConnectionNames
    
    Sitecore SQLデータベースからブロブストレージへブロブを移行する接続文字列の名前SQL Azure
    
    AzureBlobConnectionName
    
    Azure Blob Storage 接続列の名前です。
    
    BlobContainerName
    
    Azure Storageに存在しなければならない宛先ブロブコンテナの名前です。
    
    ConnectionStringsConfigFileRelativePath
    
    (任意)Sitecore接続文字列の設定ファイルに対するパス。デフォルト値は以下の通りです:  
      
    ..\\..\\App\_Config\\ConnectionStrings.Config
    
-   Revert-Migration.ps1 - このスクリプトを使って、SQLデータベースからAzureストレージへのブロブの移行を元に戻す。このスクリプトを使用する際は、以下の例とパラメータ表を参照してください。
    
    .\\Revert-Migration.ps1 -SqlDBConnectionNames @("master", "web") -AzureBlobConnectionName "azureblob" -BlobContainerName "blobcontainer" -Force \*>&1 | Tee-Object -FilePath Revert-Migration.log
    
    表3。Revert-Migration.ps1
    
    パラメータ
    
    概要
    
    SqlDBConnectionNames
    
    Sitecore SQLデータベースの接続文字列の名前は、SQLデータベースからAzureブロブストレージへブロブを移行します。
    
    AzureBlobConnectionName
    
    Azure Blob Storage 接続列の名前です。
    
    BlobContainerName
    
    Azure Storageに存在しなければならない宛先ブロブコンテナの名前です。
    
    ConnectionStringsConfigFileRelativePath
    
    (任意)Sitecore接続文字列の設定ファイルに対するパス。デフォルト値は以下の通りです:  
      
    ..\\..\\App\_Config\\ConnectionStrings.Config
    

## ブロブの移行

移行を始める前に、未使用のブロブはデータベースクリーンアップウィザードを実行して削除してください(これにより移行プロセス中の時間とリソースを節約できます)。大量のブロブを移行するのにかかる時間を見積もるには、[移行スクリプトのパフォーマンス表](https://doc.sitecore.com/xp/ja/developers/104/sitecore-experience-manager/considerations-for-using-the-azure-blob-storage-module.html "Considerations for using the Azure Blob Storage module")を参照してください。

> !注移行スクリプトはSQLデータベースからブロブを削除するのではなく、ブロブをAzureストレージにコピーするだけです。

移動を始めるには:

1.  Microsoft Azure Storage Blob Providerをデフォルトのプロバイダーとして設定していることを確認してください。
2.  CMの AppData/Migration フォルダに行ってください。
3.  Invoke-Migration.ps1スクリプトを実行してください(失敗があれば再度実行してください)。
4.  スクリプトが正常に完了したら、Azure Blob Storage コンテナでブロック数とコンテナサイズが正しいか確認してください。
5.  Sitecore CMとCDアプリケーションを実行し、SQL Blobs時代と同じようにすべてが動作するか確認してください。具体的に以下の点を確認してください:
    -   内容は正しく表示されています。
    -   内容は編集できます。
    -   内容をダウンロードできます。
6.  移行完了後にイン *メモリメディアアイテムが* 正しいブロブストレージアカウントを指すようにするために:
    -   移行スクリプトを実行した後、 */sitecore/admin/cache.aspx* ページを使ってSitecoreキャッシュをクリアします。
7.  移行が成功した後、すべてのデータがAzure Storageに正しくコピーされ、内容が正しくレンダリングされているか確認してください。
8.  SQLデータベースからブロブをクリーンアップする:管理者ロールで、データベースのクリーンアップ管理ウィザードを実行します。
9.  メディアライブラリのルート項目をサブアイテムで再公開します。

## リバート移行

移行が期待通りに動作しなかった場合や、再びSQLデータベースを使いたい場合は、移行を元に戻すことができます。

移行を元に戻すには:

1.  デフォルトのプロバイダを **Classic SQL Blob Provider** (classic)に設定してください。
2.  CMの AppData/Migration フォルダに行ってください。
3.  Revert-Migration.ps1スクリプトを実行してください。
4.  リバート移行完了後に、 *インメモリ* メディアアイテムが正しいブロブストレージアカウントを指すようにするために:
    -   リバート移行スクリプトを実行した後、 */sitecore/admin/cache.aspx* ページを使ってSitecoreキャッシュをクリアしてください。

> !注移行プロセス中に新しいブロブが作成される可能性があります。移行を元に戻すと、Azure Storageで作成されたすべての新しいブロブがコピーされます。

## 移行の柔軟性

SQLデータベースからAzureストレージへのブロブ移行のオプションやプロセスは非常に柔軟です:

-   もし何らかの理由で移行スクリプトが移行中に失敗した場合は、再度スクリプトを実行して移行を続けることができます。脚本は最後に確認されている状態から再開されます。
-   移行スクリプトは、ブロブがAzure Storageにアップロード中に一時的なエラーが発生すると自動的に再挑戦します。
-   移行スクリプトはさまざまな場所から実行できます:
    -   Sitecoreのウェブアプリケーションでは、CMの役割でKudoを使っています。
        
        > !注[Kudoの移行およびPowerShellの制限](https://doc.sitecore.com/xp/ja/developers/104/sitecore-experience-manager/considerations-for-using-the-azure-blob-storage-module.html "Considerations for using the Azure Blob Storage module")を理解してください。KudoにはPowerShellプロセスを実行するログに制限があります。
        
    -   Azure Cloud Shellの使用(詳細は [「PowerShell Coreで遷移スクリプトを実行](https://doc.sitecore.com/xp/ja/developers/104/sitecore-experience-manager/considerations-for-using-the-azure-blob-storage-module.html "Considerations for using the Azure Blob Storage module")」を参照)。
        
    -   PowerShell Coreの使用(詳細は [「PowerShell Coreで移行スクリプトを実行する](https://doc.sitecore.com/xp/ja/developers/104/sitecore-experience-manager/considerations-for-using-the-azure-blob-storage-module.html "Considerations for using the Azure Blob Storage module")」を参照)。
        
    -   ローカルボックスを使っています。