すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:完全バックアップデータをクラウドに移行する

最終更新日:Nov 11, 2025

ApsaraDB RDS for SQL Server は、ローカルの SQL Server データベースを ApsaraDB RDS for SQL Server インスタンスに移行するためのソリューションを提供します。ローカルの 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 を実行するインスタンスの場合: 移行するデータベースと同じ名前のデータベースがインスタンス上に作成されていることを確認してください。

  • Resource Access Management (RAM) ユーザーを使用する場合、次の条件を満たす必要があります。

    • RAM ユーザーには AliyunOSSFullAccess および AliyunRDSFullAccess 権限が必要です。RAM ユーザーに権限を付与する方法の詳細については、「RAM を使用した OSS 権限の管理」および「RAM を使用した ApsaraDB RDS 権限の管理」をご参照ください。

    • Alibaba Cloud アカウントが ApsaraDB RDS サービスアカウントに OSS リソースへのアクセス権限を付与している必要があります。

      権限付与方法を表示するにはクリックしてください

      1. ApsaraDB RDS インスタンスの [バックアップと復元] ページに移動し、[OSS バックアップから復元] をクリックします。

      2. [データインポートウィザード] で、[次へ] を 2 回クリックして、ステップ [3. データインポート] に進みます。

        ページの左下隅にメッセージ [公式 RDS サービスアカウントに OSS リソースへのアクセスを承認しました] が表示されている場合、権限付与は完了しています。そうでない場合は、ページの [権限付与 URL] をクリックして権限を付与します。

        image

    • Alibaba Cloud アカウントは、手動でアクセスポシーを作成し、そのポリシーを RAM ユーザーにアタッチする必要があります。

      ポリシーの内容を表示するにはクリックしてください

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ram:GetRole"
                  ],
                  "Resource": "acs:ram:*:*:role/AliyunRDSImportRole",
                  "Effect": "Allow"
              }
          ]
      }

注意事項

  • 移行レベル: このソリューションはデータベースレベルの移行のみをサポートします。複数のデータベースまたはすべてのデータベースを移行するには、インスタンスレベルの移行ソリューションを使用してください。

  • バージョンの互換性: ローカル SQL Server インスタンスのバックアップファイルから、それより古いバージョンの 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 関連の料金のみが発生します。

シナリオ

説明

ローカルデータバックアップファイルを OSS にアップロード

料金は発生しません。

OSS にバックアップファイルを保存

OSS ストレージ料金が発生します。詳細については、「OSS の料金」をご参照ください。

OSS から ApsaraDB RDS にバックアップファイルを移行

  • イントラネット経由で ApsaraDB RDS にデータを移行する場合、料金は発生しません。

  • インターネット経由で RDS にデータを移行する場合、OSS からのインターネット経由のアウトバウンドトラフィックに対して課金されます。詳細については、「OSS の料金」をご参照ください。

準備

ローカルデータベース環境で、DBCC CHECKDB 文を実行して、データベースに allocation errors または consistency errors がないことを確認します。次の結果は、コマンドが正常に実行されたことを示します。

...
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

説明

ローカルデータベースの完全バックアップを実行する前に、データベースへのデータ書き込みを停止してください。バックアッププロセス中に書き込まれたデータはバックアップされません。

  1. バックアップスクリプトをダウンロードし、SQL Server Management Studio (SSMS) で開きます。

  2. スクリプトで、YOU HAVE TO INIT PUBLIC VARIABLES HERE の下にある SELECT 文のパラメーターを変更します。

    構成項目

    説明

    @backup_databases_list

    バックアップするデータベース。複数のデータベースはセミコロン (;) またはカンマ (,) で区切ります。

    @backup_type

    バックアップタイプ。有効値:

    • FULL: 完全バックアップ。

    • DIFF: 差分バックアップ。

    • LOG: ログバックアップ。

    @backup_folder

    バックアップファイルが保存されるローカルディレクトリ。ディレクトリが存在しない場合は自動的に作成されます。

    @is_run

    バックアップを実行するかどうかを指定します。有効値:

    • 1: バックアップを実行します。

    • 0: チェックのみを実行し、バックアップは実行しません。

  3. バックアップスクリプトを実行します。

ハイパフォーマンスローカルディスクを使用する SQL Server 2008 R2

  1. Microsoft SQL Server Management Studio (SSMS) クライアントを開きます。

  2. 移行するデータベースにログインします。

  3. 次のコマンドを実行して、ソースデータベースの現在の復元モデルを確認します。

    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 に進みます。

  4. 次のコマンドを実行して、ソースデータベースの復元モデルを FULL に設定します。

    ALTER DATABASE [dbname] SET RECOVERY FULL;
    GO
    ALTER DATABASE [dbname] SET AUTO_CLOSE OFF;
    GO
    重要

    復元モデルを FULL に設定すると、SQL Server のログ情報量が増加します。十分なディスク領域があることを確認してください。

  5. 次のコマンドを実行して、ソースデータベースをバックアップします。

    次の例は、dbtest データベースを backup.bak ファイルにバックアップする方法を示しています。

    USE master;
    GO
    BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT;
    GO
  6. 次のコマンドを実行して、バックアップファイルの整合性を検証します。

    USE master
     GO
     RESTORE FILELISTONLY 
       FROM DISK = N'D:\backup\backup.bak';
    重要
    • 結果セットが返された場合、バックアップファイルは有効です。

    • エラーが報告された場合は、再度バックアップを実行してください。

  7. オプション: 次のコマンドを実行して、データベースの元の復元モデルを復元します。

    重要

    データベースの復元モデルが既に FULL である場合、このステップを実行する必要はありません。

    ALTER DATABASE [dbname] SET RECOVERY SIMPLE;
    GO

2. バックアップファイルを OSS にアップロードする

ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいて方法を選択します。

SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2

  1. バックアップファイルを OSS にアップロードする前に、OSS にバケットを作成する必要があります。

    • OSS にバケットが既に存在する場合、次の要件を満たしていることを確認してください:

      • バケットのストレージタイプ標準ストレージです。低頻度アクセス、アーカイブ、コールドアーカイブ、ディープコールドアーカイブなどの他のストレージタイプはサポートされていません。

      • バケットのサーバ側暗号化は無効になっています。

    • OSS にバケットが存在しない場合は、作成する必要があります。 (OSS を有効化していることを確認してください。)

      1. OSS コンソールにログインし、[バケット] をクリックしてから、[バケットの作成] をクリックします。

      2. 次の主要なパラメーターを設定します。他のパラメーターはデフォルト値のままにすることができます。

        重要
        • バケットは主にこのデータ移行のために作成されます。主要なパラメーターのみを設定する必要があります。移行が完了したら、データ漏洩を防ぎコストを削減するためにバケットを削除できます。

        • バケットを作成する際、サーバ側暗号化を有効にしないでください。

        パラメーター

        説明

        バケット名

        バケットの名前。名前はグローバルに一意である必要があり、バケット作成後は変更できません。

        命名規則:

        • 名前には小文字、数字、ハイフン (-) のみを含めることができます。

        • 名前は小文字または数字で始まり、終わる必要があります。

        • 名前の長さは 3~63 文字である必要があります。

        migratetest

        リージョン

        バケットが存在するリージョン。ECS インスタンスからイントラネット経由でバケットにデータをアップロードし、イントラネット経由で ApsaraDB RDS インスタンスにデータを復元する場合、バケット、ECS インスタンス、および ApsaraDB RDS インスタンスは同じリージョンにある必要があります。

        中国 (杭州)

        ストレージタイプ

        標準ストレージを選択します。このトピックの移行操作は、他のストレージタイプのバケットをサポートしていません。

        標準

  2. バックアップファイルを OSS にアップロードします。

    ローカルデータベースをバックアップした後、ApsaraDB RDS インスタンスと同じリージョンにある OSS バケットにバックアップファイルをアップロードします。バケットとインスタンスが同じリージョンにある場合、イントラネット相互通信に内部ネットワークを使用できます。この方法では、インターネット経由のアウトバウンドトラフィックが無料で、データアップロード速度も速くなります。次のいずれかの方法を使用できます。

    ossbrowser を使用してファイルをアップロードする (推奨)

    1. ossbrowser をダウンロードします。

    2. 次の手順では、Windows x64 オペレーティングシステムを例として使用します。ダウンロードした oss-browser-win32-x64.zip パッケージを解凍し、oss-browser.exe アプリケーションをダブルクリックします。

    3. [AK でログイン] を選択し、[AccessKeyId][AccessKeySecret] パラメーターを設定し、他のパラメーターはデフォルト値のままにして、[ログイン] をクリックします。

      説明

      AccessKey ペアは ID 検証に使用されます。データセキュリティを確保するために、AccessKey ペアは機密情報として扱ってください。

      登录ossbrowser

    4. 宛先バケットをクリックします。进入bucket中

    5. 上传图标 をクリックし、アップロードするバックアップファイルを選択して、[開く] をクリックします。ローカルファイルが OSS にアップロードされます。

    OSS コンソールを使用してファイルをアップロードする

    説明

    バックアップファイルが 5 GB 未満の場合は、OSS コンソールからアップロードすることをお勧めします。

    1. OSS コンソールにログインします。

    2. [バケット] をクリックし、宛先バケットの名前をクリックします。网页进入bucket

    3. [ファイル] リストで、[ファイルのアップロード] をクリックします。网页上传文件

    4. バックアップファイルを [アップロードするファイル] エリアにドラッグするか、[ファイルのスキャン] をクリックしてファイルを選択します。网页扫描文件

    5. ページ下部の [ファイルのアップロード] ボタンをクリックして、ローカルバックアップファイルを OSS にアップロードします。

    OSS API を使用してマルチパートアップロードを行う (Python 3 プロジェクトの例)

    説明

    バックアップファイルが 5 GB を超える場合は、OSS API を呼び出して OSS バケットにマルチパートアップロードを実行することをお勧めします。

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    依存関係: pip install alibabacloud-oss-v2
    """
    
    import os
    import sys
    from pathlib import Path
    import alibabacloud_oss_v2 as oss
    from alibabacloud_oss_v2 import exceptions as oss_ex
    
    
    def get_client_from_env(region: str, endpoint: str | None = None) -> oss.Client:
        """
        環境変数から v2 クライアントを作成します。
        - リージョンの使用を優先しますが (推奨)、カスタムエンドポイントもサポートします (オプション)。
        - AK と STS の両方と互換性があります:
            * AK: OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET が必要です
            * STS: OSS_SESSION_TOKEN も必要です (古い変数 OSS_SECURITY_TOKEN と互換性があります)
        """
        # 互換性: ユーザーが古い変数 OSS_SECURITY_TOKEN を使用する場合、v2 が期待する OSS_SESSION_TOKEN にマッピングします
        sec_token_legacy = os.getenv("OSS_SECURITY_TOKEN")
        if sec_token_legacy and not os.getenv("OSS_SESSION_TOKEN"):
            os.environ["OSS_SESSION_TOKEN"] = sec_token_legacy
    
        ak = os.getenv("OSS_ACCESS_KEY_ID")
        sk = os.getenv("OSS_ACCESS_KEY_SECRET")
        st = os.getenv("OSS_SESSION_TOKEN")  # STS トークン (オプション)
    
        if not (ak and sk):
            raise ValueError("有効な AK が見つかりません。OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET 環境変数を設定してください。"
                             "STS を使用する場合は、OSS_SESSION_TOKEN (または古い名前の OSS_SECURITY_TOKEN) も設定してください。")
    
        # 使用される認証情報の種類を示します
        if st:
            print("STS トークン (OSS_SESSION_TOKEN) が検出されました。STS 認証情報を使用します。")
        else:
            print("STS トークンが検出されませんでした。AccessKey (AK) 認証情報を使用します。")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # 基本的なネットワーク構成
        cfg.region = region  # 例: 'cn-hangzhou'
        if endpoint:
            # オプション: カスタムエンドポイント (内部ネットワーク、高速化、専用ドメインなど)
            cfg.endpoint = endpoint
    
        # ここで他の構成を追加することもできます。例: cfg.use_accelerate_endpoint = True
        return oss.Client(cfg)
    
    
    def resumable_upload_file_v2(
        client: oss.Client,
        bucket_name: str,
        object_key: str,
        file_path: str,
        part_size: int = 1 * 1024 * 1024,
        parallel_num: int = 4,
        checkpoint_dir: str | None = None,
    ):
        """
        再開可能なアップロードで同時マルチパートアップロードを実装します。
    
        :param client: 初期化された oss.Client
        :param bucket_name: 宛先バケット名
        :param object_key: 宛先オブジェクトキー (バケット名なし)
        :param file_path: ローカルファイルのフルパス
        :param part_size: パートサイズ (バイト単位)、デフォルトは 1 MB
        :param parallel_num: 同時アップロードスレッド数、デフォルトは 4
        :param checkpoint_dir: ブレークポイント情報を保存するディレクトリ。None の場合、再開可能なアップロードは無効になります
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"エラー: ローカルファイルが見つかりません。file_path 構成を確認してください: {file_path}")
    
        # Uploader を構築します。checkpoint_dir が提供されているかどうかに基づいて再開可能なアップロードを有効にします
        if checkpoint_dir:
            uploader = client.uploader(
                enable_checkpoint=True,
                checkpoint_dir=checkpoint_dir,
                part_size=part_size,
                parallel_num=parallel_num,
            )
        else:
            uploader = client.uploader(
                part_size=part_size,
                parallel_num=parallel_num,
            )
    
        print(f"ファイルのアップロードを開始します: {file_path}")
        print(f"宛先バケット: {bucket_name}")
        print(f"宛先オブジェクト: {object_key}")
        print(f"パートサイズ: {part_size} バイト, 同時実行数: {parallel_num}")
        if checkpoint_dir:
            print(f"再開可能なアップロード: 有効 (checkpoint_dir={checkpoint_dir})")
        else:
            print("再開可能なアップロード: 無効 (有効にするには checkpoint_dir を設定してください)")
    
        # アップロードを実行します (Uploader はサイズに基づいてマルチ/シングルパート同時アップロードを自動的に選択します)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("ファイルが正常にアップロードされました!")
        print(f"HTTP ステータス: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"リクエスト ID: {result.request_id}")
        # CRC-64 チェックサム; v2 はデフォルトでデータ検証を有効にします
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    
    def main():
        # コード例を実行する前に、対応する環境変数を設定していることを確認してください。
        # macOS/Linux:
        #   AK メソッド:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   STS メソッド:
        #     export OSS_ACCESS_KEY_ID=YOUR_STS_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_STS_SECRET
        #     export OSS_SECURITY_TOKEN=YOUR_STS_TOKEN
        #
        # Windows:
        #   Powershell: $env:OSS_ACCESS_KEY_ID="YOUR_AK_ID"
        #   cmd: set OSS_ACCESS_KEY_ID=YOUR_AK_ID
    
        # ===================== パラメーター (必要に応じて変更) =====================
        # リージョンの例: 'cn-hangzhou'; まずリージョンを使用することをお勧めします
        region = "cn-hangzhou"
    
        # オプション: カスタムエンドポイント (内部ネットワーク、専用ドメイン、高速化ドメイン名など)
        # 例: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'  
    
        # バケットとオブジェクト
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # アップロードするローカルファイルのフルパス。
        # Windows の例: r'D:\localpath\examplefile.txt' (先頭の r に注意)
        # macOS/Linux の例: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # 分割と同時実行
        part_size = 1 * 1024 * 1024  # デフォルトは 1 MB; OSS は最小パートサイズ 100 KB を要求します
        parallel_num = 4
    
        # 再開可能なアップロードディレクトリ (無効にするには None を渡します; 書き込み可能なディレクトリを指定することをお勧めします)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== パラメーターの終わり ===================
    
        print("スクリプトの実行を開始します...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # 再開可能なアップロードが有効な場合、ディレクトリが存在することを確認します
            if checkpoint_dir:
                Path(checkpoint_dir).mkdir(parents=True, exist_ok=True)
    
            resumable_upload_file_v2(
                client=client,
                bucket_name=bucket_name,
                object_key=object_key,
                file_path=file_path,
                part_size=part_size,
                parallel_num=parallel_num,
                checkpoint_dir=checkpoint_dir,
            )
        except FileNotFoundError as e:
            print(e)
        except oss_ex.ServiceError as e:
            # OSS サーバーから返されたエラー
            print("\nOSS サーバー側でエラーが発生しました。")
            print(f"HTTP ステータス: {getattr(e, 'status_code', 'N/A')}")
            print(f"エラーコード: {getattr(e, 'code', 'N/A')}")
            print(f"メッセージ: {getattr(e, 'message', 'N/A')}")
            print(f"リクエスト ID: {getattr(e, 'request_id', 'N/A')}")
            print(f"エンドポイント: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # SDK ローカル/シリアル化/デシリアル化/認証情報のエラー
            print("\nOSS SDK クライアント側でエラーが発生しました。")
            print(str(e))
        except Exception as e:
            print(f"\n不明なエラーが発生しました: {e}")
    
    
    if __name__ == "__main__":
        main()

ハイパフォーマンスローカルディスクを使用する SQL Server 2008 R2

  1. バックアップファイルを OSS にアップロードする前に、OSS にバケットを作成する必要があります。

    • OSS にバケットが既に存在する場合、次の要件を満たしていることを確認してください:

      • バケットのストレージタイプ標準ストレージです。低頻度アクセス、アーカイブ、コールドアーカイブ、ディープールドアーカイブなどの他のストレージタイプはサポートされていません。

      • バケットのサーバ側暗号化は無効になっています。

    • OSS にバケットが存在しない場合は、作成する必要があります。 (OSS を有効化していることを確認してください。)

      1. OSS コンソールにログインし、[バケット] をクリックしてから、[バケットの作成] をクリックします。

      2. 次の主要なパラメーターを設定します。他のパラメーターはデフォルト値のままにすることができます。

        重要
        • バケットは主にこのデータ移行のために作成されます。主要なパラメーターのみを設定する必要があります。移行が完了したら、データ漏洩を防ぎコストを削減するためにバケットを削除できます。

        • バケットを作成する際、サーバ側暗号化を有効にしないでください。

        パラメーター

        説明

        バケット名

        バケットの名前。名前はグローバルに一意である必要があり、バケット作成後は変更できません。

        命名規則:

        • 名前には小文字、数字、ハイフン (-) のみを含めることができます。

        • 名前は小文字または数字で始まり、終わる必要があります。

        • 名前の長さは 3~63 文字である必要があります。

        migratetest

        リージョン

        バケットが存在するリージョン。ECS インスタンスからイントラネット経由でバケットにデータをアップロードし、イントラネット経由で ApsaraDB RDS インスタンスにデータを復元する場合、バケット、ECS インスタンス、および ApsaraDB RDS インスタンスは同じリージョンにある必要があります。

        中国 (杭州)

        ストレージタイプ

        標準ストレージを選択します。このトピックの移行操作は、他のストレージタイプのバケットをサポートしていません。

        標準

  2. バックアップファイルを OSS にアップロードします。

    ローカルデータベースをバックアップした後、ApsaraDB RDS インスタンスと同じリージョンにある OSS バケットにバックアップファイルをアップロードします。バケットとインスタンスが同じリージョンにある場合、イントラネット相互通信に内部ネットワークを使用できます。この方法では、インターネット経由のアウトバウンドトラフィックが無料で、データアップロード速度も速くなります。次のいずれかの方法を使用できます。

    ossbrowser を使用してファイルをアップロードする (推奨)

    1. ossbrowser をダウンロードします。

    2. 次の手順では、Windows x64 オペレーティングシステムを例として使用します。ダウンロードした oss-browser-win32-x64.zip パッケージを解凍し、oss-browser.exe アプリケーションをダブルクリックします。

    3. [AK でログイン] を選択し、[AccessKeyId][AccessKeySecret] パラメーターを設定し、他のパラメーターはデフォルト値のままにして、[ログイン] をクリックします。

      説明

      AccessKey ペアは ID 検証に使用されます。データセキュリティを確保するために、AccessKey ペアは機密情報として扱ってください。

      登录ossbrowser

    4. 宛先バケットをクリックします。进入bucket中

    5. 上传图标 をクリックし、アップロードするバックアップファイルを選択して、[開く] をクリックします。ローカルファイルが OSS にアップロードされます。

    OSS コンソールを使用してファイルをアップロードする

    説明

    バックアップファイルが 5 GB 未満の場合は、OSS コンソールからアップロードすることをお勧めします。

    1. OSS コンソールにログインします。

    2. [バケット] をクリックし、宛先バケットの名前をクリックします。网页进入bucket

    3. [ファイル] リストで、[ファイルのアップロード] をクリックします。网页上传文件

    4. バックアップファイルを [アップロードするファイル] エリアにドラッグするか、[ファイルのスキャン] をクリックしてファイルを選択します。网页扫描文件

    5. ページ下部の [ファイルのアップロード] ボタンをクリックして、ローカルバックアップファイルを OSS にアップロードします。

    OSS API を使用してマルチパートアップロードを行う (Python 3 プロジェクトの例)

    説明

    バックアップファイルが 5 GB を超える場合は、OSS API を呼び出して OSS バケットにマルチパートアップロードを実行することをお勧めします。

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    依存関係: pip install alibabacloud-oss-v2
    """
    
    import os
    import sys
    from pathlib import Path
    import alibabacloud_oss_v2 as oss
    from alibabacloud_oss_v2 import exceptions as oss_ex
    
    
    def get_client_from_env(region: str, endpoint: str | None = None) -> oss.Client:
        """
        環境変数から v2 クライアントを作成します。
        - リージョンの使用を優先しますが (推奨)、カスタムエンドポイントもサポートします (オプション)。
        - AK と STS の両方と互換性があります:
            * AK: OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET が必要です
            * STS: OSS_SESSION_TOKEN も必要です (古い変数 OSS_SECURITY_TOKEN と互換性があります)
        """
        # 互換性: ユーザーが古い変数 OSS_SECURITY_TOKEN を使用する場合、v2 が期待する OSS_SESSION_TOKEN にマッピングします
        sec_token_legacy = os.getenv("OSS_SECURITY_TOKEN")
        if sec_token_legacy and not os.getenv("OSS_SESSION_TOKEN"):
            os.environ["OSS_SESSION_TOKEN"] = sec_token_legacy
    
        ak = os.getenv("OSS_ACCESS_KEY_ID")
        sk = os.getenv("OSS_ACCESS_KEY_SECRET")
        st = os.getenv("OSS_SESSION_TOKEN")  # STS トークン (オプション)
    
        if not (ak and sk):
            raise ValueError("有効な AK が見つかりません。OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET 環境変数を設定してください。"
                             "STS を使用する場合は、OSS_SESSION_TOKEN (または古い名前の OSS_SECURITY_TOKEN) も設定してください。")
    
        # 使用される認証情報の種類を示します
        if st:
            print("STS トークン (OSS_SESSION_TOKEN) が検出されました。STS 認証情報を使用します。")
        else:
            print("STS トークンが検出されませんでした。AccessKey (AK) 認証情報を使用します。")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # 基本的なネットワーク構成
        cfg.region = region  # 例: 'cn-hangzhou'
        if endpoint:
            # オプション: カスタムエンドポイント (内部ネットワーク、高速化、専用ドメインなど)
            cfg.endpoint = endpoint
    
        # ここで他の構成を追加することもできます。例: cfg.use_accelerate_endpoint = True
        return oss.Client(cfg)
    
    
    def resumable_upload_file_v2(
        client: oss.Client,
        bucket_name: str,
        object_key: str,
        file_path: str,
        part_size: int = 1 * 1024 * 1024,
        parallel_num: int = 4,
        checkpoint_dir: str | None = None,
    ):
        """
        再開可能なアップロードで同時マルチパートアップロードを実装します。
    
        :param client: 初期化された oss.Client
        :param bucket_name: 宛先バケット名
        :param object_key: 宛先オブジェクトキー (バケット名なし)
        :param file_path: ローカルファイルのフルパス
        :param part_size: パートサイズ (バイト単位)、デフォルトは 1 MB
        :param parallel_num: 同時アップロードスレッド数、デフォルトは 4
        :param checkpoint_dir: ブレークポイント情報を保存するディレクトリ。None の場合、再開可能なアップロードは無効になります
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"エラー: ローカルファイルが見つかりません。file_path 構成を確認してください: {file_path}")
    
        # Uploader を構築します。checkpoint_dir が提供されているかどうかに基づいて再開可能なアップロードを有効にします
        if checkpoint_dir:
            uploader = client.uploader(
                enable_checkpoint=True,
                checkpoint_dir=checkpoint_dir,
                part_size=part_size,
                parallel_num=parallel_num,
            )
        else:
            uploader = client.uploader(
                part_size=part_size,
                parallel_num=parallel_num,
            )
    
        print(f"ファイルのアップロードを開始します: {file_path}")
        print(f"宛先バケット: {bucket_name}")
        print(f"宛先オブジェクト: {object_key}")
        print(f"パートサイズ: {part_size} バイト, 同時実行数: {parallel_num}")
        if checkpoint_dir:
            print(f"再開可能なアップロード: 有効 (checkpoint_dir={checkpoint_dir})")
        else:
            print("再開可能なアップロード: 無効 (有効にするには checkpoint_dir を設定してください)")
    
        # アップロードを実行します (Uploader はサイズに基づいてマルチ/シングルパート同時アップロードを自動的に選択します)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("ファイルが正常にアップロードされました!")
        print(f"HTTP ステータス: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"リクエスト ID: {result.request_id}")
        # CRC-64 チェックサム; v2 はデフォルトでデータ検証を有効にします
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    
    def main():
        # コード例を実行する前に、対応する環境変数を設定していることを確認してください。
        # macOS/Linux:
        #   AK メソッド:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   STS メソッド:
        #     export OSS_ACCESS_KEY_ID=YOUR_STS_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_STS_SECRET
        #     export OSS_SECURITY_TOKEN=YOUR_STS_TOKEN
        #
        # Windows:
        #   Powershell: $env:OSS_ACCESS_KEY_ID="YOUR_AK_ID"
        #   cmd: set OSS_ACCESS_KEY_ID=YOUR_AK_ID
    
        # ===================== パラメーター (必要に応じて変更) =====================
        # リージョンの例: 'cn-hangzhou'; まずリージョンを使用することをお勧めします
        region = "cn-hangzhou"
    
        # オプション: カスタムエンドポイント (内部ネットワーク、専用ドメイン、高速化ドメイン名など)
        # 例: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'  
    
        # バケットとオブジェクト
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # アップロードするローカルファイルのフルパス。
        # Windows の例: r'D:\localpath\examplefile.txt' (先頭の r に注意)
        # macOS/Linux の例: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # 分割と同時実行
        part_size = 1 * 1024 * 1024  # デフォルトは 1 MB; OSS は最小パートサイズ 100 KB を要求します
        parallel_num = 4
    
        # 再開可能なアップロードディレクトリ (無効にするには None を渡します; 書き込み可能なディレクトリを指定することをお勧めします)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== パラメーターの終わり ===================
    
        print("スクリプトの実行を開始します...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # 再開可能なアップロードが有効な場合、ディレクトリが存在することを確認します
            if checkpoint_dir:
                Path(checkpoint_dir).mkdir(parents=True, exist_ok=True)
    
            resumable_upload_file_v2(
                client=client,
                bucket_name=bucket_name,
                object_key=object_key,
                file_path=file_path,
                part_size=part_size,
                parallel_num=parallel_num,
                checkpoint_dir=checkpoint_dir,
            )
        except FileNotFoundError as e:
            print(e)
        except oss_ex.ServiceError as e:
            # OSS サーバーから返されたエラー
            print("\nOSS サーバー側でエラーが発生しました。")
            print(f"HTTP ステータス: {getattr(e, 'status_code', 'N/A')}")
            print(f"エラーコード: {getattr(e, 'code', 'N/A')}")
            print(f"メッセージ: {getattr(e, 'message', 'N/A')}")
            print(f"リクエスト ID: {getattr(e, 'request_id', 'N/A')}")
            print(f"エンドポイント: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # SDK ローカル/シリアル化/デシリアル化/認証情報のエラー
            print("\nOSS SDK クライアント側でエラーが発生しました。")
            print(str(e))
        except Exception as e:
            print(f"\n不明なエラーが発生しました: {e}")
    
    
    if __name__ == "__main__":
        main()
  3. バックアップファイルリンクの有効期間を設定し、ファイルの URL を取得します。

    1. OSS コンソールにログインします。

    2. [バケット] をクリックします。次に、宛先バケットの名前をクリックします。

    3. 左側のナビゲーションウィンドウで、[ファイル管理] > [ファイル] を選択します。

    4. 宛先データベースバックアップファイルの [操作] 列で、[詳細] をクリックします。表示されるパネルで、[有効期限 (秒)] を 28800 (8 時間) に設定します。

      重要

      OSS から ApsaraDB RDS にバックアップファイルを移行する場合、バックアップファイルの URL を使用する必要があります。リンクが期限切れになると、データ移行は失敗します。

    5. [ファイル URL のコピー] をクリックして、ファイル URL をコピーします。

      image.png

    6. 取得したデータバックアップファイルの URL を変更します。

      デフォルトでは、ファイルのパブリックエンドポイントが取得されます。内部ネットワーク経由でデータを移行するには、ファイル URL のエンドポイントを内部エンドポイントに変更する必要があります。

      たとえば、バックアップファイルの URL が http://rdstest.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=15141****&OSSAccessKeyId=TMP**** の場合、URL の oss-cn-shanghai.aliyuncs.comoss-cn-shanghai-internal.aliyuncs.com に変更する必要があります。

      重要

      内部エンドポイントは、ネットワークタイプとリージョンによって異なります。詳細については、「エンドポイントとデータセンター」をご参照ください。

3. OSS バックアップデータを ApsaraDB RDS にインポートする

ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいて方法を選択します。

SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2

  1. [インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、[バックアップと復元] をクリックします。

  3. ページの上部にある [OSS バックアップから復元] ボタンをクリックします。

  4. [データインポートウィザード] で、[次へ] を 2 回クリックしてデータインポートステップに進みます。

    説明
    • [OSS バックアップから復元] 機能を初めて使用する場合、ApsaraDB RDS に OSS へのアクセスを承認する必要があります。[権限付与 URL] をクリックし、必要な権限を付与します。この権限が付与されていない場合、[OSS バケット] ドロップダウンリストは空になります。

    • このページで宛先ファイルが見つからない場合は、OSS のバックアップファイルのファイル名拡張子が要件を満たしているか確認してください。詳細については、このトピックの「注意事項」セクションをご参照ください。また、ApsaraDB RDS インスタンスと OSS バケットが同じリージョンにあることを確認してください。

  5. 次のパラメーターを設定します。

    構成項目

    説明

    データベース名

    RDS インスタンス上の宛先データベースの名前を入力します。宛先データベースは、自己管理 SQL Server インスタンス上のソースデータベースから移行されたデータを保存するために使用されます。宛先データベースの名前は、オープンソース SQL Server の要件を満たす必要があります。

    重要
    • 移行前に、宛先 RDS インスタンス上のデータベースの名前が、指定されたバックアップファイルを使用して復元したいデータベースの名前と異なることを確認する必要があります。さらに、指定されたバックアップファイルを使用して復元したいデータベースと同じ名前のデータベースファイルが、宛先 RDS インスタンス上のデータベースに追加されていないことを確認してください。両方の要件が満たされている場合、バックアップセット内のデータベースファイルを使用してデータベースを復元できます。データベースファイルは、復元したいデータベースと同じ名前でなければならないことに注意してください。

    • バックアップファイルで指定されたデータベースと同じ名前のデータベースが宛先インスタンスに既に存在する場合、または同じ名前の未アタッチのデータベースファイルがある場合、復元操作は失敗します。

    OSS バケット

    バックアップファイルが保存されている OSS バケットを選択します。

    OSS ファイルリスト

    右側の 放大镜 ボタンをクリックして、バックアップファイル名のプレフィックスであいまい検索を実行します。ファイル名、ファイルサイズ、更新時刻が表示されます。移行したいバックアップファイルを選択します。

    移行ソリューション

    • データベースを開く (完全バックアップファイルが 1 つのみ): このオプションは完全移行用で、完全バックアップファイルが 1 つだけ移行されるシナリオに適しています。この場合、[データベースを開く] を選択します。CreateMigrateTask 操作の BackupMode パラメーターは FULL に設定され、IsOnlineDB パラメーターは True に設定されます。

    • データベースを開かない (差分バックアップまたはログファイルが存在する): このオプションは増分移行用で、完全バックアップファイルに加えてログバックアップ (または差分バックアップファイル) が移行されるシナリオに適しています。この場合、CreateMigrateTask 操作の BackupMode パラメーターは UPDF に設定され、IsOnlineDB パラメーターは False に設定されます。

    整合性チェック方法

    • DBCC を非同期で実行: システムはデータベースを開くときに DBCC CheckDB を実行しません。代わりに、データベースが開かれた後に非同期で DBCC CheckDB を実行します。これにより、データベースを開く時間的オーバーヘッドが削減され (DBCC CheckDB は大規模なデータベースでは非常に時間がかかります)、ビジネスのダウンタイムが最小限に抑えられます。ビジネスのダウンタイムに非常に敏感で、DBCC CheckDB の結果を気にしない場合は、このオプションを使用することをお勧めします。この場合、CreateMigrateTask 操作の CheckDBMode パラメーターは AsyncExecuteDBCheck に設定されます。

    • DBCC を同期的に実行: 非同期実行と比較して、一部のユーザーはオンプレミスデータベースのデータ整合性エラーを特定するために DBCC CheckDB の結果を非常に気にします。この場合、このオプションを選択することをお勧めします。影響として、データベースを開くのにかかる時間が長くなります。この場合、CreateMigrateTask 操作の CheckDBMode パラメーターは SyncExecuteDBCheck に設定されます。

  6. [OK] をクリックします。

    移行タスクが完了するのを待ちます。[更新] をクリックしてタスクのステータスを確認できます。タスクが失敗した場合は、その説明を使用してエラーのトラブルシューティングを行います。詳細については、このトピックの「一般的なエラー」セクションをご参照ください。

    説明

    データ移行が完了すると、システムは自動バックアップポリシーに基づいて、指定されたバックアップ時間に ApsaraDB RDS インスタンスをバックアップします。バックアップ時間は手動で調整できます。結果のバックアップセットには移行されたデータが含まれ、ApsaraDB RDS インスタンスの [バックアップと復元] ページで利用できます。

    スケジュールされたバックアップ時間より前にクラウドでバックアップを生成するには、手動バックアップを実行することもできます。

ハイパフォーマンスローカルディスクを使用する SQL Server 2008 R2

  1. ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、[データベース管理] をクリックします。

  3. 宛先データベースについて、[操作] 列の [OSS バックアップファイルからインポート] をクリックします。

  4. [データインポートウィザード] ダイアログボックスで、情報を確認し、[次へ] をクリックします。

  5. OSS アップロードのプロンプトを確認し、[次へ] をクリックします。

  6. [バックアップファイルの OSS URL] フィールドに、バックアップファイルの OSS URL を入力し、[OK] をクリックします。

    image.png

    説明

    ハイパフォーマンスローカルディスクを使用する ApsaraDB RDS for SQL Server 2008 R2 インスタンスは、完全バックアップファイルの 1 回限りのインポートのみをサポートします。

4. 移行の進捗状況の表示

ApsaraDB RDS for SQL Server インスタンスのバージョンに基づいて方法を選択します。

SQL Server 2012 以降、またはクラウドディスクを使用する SQL Server 2008 R2

ApsaraDB RDS インスタンスの [バックアップと復元] ページに移動します。[クラウドへのデータ移行レコード] タブで、タスクのステータス、開始時刻、終了時刻などの移行レコードを表示できます。デフォルトでは、先週のレコードが表示されます。必要に応じて時間範囲を調整できます。

image

説明

[タスクステータス][失敗] の場合、[タスクの説明] を確認するか、[ファイル詳細の表示] をクリックして失敗の原因を特定します。問題を解決した後、データ移行タスクを再実行してください。

ハイパフォーマンスローカルディスクを使用する SQL Server 2008 R2

ApsaraDB RDS インスタンスの [クラウドへのデータ移行] ページで、宛先移行タスクを見つけてその進捗状況を表示します。

説明

[タスクステータス][失敗] の場合、[タスクの説明] を確認するか、[ファイル詳細の表示] をクリックして失敗の原因を特定します。問題を解決した後、データ移行タスクを再実行してください。

一般的なエラー

各移行レコードには、タスク失敗の原因を特定するために使用できるタスクの説明が含まれています。以下は一般的なエラーメッセージです:

  • 同じ名前のデータベースが既に存在する

    • エラーメッセージ 1: データベース (xxx) は RDS にすでに存在します。バックアップしてから削除し、もう一度お試しください。

    • エラーメッセージ 2: データベース 'xxx' は既に存在します。別のデータベース名を選択してください。

    • 原因: データセキュリティを確保するため、ApsaraDB RDS for SQL Server は既存のデータベースと同じ名前のデータベースの移行をサポートしていません。

    • 解決策: 既存のデータベースを上書きするには、既存のデータをバックアップし、データベースを削除してから、データ移行タスクを再実行します。

  • 差分バックアップファイルの使用

    • エラーメッセージ: バックアップセット (xxx.bak) はデータベース差分バックアップです。完全バックアップのみ受け付けます。

    • 原因: 提供されたバックアップファイルは差分バックアップであり、完全バックアップではありません。この移行方法は完全バックアップファイルのみをサポートします。

  • ログバックアップファイルの使用

    • エラーメッセージ: バックアップセット (xxx.trn) はトランザクションログバックアップですが、フルバックアップのみ受け付けます。

    • 原因: 提供されたバックアップファイルはログバックアップであり、完全バックアップではありません。この移行方法は完全バックアップファイルのみをサポートします。

  • バックアップファイルの検証に失敗した

    • エラーメッセージ: xxx.bak の検証に失敗しました。バックアップファイルが破損しているか、RDS より新しいエディションです。

    • 原因: バックアップファイルが破損しているか、ソースデータベースの SQL Server バージョンが宛先 ApsaraDB RDS for SQL Server インスタンスのバージョンよりも新しいです。このバージョンの非互換性により、検証が失敗します。たとえば、SQL Server 2016 のバックアップを ApsaraDB RDS for SQL Server 2012 インスタンスに復元しようとすると、このエラーが報告されます。

    • 解決策: バックアップファイルが破損している場合は、ソースデータベースの新しい完全バックアップを作成し、新しい移行タスクを作成します。バージョンに互換性がない場合は、ソースデータベースのバージョンと同じかそれ以降のバージョンを実行する 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

    • エラーメッセージ: 復元に必要なディスク容量が不足しています (空き容量 (xxx MB) < 必要な容量 (xxx MB))。

    • 原因: ApsaraDB RDS インスタンスの残りのストレージ領域が、バックアップファイルの移行に不足しています。

    • 解決策: インスタンスストレージをアップグレードします。

  • 容量不足 2

    • エラーメッセージ: ディスク容量不足 (空き容量 xxx MB < bak ファイル xxx MB)。

    • 原因: ApsaraDB RDS インスタンスの残りのストレージ領域がバックアップファイルのサイズよりも小さいです。

    • 解決策: インスタンスストレージをアップグレードします。

  • ログインアカウントの権限が不十分

    • エラーメッセージ: ログインで要求されたデータベース "xxx" を開くことができません。ログインに失敗しました。

    • 原因: ApsaraDB RDS インスタンスにログインするために使用されたユーザーアカウントに、データベースへのアクセス権限がありません。

    • 解決策: ApsaraDB RDS インスタンスの [アカウント管理] ページで、ユーザーアカウントにデータベースへのアクセスまたは操作権限を付与します。詳細については、「アカウントへの権限付与」および「異なるアカウントタイプでサポートされる権限」をご参照ください。

  • 特権アカウントがない

    • エラーメッセージ: お使いの RDS にはまだ初期アカウントがありません。初期アカウントを作成し、RDS コンソールでこの移行されたデータベース (xxx) に権限を付与してください。

    • 原因: ApsaraDB RDS インスタンスに特権アカウントがないため、データ移行タスクはどのユーザーに権限を付与すればよいかわかりません。ただし、バックアップファイルは宛先インスタンスに正常に復元されたため、タスクのステータスは成功です。

    • 解決策: 特権アカウントを作成します。

  • RAM ユーザーの操作権限が不十分

    • Q1: データ移行タスクの作成のステップ 5 で、すべての構成パラメーターを入力しましたが、[OK] ボタンがグレーアウトしています。なぜですか?

    • A1: ボタンが利用できないのは、権限が不十分な RAM ユーザーを使用しているためかもしれません。詳細については、このトピックの前提条件セクションを参照して、必要な権限が付与されていることを確認してください。

    • Q2: RAM ユーザーを使用して AliyunRDSImportRole に権限を付与しようとすると、permission denied エラーが返されます。これを解決するにはどうすればよいですか?

    • A2: Alibaba Cloud アカウントを使用して、RAM ユーザーに AliyunRAMFullAccess 権限を一時的に追加します。

一般的なリターンメッセージ

タスクタイプ

タスクステータス

タスクの説明

説明

完全バックアップファイルの 1 回限りのインポート

成功

success

移行は成功です。

失敗した

Failed to download backup file since OSS URL was expired.

OSS ダウンロード URL が期限切れのため、移行に失敗しました。

Your backup is corrupted or newer than RDS, failed to verify.

バックアップファイルが破損しているか、ApsaraDB RDS インスタンスよりも新しいバージョンであるため、移行に失敗しました。

DBCC checkdb failed

DBCC CHECKDB コマンドが失敗したため、移行に失敗しました。

autotest_2008r2_std_testmigrate_log.trn is a Transaction Log backup, we only accept a FULL Backup.

ファイルがログバックアップであるため、移行に失敗しました。

autotest_2008r2_std_testmigrate_diff.bak is a Database Differential backup, we only accept a FULL Backup.

ファイルが差分バックアップであるため、移行に失敗しました。

関連 API 操作

API

説明

CreateMigrateTask

OSS から ApsaraDB RDS for SQL Server インスタンスにバックアップファイルを復元し、データ移行タスクを作成します。

CreateOnlineDatabaseTask

ApsaraDB RDS for SQL Server データ移行タスクのデータベースを開きます。

DescribeMigrateTasks

ApsaraDB RDS for SQL Server インスタンスのデータ移行タスクのリストを照会します。

DescribeOssDownloads

ApsaraDB RDS for SQL Server データ移行タスクのファイル詳細を照会します。