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

ApsaraDB RDS:SQL Server のインスタンスレベルのクラウドへの移行

最終更新日:Nov 09, 2025

ApsaraDB RDS for SQL Server は、データベースをクラウドに移行するためのインスタンスレベルのソリューションを提供します。自己管理 SQL Server インスタンスから ApsaraDB RDS for SQL Server インスタンスに、複数のデータベースまたはすべてのデータベースの完全なデータを移行できます。これを行うには、自己管理 SQL Server インスタンス上のすべてのデータベースをバックアップし、完全バックアップファイルを OSS バケット内の同じフォルダにアップロードしてから、移行スクリプトを実行する必要があります。

説明

一度に 1 つのデータベースのみを移行する必要があるデータベースレベルの移行を実行している場合は、詳細については、「完全バックアップのクラウドへの移行」および「増分バックアップのクラウドへの移行」をご参照ください。

前提条件

  • ソースデータベースは自己管理 SQL Server データベースである必要があります。

  • 宛先 ApsaraDB RDS for SQL Server インスタンスは、次の条件を満たす必要があります。

    • インスタンスの利用可能なストレージ容量は、移行するデータファイルのサイズよりも大きい必要があります。容量が不十分な場合は、事前にインスタンスの仕様をアップグレードしてください。

    • SQL Server 2008 R2 インスタンスの場合: 移行するデータベースと同じ名前のデータベースを宛先インスタンスに作成します。このステップは、他の SQL Server バージョンでは不要です。

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

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

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

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

      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"
              }
          ]
      }

制限事項

このソリューションは完全移行のみをサポートします。増分移行はサポートされていません。

課金

このトピックで説明する方法を使用してデータを移行する場合、OSS バケットの使用に対してのみ課金されます。

シナリオ

課金ルール

OSS バケットへのバックアップファイルのアップロード

無料です。

OSS バケットでのバックアップファイルの保存

ストレージ料金が課金されます。詳細については、OSS の 料金 ページをご参照ください。

OSS バケットから RDS インスタンスへのバックアップファイルの移行

  • イントラネット経由で OSS バケットから RDS インスタンスにバックアップファイルを移行する場合、料金は発生しません。

  • インターネット経由でバックアップファイルを移行する場合、アウトバウンドインターネットトラフィックに基づいて OSS バケットに課金されます。詳細については、OSS の 料金 ページをご参照ください。

準備

1. Python 3 のインストール

Python の公式サイトにアクセスして、お使いのオペレーティングシステム用のパッケージをダウンロードしてインストールします。Python 3.12 以降を選択してください

  • Windows の場合: インストール中に、後で手動で環境変数を設定する手間を省くため、Add python.exe to PATH チェックボックスを選択します。

  • macOS または Linux の場合: 公式サイトから Python をインストールするか、Homebrew、apt、dnf などのシステムパッケージマネージャを使用できます。詳細については、Python の公式ドキュメントをご参照ください。

2. Python のインストールとバージョンの確認

実行可能ファイルの名前は、オペレーティングシステムやインストール方法によって異なる場合があります。一般的な名前には、python、python3、py があります。次のコマンドを順番に試し、ご自身のインストールに対応するものを使用してください。

Windows (コマンドプロンプトまたは PowerShell)

python --version
python3 --version
py --version
  • 出力が Python 3.12.x 以降のバージョンであれば、Python はインストールされており、使用準備ができています。

  • メッセージ 'python' is not recognized as an internal or external command... が返された場合は、Python のインストールパスをシステムの PATH 環境変数に手動で追加する必要があります。

macOS/Linux (ターミナル)

python --version
python3 --version

一部のシステムでは、python コマンドが古いバージョンを指している場合があります。python3 コマンドを使用することをお勧めします。出力を使用して、Python 3.12 以降のバージョンがインストールされていることを確認してください。

3. SDK 依存関係のインストール

pip install alibabacloud_rds20140815
pip install alibabacloud-oss-v2

1. 自己管理 SQL Server インスタンス上のすべてのデータベースをバックアップする

重要
  • データ整合性を確保するため、完全バックアップ中に新しいデータを書き込まないでください。サービスの中断を避けるために、事前にバックアップを計画してください。

  • バックアップスクリプトを使用しない場合は、バックアップファイルに DatabaseName_BackupType_BackupTime.bak 形式で名前を付ける必要があります。例: Testdb_FULL_20180518153544.bak。そうしないと、移行は失敗します。

  1. バックアップスクリプトをダウンロードします。

  2. バックアップスクリプトファイルをダブルクリックして、Microsoft SQL Server Management Studio (SSMS) を使用して開きます。SSMS を使用した接続方法の詳細については、「公式ドキュメント」をご参照ください。

  3. 必要に応じて次のパラメーターを変更します。

    例を表示するにはクリックしてください

    SELECT
        /**
        * バックアップが必要なデータベースのリスト、区切り文字は : または ,
        * 空 ('') または null: システムデータベースを除くすべてのデータベースを意味します
        * 例: '[testdb]: TestDR, Test, readonly'
        **/
        @backup_databases_list = N'[dtstestdata],[testdb]'
        @backup_type = N'FULL',                    -- バックアップタイプ? FULL: 完全バックアップ; DIFF: 差分バックアップ; LOG: ログバックアップ
        @backup_folder = N'C:\BACKUP'              -- バックアップファイルを保存するバックアップフォルダ。
        @is_run = 1                                -- チェックまたは実行? 1, 直接実行; 0, チェックのみ

    設定項目

    説明

    @backup_databases_list

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

    @backup_type

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

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

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

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

    重要

    このソリューションでは、このパラメーターを FULL に設定します。

    @backup_folder

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

    @is_run

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

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

    • 0: バックアップを実行せずにチェックのみを実行します。

  4. バックアップスクリプトを実行します。データベースは指定されたフォルダにバックアップされます。

    备份脚本执行结果

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

  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. 移行スクリプトを実行してデータベースを ApsaraDB RDS に移行する

  1. SQL Server 移行スクリプトをダウンロードします。

  2. パッケージを解凍した後、次のコマンドを実行してスクリプトに必要なパラメーターを表示します。

    python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -h

    次の結果が返されます。

    RDSSQLCreateMigrateTasksBatchly.py -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -e <oss_endpoint> -b <oss_bucket> -d <directory>

    次の表にパラメーターを示します。

    パラメーター

    説明

    access_key_id

    宛先 ApsaraDB RDS インスタンスを所有する Alibaba Cloud アカウントの AccessKey ID。

    access_key_secret

    宛先 ApsaraDB RDS インスタンスを所有する Alibaba Cloud アカウントの AccessKey Secret。

    rds_instance_id

    宛先 ApsaraDB RDS インスタンスの ID。

    oss_endpoint

    バックアップファイルが保存されているバケットのエンドポイント

    oss_bucket

    バックアップファイルが保存されているバケットの名前。

    directory

    バックアップファイルが保存されている OSS バケット内のフォルダ。ファイルがルートディレクトリにある場合は、/ を入力します。

  3. 移行スクリプトを実行して移行タスクを完了します。

    この例では、Migrationdata OSS バケットの testdatabucket フォルダから、ID が rm-2zesz5774ud8s**** の ApsaraDB RDS for SQL Server インスタンスに適格なすべてのバックアップファイルを移行する方法を示します。

    python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -k yourAccessKeyID -s yourAccessKeySecret -i rm-2zesz5774ud8s**** -e oss-cn-beijing.aliyuncs.com -b testdatabucket -d Migrationdata

4. 移行タスクの進捗状況の表示

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

SQL Server 2012 以降

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

image

説明

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

SQL Server 2008 R2

ApsaraDB RDS インスタンスの左側のナビゲーションウィンドウで、[クラウドへのデータ移行] をクリックします。対象の移行タスクを見つけて、その進捗状況を表示します。

説明

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

一般的なエラー

エラーメッセージ

原因

ソリューション

HTTP Status: 404 Error:InvalidAccessKeyId.NotFound Specified access key is not found. RequestID: XXXXXXXXXXXXXXXXX

OpenAPI 操作の呼び出しに使用された AccessKey ID が正しくありません。

正しい AccessKey ID と AccessKey Secret を入力してください。

HTTP Status: 400 Error:IncompleteSignature The request signature does not conform to Aliyun standards. server string to sign is:......

OpenAPI 操作の呼び出しに使用された AccessKey Secret が正しくありません。

RDS engine doesn't support, this is only for RDS SQL Server engine.

このソリューションは ApsaraDB RDS for SQL Server のみをサポートします。他のデータベースエンジンはサポートされていません。

宛先インスタンスとして ApsaraDB RDS for SQL Server インスタンスを使用してください。

Couldn't find specify RDS [XXX].

ApsaraDB RDS インスタンス ID が存在しません。

ApsaraDB RDS インスタンス ID が正しいかどうかを確認してください。

{'status': -2, 'request-id': '', 'details': "RequestError: HTTPConnectionPool(host='xxxxxxxxxxxxxxxxx', port=80): Max retries exceeded with url: /?bucketInfo= (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x10e996490>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))"}

エンドポイントが正しくないため、接続に失敗しました。

指定されたエンドポイントが正しいかどうかを確認してください。

{'status': 404,'-id': 'xxxxxxxxx', 'details': {'HostId': 'xxxxxxxxx', 'Message': 'The specified bucket does not exist.', 'Code': 'NoSuchBucket', 'RequestId': 'xxxxxxxx', 'BucketName': 'aaaatp-test-on-ecs'}}

OSS バケットが存在しません。

指定された OSS バケットが正しいかどうかを確認してください。

There is no backup file on OSS Bucket [xxxxxx] under [xxxxxxxxx] folder, check please.

指定されたフォルダが OSS バケットに存在しないか、フォルダに適格なデータベースバックアップファイルが含まれていません。

フォルダが OSS バケットに存在するか、フォルダに適格なデータベースバックアップファイルが含まれているかを確認してください。

Warning!!!!!, [autotest_2005_ent_broken_full_dbcc_failed.bak] is not backup file, filtered.

バックアップファイル名が命名規則に従っていません。

バックアップスクリプトを使用しない場合は、バックアップファイルに database_name_backup_type_backup_time.bak 形式で名前を付ける必要があります。例: Testdb_FULL_20180518153544.bak

HTTP Status: 403 Error:Forbidden.RAM The user is not authorized to operate the specified resource, or this operation does not support RAM. RequestID: xxxxx{'status': 403, 'request-id': 'xxxx', 'details': {'HostId': 'atp-test-on-ecs.oss-cn-beijing.aliyuncs.com', 'Message': 'The bucket you visit is not belong to you.', 'Code': 'AccessDenied', 'RequestId': 'xxxx'}}

RAM ユーザーに十分な権限がありません。

RAM ユーザーに OSS と ApsaraDB RDS を使用する権限を付与する必要があります (AliyunOSSFullAccessAliyunRDSFullAccess 権限)。

OPENAPI Response Error !!!!! : HTTP Status: <Http Status Code> Error:<Error> <Description>. RequestID: 32BB6886-775E-4BB7-A054-635664****

OpenAPI 操作の呼び出し時にエラーメッセージが返されました。

エラーコードとエラーメッセージに基づいて原因を分析してください。

OpenAPI エラーコード

HTTP ステータスコード

エラー

説明

説明

403

InvalidDBName

指定されたデータベース名は許可されていません。

データベース名が無効です。システムデータベース名は使用できません。

403

IncorrectDBInstanceState

現在の DB インスタンスの状態ではこの操作はサポートされていません。

ApsaraDB RDS インスタンスが無効な状態です。たとえば、インスタンスのステータスが [作成中] です。

400

IncorrectDBInstanceType

現在の DB インスタンスタイプではこの操作はサポートされていません。

データベースエンジンはサポートされていません。この機能は ApsaraDB RDS for SQL Server でのみ利用可能です。

400

IncorrectDBInstanceLockMode

現在の DB インスタンスのロックモードではこの操作はサポートされていません。

データベースが無効なロック状態です。

400

InvalidDBName.NotFound

指定された 1 つ以上の DB 名が存在しないか、DB の状態がサポートされていません。

データベースが存在しません。

  • ApsaraDB RDS for SQL Server 2008 R2 の場合、まず同じ名前のデータベースを作成する必要があります。

  • ApsaraDB RDS for SQL Server 2012 以降の場合、同じ名前のデータベースは存在できません。

400

IncorrectDBType

現在の DB タイプではこの操作はサポートされていません。

データベースタイプはこの操作をサポートしていません。

400

IncorrectDBState

現在の DB 状態ではこの操作はサポートされていません。

データベースが無効な状態です。たとえば、データベースが作成中であるか、移行タスクが進行中です。

400

UploadLimitExceeded

UploadTimesQuotaExceeded: この DB の 1 日のアップロード回数を超えています。

移行操作の回数が制限を超えています。各インスタンスの各データベースで 1 日に最大 20 回の移行操作を実行できます。

400

ConcurrentTaskExceeded

同時タスクが許可された量を超えています。

移行操作の回数が制限を超えています。各インスタンスで 1 日に最大 500 回の移行操作を実行できます。

400

IncorrectFileExtension

ファイル拡張子はサポートされていません。

バックアップファイルのファイル拡張子が無効です。

400

InvalidOssUrl

指定された oss url は無効です。

提供された OSS ダウンロード URL は利用できません。

400

BakFileSizeExceeded

許可された bak ファイルサイズを超えています。

データベースバックアップファイルがサイズ制限を超えています。最大サイズは 3 TB です。

400

FileSizeExceeded

DB インスタンスの許可されたファイルサイズを超えています。

復元されたバックアップファイルは、現在のインスタンスのストレージ容量を超えます。

関連 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 データ移行タスクのファイル詳細をクエリします。