ApsaraDB RDS for SQL Server は、セルフマネージド SQL Server データベースを Alibaba Cloud へ移行するためのソリューションを提供します。セルフマネージド SQL Server データベースの完全バックアップデータを Alibaba Cloud Object Storage Service (OSS) にアップロードし、ApsaraDB RDS コンソールから指定した ApsaraDB RDS for SQL Server データベースへ完全バックアップデータをインポートするだけです。このソリューションは、データバックアップ、データ移行、ディザスタリカバリなどのシナリオに適しています。
前提条件
ApsaraDB RDS for SQL Server インスタンスは、以下の要件を満たす必要があります。
インスタンスの残りのストレージ領域は、移行するデータファイルのサイズより大きい必要があります。ストレージ領域が不足している場合は、事前にインスタンスのストレージをアップグレードしてください。
インスタンスが SQL Server 2012 以降、または SQL Server 2008 R2 でクラウドディスクを使用している場合は、移行するデータベースと同じ名前のデータベースがインスタンスに含まれていないことを確認してください。
インスタンスが SQL Server 2008 R2 で高性能ローカルディスクを使用している場合は、移行するデータベースと同じ名前のデータベースがインスタンスに作成されていることを確認してください。
RAM ユーザーとしてログインする場合は、以下の要件を満たす必要があります。
RAM ユーザーに AliyunOSSFullAccess および AliyunRDSFullAccess 権限が付与されていること。RAM ユーザーへの権限付与方法の詳細については、「RAM を使用した OSS 権限の管理」および「RAM を使用した ApsaraDB RDS 権限の管理」をご参照ください。
Alibaba Cloud アカウント (プライマリアカウント) が、ApsaraDB RDS の公式サービスアカウントに OSS リソースへのアクセスを許可していること。
Alibaba Cloud アカウント (プライマリアカウント) で手動で権限ポリシーを作成し、そのポリシーを RAM ユーザーにアタッチします。
注意事項
移行範囲: このソリューションは、単一のデータベース (データベースレベル) の移行のみをサポートします。複数のデータベースまたはすべてのデータベースを移行する場合は、インスタンスレベルの移行ソリューション を使用してください。
バージョン互換性: セルフマネージド環境の SQL Server で作成したバックアップファイルは、下位バージョンの ApsaraDB RDS for SQL Server インスタンスには移行できません。
権限管理 : ApsaraDB RDS サービスアカウントに OSS へのアクセス権限を付与すると、システムは RAM に
AliyunRDSImportRoleという名前のロールを作成します。このロールは変更または削除しないでください。変更または削除すると、移行タスクは失敗します。 誤ってロールを変更または削除した場合は、データ移行ウィザードで再度権限を付与してください。アカウント管理: 移行が完了すると、元のデータベースのアカウントは使用できなくなります。ApsaraDB RDS コンソールでアカウントを再作成してください。
OSS ファイルの保持: 移行タスクが完了する前に、OSS からバックアップファイルを削除しないでください。削除すると、タスクは失敗します。
バックアップファイルの要件:
ファイル名: ファイル名に
!@#$%^&*()_+-=などの特殊文字を含めることはできません。含めると、移行は失敗します。ファイル拡張子: ApsaraDB RDS でサポートされているバックアップファイルには、
.bak(完全バックアップ)、.diff(差分バックアップ)、および.trnまたは.log(ログバックアップ) ファイルが含まれます。 他の種類のファイルは認識できません。ファイルタイプ: アップロードできるのはフルバックアップファイルのみです。差分バックアップファイルとログバックアップファイルはサポートされていません。
ファイルソース: ソースデータが、ApsaraDB RDS for SQL Server からダウンロード済みのフルバックアップファイル (デフォルトでは
.zip形式) の場合は、データをクラウドに移行する前に、.bakファイルに解凍してください。
課金
このソリューションでは、OSS および ApsaraDB RDS 関連の料金が発生します。 詳細については、以下をご参照ください:
シナリオ | 課金 |
セルフマネージドデータベースのバックアップファイルを OSS にアップロード | 無料。 |
バックアップファイルを OSS に保存 | OSS のストレージ料金が課金されます。 課金の詳細については、「OSS の料金」をご参照ください。 |
バックアップファイルを OSS から ApsaraDB RDS へ移行 |
|
事前準備
セルフマネージドデータベース環境で DBCC CHECKDB ステートメントを実行し、データベースに 割り当てエラー または 整合性エラー がないことを確認してください。データベースが正常な状態の場合、以下の結果が返ります:
...
CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxx'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.1. セルフマネージドデータベースのバックアップ
ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいて、ソリューションを選択します。
SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2
セルフマネージドデータベースの完全バックアップを作成する前に、データ書き込みが停止していることを確認してください。バックアップ処理中に書き込まれたデータは、バックアップファイルに含まれません。
次のコマンドを実行して、ソースデータベースの現在の復旧モデルを確認します。
SELECT name AS DatabaseName, recovery_model_desc AS RecoveryModel, state_desc AS State FROM sys.databases ORDER BY name;ApsaraDB RDS への移行用に本番バックアップを作成する前に、データベースの復旧モデルを FULL に変更します。
ALTER DATABASE [db_simple] SET RECOVERY FULL WITH NO_WAIT;バックアップスクリプトをダウンロードし、SQL Server Management Studio (SSMS) でバックアップスクリプトを開きます。
スクリプトの SELECT ステートメントで、次のパラメーターを変更します。これらのパラメーターは、スクリプト内の
YOU HAVE TO INIT PUBLIC VARIABLES HEREの下に記述されています。パラメーター
説明
@backup_databases_list
バックアップするデータベース。複数のデータベースはセミコロン (;) またはカンマ (,) で区切ります。
@backup_type
バックアップタイプ。有効な値は次のとおりです。
FULL:完全バックアップ。
DIFF:差分バックアップ。
LOG:ログバックアップ。
@backup_folder
バックアップファイルを保存するローカルディレクトリ。ディレクトリが存在しない場合は、自動的に作成されます。
@is_run
バックアップを実行するかどうかを指定します。有効な値は次のとおりです。
1:バックアップを実行します。
0:チェックのみを実行し、バックアップは実行しません。
バックアップスクリプトを実行します。
高性能ローカルディスクを使用する SQL Server 2008 R2
Microsoft SQL Server Management Studio (SSMS) を開きます。
移行するデータベースにログインします。
次のコマンドを実行して、ソースデータベースの現在の復旧モデルを確認します。
USE master; GO SELECT name, CASE recovery_model WHEN 1 THEN 'FULL' WHEN 2 THEN 'BULK_LOGGED' WHEN 3 THEN 'SIMPLE' END model FROM sys.databases WHERE name NOT IN ('master','tempdb','model','msdb'); GOクエリ結果の
modelの値がFULLではない場合は、手順 4 に進みます。クエリ結果の
modelの値がFULLの場合は、手順 5 に進みます。
次のコマンドを実行して、ソースデータベースの復旧モデルを
FULLに設定します。ALTER DATABASE [dbname] SET RECOVERY FULL; GO ALTER DATABASE [dbname] SET AUTO_CLOSE OFF; GO重要復旧モデルを
FULLに設定すると、生成される SQL Server ログが増加します。十分なディスク領域があることを確認してください。次のコマンドを実行して、ソースデータベースをバックアップします。
この例では、dbtest データベースを backup.bak ファイルにバックアップします。
USE master; GO BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT; GO次のコマンドを実行して、バックアップファイルの完全性を検証します。
USE master GO RESTORE FILELISTONLY FROM DISK = N'D:\backup\backup.bak';重要結果セットが返された場合、バックアップファイルは有効です。
エラーが報告された場合は、バックアップを再度実行してください。
オプション: 次のコマンドを実行して、データベースの復旧モデルを元に戻します。
重要データベースの復旧モデルがすでに
FULLの場合は、この手順をスキップしてください。ALTER DATABASE [dbname] SET RECOVERY SIMPLE; GO
2. バックアップファイルの OSS へのアップロード
お使いの ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいて、ソリューションを選択します。
SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2
バックアップファイルを OSS にアップロードする前に、OSS にバケットを作成する必要があります。
OSS にバケットが既に存在する場合、バケットが次の要件を満たしていることを確認してください:
OSS にバケットが存在しない場合は、まずバケットを作成します。 (OSS が 有効化 されていることを確認してください。)
OSS コンソールにログオンし、バケット をクリックし、次に バケットの作成 をクリックします。
次の主要なパラメーターを設定し、他のパラメーターはデフォルト値のままにします。
重要このバケットはこのデータ移行でのみ使用されため、主要なパラメーターのみを設定する必要があります。 移行完了後、データ漏洩や追加料金を防ぐために、バケットを速やかに削除してください。
バケット作成時に サーバー側の暗号化 を有効にしないでください。
パラメーター
説明
例
[バケット名]
バケットの名前。 名前はグローバルに一意である必要があり、バケット作成後は変更できません。
命名規則:
名前には、小文字、数字、ハイフン (-) のみ使用できます。
名前の先頭と末尾は、小文字または数字である必要があります。
名前の長さは 3~63 文字である必要があります。
migratetest
[リージョン]
バケットが存在するリージョン。 ECS インスタンスから内部ネットワーク経由でバケットにデータをアップロードし、内部ネットワーク経由でデータを ApsaraDB RDS インスタンスに復元する場合、ECS インスタンス、バケット、ApsaraDB RDS インスタンスが同じリージョンに存在することを確認してください。
中国 (杭州)
[ストレージタイプ]
[標準ストレージ] を選択します。 このトピックで説明する移行操作は、他のストレージクラスのバケットをサポートしていません。
スタンダード
バックアップファイルを OSS にアップロードします。
セルフマネージドデータベースのバックアップが完了したら、バックアップファイルを ApsaraDB RDS インスタンスと 同じリージョン にある OSS バケットにアップロードします。 バケットと ApsaraDB RDS インスタンスが同じリージョンにある場合、バケットとインスタンスは内部ネットワーク経由で通信できます。 この場合、インターネットトラフィック料金は発生せず、データはより高速にアップロードされます。 次のいずれかの方法を使用できます:
高性能ローカルディスクを使用する SQL Server 2008 R2
バックアップファイルを OSS にアップロードする前に、OSS にバケットを作成する必要があります。
OSS にバケットが既に存在する場合、バケットが次の要件を満たしていることを確認してください:
OSS にバケットが存在しない場合は、まずバケットを作成します。 (OSS が 有効化 されていることを確認してください。)
OSS コンソールにログオンし、バケット をクリックし、次に バケットの作成 をクリックします。
次の主要なパラメーターを設定し、他のパラメーターはデフォルト値のままにします。
重要このバケットはこのデータ移行でのみ使用されため、主要なパラメーターのみを設定する必要があります。 移行完了後、データ漏洩や追加料金を防ぐために、バケットを速やかに削除してください。
バケット作成時に サーバー側の暗号化 を有効にしないでください。
パラメーター
説明
例
[バケット名]
バケットの名前。 名前はグローバルに一意である必要があり、バケット作成後は変更できません。
命名規則:
名前には、小文字、数字、ハイフン (-) のみ使用できます。
名前の先頭と末尾は、小文字または数字である必要があります。
名前の長さは 3~63 文字である必要があります。
migratetest
[リージョン]
バケットが存在するリージョン。 ECS インスタンスから内部ネットワーク経由でバケットにデータをアップロードし、内部ネットワーク経由でデータを ApsaraDB RDS インスタンスに復元する場合、ECS インスタンス、バケット、ApsaraDB RDS インスタンスが同じリージョンに存在することを確認してください。
中国 (杭州)
[ストレージタイプ]
[標準ストレージ] を選択します。 このトピックで説明する移行操作は、他のストレージクラスのバケットをサポートしていません。
スタンダード
バックアップファイルを OSS にアップロードします。
セルフマネージドデータベースのバックアップが完了したら、バックアップファイルを ApsaraDB RDS インスタンスと 同じリージョン にある OSS バケットにアップロードします。 バケットと ApsaraDB RDS インスタンスが同じリージョンにある場合、バケットとインスタンスは内部ネットワーク経由で通信できます。 この場合、インターネットトラフィック料金は発生せず、データはより高速にアップロードされます。 次のいずれかの方法を使用できます:
バックアップファイルの URL の有効期間を設定し、バックアップファイルの URL を取得します。
OSS コンソールにログインします。
バケット をクリックし、移行先のバケットの名前をクリックします。
左側のナビゲーションペインで、ファイル管理 > ファイルリスト を選択します。
宛先データベースのバックアップファイルの「操作」列で詳細をクリックし、表示されるパネルで[有効期限 (秒)]を 28800 秒 (8 時間) に変更します。
重要バックアップファイルの URL は、バックアップファイルを OSS から ApsaraDB RDS に移行する際に必要です。 移行完了前に URL の有効期限が切れると、データ移行は失敗します。
オブジェクト URL のコピー をクリックして、バックアップファイルの URL を取得します。
バックアップファイルの URL を変更します。
取得した URL は、デフォルトでファイルのパブリック URL です。 内部ネットワーク経由でデータを移行するには、ファイル URL のエンドポイントを内部エンドポイントに変更してください。
たとえば、バックアップファイルの URL が
http://rdstest.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=15141****&OSSAccessKeyId=TMP****の場合、URL のoss-cn-shanghai.aliyuncs.comをoss-cn-shanghai-internal.aliyuncs.comに変更してください。重要内部エンドポイントは、ネットワークタイプとリージョンによって異なります。 詳細については、「リージョンとエンドポイントリージョンとエンドポイント」をご参照ください。
3. OSS バックアップデータの ApsaraDB RDS へのインポート
ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいてソリューションを選択します。
SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
左側のナビゲーションペインで、復元 を選択します。
ページの上部にあるOSS バックアップデータをクラウド上で復元するをクリックします。
インポートガイド ページで、次へ を 2 回クリックしてデータインポートステップに進みます。
説明OSS バックアップデータ移行機能を初めて使用する場合、ApsaraDB RDS サービスアカウントによる OSS へのアクセスを承認する必要があります。権限付与アドレス をクリックして、承認を確定します。そうしないと、権限の問題が原因で OSS バケット ドロップダウンリストが空になります。
目的のファイルがページに表示されない場合は、OSS 内のバックアップファイルの拡張子が要件を満たしているかどうかを確認し (拡張子の要件はこのトピックの注意事項で確認できます)、ApsaraDB RDS インスタンスと OSS バケットが同じリージョンにあることを確認してください。
以下のパラメーターを設定します。
パラメーター
説明
[データベース名]
移行先 ApsaraDB RDS インスタンスにおいて、バックアップデータをインポートするデータベースの名前。名前は、SQL Server の公式命名規則に準拠している必要があります。
重要データをクラウドに移行する前に、バックアップファイルから復元するデータベースと同じ名前のデータベースが移行先インスタンスに存在しないこと、および同じ名前のアタッチされていないデータベースファイルが存在しないことを確認してください。どちらも存在しない場合、バックアップセット内のターゲットデータベース名と同じ名前のデータベースファイルを使用してデータベースを復元できます。
バックアップファイルから復元するデータベースと同じ名前のデータベースが移行先インスタンスに存在する場合、または同じ名前のアタッチされていないデータベースファイルが存在する場合、移行は失敗します。
[OSS バケット]
バックアップファイルが保存されている OSS バケットを選択します。
[OSS ファイル]
右側の
アイコンをクリックして、ファイル名のプレフィックスを指定してバックアップファイルを検索します。各ファイルのファイル名、ファイルサイズ、および更新時刻が表示されます。移行するバックアップファイルを選択します。[クラウド移行計画]
データベースを開く (完全バックアップファイルは 1 件のみ): 完全移行。 このオプションは、1 つの完全バックアップファイルのみを使用して移行するシナリオに適しています。 この例では、データベースを開く (完全バックアップファイルは 1 件のみ) が選択されています。 この場合、CreateMigrateTask 操作では
BackupMode = FULLおよびIsOnlineDB = Trueとなります。[データベースを開かない (差分バックアップまたはログファイルがあります)]: 増分移行です。このオプションは、完全バックアップファイルと、ログバックアップファイルまたは差分バックアップファイルを一緒に使用して移行するシナリオに適しています。この場合、CreateMigrateTask 操作では
BackupMode = UPDFおよびIsOnlineDB = Falseとなります。
[整合性のチェックメソッド]
非同期 DBCC:システムは、データベースを開く際に DBCC CHECKDB を実行しません。代わりに、データベースを開くタスクが完了した後、システムは非同期で DBCC CHECKDB を実行します。これにより、データベースを開く際の所要時間が短縮され (DBCC CHECKDB は大規模なデータベースでは時間がかかります)、サービス停止時間が短縮されます。サービスのダウンタイムを最小限に抑える必要があり、DBCC CHECKDB の結果が重要でない場合は、非同期 DBCC を使用してください。この場合、CreateMigrateTask API で
CheckDBMode = AsyncExecuteDBCheckとなります。同期 DBCC:非同期 DBCC と比較して、同期 DBCC は DBCC CHECKDB の結果を重視し、セルフマネージドデータベースのデータ整合性エラーを特定したいユーザーに適しています。この場合、データベースを開くために必要な時間が増加します。この場合、CreateMigrateTask API で
CheckDBMode = SyncExecuteDBCheckとなります。
OK をクリックします。
移行タスクが完了するまでお待ちください。 更新 をクリックすると、タスクの最新のステータスを表示できます。 移行タスクが失敗した場合は、タスクの説明にあるメッセージに基づいて問題をトラブルシューティングしてください。 詳細については、このトピックの「一般的なエラー」をご参照ください。
説明データ移行が完了すると、システムは ApsaraDB RDS インスタンスの自動バックアップポリシーに基づいて、指定されたバックアップ時間にバックアップを開始します。バックアップ時間は手動で変更できます。生成されたバックアップセットには移行されたデータが含まれており、ApsaraDB RDS インスタンスの復元 ページで表示できます。
バックアップ時刻に達していないが、できるだけ早くクラウド上にバックアップを生成したい場合は、手動バックアップを実行できます。
SQL Server 2008 R2 (高性能ローカルディスク)
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
左側のナビゲーションペインで、データベース管理 をクリックします。
移行先データベースを探し、OSSからバックアップファイルを移行します を、アクション 列内でクリックします。
インポートガイド ダイアログボックスでメッセージを読み、次へ をクリックします。
OSS アップロードに関するメッセージを読み、次へ をクリックします。
バックアップファイルOSS URL フィールドにバックアップファイルの OSS URL を入力し、OK をクリックします。
説明高性能ローカルディスクを使用する ApsaraDB RDS for SQL Server インスタンス (SQL Server 2008 R2) は、完全バックアップファイルを一度にクラウドに移行するソリューションのみをサポートします。
4. バックアップ移行の進捗確認
お使いの ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいて、ソリューションを選択します。
SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2
ApsaraDB RDS インスタンスの左側のナビゲーションウィンドウで 復元 ページに移動し、クラウド上へのデータバックアップの記録 タブでバックアップ移行の履歴を確認できます。 履歴には、タスクステータス、タスク開始時刻、タスク終了時刻が含まれます。 デフォルトでは、先週の履歴が表示されます。 必要に応じて時間範囲を変更できます。
タスクステータス が 失敗 の場合は、タスクの説明 を確認するか、対象の移行タスクの横にある ファイルの詳細を表示します をクリックして失敗の原因を特定して修正し、再度データ移行を実行してください。
高性能ローカルディスクを使用する SQL Server 2008 R2
ApsaraDB RDS インスタンスの左側のナビゲーションウィンドウでデータ移行ページに移動し、対象の移行タスクを見つけてデータ移行の進捗を確認します。
タスクステータス が 失敗しました の場合は、タスクの説明 を確認するか、対象の移行タスクの横にある ファイルの詳細を表示します をクリックして失敗の原因を特定して修正し、再度データ移行を実行してください。
一般的なエラー
各バックアップ移行履歴には、タスクの説明が含まれています。タスクの説明から、タスクの失敗やエラーの原因を特定できます。以下は、一般的なエラーメッセージです。
同じ名前のデータベースがすでに存在する
エラーメッセージ 1: The database (xxx) is already exist on RDS, please backup and drop it, then try again.
エラーメッセージ 2: Database 'xxx' already exists. Choose a different database name.
原因:データセキュリティを確保するため、ApsaraDB RDS for SQL Server は、既存のデータベースと同じ名前のデータベースへのデータ移行をサポートしていません。
解決策:既存のデータベースのデータを上書きする場合は、既存のデータをバックアップし、データベースを削除してから、データ移行タスクを再度実行してください。
差分バックアップファイルが使用されている
エラーメッセージ: Backup set (xxx.bak) is a Database Differential backup, we only accept a FULL Backup.
原因:指定されたバックアップファイルは、完全バックアップファイルではなく差分バックアップファイルです。完全バックアップファイルの一括移行は、完全バックアップファイルのみをサポートしており、差分バックアップファイルはサポートしていません。
ログバックアップファイルが使用されている
エラーメッセージ: Backup set (xxx.trn) is a Transaction Log backup, we only accept a FULL Backup.
原因:指定されたバックアップファイルは、完全バックアップファイルではなくログバックアップファイルです。完全バックアップファイルの一括移行は、完全バックアップファイルのみをサポートしており、ログバックアップファイルはサポートしていません。
バックアップファイルの検証の失敗
エラーメッセージ: Failed to verify xxx.bak, backup file was corrupted or newer edition than RDS.
原因:バックアップファイルが破損しているか、セルフマネージド環境の SQL Server インスタンスのバージョンが ApsaraDB RDS for SQL Server インスタンスのバージョンよりも新しいため、検証が失敗します。たとえば、SQL Server 2016 のバックアップファイルを SQL Server 2012 を実行している ApsaraDB RDS for SQL Server インスタンスに復元すると、このエラーが発生します。
解決策: バックアップファイルが破損している場合は、自己管理環境で別の完全バックアップを作成し、別の移行タスクを作成します。自己管理環境の SQL Server インスタンスのバージョンが ApsaraDB RDS for SQL Server インスタンスのバージョンより新しい場合は、同じか、それ以降のバージョンの ApsaraDB RDS for SQL Server インスタンスを使用します。
説明既存の ApsaraDB RDS for SQL Server インスタンスを新しいバージョンにアップグレードするには、「データベースバージョンをアップグレードする」をご参照ください。
DBCC CHECKDB の失敗
エラーメッセージ: DBCC checkdb failed.
原因:DBCC CHECKDB 操作が失敗しました。セルフマネージド環境のデータベースでエラーが発生しています。
解決策:以下のコマンドを実行して、セルフマネージド環境のデータベースのエラーを修正してから、データを再度移行してください。
重要このコマンドを使用してエラーを修正する際に、データが失われる可能性があります。
DBCC CHECKDB (DBName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS
ストレージ領域の不足 1
エラーメッセージ: Not Enough Disk Space for restoring, space left (xxx MB) < needed (xxx MB).
原因:ApsaraDB RDS インスタンスのストレージの空き容量が、バックアップファイルの移行に必要な最小容量を下回っています。
解決策:インスタンスのストレージ領域をアップグレードしてください。
ストレージ領域の不足 2
エラーメッセージ: Not Enough Disk Space, space left xxx MB < bak file xxx MB.
原因:ApsaraDB RDS インスタンスのストレージの空き容量がバックアップファイルのサイズより小さく、最小ストレージ要件を満たしていません。
解決策:インスタンスのストレージ領域をアップグレードしてください。
ログインアカウントの権限不足
エラーメッセージ: Cannot open database "xxx" requested by the login. The login failed.
原因:ApsaraDB RDS インスタンスへのログインアカウントに、対象データベースへのアクセス権限がありません。
解決策: ApsaraDB RDS インスタンスの アカウント管理 ページで、アカウントにデータベースのアクセス権限または管理権限を付与します。詳細については、「アカウントの権限を変更する」および「ApsaraDB RDS for SQL Server インスタンスのアカウント権限」をご参照ください。
特権アカウントが存在しない
エラーメッセージ: Your RDS doesn’t have any init account yet, please create one and grant permissions on RDS console to this migrated database (xxx).
原因:ApsaraDB RDS インスタンスに特権アカウントが存在しません。そのため、移行タスクは、移行後のデータベースにどのアカウントの権限を付与すべきか特定できません。ただし、バックアップファイルは移行先インスタンスに復元されているため、タスクのステータスは「成功」になります。
解決策:特権アカウントを作成してください。
RAM ユーザーの操作権限不足
Q1: データ移行タスクの作成 手順のステップ 5 を実行すると、すべてのパラメーターが設定されているにもかかわらず、OK ボタンがグレー表示されてクリックできません。どうすればよいですか?
A1:RAM ユーザーとしてログインしている場合、権限が不足しているためにボタンをクリックできない可能性があります。このトピックの [前提条件] を確認して、必要な権限が付与されていることを確認してください。
Q2: RAM ユーザーを使用して
AliyunRDSImportRoleに権限を付与する際に、permission deniedメッセージが表示された場合はどうすればよいですか。A2:Alibaba Cloud プライマリアカウントを使用して、RAM ユーザーに AliyunRAMFullAccess 権限を一時的に付与してください。
データベース名が SQL Server システムデータベースの名前と同じ
エラーメッセージ: The database (xxx) is mssql system db, change your database name and try again.
原因:指定されたデータベース名が、master、msdb、tempdb、model などの SQL Server システムデータベースの名前と同じです。
解決策:別のデータベース名を指定してください。
データベース名が RDS インスタンスのシステムデータベースの名前と同じ
エラーメッセージ: The database (xxx) is RDS system db, change your database name and try again.
原因:指定されたデータベース名が、rdscore などの ApsaraDB RDS for SQL Server インスタンスの管理データベースの名前と同じです。
解決策:別のデータベース名を指定してください。
データベース数が上限を超えている
エラーメッセージ: The database (xxx) migration failed due to databases count limitation: xxx.
原因:データベース数が上限を超えています。
解決策:インスタンス内のデータベース数を減らしてから、再試行してください。
OSS ダウンロード URL の問題
エラーメッセージ 1: Failed to download backup (xxx) since OSS URL was expired.
エラーメッセージ 2: Failed to download since could not find backup file (xxx) on OSS.
原因:OSS ダウンロード URL の有効期限切れ、ApsaraDB RDS サービスアカウントの未認可、RAM ユーザーの権限不足、ファイルの不存在などが考えられます。
解決策:ファイルが OSS に存在するか、権限が適切に付与されているか、認可が有効かを確認してから、再試行してください。
ストライプバックアップの問題
エラーメッセージ: Failed to verify (xxx.bak), error message:The media set has xxx media families but only 1 are provided. All members must be provided. VERIFY DATABASE is terminating abnormally.
原因:ソースデータベースのバックアップ時にストライプバックアップ機能が使用されています。この場合、完全バックアップは複数の .bak ファイルに分割されますが、OSS から ApsaraDB RDS へデータを移行する際には 1 つのファイルしか指定されていません。ApsaraDB RDS は、一度に複数ファイルからの移行をサポートしていません。
解決策:ソースデータベースを単一の .bak ファイルにバックアップしてから、再試行してください。
一般的な返信メッセージ
タスクタイプ | タスクステータス | タスクの説明 | 説明 |
完全バックアップ ファイルのワンタイム移行 | 成功 |
| 移行に成功しました。 |
失敗 |
| OSS ダウンロード URL の有効期限が切れたため、移行に失敗しました。 | |
| バックアップ ファイルが破損しているか、RDS バージョンよりも新しいバージョンで作成されているため、移行に失敗しました。 | ||
| DBCC checkdb 操作が失敗したため、移行に失敗しました。 | ||
| トランザクションログ バックアップ ファイルが使用されたため、移行に失敗しました。 | ||
| 差分バックアップ ファイルが使用されたため、移行に失敗しました。 |
関連する API オペレーション
API | 説明 |
OSS から ApsaraDB RDS for SQL Server インスタンスへバックアップファイルを復元し、データ移行タスクを作成します。 | |
ApsaraDB RDS for SQL Server インスタンスのバックアップデータ移行タスクのデータベースを開きます。 | |
ApsaraDB RDS for SQL Server インスタンスのバックアップデータ移行タスクのリストを照会します。 | |
ApsaraDB RDS for SQL Server インスタンスのバックアップデータ移行タスクのバックアップファイルの詳細を照会します。 |
をクリックし、アップロードするバックアップファイルを選択して、[開く] をクリックします。 ローカルファイルが OSS にアップロードされます。