Mencadangkan database SQL Server ke bucket Cloud Storage

Tutorial ini menjelaskan cara mencadangkan database Microsoft SQL Server 2022 secara langsung ke bucket Cloud Storage, dan memulihkannya nanti. Diperkenalkan di SQL Server 2022, fitur native pencadangan SQL Server menawarkan strategi yang lancar dan hemat biaya untuk pemulihan dari bencana dan migrasi data berbasis cloud.

Fitur native pencadangan SQL Server memanfaatkan perintah BACKUP TO URL dan RESTORE FROM URL yang mendukung penyimpanan objek yang kompatibel dengan S3, termasuk Cloud Storage. Hal ini menghilangkan kebutuhan akan penyimpanan lokal perantara, menyederhanakan alur kerja pencadangan dan mengurangi overhead operasional.

Tutorial ini ditujukan untuk administrator dan engineer database.

Membuat bucket Cloud Storage

Anda dapat membuat bucket Cloud Storage menggunakan konsol Google Cloud atau menggunakan perintah gcloud storage.

Untuk membuat bucket Cloud Storage menggunakan perintah gcloud storage, ikuti langkah-langkah berikut.

  1. Pilih project Google Cloud Anda.

    gcloud config set project PROJECT_ID
    
  2. Buat bucket. Untuk membuat bucket, jalankan perintah gcloud storage buckets create sebagai berikut.

      gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
    

    Ganti kode berikut:

  • BUCKET_NAME: dengan nama unik untuk bucket Anda.
  • BUCKET_LOCATION: dengan lokasi bucket Anda.

Mengonfigurasi interoperabilitas S3 dan membuat kunci akses

Untuk mengizinkan SQL Server berkomunikasi dengan Cloud Storage menggunakan protokol S3, Anda harus mengaktifkan interoperabilitas dan membuat kunci akses menggunakan langkah-langkah berikut:

  1. Buka setelan Cloud Storage Anda di konsol Google Cloud .

    Buka setelan Cloud Storage

  2. Pilih tab Interoperabilitas.

  3. Di bagian Kunci akses untuk akun pengguna Anda, klik Buat kunci.

    Kunci Akses Bucket

  4. Simpan Kunci akses dan Secret yang dihasilkan dengan aman. Anda akan membutuhkannya pada langkah berikutnya.

Untuk lingkungan produksi, sebaiknya gunakan kunci kode autentikasi pesan berbasis hash (HMAC) akun layanan untuk keamanan dan pengelolaan yang lebih baik.

Menambahkan Kredensial ke SQL Server

Untuk mengizinkan SQL Server melakukan autentikasi dengan bucket Cloud Storage, Anda harus membuat objek kredensial dalam SQL Server untuk menyimpan kunci akses dan rahasia Cloud Storage. Untuk melakukannya, jalankan perintah T-SQL berikut di SQL Server Management Studio (SSMS).

CREATE CREDENTIAL CREDENTIAL_NAME
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'ACCESS_KEY:SECRET';

Ganti kode berikut:

  • CREDENTIAL_NAME: dengan nama untuk kredensial Anda.
  • ACCESS_KEY: dengan kunci akses yang Anda buat di bagian sebelumnya.
  • SECRET: dengan secret yang Anda buat di bagian sebelumnya.

IDENTITY = 'S3 Access Key' sangat penting karena memberi tahu SQL Server untuk menggunakan konektor S3 baru. Rahasia harus diformat sebagai kunci akses, diikuti dengan titik dua, lalu kunci rahasia.

Contoh:

CREATE CREDENTIAL sql_backup_credentials
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';

Mencadangkan data Anda ke Cloud Storage

Setelah kredensial tersedia, Anda kini dapat mencadangkan database langsung ke bucket Cloud Storage menggunakan perintah BACKUP DATABASE dengan opsi TO URL. Tambahkan awalan s3://storage.googleapis.com ke URL untuk menggunakan konektor S3, seperti berikut.

BACKUP DATABASE DATABASE_NAME
TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

Ganti kode berikut:

  • CREDENTIAL_NAME Nama kredensial yang Anda buat di langkah 3. Misalnya — sql_backup_credentials.
  • BUCKET_NAME Nama bucket yang Anda buat di langkah 1.
  • FOLDER_NAME Nama folder tempat Anda ingin menyimpan file cadangan.
  • BACKUP_FILE_NAME Nama file cadangan.

Deskripsi parameter cadangan yang digunakan dalam perintah adalah sebagai berikut:

  • FORMAT: menimpa file cadangan yang ada dan membuat set media baru.
  • STATS: melaporkan progres pencadangan.
  • COMPRESSION: mengompresi cadangan, yang dapat mengurangi ukuran file dan waktu upload.
  • MAXTRANSFERSIZE: direkomendasikan untuk menghindari error I/O dengan file cadangan besar.

Untuk mengetahui informasi selengkapnya, lihat Mencadangkan SQL Server ke URL untuk penyimpanan objek yang kompatibel dengan S3.

Untuk database yang sangat besar, Anda dapat membagi cadangan menjadi beberapa file sebagai berikut.

BACKUP DATABASE DATABASE_NAME
TO
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak',
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak'
    -- ... more files
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

Memulihkan data Anda dari Cloud Storage

Anda dapat memulihkan database langsung dari file cadangan yang disimpan di Cloud Storage menggunakan perintah RESTORE DATABASE sebagai berikut.

RESTORE DATABASE DATABASE_NAME
FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME';

Ganti kode berikut:

  • CREDENTIAL_NAME Nama kredensial yang Anda buat di langkah 3. Misalnya — sql_backup_credentials.
  • BUCKET_NAME Nama bucket yang Anda buat di langkah 1.
  • FOLDER_NAME Nama folder tempat Anda ingin menyimpan file cadangan.
  • BACKUP_FILE_NAME Nama file cadangan.