All Products
Search
Document Center

ApsaraDB RDS:Migrasi tingkat instans SQL Server ke cloud

Last Updated:Aug 27, 2026

ApsaraDB RDS untuk SQL Server menyediakan migrasi cloud tingkat instans untuk seluruh dataset dari satu atau beberapa database pada SQL Server yang dikelola sendiri. Untuk melakukan migrasi, backup semua database dari SQL Server yang dikelola sendiri Anda, unggah file backup ke satu folder dalam bucket OSS, lalu jalankan skrip migrasi cloud.

Catatan

Untuk meng-migrasi satu database, lihat Migrasikan data dari backup penuh dan Migrasikan data dari backup inkremental.

Prasyarat

  • Sumber harus berupa database SQL Server yang dikelola sendiri.

  • Instans ApsaraDB RDS untuk SQL Server tujuan harus memenuhi persyaratan berikut:

    • Ruang penyimpanan yang tersedia pada instans harus lebih besar daripada ukuran file data yang akan dimigrasikan. Jika ruang penyimpanan yang tersedia tidak mencukupi, tingkatkan spesifikasi instans.

    • Untuk SQL Server 2008 R2, Anda harus membuat database pada instans tujuan dengan nama yang sama seperti database sumber. Persyaratan ini tidak berlaku untuk versi lainnya.

  • Jika Anda login sebagai Pengguna RAM, persyaratan berikut harus dipenuhi:

    • Pengguna RAM diberikan izin AliyunOSSFullAccess dan AliyunRDSFullAccess. Untuk informasi selengkapnya tentang cara memberikan izin kepada Pengguna RAM, lihat Kelola izin OSS menggunakan RAM dan Kelola izin ApsaraDB RDS menggunakan RAM.

    • Akun Alibaba Cloud Anda (akun utama) telah memberikan otorisasi kepada akun layanan resmi ApsaraDB RDS untuk mengakses resource OSS Anda.

      Klik untuk melihat metode otorisasi

      1. Buka halaman Restoration instans ApsaraDB RDS, lalu klik Restore Backup Data from OSS.

      2. Pada halaman Import Guide, klik Next dua kali untuk menuju langkah 3. Import Data.

        Jika muncul pesan You have authorized the ApsaraDB RDS official service account to access your OSS resources di pojok kiri bawah halaman, berarti otorisasi telah selesai. Jika tidak, otorisasi belum lengkap. Dalam hal ini, klik Authorization URL pada halaman tersebut untuk memberikan otorisasi.

        image

    • Buat kebijakan izin secara manual di Akun Alibaba Cloud Anda (akun utama), lalu sambungkan kebijakan tersebut ke Pengguna RAM.

      Klik untuk melihat isi kebijakan

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

Batasan

Solusi ini hanya mendukung migrasi penuh; migrasi inkremental saat ini tidak didukung.

Penagihan

Jika Anda menggunakan metode yang dijelaskan dalam topik ini untuk migrasi data, Anda hanya dikenai biaya penggunaan bucket OSS.

Skenario

Aturan penagihan

Unggah file backup ke bucket OSS

Gratis.

Simpan file backup di bucket OSS

Anda dikenai biaya penyimpanan. Untuk informasi selengkapnya, kunjungi halaman Pricing OSS.

Migrasikan file backup dari bucket OSS ke instans RDS Anda

  • Jika Anda memigrasikan file backup dari bucket OSS ke instans RDS Anda melalui jaringan internal, tidak ada biaya yang dikenakan.

  • Jika Anda memigrasikan file backup melalui Internet, Anda dikenai biaya bucket OSS berdasarkan lalu lintas Internet keluar. Untuk informasi selengkapnya, kunjungi halaman Pricing OSS.

Prasyarat

1. Instal Python 3

Buka situs resmi Python untuk mengunduh dan menginstal paket yang sesuai dengan sistem operasi Anda. Pilih versi 3.12 atau yang lebih baru.

  • Windows: Selama instalasi, pilih kotak centang Add python.exe to PATH agar tidak perlu mengonfigurasi variabel lingkungan secara manual.

  • macOS/Linux: Anda dapat menginstal menggunakan installer resmi atau manajer paket seperti Homebrew, apt, atau dnf. Lihat panduan di situs resmi.

2. Verifikasi instalasi dan versi Python

Nama executable dapat berbeda tergantung sistem operasi dan metode instalasi Anda (misalnya, python, python3, atau py). Coba perintah-perintah berikut secara berurutan dan periksa output untuk mengonfirmasi instalasi.

Windows (Command Prompt atau PowerShell)

python --version
python3 --version
py --version
  • Jika output menampilkan Python 3.12.x atau versi yang lebih baru, berarti Python telah terinstal dengan benar dan siap digunakan.

  • Jika Anda menerima pesan kesalahan seperti ...is not recognized as an internal or external command..., Anda harus menambahkan path instalasi Python ke variabel lingkungan PATH secara manual.

macOS/Linux (terminal)

python --version
python3 --version

Pada beberapa sistem, perintah python masih mengarah ke versi lama. Gunakan perintah python3 terlebih dahulu. Periksa output untuk memastikan bahwa Anda telah menginstal Python 3.12 atau versi yang lebih baru.

3. Instal dependensi SDK

pip install alibabacloud_rds20140815
pip install alibabacloud-oss-v2
pip install alibabacloud_tea_openapi
pip install alibabacloud_tea_util

1. Backup database SQL Server yang dikelola sendiri

Penting
  • Untuk memastikan konsistensi data, jangan menulis data baru selama proses backup penuh. Jadwalkan operasi ini terlebih dahulu agar tidak mengganggu layanan Anda.

  • Jika Anda tidak menggunakan skrip backup, Anda harus memberi nama file backup dalam formatnama_database_jenis_backup_waktu_backup.bak, misalnya, Testdb_FULL_20180518153544.bak. Jika tidak, backup akan gagal.

  1. Unduh skrip backup.

  2. Klik ganda skrip backup untuk membukanya di Microsoft SQL Server Management Studio (SSMS). Untuk petunjuk cara menghubungkan menggunakan SSMS, lihat dokumentasi resmi.

  3. Ubah parameter berikut sesuai kebutuhan.

    Klik untuk memperluas contoh

    SELECT
        /**
        * Daftar database yang akan di-backup. Gunakan titik koma (;) atau koma (,) sebagai pembatas.
        * Nilai kosong ('') atau null akan melakukan backup semua database kecuali database sistem.
        * contoh: '[testdb]: TestDR, Test, readonly'
        **/
        @backup_databases_list = N'[dtstestdata],[testdb]'
        @backup_type = N'FULL',                    -- Jenis backup. Nilai yang valid: FULL (backup penuh), DIFF (backup diferensial), LOG (backup log).
        @backup_folder = N'C:\BACKUP'              -- Folder tempat menyimpan file backup.
        @is_run = 1                                -- Menentukan apakah akan menjalankan backup. 1: Jalankan backup. 0: Hanya lakukan pemeriksaan.

    Parameter

    Deskripsi

    @backup_databases_list

    Database yang akan di-backup. Gunakan titik koma (;) atau koma (,) untuk memisahkan beberapa nama database.

    @backup_type

    Jenis backup. Nilai yang valid:

    • FULL: backup penuh.

    • DIFF: backup diferensial.

    • LOG: backup log.

    Penting

    Untuk prosedur ini, Anda harus mengatur parameter ini ke FULL.

    @backup_folder

    Direktori lokal untuk menyimpan file backup. Direktori ini akan dibuat secara otomatis jika belum ada.

    @is_run

    Menentukan apakah akan menjalankan backup. Nilai yang valid:

    • 1: Jalankan backup.

    • 0: Hanya lakukan pemeriksaan.

  4. Jalankan skrip backup untuk melakukan backup database ke direktori yang ditentukan.

    备份脚本执行结果

2. Unggah file backup ke OSS

  1. Sebelum mengunggah file backup ke OSS, Anda harus membuat bucket di OSS.

    • Jika bucket sudah ada di OSS, pastikan bucket tersebut memenuhi persyaratan berikut:

    • Jika belum ada bucket di OSS, buat bucket terlebih dahulu. (Pastikan OSS telah diaktifkan.)

      1. Login ke Konsol OSS, klik Buckets, lalu klik Create bucket.

      2. Konfigurasikan parameter kunci berikut dan gunakan nilai default untuk parameter lainnya.

        Penting
        • Bucket ini hanya digunakan untuk migrasi data ini, sehingga Anda hanya perlu mengonfigurasi parameter kunci. Setelah migrasi selesai, segera hapus bucket untuk mencegah kebocoran data dan biaya tambahan.

        • Jangan aktifkan enkripsi sisi server saat membuat bucket.

        Parameter

        Deskripsi

        Contoh

        Bucket Name

        Nama bucket. Nama harus unik secara global dan tidak dapat diubah setelah bucket dibuat.

        Aturan penamaan:

        • Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).

        • Nama harus diawali dan diakhiri dengan huruf kecil atau angka.

        • Nama harus terdiri dari 3 hingga 63 karakter.

        migratetest

        Region

        Wilayah tempat bucket berada. Jika Anda mengunggah data ke bucket dari instance ECS melalui jaringan internal dan memulihkan data ke instans ApsaraDB RDS melalui jaringan internal, pastikan instance ECS, bucket, dan instans ApsaraDB RDS berada di wilayah yang sama.

        China (Hangzhou)

        Storage Type

        Pilih Standard. Operasi migrasi yang dijelaskan dalam topik ini tidak mendukung bucket dengan kelas penyimpanan lainnya.

        Standard

  2. Unggah file backup ke OSS.

    Setelah backup database yang dikelola sendiri selesai, unggah file backup ke bucket OSS yang berada di wilayah yang sama dengan instans ApsaraDB RDS Anda. Jika bucket dan instans ApsaraDB RDS berada di wilayah yang sama, bucket dan instans dapat berkomunikasi melalui jaringan internal. Dalam hal ini, tidak ada biaya lalu lintas Internet yang dikenakan dan data diunggah dengan kecepatan lebih tinggi. Anda dapat menggunakan salah satu metode berikut:

    Unggah file menggunakan ossbrowser (disarankan)

    1. Unduh ossbrowser.

    2. Dalam contoh ini, Windows x64 digunakan. Ekstrak paket oss-browser-win32-x64.zip yang diunduh, lalu klik ganda aplikasi oss-browser.exe.

    3. Pilih AK sebagai metode login, konfigurasikan parameter Access Key ID dan Access Key Secret, gunakan nilai default untuk parameter lainnya, lalu klik Log On.

      Catatan

      AccessKey digunakan untuk otentikasi identitas guna memastikan keamanan data. Simpan AccessKey Anda secara rahasia.

      Log on to ossbrowser

    4. Klik bucket tujuan untuk masuk ke bucket.Open the bucket

    5. Klik Upload icon, pilih file backup yang ingin diunggah, lalu klik Open. File lokal diunggah ke OSS.

    Unggah file menggunakan Konsol OSS

    Catatan

    Jika ukuran file backup kurang dari 5 GB, unggah file backup langsung di Konsol OSS.

    1. Login ke Konsol OSS.

    2. Klik Buckets, lalu klik nama bucket tujuan.Open the bucket in the console

    3. Di bagian Files, klik Upload File.Upload a file in the console

    4. Tarik file backup ke bagian Files to Upload, atau klik Select Files dan pilih file backup yang ingin diunggah.Select files to upload

    5. Klik Upload File di bagian bawah halaman. File backup lokal diunggah ke OSS.

    Unggah file menggunakan API OSS (contoh proyek Python 3)

    Catatan

    Jika ukuran file backup lebih dari 5 GB, panggil operasi API OSS untuk mengunggah file backup ke bucket OSS menggunakan unggah multi-bagian.

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    Dependensi: 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:
        """
        Buat klien v2 dari variabel lingkungan.
        - Lebih disarankan menggunakan Region, tetapi juga mendukung Endpoint kustom (opsional).
        - Kompatibel dengan AK dan STS:
            * AK: Memerlukan OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET
            * STS: Juga memerlukan OSS_SESSION_TOKEN (kompatibel dengan variabel lama OSS_SECURITY_TOKEN)
        """
        # Kompatibilitas: Jika pengguna menggunakan variabel lama OSS_SECURITY_TOKEN, petakan ke OSS_SESSION_TOKEN yang diharapkan v2
        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")  # Token STS (opsional)
    
        if not (ak and sk):
            raise ValueError("Tidak ditemukan AK yang valid. Atur variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET. "
                             "Jika menggunakan STS, atur juga OSS_SESSION_TOKEN (atau nama lama OSS_SECURITY_TOKEN).")
    
        # Menunjukkan jenis kredensial yang digunakan
        if st:
            print("Token STS (OSS_SESSION_TOKEN) terdeteksi. Menggunakan kredensial STS.")
        else:
            print("Token STS tidak terdeteksi. Menggunakan kredensial AccessKey (AK).")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # Konfigurasi jaringan dasar
        cfg.region = region  # Contoh: 'cn-hangzhou'
        if endpoint:
            # Opsional: Endpoint Kustom (misalnya, jaringan internal, domain khusus, nama domain yang dipercepat)
            cfg.endpoint = endpoint
    
        # Anda juga dapat menambahkan konfigurasi lain di sini, seperti: 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,
    ):
        """
        Implementasikan unggah multi-bagian konkuren dengan unggah yang dapat dilanjutkan.
    
        :param client: oss.Client yang telah diinisialisasi
        :param bucket_name: Nama bucket tujuan
        :param object_key: Kunci objek tujuan (tanpa nama bucket)
        :param file_path: Jalur lengkap file lokal
        :param part_size: Ukuran bagian dalam byte, default 1 MB
        :param parallel_num: Jumlah thread unggah konkuren, default 4
        :param checkpoint_dir: Direktori untuk menyimpan informasi breakpoint; jika None, unggah yang dapat dilanjutkan dinonaktifkan
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"Kesalahan: File lokal tidak ditemukan. Periksa konfigurasi file_path: {file_path}")
    
        # Bangun Uploader; aktifkan unggah yang dapat dilanjutkan berdasarkan apakah checkpoint_dir disediakan
        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"Mulai mengunggah file: {file_path}")
        print(f"Bucket Tujuan: {bucket_name}")
        print(f"Objek Tujuan: {object_key}")
        print(f"Ukuran bagian: {part_size} byte, Konkurensi: {parallel_num}")
        if checkpoint_dir:
            print(f"Unggah yang dapat dilanjutkan: Diaktifkan (checkpoint_dir={checkpoint_dir})")
        else:
            print("Unggah yang dapat dilanjutkan: Dinonaktifkan (atur checkpoint_dir untuk mengaktifkan)")
    
        # Jalankan unggah (Uploader secara otomatis memilih antara unggah multi-bagian/konkuren tunggal berdasarkan ukuran)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("File berhasil diunggah!")
        print(f"Status HTTP: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"ID Permintaan: {result.request_id}")
        # Checksum CRC-64; v2 mengaktifkan validasi data secara default
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    
    def main():
        # Sebelum menjalankan contoh kode, pastikan Anda telah mengatur variabel lingkungan yang sesuai.
        # macOS/Linux:
        #   Metode AK:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   Metode 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
    
        # ===================== Parameter (modifikasi sesuai kebutuhan) =====================
        # Contoh wilayah: 'cn-hangzhou'; kami menyarankan menggunakan Region terlebih dahulu
        region = "cn-hangzhou"
    
        # Opsional: Endpoint Kustom (untuk jaringan internal, domain khusus, nama domain yang dipercepat, dll.)
        # Contoh: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
    
        # Bucket dan Objek
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # Jalur lengkap file lokal yang akan diunggah.
        # Contoh Windows: r'D:\localpath\examplefile.txt'  (perhatikan huruf r di awal)
        # Contoh macOS/Linux: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # Pembagian dan konkurensi
        part_size = 1 * 1024 * 1024  # Default 1 MB; OSS mensyaratkan ukuran bagian minimum 100 KB
        parallel_num = 4
    
        # Direktori unggah yang dapat dilanjutkan (berikan None untuk menonaktifkan; kami menyarankan menentukan direktori yang dapat ditulis)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== Akhir parameter ===================
    
        print("Eksekusi skrip dimulai...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # Jika unggah yang dapat dilanjutkan diaktifkan, pastikan direktori tersebut ada
            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:
            # Kesalahan yang dikembalikan oleh server OSS
            print("\nTerjadi kesalahan sisi server OSS.")
            print(f"Status HTTP: {getattr(e, 'status_code', 'N/A')}")
            print(f"Kode Kesalahan: {getattr(e, 'code', 'N/A')}")
            print(f"Pesan: {getattr(e, 'message', 'N/A')}")
            print(f"ID Permintaan: {getattr(e, 'request_id', 'N/A')}")
            print(f"Endpoint: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # Kesalahan SDK sisi klien/serialisasi/deserialisasi/kredensial
            print("\nTerjadi kesalahan sisi klien SDK OSS.")
            print(str(e))
        except Exception as e:
            print(f"\nTerjadi kesalahan yang tidak diketahui: {e}")
    
    
    if __name__ == "__main__":
        main()

3. Jalankan skrip migrasi

  1. Unduh skrip migrasi SQL Server.

  2. Setelah mengekstrak paket, jalankan perintah berikut untuk melihat parameter skrip.

    python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -h

    Perintah tersebut mengembalikan output berikut:

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

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    access_key_id

    ID AccessKey Akun Alibaba Cloud Anda.

    access_key_secret

    Rahasia AccessKey Akun Alibaba Cloud Anda.

    rds_instance_id

    ID instans RDS tujuan.

    oss_endpoint

    titik akhir wilayah OSS tempat bucket Anda berada.

    oss_bucket

    Nama bucket yang berisi file backup.

    directory

    Direktori dalam bucket OSS untuk file backup. Untuk direktori root, masukkan /.

  3. Jalankan skrip migrasi untuk menyelesaikan migrasi.

    Topik ini memberikan contoh migrasi penuh semua file backup yang memenuhi kondisi tertentu dari direktori Migrationdata bucket OSS bernama testdatabucket ke instans ApsaraDB RDS untuk SQL Server dengan ID instans rm-2zesz5774ud8s****.

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

4. Lihat progres tugas migrasi

Ikuti petunjuk sesuai versi SQL Server instans ApsaraDB RDS Anda.

SQL Server 2012 dan yang lebih baru

Di panel navigasi kiri instans ApsaraDB RDS Anda, buka halaman Backup and Restoration. Pada tab Cloud Migration Records of Backup Data, Anda dapat melihat catatan migrasi cloud, termasuk status tugas, waktu mulai, dan waktu berakhir. Secara default, sistem menampilkan catatan dari minggu lalu. Sesuaikan rentang waktu sesuai kebutuhan.

image

Catatan

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details di sebelah tugas migrasi target untuk mengetahui penyebab kegagalan. Setelah memperbaiki masalah tersebut, jalankan kembali tugas migrasi.

SQL Server 2008 R2

Di panel navigasi kiri instans ApsaraDB RDS Anda, buka halaman Data Migration To Cloud. Kemudian, temukan tugas migrasi target untuk melihat progresnya.

Catatan

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details di sebelah tugas migrasi target untuk mengetahui penyebab kegagalan. Setelah memperbaiki masalah tersebut, jalankan kembali tugas migrasi.

Kesalahan umum

Pesan kesalahan

Penyebab

Solusi

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

ID AccessKey yang digunakan untuk panggilan OpenAPI salah.

Berikan ID AccessKey dan Rahasia AccessKey yang benar.

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

Rahasia AccessKey yang digunakan untuk panggilan OpenAPI salah.

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

Solusi ini hanya mendukung ApsaraDB RDS untuk SQL Server. Mesin database lain tidak didukung.

Gunakan instans ApsaraDB RDS untuk SQL Server sebagai tujuan migrasi.

Couldn't find specify RDS [XXX].

ID instans RDS yang ditentukan tidak ada.

Verifikasi bahwa ID instans RDS yang diberikan benar.

{'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',))"}

Koneksi gagal karena titik akhir salah.

Verifikasi bahwa titik akhir yang diberikan benar.

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

Bucket OSS yang ditentukan tidak ada.

Verifikasi bahwa nama bucket OSS yang diberikan benar.

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

Direktori yang ditentukan tidak ada di bucket OSS, atau direktori tersebut tidak berisi file backup database yang memenuhi syarat.

Verifikasi bahwa direktori tersebut ada di bucket OSS dan berisi file backup database yang memenuhi syarat.

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

Nama file backup tidak mengikuti konvensi penamaan yang diperlukan.

Jika Anda tidak menggunakan skrip backup, Anda harus memberi nama file backup dalam format NamaDatabase_JenisBackup_WaktuBackup.bak. Contoh: 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'}}

Pengguna RAM memiliki izin yang tidak mencukupi.

Anda harus memberikan izin kepada Pengguna RAM untuk mengakses OSS dan RDS. Ini memerlukan kebijakan AliyunOSSFullAccess dan AliyunRDSFullAccess.

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

Panggilan OpenAPI mengembalikan kesalahan.

Analisis akar penyebab berdasarkan kode kesalahan dan pesan kesalahan yang dikembalikan.

Kode kesalahan OpenAPI

Kode status HTTP

Kesalahan

Pesan

Deskripsi

403

InvalidDBName

Nama database yang ditentukan tidak diizinkan.

Nama database tidak valid. Anda tidak dapat menggunakan nama database sistem.

403

IncorrectDBInstanceState

Status instans saat ini tidak mengizinkan operasi ini.

Instans RDS berada dalam status yang tidak valid. Misalnya, instans sedang dalam status Creating.

400

IncorrectDBInstanceType

Jenis instans saat ini tidak mendukung operasi ini.

Mesin instans tidak didukung. Fitur ini hanya tersedia untuk ApsaraDB RDS untuk SQL Server.

400

IncorrectDBInstanceLockMode

Mode kunci instans saat ini tidak mendukung operasi ini.

Database berada dalam status kunci yang tidak valid.

400

InvalidDBName.NotFound

Satu atau beberapa nama database yang ditentukan tidak ada, atau statusnya tidak mengizinkan operasi tersebut.

Database tidak ada.

  • Untuk ApsaraDB RDS untuk SQL Server 2008 R2, Anda harus terlebih dahulu membuat database dengan nama yang sama pada instans tujuan.

  • Untuk ApsaraDB RDS untuk SQL Server 2012 dan yang lebih baru, database dengan nama yang sama tidak boleh ada pada instans tujuan.

400

IncorrectDBType

Jenis database tidak mendukung operasi ini.

400

IncorrectDBState

Status database saat ini tidak mengizinkan operasi ini.

Database berada dalam status yang tidak valid, misalnya sedang dibuat atau sedang dalam proses migrasi.

400

UploadLimitExceeded

Kuota migrasi harian untuk database telah terlampaui.

Maksimal 20 migrasi diizinkan per database pada setiap instans per hari.

400

ConcurrentTaskExceeded

Kuota migrasi harian untuk instans telah terlampaui.

Sebuah instans dibatasi maksimal 500 migrasi per hari.

400

IncorrectFileExtension

Ekstensi file tidak didukung.

File backup memiliki ekstensi yang tidak valid.

400

InvalidOssUrl

URL OSS yang ditentukan tidak valid.

URL unduhan OSS yang diberikan tidak tersedia.

400

BakFileSizeExceeded

File backup melebihi batas ukuran yang diizinkan.

Ukuran file backup tidak boleh melebihi 3 TB.

400

FileSizeExceeded

File terlalu besar untuk instans tujuan.

Memulihkan file backup akan melebihi kapasitas penyimpanan instans tujuan.

Operasi API terkait

API

Deskripsi

CreateMigrateTask

Memulihkan file backup dari OSS ke instans ApsaraDB RDS untuk SQL Server dan membuat tugas migrasi data.

CreateOnlineDatabaseTask

Membuka database dari tugas migrasi data backup pada instans ApsaraDB RDS untuk SQL Server.

DescribeMigrateTasks

Menanyakan daftar tugas migrasi data backup pada instans ApsaraDB RDS untuk SQL Server.

DescribeOssDownloads

Menanyakan detail file backup dari tugas migrasi data backup pada instans ApsaraDB RDS untuk SQL Server.