All Products
Search
Document Center

ApsaraDB RDS:Migrasikan cadangan penuh ke cloud

Last Updated:Jul 11, 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) dan mengimpornya ke instans RDS Anda. Solusi ini cocok 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 mengambil 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

Tinjau batasan berikut sebelum memulai:

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

Skenario Biaya
Mengunggah file backup ke OSS Gratis
Menyimpan file backup di OSS Dikenakan biaya penyimpanan OSS. Lihat harga OSSharga OSS.
Mengimpor melalui jaringan internal (wilayah yang sama) Gratis
Mengimpor melalui internet Dikenakan biaya lalu lintas keluar 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 versi lebih baru, atau SQL Server 2008 R2 dengan disk cloud: Instans RDS tidak berisi database dengan nama yang sama seperti database yang akan dimigrasikan.

  • Untuk SQL Server 2008 R2 dengan disk lokal berkinerja-tinggi: Database dengan nama yang sama seperti database yang akan dimigrasikan sudah ada di 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 sumber daya 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"
              }
          ]
      }

Instruksi 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 versi 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. Di skrip tersebut, atur parameter pada pernyataan SELECT di bawah bagian YOU HAVE TO INIT PUBLIC VARIABLES HERE:

    Parameter Deskripsi
    @backup_databases_list Database yang akan di-backup. Pisahkan beberapa nama database dengan titik koma (;) atau koma (,).
    @backup_type Jenis backup: FULL, DIFF, atau LOG.
    @backup_folder Direktori lokal untuk file backup. Dibuat secara otomatis jika belum ada.
    @is_run 1 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. Konfigurasi wilayah yang sama menggunakan jaringan internal, yang lebih cepat dan tidak dikenai biaya lalu lintas keluar.

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 setelah migrasi untuk mencegah eksposur data dan mengurangi biaya.

    Parameter Deskripsi Contoh
    Bucket name Unik 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
    Region Harus sesuai dengan wilayah instans RDS Anda. China (Hangzhou)
    Storage class Pilih 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. Di 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. Jaga kerahasiaan AccessKey Anda.

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

    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:

Variabel Deskripsi
OSS_ACCESS_KEY_ID ID AccessKey Anda
OSS_ACCESS_KEY_SECRET Rahasia AccessKey Anda
OSS_SESSION_TOKEN Token STS (hanya diperlukan 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: 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).")

    # 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 (lokal/serialisasi/deserialisasi/kredensial)
        print("\nTerjadi error sisi klien SDK OSS.")
        print(str(e))
    except Exception as e:
        print(f"\nTerjadi error tidak 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 titik akhir publik di URL menjadi titik akhir internal. Misalnya, ubah oss-cn-shanghai.aliyuncs.com menjadi oss-cn-shanghai-internal.aliyuncs.com.

    Format titik akhir internal bervariasi berdasarkan wilayah. Lihat Endpoints and data centersEndpoints and data centers.

Langkah 3: Impor data backup OSS

Pilih prosedur yang sesuai dengan tipe instans RDS Anda.

SQL Server 2012 atau versi 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:

    Parameter Deskripsi
    Database name Nama untuk database yang dipulihkan di instans RDS. Harus mengikuti konvensi penamaan SQL Server dan tidak boleh bertabrakan dengan database yang sudah ada atau file database yang tidak terpasang. Jika set cadangan berisi file database dengan nama yang sama seperti database tujuan, Anda dapat memulihkan menggunakan file tersebut — nama file database harus sesuai dengan nama database tujuan.
    OSS bucket Pilih bucket yang berisi file backup.
    OSS file Klik ikon pencarian untuk menemukan file berdasarkan awalan. Daftar menampilkan nama file, ukuran, dan waktu pembaruan.
    Cloud migration method Immediate 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 mode Asynchronous 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 dan klik Next.

  5. Tinjau petunjuk unggah OSS dan 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 versi 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 tugas Status Deskripsi tugas Makna
Impor backup penuh satu kali Success success Migrasi berhasil diselesaikan.
Failed Failed to download backup file since OSS URL was expired. URL unduh OSS kedaluwarsa sebelum tugas selesai. Hasilkan ulang URL dan coba lagi.
Your backup is corrupted or newer than RDS, failed to verify. File backup rusak, atau versi SQL Server sumber lebih baru daripada versi instans RDS.
DBCC checkdb failed Database sumber memiliki error konsistensi.
autotest_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.
autotest_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. Harap cadangkan dan hapus database tersebut, lalu coba lagi. atau Database 'xxx' sudah ada. Pilih nama database yang berbeda.

ApsaraDB RDS for SQL Server tidak mengizinkan migrasi ke database yang sudah ada. Backup dan hapus database yang ada, lalu coba lagi.

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 the database engine version.

DBCC checkdb failed

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

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

Perintah ini dapat menyebabkan kehilangan data.

Ruang Disk Tidak Cukup untuk pemulihan, ruang tersisa (xxx MB) < yang diperlukan (xxx MB). atau Ruang Disk Tidak Cukup, ruang tersisa xxx MB < file bak xxx MB.

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

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

Akun tidak memiliki izin untuk database tersebut. Di halaman Account Management, berikan izin yang diperlukan. Lihat Grant permissions to an account dan Permissions supported by different account types.

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 untuk sementara menambahkan AliyunRAMFullAccess 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.