All Products
Search
Document Center

ApsaraDB RDS:Migrasikan cadangan penuh ke cloud

Last Updated:Mar 29, 2026

Migrasikan database SQL Server yang dikelola sendiri ke ApsaraDB RDS for SQL Server dengan mengunggah file cadangan penuh (.bak) ke Object Storage Service (OSS), lalu mengimpornya ke instans RDS Anda melalui konsol. Pendekatan ini berlaku untuk migrasi satu kali, pemulihan bencana, dan pencadangan data berbasis cloud.

Cara kerja

  1. Backup database SQL Server on-premises Anda ke file .bak.

  2. Unggah file backup ke bucket OSS di wilayah yang sama dengan instans RDS Anda.

  3. Picu tugas impor dari konsol RDS — sistem akan menarik file dari OSS dan memulihkannya.

Penting

Solusi ini hanya mendukung migrasi tingkat database. Untuk migrasi beberapa atau semua database sekaligus, gunakan solusi migrasi tingkat instans.

Batasan

Sebelum memulai, tinjau batasan berikut untuk memastikan solusi ini sesuai dengan kasus penggunaan Anda:

  • Lingkup migrasi: Hanya tingkat database. Satu database per tugas.

  • Kompatibilitas versi: Versi SQL Server sumber tidak boleh lebih baru daripada versi instans RDS tujuan. Misalnya, Anda tidak dapat memulihkan backup SQL Server 2016 ke instans SQL Server 2012.

  • Jenis backup: Hanya file backup penuh (.bak). Backup diferensial dan backup log tidak diterima oleh proses impor.

  • Nama file: Tidak boleh mengandung karakter khusus seperti !@#$%^&*()_+-=.

  • Format file: Jika sumbernya adalah file backup yang diunduh dari ApsaraDB RDS for SQL Server (format .zip), dekompresi terlebih dahulu ke format .bak sebelum diunggah.

  • Ekstensi yang didukung: .bak (backup penuh), .diff (backup diferensial), .trn atau .log (backup log). File dengan ekstensi lain tidak dikenali.

  • AliyunRDSImportRole: Setelah memberikan akses OSS ke akun layanan RDS, sebuah role bernama AliyunRDSImportRole dibuat di RAM. Jangan ubah atau hapus role ini — tindakan tersebut akan menyebabkan tugas migrasi gagal. Jika Anda tidak sengaja menghapusnya, berikan kembali izin melalui wizard migrasi.

  • Akun pasca-migrasi: Setelah migrasi, akun database asli dari instans sumber menjadi tidak tersedia. Buat akun baru di konsol ApsaraDB RDS.

  • Retensi file OSS: Jangan hapus file backup dari OSS hingga tugas migrasi selesai.

Penagihan

SkenarioBiaya
Mengunggah file backup ke OSSGratis
Menyimpan file backup di OSSDikenakan biaya penyimpanan OSS. Lihat harga OSSharga OSS.
Impor melalui jaringan internal (wilayah yang sama)Gratis
Impor melalui internetDikenakan biaya lalu lintas outbound OSS. Lihat harga OSSharga OSS.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Instans RDS memiliki ruang penyimpanan yang cukup untuk menampung file data. Jika tidak, tingkatkan kapasitas penyimpanan instans.

  • Untuk SQL Server 2012 atau yang lebih baru, atau SQL Server 2008 R2 dengan disk cloud: Instans RDS tidak berisi database dengan nama yang sama dengan database yang akan dimigrasikan.

  • Untuk SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi: Database dengan nama yang sama dengan database yang akan dimigrasikan sudah ada pada instans RDS.

  • Jika menggunakan Pengguna Resource Access Management (RAM):

    • Pengguna RAM memiliki izin AliyunOSSFullAccess dan AliyunRDSFullAccess. Lihat Kelola izin OSS menggunakan RAM dan Kelola izin ApsaraDB RDS menggunakan RAM.

    • Akun Alibaba Cloud Anda telah memberikan akses akun layanan ApsaraDB RDS ke resource OSS Anda. Lihat langkah otorisasi di bawah.

    • Akun Alibaba Cloud Anda telah membuat kebijakan akses kustom dan melampirkannya ke pengguna RAM. Kebijakan tersebut harus mencakup: ``json { "Version": "1", "Statement": [ { "Action": [ "ram:GetRole" ], "Resource": "acs:ram:*:*:role/AliyunRDSImportRole", "Effect": "Allow" } ] } ``

      Konten kebijakan

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

Petunjuk otorisasi

Otorisasi RDS untuk mengakses OSS

Untuk memeriksa atau memberikan otorisasi:

  1. Buka halaman Backup and Restoration instans RDS dan klik Migrate OSS Backup Data to RDS.

  2. Di Import Guide, klik Next dua kali hingga mencapai langkah 3. Import Data.

  3. Jika pesan You have authorized RDS official service account to access your OSS muncul di pojok kiri bawah, otorisasi sudah diberikan. Jika tidak, klik Authorization URL untuk memberikan akses.

image

Persiapkan database sumber

Di lingkungan SQL Server on-premises Anda, jalankan DBCC CHECKDB untuk memverifikasi bahwa database tidak memiliki error sebelum melakukan backup:

DBCC CHECKDB (DBName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS

Database yang bersih akan menghasilkan:

CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxx'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Jangan lanjutkan jika pemeriksaan melaporkan error. Lihat DBCC CHECKDB failed untuk cara memperbaiki masalah tersebut.

Langkah 1: Backup database lokal

Pilih prosedur yang sesuai dengan tipe instans RDS Anda.

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

Hentikan semua operasi tulis ke database sebelum memulai backup. Data yang ditulis selama proses backup tidak termasuk dalam file backup.
  1. Unduh skrip backup dan buka di SQL Server Management Studio (SSMS).

  2. Dalam skrip, atur parameter pada pernyataan SELECT di bawah bagian YOU HAVE TO INIT PUBLIC VARIABLES HERE:

    ParameterDeskripsi
    @backup_databases_listDatabase yang akan di-backup. Pisahkan beberapa nama database dengan titik koma (;) atau koma (,).
    @backup_typeJenis backup: FULL, DIFF, atau LOG.
    @backup_folderDirektori lokal untuk file backup. Dibuat otomatis jika belum ada.
    @is_run1 untuk menjalankan backup; 0 untuk dry run (hanya pemeriksaan).
  3. Jalankan skrip tersebut.

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

  1. Buka SQL Server Management Studio (SSMS) dan login ke database yang ingin dimigrasikan.

  2. Periksa model recovery saat ini:

    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
  3. Jika kolom model bukan FULL, atur ke FULL:

    Penting

    Mengatur model recovery ke FULL meningkatkan volume data log transaksi. Pastikan Anda memiliki ruang disk yang cukup sebelum melanjutkan.

    ALTER DATABASE [dbname] SET RECOVERY FULL;
    GO
    ALTER DATABASE [dbname] SET AUTO_CLOSE OFF;
    GO
  4. Backup database. Contoh berikut melakukan backup dbtest ke d:\backup\backup.bak:

    USE master;
    GO
    BACKUP DATABASE [dbtest] TO DISK = 'd:\backup\backup.bak' WITH COMPRESSION, INIT;
    GO
  5. Verifikasi file backup:

    USE master;
    GO
    RESTORE FILELISTONLY
      FROM DISK = N'D:\backup\backup.bak';

    Jika perintah mengembalikan set hasil, file tersebut valid. Jika mengembalikan error, ulangi proses backup.

  6. (Opsional) Pulihkan model recovery asli jika Anda mengubahnya di langkah 3:

    ALTER DATABASE [dbname] SET RECOVERY SIMPLE;
    GO

    Lewati langkah ini jika model recovery sudah FULL sejak awal.

Langkah 2: Unggah file backup ke OSS

Persiapkan bucket OSS

Anda memerlukan bucket OSS di wilayah yang sama dengan instans RDS Anda. Ketika bucket dan instans berada di wilayah yang sama, migrasi berjalan melalui jaringan internal — bebas biaya lalu lintas outbound dan lebih cepat daripada melalui internet.

Jika Anda sudah memiliki bucket, pastikan bucket tersebut memenuhi persyaratan berikut:

  • Kelas penyimpanan: Standard. Infrequent Access, Archive, Cold Archive, dan Deep Cold Archive tidak didukung.

  • Enkripsi sisi server: dimatikan.

Jika Anda perlu membuat bucket, pastikan Anda telah mengaktifkan OSS, lalu:

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

  2. Atur parameter berikut. Biarkan semua parameter lain pada nilai default-nya.

    Penting

    Jangan aktifkan enkripsi sisi server saat membuat bucket. Hapus bucket tersebut setelah migrasi untuk mencegah eksposur data dan mengurangi biaya.

    ParameterDeskripsiContoh
    Bucket nameUnik secara global, tidak dapat diubah setelah dibuat. Hanya huruf kecil, angka, dan tanda hubung. Harus dimulai dan diakhiri dengan huruf kecil atau angka. Panjang 3–63 karakter.migratetest
    RegionHarus sesuai dengan wilayah instans RDS Anda.China (Hangzhou)
    Storage classPilih Standard.Standard

Unggah file backup

Pilih metode unggah berdasarkan ukuran file Anda.

Menggunakan ossbrowser (Direkomendasikan)

Opsi 1: ossbrowser (direkomendasikan untuk sebagian besar kasus)

  1. Unduh ossbrowser.

  2. Pada Windows x64: ekstrak oss-browser-win32-x64.zip dan jalankan oss-browser.exe.

  3. Pilih Log On With AK, masukkan AccessKeyId dan AccessKeySecret Anda, lalu klik Log On.

    Pasangan AccessKey digunakan untuk verifikasi identitas. Simpan AccessKey Anda secara rahasia.

    Login to ossbrowser

  4. Klik bucket tujuan.

    Enter the bucket

  5. Klik 上传图标, pilih file backup, lalu klik Open.

Menggunakan konsol OSS

Opsi 2: Konsol OSS (untuk file berukuran kurang dari 5 GB)

  1. Login ke konsol OSS.

  2. Klik Buckets, lalu nama bucket Anda.

    Enter the bucket via console

  3. Di daftar Objects, klik Upload Object.

    Upload file via console

  4. Seret file backup ke area Files to Upload, atau klik Select Files untuk menjelajahi.

    Select files to upload

  5. Klik Upload Object.

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

Opsi 3: Unggah multi-bagian API OSS (untuk file berukuran lebih dari 5 GB)

Gunakan SDK Python alibabacloud-oss-v2 untuk unggah multi-bagian dengan dukungan unggah yang dapat dilanjutkan. Instal dependensi terlebih dahulu:

pip install alibabacloud-oss-v2

Atur variabel lingkungan berikut sebelum menjalankan skrip:

VariabelDeskripsi
OSS_ACCESS_KEY_IDID AccessKey Anda
OSS_ACCESS_KEY_SECRETRahasia AccessKey Anda
OSS_SESSION_TOKENToken STS (diperlukan hanya saat menggunakan kredensial STS)
# -*- 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:
    """
    Buat klien v2 dari variabel lingkungan.
    - Utamakan penggunaan Region (direkomendasikan), tetapi juga mendukung Endpoint kustom (opsional).
    - Kompatibel dengan AK dan STS:
        * AK: Membutuhkan OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET
        * STS: Juga membutuhkan 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).")

    # Tunjukkan 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 akselerasi, domain khusus)
        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 dukungan 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"Error: 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 (sesuaikan sesuai kebutuhan) =====================
    # Contoh wilayah: 'cn-hangzhou'; kami merekomendasikan 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 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 merekomendasikan 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:
        # Error yang dikembalikan oleh server OSS
        print("\nTerjadi error sisi server OSS.")
        print(f"Status HTTP: {getattr(e, 'status_code', 'N/A')}")
        print(f"Kode Error: {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:
        # Error SDK sisi klien/serialisasi/deserialisasi/kredensial
        print("\nTerjadi error sisi klien SDK OSS.")
        print(str(e))
    except Exception as e:
        print(f"\nTerjadi error tak dikenal: {e}")


if __name__ == "__main__":
    main()

Dapatkan URL file backup (hanya untuk SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi)

Setelah mengunggah file, buat URL sementara untuk digunakan dalam langkah impor:

  1. Login ke konsol OSS dan klik Buckets.

  2. Klik nama bucket tujuan.

  3. Di panel navigasi kiri, pilih File Management > Files.

  4. Di kolom Actions untuk file backup, klik Details. Atur Expiration (Seconds) ke 28800 (8 jam).

    Penting

    Tugas migrasi menggunakan URL ini untuk mengunduh file. Jika URL kedaluwarsa sebelum tugas selesai, migrasi akan gagal.

  5. Klik Copy File URL.

    Copy file URL

  6. Untuk migrasi melalui jaringan internal, ubah endpoint publik dalam URL menjadi endpoint internal. Misalnya, ubah oss-cn-shanghai.aliyuncs.com menjadi oss-cn-shanghai-internal.aliyuncs.com.

    Format endpoint internal bervariasi berdasarkan wilayah. Lihat Endpoints dan pusat dataEndpoints dan pusat data.

Langkah 3: Impor data backup OSS

Pilih prosedur yang sesuai dengan tipe instans RDS Anda.

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

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah instans RDS Anda, lalu klik ID instans.

  2. Di panel navigasi kiri, klik Backup and Restoration.

  3. Klik Migrate OSS Backup Data to RDS.

  4. Di Import Guide, klik Next dua kali hingga mencapai langkah impor data.

    Pada penggunaan pertama, Anda harus mengotorisasi ApsaraDB RDS untuk mengakses OSS. Klik Authorization URL dan selesaikan otorisasi. Tanpa ini, daftar OSS Bucket akan kosong. Jika file yang Anda unggah tidak terlihat, periksa apakah ekstensi file memenuhi persyaratan di Batasan dan apakah bucket serta instans RDS berada di wilayah yang sama.
  5. Konfigurasikan pengaturan impor:

    ParameterDeskripsi
    Database nameNama database yang dipulihkan pada instans RDS. Nama harus mengikuti konvensi penamaan SQL Server dan tidak boleh bertentangan dengan database yang ada atau file database yang tidak terpasang pada instans. Jika set cadangan berisi file database dengan nama yang sama dengan database tujuan, Anda dapat memulihkan database menggunakan file tersebut — nama file database harus sesuai dengan nama database tujuan.
    OSS bucketPilih bucket yang berisi file backup.
    OSS fileKlik ikon pencarian untuk menemukan file berdasarkan awalan. Daftar menampilkan nama file, ukuran, dan waktu pembaruan.
    Cloud migration methodImmediate Access (Full Backup): Migrasi penuh dari satu file backup penuh. Mengatur BackupMode=FULL dan IsOnlineDB=True. Access Pending (Incremental Backup): Migrasi menggunakan backup penuh ditambah backup log atau diferensial. Mengatur BackupMode=UPDF dan IsOnlineDB=False.
    Consistency check modeAsynchronous DBCC: Membuka database segera dan menjalankan DBCC CHECKDB di latar belakang. Mengurangi downtime. Mengatur CheckDBMode=AsyncExecuteDBCheck. Gunakan ini ketika meminimalkan downtime menjadi prioritas. Synchronous DBCC: Menjalankan DBCC CHECKDB sebelum membuka database. Memakan waktu lebih lama tetapi memastikan konsistensi data sejak awal. Mengatur CheckDBMode=SyncExecuteDBCheck.
  6. Klik OK.

Setelah tugas selesai, instans RDS akan melakukan backup pada waktu terjadwal berikutnya sesuai kebijakan backup otomatis. Set cadangan yang dihasilkan mencakup data yang dimigrasikan dan tersedia di halaman Backup and Restoration. Untuk membuat backup segera, picu backup manual.

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

  1. Buka halaman Instances, pilih wilayah, lalu klik ID instans.

  2. Di panel navigasi kiri, klik Databases.

  3. Di kolom Actions untuk database tujuan, klik Migrate Backup Files from OSS.

    Migrate backup files from OSS

  4. Di Import Guide, tinjau informasi lalu klik Next.

  5. Tinjau petunjuk unggah OSS lalu klik Next.

  6. Di bidang OSS URL of backup file, masukkan URL yang Anda salin di langkah 2, lalu klik OK.

    Tipe instans ini hanya mendukung impor satu kali dari file backup penuh.

    Enter the OSS URL

Langkah 4: Pantau tugas migrasi

Pilih tampilan yang sesuai dengan tipe instans RDS Anda.

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

Buka Backup and Restoration dan klik tab Cloud Migration Records of Backup Data. Tab ini menampilkan status tugas, waktu mulai, dan waktu selesai. Secara default, catatan dari minggu lalu ditampilkan — sesuaikan rentang waktu sesuai kebutuhan.

Migration records

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details untuk mengidentifikasi penyebabnya, lalu jalankan ulang tugas setelah menyelesaikan masalah.

SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi

Di halaman Data Migration To Cloud, temukan tugas migrasi untuk melihat progresnya.

Jika Task Status adalah Failed, periksa Task Description atau klik View File Details untuk mengidentifikasi penyebabnya, lalu jalankan ulang tugas setelah menyelesaikan masalah.

Pesan balasan umum

Jenis tugasStatusDeskripsi tugasMakna
Impor backup penuh satu kaliSuccesssuccessMigrasi berhasil diselesaikan.
Impor backup penuh satu kaliFailedFailed to download backup file since OSS URL was expired.URL unduh OSS kedaluwarsa sebelum tugas selesai. Hasilkan ulang URL dan coba lagi.
Impor backup penuh satu kaliFailedYour backup is corrupted or newer than RDS, failed to verify.File backup rusak, atau versi SQL Server sumber lebih baru daripada versi instans RDS.
Impor backup penuh satu kaliFailedDBCC checkdb failedDatabase sumber memiliki error konsistensi.
Impor backup penuh satu kaliFailedautotest_2008r2_std_testmigrate_log.trn is a Transaction Log backup, we only accept a FULL Backup.File tersebut adalah backup log. Berikan file backup penuh sebagai gantinya.
Impor backup penuh satu kaliFailedautotest_2008r2_std_testmigrate_diff.bak is a Database Differential backup, we only accept a FULL Backup.File tersebut adalah backup diferensial. Berikan file backup penuh sebagai gantinya.

Pemecahan masalah

Database (xxx) sudah ada di RDS. Silakan cadangkan dan hapus terlebih dahulu, lalu coba lagi. atau Database 'xxx' sudah ada. Pilih nama database lain.

ApsaraDB RDS for SQL Server tidak mengizinkan migrasi ke database yang sudah ada. Backup database yang ada, hapus, lalu jalankan ulang tugas migrasi.

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

File yang diberikan adalah backup diferensial. Metode migrasi ini hanya menerima file backup penuh.

Backup set (xxx.trn) is a Transaction Log backup, we only accept a FULL Backup.

File yang diberikan adalah backup log. Metode migrasi ini hanya menerima file backup penuh.

Failed to verify xxx.bak, backup file was corrupted or newer edition than RDS. {#backup-verification-failed}

Dua kemungkinan penyebab:

  • File rusak: Buat backup penuh baru dari database sumber dan mulai tugas migrasi baru.

  • Ketidakcocokan versi: Versi SQL Server sumber lebih baru daripada versi instans RDS tujuan. Gunakan instans RDS yang menjalankan versi yang sama atau lebih baru. Untuk meningkatkan instans RDS yang ada, lihat Upgrade versi engine database.

DBCC checkdb failed

Database sumber memiliki error. Perbaiki dengan perintah berikut, lalu migrasikan lagi:

DBCC CHECKDB (DBName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS
Penting

Perintah ini dapat menyebabkan kehilangan data.

Not Enough Disk Space for restoring, space left (xxx MB) < needed (xxx MB). atau Not Enough Disk Space, space left xxx MB < bak file xxx MB.

Instans RDS tidak memiliki ruang penyimpanan yang cukup. Tingkatkan kapasitas penyimpanan instans.

Cannot open database "xxx" requested by the login. The login failed.

Akun yang digunakan untuk menghubungkan ke instans RDS tidak memiliki izin untuk database tersebut. Di halaman Account Management, berikan izin yang diperlukan. Lihat Berikan izin ke akun dan Izin yang didukung oleh berbagai tipe akun.

Your RDS doesn't have any init account yet, please create one and grant permissions on RDS console to this migrated database (xxx).

Instans RDS tidak memiliki akun istimewa. Backup berhasil dipulihkan, tetapi tidak ada izin yang dapat diberikan. Buat akun istimewa.

Tombol OK tidak aktif saat mengonfigurasi tugas migrasi

Pengguna RAM tidak memiliki izin yang cukup. Tinjau persyaratan pengguna RAM di Prasyarat.

permission denied saat memberikan izin untuk AliyunRDSImportRole sebagai pengguna RAM

Gunakan akun Alibaba Cloud Anda untuk menambahkan kebijakan AliyunRAMFullAccess secara sementara ke pengguna RAM.

Referensi API

APIDeskripsi
CreateMigrateTaskMembuat tugas migrasi yang memulihkan file backup dari OSS ke instans ApsaraDB RDS for SQL Server.
CreateOnlineDatabaseTaskMembuka database dari tugas migrasi.
DescribeMigrateTasksMenampilkan daftar tugas migrasi untuk instans ApsaraDB RDS for SQL Server.
DescribeOssDownloadsMeminta detail file dari tugas migrasi.