全部产品
Search
文档中心

ApsaraDB RDS:Migrasikan data cadangan penuh ke cloud

更新时间:Nov 11, 2025

ApsaraDB RDS untuk SQL Server menyediakan solusi untuk memigrasikan database SQL Server lokal ke instance ApsaraDB RDS untuk SQL Server. Anda dapat mengunggah data cadangan penuh dari database SQL Server lokal ke Alibaba Cloud Object Storage Service (OSS), lalu menggunakan konsol ApsaraDB RDS untuk memigrasikan data tersebut ke instance ApsaraDB RDS untuk SQL Server yang ditentukan. Solusi ini cocok untuk skenario seperti pencadangan data, migrasi data, dan pemulihan bencana.

Prasyarat

  • Instance ApsaraDB RDS untuk SQL Server harus memenuhi persyaratan berikut:

    • Ruang penyimpanan tersisa pada instance harus lebih besar dari ukuran file data yang akan dimigrasikan. Jika ruang penyimpanan tidak mencukupi, Anda dapat meningkatkan kapasitas penyimpanan instance.

    • Untuk instance yang menjalankan SQL Server 2012 atau versi lebih baru, atau SQL Server 2008 R2 dengan disk cloud: Pastikan instance tidak berisi database dengan nama yang sama seperti database yang akan dimigrasikan.

    • Untuk instance yang menjalankan SQL Server 2008 R2 dengan disk lokal berkinerja tinggi: Pastikan database dengan nama yang sama seperti database yang akan dimigrasikan telah dibuat pada instance tersebut.

  • Jika Anda menggunakan pengguna Resource Access Management (RAM), kondisi berikut harus dipenuhi:

    • Pengguna RAM memiliki 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 telah memberikan izin akun layanan ApsaraDB RDS untuk mengakses sumber daya OSS Anda.

      Klik untuk melihat metode otorisasi

      1. Buka halaman Backup and Restoration instance ApsaraDB RDS dan klik Restore from OSS Backup.

      2. Pada Data Import Wizard, klik Next dua kali untuk melanjutkan ke langkah 3. Data Import.

        Otorisasi selesai jika pesan You Have Authorized The Official RDS Service Account To Access Your OSS Resources ditampilkan di pojok kiri bawah halaman. Jika tidak, klik Authorization URL pada halaman untuk memberikan otorisasi.

        image

    • Akun Alibaba Cloud Anda harus secara manual membuat kebijakan akses lalu menambahkan kebijakan tersebut ke pengguna RAM.

      Klik untuk melihat isi kebijakan

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

Catatan

  • Tingkat migrasi: Solusi ini hanya mendukung migrasi tingkat database. Untuk memigrasikan beberapa atau semua database, gunakan solusi migrasi tingkat instance.

  • Kompatibilitas versi: Anda tidak dapat memigrasikan data dari file cadangan instance SQL Server lokal ke instance ApsaraDB RDS untuk SQL Server yang menjalankan versi SQL Server yang lebih lama.

  • Manajemen izin: Setelah Anda memberikan izin akun layanan ApsaraDB RDS untuk mengakses OSS, peran bernama AliyunRDSImportRole dibuat di Manajemen Peran pada konsol RAM. Jangan mengubah atau menghapus peran ini. Jika tidak, tugas migrasi akan gagal. Jika Anda melakukan kesalahan, Anda harus memberikan kembali izin tersebut menggunakan wizard migrasi data.

  • Manajemen akun: Setelah migrasi selesai, akun database asli menjadi tidak tersedia. Anda harus membuat akun baru di konsol ApsaraDB RDS.

  • Retensi file OSS: Jangan menghapus file cadangan dari OSS sebelum tugas migrasi selesai. Jika tidak, tugas akan gagal.

  • Persyaratan file cadangan:

    • Batasan nama file: Nama file tidak boleh mengandung karakter khusus, seperti !@#$%^&*()_+-=. Jika tidak, migrasi akan gagal.

    • Ekstensi nama file: ApsaraDB RDS mendukung file cadangan dengan ekstensi .bak (cadangan penuh), .diff (backup diferensial), .trn, atau .log (cadangan log). Sistem tidak dapat mengenali jenis file lainnya.

    • Jenis file: Hanya file cadangan penuh yang dapat diunggah. Cadangan diferensial dan cadangan log tidak didukung.

    • Sumber file: Jika data sumber adalah file cadangan penuh yang diunduh dari ApsaraDB RDS untuk SQL Server, yang secara default dalam format .zip, Anda harus mengekstrak file tersebut menjadi file .bak sebelum memigrasikan data.

Penagihan

Solusi ini hanya menimbulkan biaya terkait OSS, seperti yang ditunjukkan pada tabel berikut.

Skenario

Deskripsi

Unggah file cadangan data lokal ke OSS

Tidak ada biaya yang dikenakan.

Simpan file cadangan di OSS

Biaya penyimpanan OSS dikenakan. Untuk informasi selengkapnya, lihat Harga OSS.

Migrasikan file cadangan dari OSS ke ApsaraDB RDS

  • Jika Anda memigrasikan data ke ApsaraDB RDS melalui jaringan internal, tidak ada biaya yang dikenakan.

  • Jika Anda memigrasikan data ke RDS melalui internet, Anda akan dikenai biaya untuk lalu lintas keluar internet dari OSS. Untuk informasi selengkapnya, lihat Harga OSS.

Persiapan

Di lingkungan database lokal Anda, jalankan pernyataan DBCC CHECKDB untuk memastikan bahwa database tidak memiliki allocation errors atau consistency errors. Hasil berikut menunjukkan bahwa perintah berhasil dieksekusi:

...
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. Cadangkan database lokal

Pilih metode berdasarkan versi instance ApsaraDB RDS untuk SQL Server Anda.

SQL Server 2012 atau versi lebih baru, atau SQL Server 2008 R2 dengan disk cloud

Catatan

Sebelum melakukan cadangan penuh database lokal, hentikan penulisan data ke database. Data yang ditulis selama proses pencadangan tidak akan dicadangkan.

  1. Unduh skrip pencadangan dan buka di SQL Server Management Studio (SSMS).

  2. Pada skrip, ubah parameter dalam pernyataan SELECT yang terletak di bawah YOU HAVE TO INIT PUBLIC VARIABLES HERE.

    Item konfigurasi

    Deskripsi

    @backup_databases_list

    Database yang akan dicadangkan. Pisahkan beberapa database dengan titik koma (;) atau koma (,).

    @backup_type

    Jenis pencadangan. Nilai yang valid:

    • FULL: cadangan penuh.

    • DIFF: backup diferensial.

    • LOG: cadangan log.

    @backup_folder

    Direktori lokal tempat file cadangan disimpan. Jika direktori tidak ada, direktori tersebut akan dibuat secara otomatis.

    @is_run

    Menentukan apakah pencadangan dilakukan. Nilai yang valid:

    • 1: Lakukan pencadangan.

    • 0: Lakukan hanya pemeriksaan dan jangan lakukan pencadangan.

  3. Jalankan skrip pencadangan.

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

  1. Buka klien Microsoft SQL Server Management Studio (SSMS).

  2. Login ke database yang ingin Anda migrasikan.

  3. Jalankan perintah berikut untuk memeriksa model pemulihan saat ini dari database sumber.

    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
    • Jika nilai model pada hasil bukan FULL, lanjutkan ke Langkah 4.

    • Jika nilai model pada hasil adalah FULL, lanjutkan ke Langkah 5.

  4. Jalankan perintah berikut untuk mengatur model pemulihan database sumber menjadi FULL.

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

    Setelah Anda mengatur model pemulihan menjadi FULL, jumlah informasi log di SQL Server meningkat. Pastikan Anda memiliki ruang disk yang cukup.

  5. Jalankan perintah berikut untuk mencadangkan database sumber.

    Contoh berikut menunjukkan cara mencadangkan database dbtest ke file backup.bak.

    USE master;
    GO
    BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT;
    GO
  6. Jalankan perintah berikut untuk memverifikasi integritas file cadangan.

    USE master
     GO
     RESTORE FILELISTONLY 
       FROM DISK = N'D:\backup\backup.bak';
    Penting
    • Jika set hasil dikembalikan, file cadangan valid.

    • Jika terjadi kesalahan, lakukan pencadangan ulang.

  7. Opsional: Jalankan perintah berikut untuk mengembalikan model pemulihan asli database.

    Penting

    Jika model pemulihan database sudah FULL, Anda tidak perlu melakukan langkah ini.

    ALTER DATABASE [dbname] SET RECOVERY SIMPLE;
    GO

2. Unggah file cadangan ke OSS

Pilih metode berdasarkan versi instance ApsaraDB RDS untuk SQL Server Anda.

SQL Server 2012 atau versi lebih baru, atau SQL Server 2008 R2 dengan disk cloud

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

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

      • kelas penyimpanan bucket adalah Standard. Kelas penyimpanan lainnya, seperti Infrequent Access, Archive, Cold Archive, dan Deep Cold Archive, tidak didukung.

      • Enkripsi sisi server dinonaktifkan untuk bucket tersebut.

    • Jika belum ada bucket di OSS, Anda harus membuat satu. (Pastikan Anda telah mengaktifkan OSS.)

      1. Login ke konsol OSS, klik Buckets, lalu klik Create Bucket.

      2. Konfigurasikan parameter utama berikut. Anda dapat mempertahankan nilai default untuk parameter lainnya.

        Penting
        • Bucket dibuat terutama untuk migrasi data ini. Anda hanya perlu mengonfigurasi parameter utama. Anda dapat menghapus bucket setelah migrasi selesai untuk mencegah kebocoran data dan mengurangi biaya.

        • Saat membuat bucket, jangan aktifkan enkripsi sisi server.

        Parameter

        Deskripsi

        Contoh

        Bucket Name

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

        Konvensi penamaan:

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

        • Nama harus dimulai 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 instance ApsaraDB RDS melalui jaringan internal, bucket, instance ECS, dan instance ApsaraDB RDS harus berada di wilayah yang sama.

        China (Hangzhou)

        Storage Class

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

        Standard

  2. Unggah file cadangan ke OSS.

    Setelah mencadangkan database lokal, unggah file cadangan ke bucket OSS yang berada di wilayah yang sama dengan instance ApsaraDB RDS Anda. Jika bucket dan instance berada di wilayah yang sama, Anda dapat menggunakan jaringan internal untuk interkoneksi layanan. Metode ini bebas biaya untuk lalu lintas keluar internet dan memberikan kecepatan unggah data yang lebih cepat. Anda dapat menggunakan salah satu metode berikut:

    Gunakan ossbrowser untuk mengunggah file (disarankan)

    1. Unduh ossbrowser.

    2. Langkah-langkah berikut menggunakan sistem operasi Windows x64 sebagai contoh. Ekstrak paket oss-browser-win32-x64.zip yang diunduh dan klik ganda aplikasi oss-browser.exe.

    3. Pilih Log On With AK, konfigurasikan parameter AccessKeyId dan AccessKeySecret, pertahankan nilai default untuk parameter lainnya, lalu klik Log On.

      Catatan

      Pasangan AccessKey digunakan untuk verifikasi identitas. Simpan pasangan AccessKey Anda secara rahasia untuk memastikan keamanan data.

      登录ossbrowser

    4. Klik bucket tujuan.进入bucket中

    5. Klik 上传图标, pilih file cadangan yang ingin Anda unggah, lalu klik Open. File lokal diunggah ke OSS.

    Gunakan konsol OSS untuk mengunggah file

    Catatan

    Jika file cadangan berukuran kurang dari 5 GB, kami sarankan Anda mengunggahnya dari konsol OSS.

    1. Login ke konsol OSS.

    2. Klik Buckets lalu nama bucket tujuan.网页进入bucket

    3. Pada daftar Files, klik Upload File.网页上传文件

    4. Anda dapat menyeret file cadangan ke area Files To Upload, atau klik Scan Files untuk memilih file.网页扫描文件

    5. Klik tombol Upload File di bagian bawah halaman untuk mengunggah file cadangan lokal ke OSS.

    Gunakan API OSS untuk unggah multi-bagian (contoh proyek Python 3)

    Catatan

    Jika file cadangan berukuran lebih dari 5 GB, kami sarankan Anda memanggil API OSS untuk melakukan unggah multi-bagian ke bucket OSS.

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    Dependency: 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:
        """
        Create a v2 client from environment variables.
        - Prioritize using Region (recommended), but also support custom Endpoints (optional).
        - Compatible with both AK and STS:
            * AK: Requires OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET
            * STS: Also requires OSS_SESSION_TOKEN (compatible with the old variable OSS_SECURITY_TOKEN)
        """
        # Compatibility: If the user uses the old variable OSS_SECURITY_TOKEN, map it to the v2 expected 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 Token (optional)
    
        if not (ak and sk):
            raise ValueError("No valid AK found. Set the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables. "
                             "If using STS, also set OSS_SESSION_TOKEN (or the old name OSS_SECURITY_TOKEN).")
    
        # Indicate the type of credential used
        if st:
            print("STS Token (OSS_SESSION_TOKEN) detected. Using STS credentials.")
        else:
            print("No STS Token detected. Using AccessKey (AK) credentials.")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # Basic network configuration
        cfg.region = region  # Example: 'cn-hangzhou'
        if endpoint:
            # Optional: Custom Endpoint (e.g., internal network, accelerated, dedicated domain)
            cfg.endpoint = endpoint
    
        # You can also add other configurations here, such as: 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,
    ):
        """
        Implement concurrent multipart upload with resumable upload.
    
        :param client: Initialized oss.Client
        :param bucket_name: Destination bucket name
        :param object_key: Destination object key (without bucket name)
        :param file_path: Full path of the local file
        :param part_size: Part size in bytes, default is 1 MB
        :param parallel_num: Number of concurrent upload threads, default is 4
        :param checkpoint_dir: Directory to store breakpoint information; if None, resumable upload is disabled
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"Error: Local file not found. Check the file_path configuration: {file_path}")
    
        # Construct the Uploader; enable resumable upload based on whether checkpoint_dir is provided
        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"Starting to upload file: {file_path}")
        print(f"Destination Bucket: {bucket_name}")
        print(f"Destination Object: {object_key}")
        print(f"Part size: {part_size} bytes, Concurrency: {parallel_num}")
        if checkpoint_dir:
            print(f"Resumable upload: Enabled (checkpoint_dir={checkpoint_dir})")
        else:
            print("Resumable upload: Disabled (set checkpoint_dir to enable)")
    
        # Execute the upload (Uploader automatically chooses between multi/single part concurrent upload based on size)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("File uploaded successfully!")
        print(f"HTTP Status: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"Request ID: {result.request_id}")
        # CRC-64 checksum; v2 enables data validation by default
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    
    def main():
        # Before running the code example, make sure you have set the corresponding environment variables.
        # macOS/Linux:
        #   AK method:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   STS method:
        #     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
    
        # ===================== Parameters (modify as needed) =====================
        # Region example: 'cn-hangzhou'; we recommend using Region first
        region = "cn-hangzhou"
    
        # Optional: Custom Endpoint (for internal network, dedicated domain, accelerated domain name, etc.)
        # Example: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'  
    
        # Bucket and Object
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # Full path of the local file to upload.
        # Windows example: r'D:\localpath\examplefile.txt'  (note the r at the beginning)
        # macOS/Linux example: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # Sharding and concurrency
        part_size = 1 * 1024 * 1024  # Default is 1 MB; OSS requires a minimum part size of 100 KB
        parallel_num = 4
    
        # Resumable upload directory (pass None to disable; we recommend specifying a writable directory)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== End of parameters ===================
    
        print("Script execution starts...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # If resumable upload is enabled, make sure the directory exists
            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:
            # Error returned by the OSS server
            print("\nAn OSS server-side error occurred.")
            print(f"HTTP Status: {getattr(e, 'status_code', 'N/A')}")
            print(f"Error Code: {getattr(e, 'code', 'N/A')}")
            print(f"Message: {getattr(e, 'message', 'N/A')}")
            print(f"Request ID: {getattr(e, 'request_id', 'N/A')}")
            print(f"Endpoint: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # SDK local/serialization/deserialization/credential errors
            print("\nAn OSS SDK client-side error occurred.")
            print(str(e))
        except Exception as e:
            print(f"\nAn unknown error occurred: {e}")
    
    
    if __name__ == "__main__":
        main()

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

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

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

      • kelas penyimpanan bucket adalah Standard. Kelas penyimpanan lainnya, seperti Infrequent Access, Archive, Cold Archive, dan Deep Cold Archive, tidak didukung.

      • Enkripsi sisi server dinonaktifkan untuk bucket tersebut.

    • Jika belum ada bucket di OSS, Anda harus membuat satu. (Pastikan Anda telah mengaktifkan OSS.)

      1. Login ke konsol OSS, klik Buckets, lalu klik Create Bucket.

      2. Konfigurasikan parameter utama berikut. Anda dapat mempertahankan nilai default untuk parameter lainnya.

        Penting
        • Bucket dibuat terutama untuk migrasi data ini. Anda hanya perlu mengonfigurasi parameter utama. Anda dapat menghapus bucket setelah migrasi selesai untuk mencegah kebocoran data dan mengurangi biaya.

        • Saat membuat bucket, jangan aktifkan enkripsi sisi server.

        Parameter

        Deskripsi

        Contoh

        Bucket Name

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

        Konvensi penamaan:

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

        • Nama harus dimulai 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 instance ApsaraDB RDS melalui jaringan internal, bucket, instance ECS, dan instance ApsaraDB RDS harus berada di wilayah yang sama.

        China (Hangzhou)

        Storage Class

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

        Standard

  2. Unggah file cadangan ke OSS.

    Setelah mencadangkan database lokal, unggah file cadangan ke bucket OSS yang berada di wilayah yang sama dengan instance ApsaraDB RDS Anda. Jika bucket dan instance berada di wilayah yang sama, Anda dapat menggunakan jaringan internal untuk interkoneksi layanan. Metode ini bebas biaya untuk lalu lintas keluar internet dan memberikan kecepatan unggah data yang lebih cepat. Anda dapat menggunakan salah satu metode berikut:

    Gunakan ossbrowser untuk mengunggah file (disarankan)

    1. Unduh ossbrowser.

    2. Langkah-langkah berikut menggunakan sistem operasi Windows x64 sebagai contoh. Ekstrak paket oss-browser-win32-x64.zip yang diunduh dan klik ganda aplikasi oss-browser.exe.

    3. Pilih Log On With AK, konfigurasikan parameter AccessKeyId dan AccessKeySecret, pertahankan nilai default untuk parameter lainnya, lalu klik Log On.

      Catatan

      Pasangan AccessKey digunakan untuk verifikasi identitas. Simpan pasangan AccessKey Anda secara rahasia untuk memastikan keamanan data.

      登录ossbrowser

    4. Klik bucket tujuan.进入bucket中

    5. Klik 上传图标, pilih file cadangan yang ingin Anda unggah, lalu klik Open. File lokal diunggah ke OSS.

    Gunakan konsol OSS untuk mengunggah file

    Catatan

    Jika file cadangan berukuran kurang dari 5 GB, kami sarankan Anda mengunggahnya dari konsol OSS.

    1. Login ke konsol OSS.

    2. Klik Buckets lalu nama bucket tujuan.网页进入bucket

    3. Pada daftar Files, klik Upload File.网页上传文件

    4. Anda dapat menyeret file cadangan ke area Files To Upload, atau klik Scan Files untuk memilih file.网页扫描文件

    5. Klik tombol Upload File di bagian bawah halaman untuk mengunggah file cadangan lokal ke OSS.

    Gunakan API OSS untuk unggah multi-bagian (contoh proyek Python 3)

    Catatan

    Jika file cadangan berukuran lebih dari 5 GB, kami sarankan Anda memanggil API OSS untuk melakukan unggah multi-bagian ke bucket OSS.

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    Dependency: 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:
        """
        Create a v2 client from environment variables.
        - Prioritize using Region (recommended), but also support custom Endpoints (optional).
        - Compatible with both AK and STS:
            * AK: Requires OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET
            * STS: Also requires OSS_SESSION_TOKEN (compatible with the old variable OSS_SECURITY_TOKEN)
        """
        # Compatibility: If the user uses the old variable OSS_SECURITY_TOKEN, map it to the v2 expected 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 Token (optional)
    
        if not (ak and sk):
            raise ValueError("No valid AK found. Set the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables. "
                             "If using STS, also set OSS_SESSION_TOKEN (or the old name OSS_SECURITY_TOKEN).")
    
        # Indicate the type of credential used
        if st:
            print("STS Token (OSS_SESSION_TOKEN) detected. Using STS credentials.")
        else:
            print("No STS Token detected. Using AccessKey (AK) credentials.")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # Basic network configuration
        cfg.region = region  # Example: 'cn-hangzhou'
        if endpoint:
            # Optional: Custom Endpoint (e.g., internal network, accelerated, dedicated domain)
            cfg.endpoint = endpoint
    
        # You can also add other configurations here, such as: 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,
    ):
        """
        Implement concurrent multipart upload with resumable upload.
    
        :param client: Initialized oss.Client
        :param bucket_name: Destination bucket name
        :param object_key: Destination object key (without bucket name)
        :param file_path: Full path of the local file
        :param part_size: Part size in bytes, default is 1 MB
        :param parallel_num: Number of concurrent upload threads, default is 4
        :param checkpoint_dir: Directory to store breakpoint information; if None, resumable upload is disabled
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"Error: Local file not found. Check the file_path configuration: {file_path}")
    
        # Construct the Uploader; enable resumable upload based on whether checkpoint_dir is provided
        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"Starting to upload file: {file_path}")
        print(f"Destination Bucket: {bucket_name}")
        print(f"Destination Object: {object_key}")
        print(f"Part size: {part_size} bytes, Concurrency: {parallel_num}")
        if checkpoint_dir:
            print(f"Resumable upload: Enabled (checkpoint_dir={checkpoint_dir})")
        else:
            print("Resumable upload: Disabled (set checkpoint_dir to enable)")
    
        # Execute the upload (Uploader automatically chooses between multi/single part concurrent upload based on size)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("File uploaded successfully!")
        print(f"HTTP Status: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"Request ID: {result.request_id}")
        # CRC-64 checksum; v2 enables data validation by default
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    
    def main():
        # Before running the code example, make sure you have set the corresponding environment variables.
        # macOS/Linux:
        #   AK method:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   STS method:
        #     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
    
        # ===================== Parameters (modify as needed) =====================
        # Region example: 'cn-hangzhou'; we recommend using Region first
        region = "cn-hangzhou"
    
        # Optional: Custom Endpoint (for internal network, dedicated domain, accelerated domain name, etc.)
        # Example: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'  
    
        # Bucket and Object
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # Full path of the local file to upload.
        # Windows example: r'D:\localpath\examplefile.txt'  (note the r at the beginning)
        # macOS/Linux example: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # Sharding and concurrency
        part_size = 1 * 1024 * 1024  # Default is 1 MB; OSS requires a minimum part size of 100 KB
        parallel_num = 4
    
        # Resumable upload directory (pass None to disable; we recommend specifying a writable directory)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== End of parameters ===================
    
        print("Script execution starts...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # If resumable upload is enabled, make sure the directory exists
            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:
            # Error returned by the OSS server
            print("\nAn OSS server-side error occurred.")
            print(f"HTTP Status: {getattr(e, 'status_code', 'N/A')}")
            print(f"Error Code: {getattr(e, 'code', 'N/A')}")
            print(f"Message: {getattr(e, 'message', 'N/A')}")
            print(f"Request ID: {getattr(e, 'request_id', 'N/A')}")
            print(f"Endpoint: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # SDK local/serialization/deserialization/credential errors
            print("\nAn OSS SDK client-side error occurred.")
            print(str(e))
        except Exception as e:
            print(f"\nAn unknown error occurred: {e}")
    
    
    if __name__ == "__main__":
        main()
  3. Tetapkan periode validitas untuk tautan file cadangan dan dapatkan URL file tersebut.

    1. Login ke konsol OSS.

    2. Klik Buckets. Lalu, klik nama bucket tujuan.

    3. Pada panel navigasi di sebelah kiri, pilih File Management > Files.

    4. Pada kolom Tindakan untuk file cadangan database tujuan, klik Details. Pada panel yang muncul, atur Expiration (Seconds) menjadi 28800 (8 jam).

      Penting

      Saat Anda memigrasikan file cadangan dari OSS ke ApsaraDB RDS, Anda harus menggunakan URL file cadangan tersebut. Migrasi data gagal jika tautan kedaluwarsa.

    5. Klik Copy File URL untuk menyalin URL file.

      image.png

    6. Ubah URL file cadangan data yang diperoleh.

      Secara default, titik akhir publik file diambil. Untuk memigrasikan data melalui jaringan internal, Anda harus mengubah titik akhir dalam URL file menjadi titik akhir internal.

      Sebagai contoh, jika URL file cadangan adalah http://rdstest.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=15141****&OSSAccessKeyId=TMP****, Anda harus mengubah oss-cn-shanghai.aliyuncs.com dalam URL menjadi oss-cn-shanghai-internal.aliyuncs.com.

      Penting

      Titik akhir internal bervariasi berdasarkan jenis jaringan dan wilayah. Untuk informasi selengkapnya, lihat Titik Akhir dan Pusat Data.

3. Impor data cadangan OSS ke ApsaraDB RDS

Pilih metode berdasarkan versi instance ApsaraDB RDS untuk SQL Server Anda.

SQL Server 2012 atau versi lebih baru, atau SQL Server 2008 R2 dengan disk cloud

  1. Buka halaman Instances. Pada bilah navigasi atas, pilih wilayah tempat instance RDS berada. Lalu, temukan instance RDS dan klik ID instance tersebut.

  2. Pada panel navigasi di sebelah kiri, klik Backup and Restore.

  3. Di bagian atas halaman, klik tombol Restore From OSS Backup.

  4. Pada Data Import Wizard, klik Next dua kali untuk melanjutkan ke langkah impor data.

    Catatan
    • Saat pertama kali menggunakan fitur Restore from OSS Backup, Anda harus memberikan otorisasi kepada ApsaraDB RDS untuk mengakses OSS. Klik Authorization URL dan berikan izin yang diperlukan. Jika otorisasi ini tidak diberikan, daftar drop-down OSS Bucket akan kosong.

    • Jika Anda tidak dapat menemukan file tujuan pada halaman ini, periksa apakah ekstensi nama file cadangan di OSS memenuhi persyaratan. Untuk informasi selengkapnya, lihat bagian Catatan dalam topik ini. Pastikan juga instance ApsaraDB RDS dan bucket OSS berada di wilayah yang sama.

  5. Atur parameter berikut.

    Item konfigurasi

    Deskripsi

    Database Name

    Masukkan nama database tujuan pada instance RDS Anda. Database tujuan digunakan untuk menyimpan data yang dimigrasikan dari database sumber pada instance SQL Server yang dikelola sendiri. Nama database tujuan harus memenuhi persyaratan SQL Server open source.

    Penting
    • Sebelum migrasi, Anda harus memastikan bahwa nama database pada instance RDS tujuan berbeda dari nama database yang ingin Anda pulihkan menggunakan file cadangan yang ditentukan. Selain itu, pastikan file database dengan nama yang sama seperti database yang ingin Anda pulihkan menggunakan file cadangan yang ditentukan tidak ditambahkan ke database pada instance RDS tujuan. Jika kedua persyaratan di atas terpenuhi, Anda dapat memulihkan database menggunakan file database dalam set cadangan. Perhatikan bahwa file database harus memiliki nama yang sama dengan database yang ingin Anda pulihkan.

    • Jika database dengan nama yang sama seperti database yang ditentukan dalam file cadangan sudah ada pada instance tujuan, atau jika ada file database yang tidak terpasang dengan nama yang sama, operasi pemulihan akan gagal.

    OSS Bucket

    Pilih bucket OSS tempat file cadangan disimpan.

    OSS File List

    Klik tombol 放大镜 di sebelah kanan untuk melakukan pencarian fuzzy berdasarkan awalan nama file cadangan. Nama file, ukuran file, dan waktu pembaruan ditampilkan. Pilih file cadangan yang ingin Anda migrasikan.

    Migration Solution

    • Open database (only one full backup file): Opsi ini untuk migrasi penuh dan cocok untuk skenario di mana hanya satu file cadangan penuh yang dimigrasikan. Dalam kasus ini, pilih Open Database. Parameter BackupMode dalam operasi CreateMigrateTask diatur ke FULL, dan parameter IsOnlineDB diatur ke True.

    • Do not open database (differential backups or log files exist): Opsi ini untuk migrasi inkremental dan cocok untuk skenario di mana file cadangan penuh ditambah cadangan log (atau file cadangan diferensial) dimigrasikan. Dalam kasus ini, parameter BackupMode dalam operasi CreateMigrateTask diatur ke UPDF, dan parameter IsOnlineDB diatur ke False.

    Consistency Check Method

    • Asynchronously execute DBCC: Sistem tidak menjalankan DBCC CheckDB saat membuka database. Sebaliknya, sistem menjalankan DBCC CheckDB secara asinkron setelah database dibuka. Ini mengurangi overhead waktu membuka database (DBCC CheckDB sangat memakan waktu untuk database besar) dan meminimalkan downtime bisnis Anda. Jika Anda sangat sensitif terhadap downtime bisnis dan tidak peduli dengan hasil DBCC CheckDB, kami sarankan Anda menggunakan opsi ini. Dalam kasus ini, parameter CheckDBMode dalam operasi CreateMigrateTask diatur ke AsyncExecuteDBCheck.

    • Synchronously execute DBCC: Dibandingkan dengan eksekusi asinkron, beberapa pengguna sangat memperhatikan hasil DBCC CheckDB untuk mengidentifikasi kesalahan konsistensi data di database on-premises mereka. Dalam kasus ini, kami sarankan Anda memilih opsi ini. Dampaknya adalah akan memperpanjang waktu yang dibutuhkan untuk membuka database. Dalam kasus ini, parameter CheckDBMode dalam operasi CreateMigrateTask diatur ke SyncExecuteDBCheck.

  6. Klik OK.

    Tunggu hingga tugas migrasi selesai. Anda dapat mengklik Refresh untuk memeriksa status tugas. Jika tugas gagal, gunakan deskripsinya untuk memecahkan masalah. Untuk informasi selengkapnya, lihat bagian Kesalahan umum dalam topik ini.

    Catatan

    Setelah migrasi data selesai, sistem mencadangkan instance ApsaraDB RDS pada waktu cadangan yang ditentukan berdasarkan kebijakan pencadangan otomatis. Anda dapat menyesuaikan waktu pencadangan secara manual. Set cadangan yang dihasilkan berisi data yang dimigrasikan dan tersedia di halaman Backup and Restoration instance ApsaraDB RDS.

    Untuk menghasilkan cadangan di cloud sebelum waktu pencadangan terjadwal, Anda juga dapat melakukan pencadangan manual.

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

  1. Login ke konsol ApsaraDB RDS dan buka halaman Instances. Pada bilah navigasi atas, pilih wilayah tempat instance RDS berada. Lalu, temukan instance RDS dan klik ID instance tersebut.

  2. Pada panel navigasi kiri, klik Database Management.

  3. Untuk database tujuan, klik Import From OSS Backup File pada kolom Actions.

  4. Pada kotak dialog Data Import Wizard, tinjau informasi dan klik Next.

  5. Tinjau petunjuk untuk unggah OSS dan klik Next.

  6. Pada kolom OSS URL Of Backup File, masukkan URL OSS file cadangan dan klik OK.

    image.png

    Catatan

    Instance ApsaraDB RDS untuk SQL Server 2008 R2 dengan disk lokal berkinerja tinggi hanya mendukung impor satu kali file cadangan penuh.

4. Lihat progres migrasi

Pilih metode berdasarkan versi instance ApsaraDB RDS untuk SQL Server Anda.

SQL Server 2012 atau versi lebih baru, atau SQL Server 2008 R2 dengan disk cloud

Buka halaman Backup and Restoration instance ApsaraDB RDS. Pada tab Data Migration to Cloud Records, Anda dapat melihat catatan migrasi, termasuk status tugas, waktu mulai, dan waktu selesai. Secara default, catatan dari minggu lalu ditampilkan. Anda dapat menyesuaikan rentang waktu sesuai kebutuhan.

image

Catatan

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details untuk mengidentifikasi penyebab kegagalan. Setelah menyelesaikan masalah, jalankan ulang tugas migrasi data.

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

Pada halaman Data Migration To Cloud instance ApsaraDB RDS, temukan tugas migrasi tujuan untuk melihat progresnya.

Catatan

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details untuk menentukan penyebab kegagalan. Setelah menyelesaikan masalah, jalankan ulang tugas migrasi data.

Kesalahan umum

Setiap catatan migrasi berisi deskripsi tugas yang dapat Anda gunakan untuk mengidentifikasi penyebab kegagalan tugas. Berikut adalah pesan kesalahan umum:

  • Database dengan nama yang sama sudah ada

    • Pesan kesalahan 1: Database (xxx) sudah ada di RDS. Harap cadangkan dan hapus, lalu coba lagi.

    • Pesan kesalahan 2: Database 'xxx' sudah ada. Pilih nama database yang berbeda.

    • Penyebab: Untuk memastikan keamanan data, ApsaraDB RDS untuk SQL Server tidak mendukung migrasi database dengan nama yang sama seperti database yang sudah ada.

    • Solusi: Untuk menimpa database yang sudah ada, cadangkan data yang ada, hapus database tersebut, lalu jalankan ulang tugas migrasi data.

  • Menggunakan file cadangan diferensial

    • Pesan kesalahan: Backup set (xxx.bak) is a Database Differential backup, we only accept a FULL Backup.

    • Penyebab: File cadangan yang diberikan adalah cadangan diferensial, bukan cadangan penuh. Metode migrasi ini hanya mendukung file cadangan penuh.

  • Menggunakan file cadangan log

    • Pesan kesalahan: Set backup (xxx.trn) merupakan backup log transaksi; kami hanya menerima backup PENUH.

    • Penyebab: File cadangan yang diberikan adalah cadangan log, bukan cadangan penuh. Metode migrasi ini hanya mendukung file cadangan penuh.

  • Verifikasi file cadangan gagal

    • Pesan kesalahan: Gagal memverifikasi xxx.bak. File cadangan rusak atau berasal dari edisi RDS yang lebih baru.

    • Penyebab: File cadangan rusak, atau versi SQL Server database sumber lebih baru daripada versi instance ApsaraDB RDS untuk SQL Server tujuan. Ketidakcocokan versi ini menyebabkan verifikasi gagal. Misalnya, kesalahan ini dilaporkan saat Anda memulihkan cadangan SQL Server 2016 ke instance ApsaraDB RDS untuk SQL Server 2012.

    • Solusi: Jika file cadangan rusak, buat cadangan penuh baru dari database sumber lalu buat tugas migrasi baru. Jika versi tidak kompatibel, gunakan instance ApsaraDB RDS untuk SQL Server yang menjalankan versi yang sama atau lebih baru dari versi database sumber.

      Catatan

      Untuk meningkatkan instance ApsaraDB RDS untuk SQL Server yang ada ke versi yang lebih baru, lihat Tingkatkan versi mesin database.

  • DBCC CHECKDB gagal

    • Pesan kesalahan: DBCC checkdb failed.

    • Penyebab: Terjadi kesalahan selama operasi DBCC CHECKDB, yang menunjukkan adanya kesalahan pada database sumber.

    • Solusi: Jalankan perintah berikut untuk memperbaiki kesalahan pada database sumber lalu migrasikan data lagi.

      Penting

      Menjalankan perintah ini untuk memperbaiki kesalahan dapat menyebabkan kehilangan data.

      DBCC CHECKDB (DBName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS
  • Ruang tidak mencukupi 1

    • Pesan kesalahan: Ruang disk tidak mencukupi untuk pemulihan; ruang tersisa (xxx MB) < ruang yang dibutuhkan (xxx MB).

    • Penyebab: Ruang penyimpanan tersisa pada instance ApsaraDB RDS tidak mencukupi untuk memigrasikan file cadangan.

    • Solusi: Tingkatkan kapasitas penyimpanan instance.

  • Ruang tidak mencukupi 2

    • Pesan kesalahan: Not Enough Disk Space, space left xxx MB < bak file xxx MB.

    • Penyebab: Ruang penyimpanan tersisa pada instance ApsaraDB RDS lebih kecil dari ukuran file cadangan.

    • Solusi: Tingkatkan kapasitas penyimpanan instance.

  • Izin akun login tidak mencukupi

    • Pesan kesalahan: Tidak dapat membuka database "xxx" yang diminta oleh login. Login gagal.

    • Penyebab: Akun pengguna yang digunakan untuk login ke instance ApsaraDB RDS tidak memiliki izin akses ke database.

    • Solusi: Pada halaman Account Management instance ApsaraDB RDS, berikan izin akses atau operasi database ke akun pengguna. Untuk informasi selengkapnya, lihat Berikan izin ke akun dan Izin yang didukung oleh berbagai jenis akun.

  • Tidak ada akun istimewa

    • Pesan kesalahan: RDS Anda belum memiliki akun init. Harap buat akun tersebut dan berikan izin di Konsol RDS pada database yang dimigrasikan ini (xxx).

    • Penyebab: Instance ApsaraDB RDS tidak memiliki akun istimewa, sehingga tugas migrasi data tidak tahu pengguna mana yang harus diberikan izin. Namun, file cadangan berhasil dipulihkan ke instance tujuan, sehingga status tugas berhasil.

    • Solusi: Buat akun istimewa.

  • Izin operasi pengguna RAM tidak mencukupi

    • Q1: Pada langkah 5 membuat tugas migrasi data, saya telah memasukkan semua parameter konfigurasi, tetapi tombol OK berwarna abu-abu. Mengapa?

    • A1: Tombol mungkin tidak tersedia karena Anda menggunakan pengguna RAM yang memiliki izin tidak mencukupi. Untuk informasi selengkapnya, lihat bagian Prasyarat dalam topik ini untuk memastikan izin yang diperlukan telah diberikan.

    • Q2: Saat saya menggunakan pengguna RAM untuk memberikan izin untuk AliyunRDSImportRole, kesalahan permission denied dikembalikan. Bagaimana cara menyelesaikannya?

    • A2: Gunakan akun Alibaba Cloud Anda untuk sementara memberikan izin AliyunRAMFullAccess kepada pengguna RAM.

Pesan balasan umum

Jenis tugas

Status tugas

Deskripsi tugas

Deskripsi

Impor satu kali file cadangan penuh

Success

success

Migrasi berhasil.

Failed

Failed to download backup file since OSS URL was expired.

Migrasi gagal karena URL unduhan OSS kedaluwarsa.

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

Migrasi gagal karena file cadangan rusak atau berasal dari versi yang lebih baru daripada instance ApsaraDB RDS.

DBCC checkdb failed

Migrasi gagal karena perintah DBCC CHECKDB gagal.

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

Migrasi gagal karena file tersebut adalah cadangan log.

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

Migrasi gagal karena file tersebut adalah cadangan diferensial.

Operasi API terkait

API

Deskripsi

CreateMigrateTask

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

CreateOnlineDatabaseTask

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

DescribeMigrateTasks

Menanyakan daftar tugas migrasi data untuk instance ApsaraDB RDS untuk SQL Server.

DescribeOssDownloads

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