PowerShell を使用して、既存の同期グループの同期スキーマを更新する
適用対象: Azure SQL データベース
重要
SQL データ同期 は、2027 年 9 月 30 日に廃止される予定です。 代替のデータ レプリケーション/同期ソリューションへの移行を検討してください。
この Azure PowerShell の例では、既存の SQL データ同期の同期グループの同期スキーマを更新します。 複数のテーブルを同期しているときは、同期スキーマの効率的な更新にこのスクリプトが役立ちます。 この例では、UpdateSyncSchema スクリプトの使用方法を示します。このスクリプトは、GitHub で UpdateSyncSchema.ps1 として入手できます。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
注意
この記事では、Azure と対話するために推奨される PowerShell モジュールである Azure Az PowerShell モジュールを使用します。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
Azure Cloud Shell を使用する
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コード ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell でこの記事のコードを実行するには:
Cloud Shell を開始します。
[コピー] ボタンを選択して、コード ブロックをコードにコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードを実行します。
PowerShell をインストールしてローカルで使用する場合、このチュートリアルでは Az PowerShell 1.4.0 以降が必要になります。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount
を実行して Azure との接続を作成することも必要です。
SQL データ同期の概要については、「Azure のSQL データ同期とは?」を参照してください。
SQL データ同期は、Azure SQL Managed Instance または Azure Synapse Analytics をサポートしていません。
例
同期スキーマにすべてのテーブルを追加する
次の例では、データベース スキーマを最新の情報に更新し、ハブ データベースのすべての有効なテーブルを同期スキーマに追加します。
UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
-SyncGroupName <syncGroupName> -RefreshDatabaseSchema $true -AddAllTables $true
テーブルおよび列を追加および削除する
次の例では、[dbo].[Table1]
と [dbo].[Table2].[Column1]
を同期スキーマに追加し、[dbo].[Table3]
を削除します。
UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
-SyncGroupName <syncGroupName> -TablesAndColumnsToAdd "[dbo].[Table1],[dbo].[Table2].[Column1]" -TablesAndColumnsToRemove "[dbo].[Table3]"
スクリプト パラメーター
UpdateSyncSchema スクリプトには、次のパラメーターがあります。
パラメーター | Notes |
---|---|
$subscriptionId | 同期グループが作成されるサブスクリプション。 |
$resourceGroupName | 同期グループが作成されるリソース グループ。 |
$serverName | ハブ データベースのサーバー名。 |
$databaseName | ハブ データベース名。 |
$syncGroupName | 同期グループ名。 |
$memberName | ハブ データベースからではなく同期メンバーからデータベース スキーマを読み込む場合は、メンバー名を指定します。 ハブからデータベース スキーマを読み込む場合は、このパラメーターは空のままにします。 |
$timeoutInSeconds | スクリプトがデータベース スキーマを最新の情報に更新するときのタイムアウト。 既定値は 900 秒です。 |
$refreshDatabaseSchema | スクリプトがデータベース スキーマを最新の情報に更新する必要があるかどうかを指定します。 データベース スキーマが以前の構成から変化している場合 (たとえば、新しいテーブルまたは新しい列を追加した場合)、スキーマを再構成する前に最新の情報に更新する必要があります。 既定値は false です。 |
$addAllTables | この値を true にすると、すべての有効なテーブルと列が同期スキーマに追加されます。 $TablesAndColumnsToAdd と $TablesAndColumnsToRemove の値は無視されます。 |
$tablesAndColumnsToAdd | 同期スキーマに追加するテーブルまたは列を指定します。 各テーブルまたは列の名前は、スキーマ名で完全に区切る必要があります。 例: [dbo].[Table1] , [dbo].[Table2].[Column1] 。 複数のテーブルまたは列の名前をコンマ (,) で区切って指定できます。 |
$tablesAndColumnsToRemove | 同期スキーマから削除するテーブルまたは列を指定します。 各テーブルまたは列の名前は、スキーマ名で完全に区切る必要があります。 例: [dbo].[Table1] , [dbo].[Table2].[Column1] 。 複数のテーブルまたは列の名前をコンマ (,) で区切って指定できます。 |
スクリプトの説明
UpdateSyncSchema スクリプトでは、次のコマンドを使用します。 表内の各コマンドは、それぞれのドキュメントにリンクされています。
コマンド | Notes |
---|---|
Get-AzSqlSyncGroup | 同期グループに関する情報を返します。 |
Update-AzSqlSyncGroup | 同期グループを更新します。 |
Get-AzSqlSyncMember | 同期メンバーに関する情報を返します。 |
Get-AzSqlSyncSchema | 同期スキーマに関する情報を返します。 |
Update-AzSqlSyncSchema | 同期スキーマを更新します。 |
関連するコンテンツ
Azure PowerShell の詳細については、Azure PowerShell のドキュメントを参照してください。
その他の SQL Database 用の PowerShell サンプル スクリプトは、Azure SQL Database 用の PowerShell スクリプトのページにあります。
SQL データ同期の詳細については、以下を参照してください。
- 概要 - Azure の SQL データ同期を使用して Azure SQL Database と SQL Server の間でデータを同期する
- データ同期の設定
- データ同期エージェント - Azure の SQL データ同期の Data Sync Agent
- ベスト プラクティス - Azure の SQL データ同期のベスト プラクティス
- 監視 - Azure Monitor ログによる SQL データ同期の監視
- トラブルシューティング - Azure の SQL データ同期に関する問題のトラブルシューティング
- 同期スキーマの更新
- Transact-SQL の使用 - Azure の SQL データ同期内でスキーマ変更のレプリケートを自動化する
SQL Database の詳細については、以下をご覧ください。