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.

Tujuan

Tutorial ini menunjukkan cara menyelesaikan tugas berikut untuk mencapai tujuan Anda:

  • Membuat bucket Cloud Storage baru
  • Mengonfigurasi konektor SQL Server
  • Mencadangkan database Anda
  • Memulihkan database Anda dari cadangan

Biaya

Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.

Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. Untuk tutorial ini, Anda memerlukan project Google Cloud . Anda dapat membuat project baru atau memilih project yang sudah dibuat:

    1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    2. Verify that billing is enabled for your Google Cloud project.

    3. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

    4. Pastikan Microsoft SQL Server 2022 atau yang lebih baru telah diinstal dan berjalan.

    5. Pastikan project Google Cloud dan SQL Server Anda memiliki izin yang diperlukan untuk melakukan tugas pencadangan dan pemulihan.

    6. Pastikan akun pengguna atau akun layanan yang terkait dengan kunci akses memiliki izin untuk membuat dan melihat objek di bucket Cloud Storage.

    7. Pastikan akun pengguna SQL Server yang digunakan untuk melakukan pencadangan memiliki izin mencadangkan database dan mencadangkan log.

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

      Pembersihan

      Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini:

      Menghapus project

      1. In the Google Cloud console, go to the Manage resources page.

        Go to Manage resources

      2. In the project list, select the project that you want to delete, and then click Delete.
      3. In the dialog, type the project ID, and then click Shut down to delete the project.

      Langkah berikutnya