Menggunakan pemulihan point-in-time (PITR)

Halaman ini menjelaskan cara menggunakan pemulihan point-in-time (PITR) untuk memulihkan instance Cloud SQL utama Anda.

Untuk mempelajari PITR lebih lanjut, lihat PITR.

Penyimpanan log untuk PITR

PITR menggunakan log transaksi. Log ini diperbarui secara teratur dan menggunakan ruang penyimpanan. Log transaksi akan otomatis dihapus dengan pencadangan otomatis terkait, yang biasanya terjadi setelah sekitar 7 hari.

Jika ukuran log transaksi Anda menyebabkan masalah pada instance:

  • Anda dapat meningkatkan ukuran penyimpanan instance, tetapi peningkatan ukuran log transaksi dalam penggunaan disk mungkin bersifat sementara.

  • Sebaiknya aktifkan peningkatan penyimpanan otomatis untuk menghindari masalah penyimpanan yang tidak terduga.

  • Anda dapat menonaktifkan PITR jika ingin menghapus log dan memulihkan penyimpanan. Mengurangi penyimpanan yang digunakan tidak akan mengurangi ukuran penyimpanan yang disediakan untuk instance tersebut.

  • Log dihapus permanen sekali sehari, bukan terus-menerus. Menetapkan retensi log menjadi dua hari berarti setidaknya dua hari log, dan maksimal tiga hari log, akan dipertahankan. Sebaiknya tetapkan jumlah cadangan ke satu lebih dari jumlah hari retensi log untuk menjamin retensi log minimum pada hari tertentu.

Model pemulihan database untuk PITR

Saat Anda mengaktifkan PITR pada suatu instance, Cloud SQL secara otomatis menetapkan model pemulihan database yang ada dan database berikutnya ke model pemulihan penuh.

Untuk informasi selengkapnya tentang model pemulihan SQL Server, baca dokumentasi Microsoft.

Mengaktifkan PITR

Saat Anda membuat instance baru di konsol Google Cloud, setelan Pencadangan otomatis diaktifkan secara otomatis.

Prosedur berikut memungkinkan PITR pada instance yang sudah ada.

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Buka menu tindakan lainnya Ikon tindakan lainnya. untuk instance yang ingin Anda aktifkan PITRnya, lalu klik Edit.
  3. Di bagian Customize your instance, luaskan bagian Data Protection.
  4. Pilih kotak centang Aktifkan pemulihan point-in-time.
  5. Buka Opsi lanjutan.
  6. Masukkan jumlah hari untuk menyimpan log, dari 1-7.
  7. Klik Save.

gcloud

  1. Tampilkan ringkasan instance:
    gcloud sql instances describe INSTANCE_NAME
    
  2. Jika Anda melihat enabled: false di bagian backupConfiguration, aktifkan pencadangan terjadwal:
    gcloud sql instances patch INSTANCE_NAME \
    --backup-start-time=HH:MM
    

    Tentukan parameter backup-start-time menggunakan waktu 24 jam dalam zona waktu UTC±00.

  3. Aktifkan PITR:
    gcloud sql instances patch INSTANCE_NAME \
    --enable-point-in-time-recovery
    

    Jika mengaktifkan PITR pada instance utama, Anda juga dapat mengonfigurasi jumlah hari untuk mempertahankan log transaksi dengan menambahkan parameter berikut:

    --retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
    
  4. Konfirmasi perubahan Anda:
    gcloud sql instances describe INSTANCE_NAME

    Di bagian backupConfiguration, Anda akan melihat pointInTimeRecoveryEnabled: true jika perubahan berhasil.

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
  • INSTANCE_NAME: nama instance replika utama atau baca yang Anda konfigurasi untuk ketersediaan tinggi
  • START_TIME: waktu (dalam jam dan menit)

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Meminta isi JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

REST v1beta4

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project project Google Cloud yang berisi instance
  • INSTANCE_NAME: nama instance replika utama atau baca yang Anda konfigurasi untuk ketersediaan tinggi
  • START_TIME: waktu (dalam jam dan menit)

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

Meminta isi JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Melakukan PITR

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Buka menu tindakan lainnya Ikon tindakan lainnya. untuk instance yang ingin pulihkan, lalu klik Create clone.
  3. Secara opsional, di halaman Create a clone, perbarui ID clone baru tersebut.
  4. Pilih Clone dari titik waktu sebelumnya.
  5. Masukkan waktu PITR.
  6. Pilih All database, atau tentukan nama database.
    Jika Anda menentukan nama database, hanya satu nama yang dapat dipilih. Secara default, PITR adalah untuk semua database.
  7. Klik Create clone.

gcloud

Buat clone menggunakan PITR.

Ganti kode berikut:

  • SOURCE_INSTANCE_NAME - Nama instance tempat Anda memulihkan.
  • NEW_INSTANCE_NAME - Nama untuk clone.
  • TIMESTAMP - Zona waktu UTC untuk instance sumber dalam format RFC 3339. Misalnya, 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time 'TIMESTAMP'

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: ID project
  • target-instance-id: ID instance target
  • source-instance-id: ID instance sumber
  • restore-timestamp Point-in-time untuk memulihkan

Dalam permintaan JSON, Anda secara opsional dapat menentukan hingga satu nama database tertentu seperti berikut: "databaseNames": "my-database"

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone

Meminta isi JSON:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

REST v1beta4

Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:

  • project-id: ID project
  • target-instance-id: ID instance target
  • source-instance-id: ID instance sumber
  • restore-timestamp Point-in-time untuk memulihkan

Dalam permintaan JSON, Anda secara opsional dapat menentukan hingga satu nama database tertentu seperti berikut: "databaseNames": "my-database"

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone

Meminta isi JSON:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Nonaktifkan PITR

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Buka menu tindakan lainnya Ikon tindakan lainnya. untuk instance yang ingin Anda nonaktifkan, lalu pilih Edit.
  3. Di bawah Customize your instance, luaskan bagian Data Protection.
  4. Hapus opsi Aktifkan pemulihan point-in-time.
  5. Klik Save.
  6. Di halaman Overview untuk instance, di bagian Configuration, setelan PITR dicantumkan sebagai dinonaktifkan.

gcloud

  1. Nonaktifkan pemulihan point-in-time:
    gcloud sql instances patch INSTANCE_NAME \
    --no-enable-point-in-time-recovery
  2. Konfirmasi perubahan Anda:
    gcloud sql instances describe INSTANCE_NAME
    

    Di bagian backupConfiguration, Anda akan melihat pointInTimeRecoveryEnabled: false jika perubahan berhasil.

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

REST v1beta4

Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR

Anda dapat memeriksa tempat instance Cloud SQL Anda menyimpan log transaksi yang digunakan untuk PITR.

gcloud

Untuk menentukan apakah instance Anda menyimpan log untuk PITR pada disk atau Cloud Storage, gunakan perintah berikut:

   gcloud sql instances describe INSTANCE_NAME
   

Ganti INSTANCE_NAME dengan nama instance.

Dalam output perintah, kolom transactionalLogStorageState memberikan informasi tentang tempat log transaksi untuk PITR disimpan untuk instance.

Lokasi penyimpanan log transaksi yang ditampilkan adalah DISK. Instance SQL Server dapat menyimpan log transaksi yang digunakan untuk PITR hanya di disk.

Menetapkan retensi log transaksi

Untuk menetapkan jumlah hari guna menyimpan log transaksi:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Buka menu tindakan lainnya Ikon tindakan lainnya. untuk instance yang ingin Anda gunakan untuk menetapkan log transaksi, lalu pilih Edit.
  3. Di bawah Customize your instance, luaskan bagian Data Protection.
  4. Di bagian Aktifkan pemulihan point-in-time, luaskan Advanced options.
  5. Masukkan jumlah hari untuk menyimpan log, dari 1-7.
  6. Klik Save.

gcloud

Edit instance untuk menetapkan jumlah hari yang diperlukan untuk menyimpan log transaksi.

Ganti kode berikut:

  • INSTANCE-NAME - Nama instance yang ingin Anda tetapkan log transaksinya.
  • DAYS-TO-RETAIN - Jumlah hari log transaksi yang perlu disimpan. Rentang yang valid adalah antara 1 dan 7. Nilai defaultnya adalah 7 jika tidak ditentukan. Hanya berlaku jika pemulihan point-in-time diaktifkan. Menyimpan log transaksi dalam waktu yang lebih lama memerlukan ukuran penyimpanan yang lebih besar.

  gcloud sql instances patch INSTANCE-NAME \
    --retained-transaction-log-days=DAYS-TO-RETAIN
  

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • days-to-retain: Jumlah hari untuk menyimpan log transaksi, dari 1 hingga 7
  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "days-to-retain"
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

REST v1beta4

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • days-to-retain: Jumlah hari untuk menyimpan log transaksi, dari 1 hingga 7
  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "days-to-retain"
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Langkah selanjutnya