Halaman ini menjelaskan cara menggunakan pemulihan point-in-time (PITR) untuk memulihkan instance Cloud SQL utama Anda.
Untuk mempelajari PITR lebih lanjut, lihat Pemulihan point-in-time (PITR).
Secara default, PITR diaktifkan saat Anda membuat instance edisi Cloud SQL Enterprise Plus, terlepas dari apakah Anda membuat instance menggunakan konsol Google Cloud, gcloud CLI, Terraform, atau Cloud SQL Admin API.
Jika Anda membuat instance edisi Cloud SQL Enterprise di konsol Google Cloud, PITR akan diaktifkan secara default. Jika tidak, jika Anda membuat instance menggunakan gcloud CLI, Terraform, atau Cloud SQL Admin API, Anda harus mengaktifkan PITR secara manual.
Penyimpanan log untuk PITR
Cloud SQL menggunakan pengarsipan write-ahead logging (WAL) untuk PITR.Pada 9 Januari 2023, kami meluncurkan penyimpanan log write-ahead untuk PITR di Cloud Storage. Sejak peluncuran ini, kondisi berikut akan berlaku:
- Semua instance edisi Cloud SQL Enterprise Plus menyimpan log write-ahead-log-nya di Cloud Storage. Hanya instance edisi Cloud SQL Enterprise Plus yang Anda upgrade dari edisi Cloud SQL Enterprise dan mengaktifkan PITR sebelum 9 Januari 2023 yang akan terus menyimpan lognya di disk.
- Instance edisi Cloud SQL Enterprise yang dibuat dengan PITR diaktifkan sebelum 9 Januari 2023 akan terus menyimpan lognya di disk.
- Jika Anda mengupgrade instance edisi Cloud SQL Enterprise setelah 15 Agustus 2024 yang menyimpan log transaksi untuk PITR di disk ke edisi Cloud SQL Enterprise Plus, proses upgrade akan mengalihkan lokasi penyimpanan log transaksi yang digunakan untuk PITR ke Cloud Storage untuk Anda. Untuk informasi selengkapnya, lihat Mengupgrade instance ke edisi Cloud SQL Enterprise Plus menggunakan upgrade langsung.
- Semua instance edisi Cloud SQL Enterprise yang Anda buat dengan PITR diaktifkan setelah 9 Januari 2023 akan menyimpan log di Cloud Storage.
Untuk instance yang hanya menyimpan log write-ahead di disk, Anda dapat mengganti lokasi penyimpanan log transaksi yang digunakan untuk PITR dari disk ke Cloud Storage menggunakan gcloud CLI atau Cloud SQL Admin API tanpa menimbulkan downtime. Untuk informasi selengkapnya, lihat Mengganti penyimpanan log transaksi ke Cloud Storage.
Periode retensi log
Untuk melihat apakah instance menyimpan log yang digunakan untuk PITR di Cloud Storage, gunakan Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR.
Setelah Anda menggunakan klien PostgreSQL seperti psql
atau pgAdmin
untuk
terhubung ke database instance, jalankan perintah berikut:
show archive_command
. Jika ada log write-ahead yang diarsipkan di Cloud Storage,
Anda akan melihat
-async_archive -remote_storage
.
Semua instance lain yang sudah ada dan mengaktifkan PITR akan tetap menyimpan lognya di disk.
Jika log disimpan di Cloud Storage, Cloud SQL akan mengupload log setiap lima menit atau kurang. Akibatnya, jika instance Cloud SQL tersedia, instance tersebut dapat dipulihkan ke waktu terbaru. Namun, jika instance tidak tersedia, tujuan titik pemulihan biasanya lima menit atau kurang. Gunakan gcloud CLI atau Admin API untuk memeriksa waktu terakhir kapan Anda dapat memulihkan instance, dan melakukan pemulihan pada waktu tersebut.
Log write-ahead yang digunakan dengan PITR akan dihapus
secara otomatis dengan cadangan otomatis
terkait, yang umumnya terjadi setelah nilai yang ditetapkan untuk
transactionLogRetentionDays
terpenuhi. Ini adalah jumlah hari log transaksi yang disimpan Cloud SQL
untuk PITR. Untuk edisi Cloud SQL Enterprise Plus, jumlah hari log transaksi yang disimpan dapat ditetapkan dari 1 hingga 35, dan untuk edisi Cloud SQL Enterprise, nilainya dapat ditetapkan dari 1 hingga 7.
Saat memulihkan cadangan di instance Cloud SQL sebelum mengaktifkan PITR, Anda akan kehilangan log write-ahead yang memungkinkan pengoperasian PITR.
Untuk
instance yang mengaktifkan kunci enkripsi yang dikelola pelanggan (CMEK),
log write-ahead akan dienkripsi menggunakanCMEK versi terbaru.
Untuk melakukan pemulihan, semua versi kunci yang terbaru untuk
jumlah hari yang Anda konfigurasi untuk
parameter
retained-transaction-log-days
harus tersedia.
Untuk instance yang memiliki log write-ahead yang disimpan di Cloud Storage, log tersebut akan disimpan di region yang sama dengan instance utama. Penyimpanan log ini (hingga 35 hari untuk edisi Cloud SQL Enterprise Plus dan tujuh hari untuk edisi Cloud SQL Enterprise, lama maksimum untuk PITR) tidak menghasilkan biaya tambahan per instance.
Log dan penggunaan disk
Jika instance Anda mengaktifkan PITR, dan jika ukuran log write-ahead di disk menyebabkan masalah bagi instance Anda:
Anda dapat mengganti lokasi penyimpanan log yang digunakan untuk PITR dari disk ke Cloud Storage tanpa downtime menggunakan gcloud CLI atau Cloud SQL Admin API.
Anda dapat mengupgrade instance ke edisi Cloud SQL Enterprise Plus.
Anda dapat meningkatkan ukuran penyimpanan instance, tetapi peningkatan ukuran log write-ahead dalam penggunaan disk mungkin bersifat sementara.
Sebaiknya aktifkan peningkatan penyimpanan otomatis untuk menghindari masalah penyimpanan yang tidak terduga. Rekomendasi ini hanya berlaku jika instance Anda mengaktifkan PITR dan log Anda disimpan di disk.
Anda dapat menonaktifkan PITR jika ingin menghapus log dan memulihkan penyimpanan. Menurunkan log write-ahead yang digunakan tidak akan mengurangi ukuran disk yang disediakan untuk instance.
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.
Misalnya, jika Anda menentukan
7
untuk nilai parametertransactionLogRetentionDays
, maka untuk parameterbackupRetentionSettings
, tetapkan jumlahretainedBackups
ke8
.
Mengaktifkan PITR
Saat Anda membuat instance baru di konsol Google Cloud, baik Pencadangan otomatis dan Aktifkan pemulihan point-in-time akan diaktifkan secara otomatis.Prosedur berikut memungkinkan PITR pada instance utama yang sudah ada.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Buka menu tindakan lainnya untuk instance yang ingin Anda aktifkan PITR, lalu klik Edit.
- Di bagian Customize your instance, luaskan bagian Data Protection.
- Pilih kotak centang Aktifkan pemulihan point-in-time.
- Di kolom Days of logs, masukkan jumlah hari untuk menyimpan log, dari 1-35 untuk edisi Cloud SQL Enterprise Plus, atau 1-7 untuk edisi Cloud SQL Enterprise.
- Klik Simpan.
gcloud
- Tampilkan ringkasan instance:
gcloud sql instances describe INSTANCE_NAME
- Jika Anda melihat
enabled: false
di bagianbackupConfiguration
, 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. - Mengaktifkan PITR:
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery
Jika Anda mengaktifkan PITR pada instance utama, Anda juga dapat mengonfigurasi jumlah hari saat Anda ingin mempertahankan log transaksi dengan menambahkan parameter berikut:
--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
- Konfirmasi perubahan Anda:
gcloud sql instances describe INSTANCE_NAME
Di bagian
backupConfiguration
, Anda akan melihatpointInTimeRecoveryEnabled: true
jika perubahan berhasil.
Terraform
Untuk mengaktifkan PITR, gunakan resource Terraform.
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:
- Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protection
kefalse
.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yes
pada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform destroy
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 konfigurasikan 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 menerima respons JSON yang mirip dengan yang berikut ini:
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 konfigurasikan 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 menerima respons JSON yang mirip dengan yang berikut ini:
Melakukan PITR pada instance yang tidak tersedia
Konsol
Anda mungkin ingin memulihkan instance yang tidak tersedia ke zona lain karena alasan berikut:
- Zona tempat instance dikonfigurasi tidak dapat diakses. Instance ini memiliki status
FAILED
. - Instance sedang menjalani pemeliharaan. Instance ini memiliki status
MAINTENANCE
.
Untuk memulihkan instance yang tidak tersedia, selesaikan langkah-langkah berikut:
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Temukan baris instance yang akan di-clone.
- Di kolom Tindakan, klik menu Tindakan Lainnya.
- Klik Buat clone.
- Di halaman Buat clone, selesaikan tindakan berikut:
- Di kolom ID Instance, perbarui ID instance, jika diperlukan.
- Klik Clone dari titik waktu sebelumnya.
- Di kolom Titik waktu tertentu, pilih tanggal dan waktu yang ingin Anda gunakan untuk melakukan clone data. Hal ini akan memulihkan status instance dari titik waktu tersebut.
- Klik Buat clone.
Selagi clone tersebut melakukan inisialisasi, Anda akan dikembalikan ke halaman listingan instance.
gcloud
Anda mungkin ingin memulihkan instance yang tidak tersedia ke zona lain karena zona tempat instance dikonfigurasi tidak dapat diakses.
gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \ --point-in-time DATE_AND_TIME_STAMP \ --preferred-zone ZONE_NAME \ --preferred-secondary-zone SECONDARY_ZONE_NAME
Pengguna atau akun layanan yang menjalankan perintah gcloud sql instances clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan guna menjalankan perintah gcloud CLI, lihat Izin Cloud SQL.
REST v1
Anda mungkin ingin memulihkan instance yang tidak tersedia ke zona lain karena zona tempat instance dikonfigurasi tidak dapat diakses.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project.
- SOURCE_INSTANCE_NAME: nama instance sumber.
- TARGET_INSTANCE_NAME: nama instance target (yang di-clone).
- DATE_AND_TIME_STAMP: stempel tanggal dan waktu untuk instance sumber dalam zona waktu UTC dan dalam format RFC 3339 (misalnya,
2012-11-15T16:19:00.094Z
). - ZONE_NAME: Opsional. Nama zona utama untuk instance target. Hal ini digunakan untuk menentukan zona primer yang berbeda untuk instance Cloud SQL yang ingin Anda clone. Untuk instance regional, zona ini menggantikan zona utama, tetapi zona sekunder tetap sama dengan zona instance.
- SECONDARY_ZONE_NAME: Opsional. Nama zona sekunder untuk instance target. Hal ini digunakan untuk menentukan zona sekunder yang berbeda untuk instance Cloud SQL regional yang ingin Anda clone.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME", "preferredSecondaryZone": "SECONDARY_ZONE_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Pengguna atau akun layanan yang menggunakan metode API instances.clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
REST v1beta4
Anda mungkin ingin memulihkan instance yang tidak tersedia ke zona lain karena zona tempat instance dikonfigurasi tidak dapat diakses.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project.
- SOURCE_INSTANCE_NAME: nama instance sumber.
- TARGET_INSTANCE_NAME: nama instance target (yang di-clone).
- DATE_AND_TIME_STAMP: stempel tanggal dan waktu untuk instance sumber dalam
zona waktu UTC
dan dalam format RFC 3339
(misalnya,
2012-11-15T16:19:00.094Z
). - ZONE_NAME: Opsional. Nama zona utama untuk instance target. Hal ini digunakan untuk menentukan zona utama yang berbeda untuk instance Cloud SQL yang ingin Anda clone. Untuk instance regional, zona ini menggantikan zona utama, tetapi zona sekunder tetap sama dengan instance.
- SECONDARY_ZONE_NAME: Opsional. Nama zona sekunder untuk instance target. Hal ini digunakan untuk menentukan zona sekunder yang berbeda untuk instance Cloud SQL regional yang ingin Anda clone.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Meminta isi JSON:
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME", "preferredSecondaryZone": "SECONDARY_ZONE_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Pengguna atau akun layanan yang menggunakan metode API instances.clone
harus memiliki izin cloudsql.instances.clone
. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk menggunakan metode API, lihat Izin Cloud SQL.
Mendapatkan waktu pemulihan terbaru
Untuk instance yang tersedia, Anda dapat melakukan PITR hingga waktu terbaru. Jika instance tidak tersedia dan log instance disimpan di Cloud Storage, Anda dapat mengambil waktu pemulihan terbaru dan melakukan PITR pada waktu tersebut. Di kedua kasus tersebut, Anda dapat memulihkan instance ke zona primer atau sekunder yang berbeda dengan memberikan nilai untuk zona yang diinginkan.
gcloud
Dapatkan waktu terbaru untuk memulihkan instance Cloud SQL yang tidak tersedia.
Ganti INSTANCE_NAME dengan nama instance yang dibuatkan kueri.
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
REST v1
Sebelum menggunakan salah satu data permintaan, buatlah pengganti berikut:
- PROJECT_ID: project ID
- INSTANCE_NAME: nama instance yang dibuatkan kueri untuk waktu pemulihan terakhir
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
REST v1beta4
Sebelum menggunakan salah satu data permintaan, buatlah pengganti berikut:
- PROJECT_ID: project ID
- INSTANCE_NAME: nama instance yang dibuatkan kueri untuk waktu pemulihan terakhir
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
Melakukan PITR
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Buka menu tindakan lainnya untuk instance yang ingin pulihkan, lalu klik Create clone.
- Secara opsional, di halaman Create a clone, perbarui ID clone baru tersebut.
- Pilih Clone dari titik waktu sebelumnya.
- Masukkan waktu PITR.
- Klik Buat clone.
gcloud
Membuat 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 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 hingga
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 menerima respons JSON yang mirip dengan yang berikut ini:
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 hingga
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 menerima respons JSON yang mirip dengan yang berikut ini:
Menonaktifkan PITR
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Buka menu tindakan lainnya untuk instance yang ingin Anda nonaktifkan, lalu pilih Edit.
- Di bawah Customize your instance, luaskan bagian Data Protection.
- Hapus opsi Aktifkan pemulihan point-in-time.
- Klik Simpan.
gcloud
- Nonaktifkan pemulihan point-in-time:
gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery
- Konfirmasi perubahan Anda:
gcloud sql instances describe INSTANCE_NAME
Di bagian
backupConfiguration
, Anda akan melihatpointInTimeRecoveryEnabled: false
jika perubahan berhasil.
REST v1
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/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 menerima respons JSON yang mirip dengan yang berikut ini:
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 menerima respons JSON yang mirip dengan yang berikut ini:
Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR
Anda dapat memeriksa tempat instance Cloud SQL menyimpan log transaksi yang digunakan untuk PITR.
gcloud
Untuk menentukan apakah instance Anda menyimpan log untuk PITR di disk atau Cloud Storage, gunakan perintah berikut:
gcloud sql instances describe INSTANCE_NAME
Ganti INSTANCE_NAME dengan nama instance.
Anda juga dapat memeriksa lokasi penyimpanan log transaksi untuk beberapa instance dalam project yang sama. Untuk menentukan lokasi beberapa instance, gunakan perintah berikut:
gcloud sql instances list --show-transactional-log-storage-state
Contoh respons:
NAME DATABASE_VERSION LOCATION TRANSACTIONAL_LOG_STORAGE_STATE my_01 POSTGRES_12 us-central-1 DISK my_02 POSTGRES_12 us-central-1 CLOUD_STORAGE ...
Dalam output perintah, kolom transactionalLogStorageState
atau kolom TRANSACTIONAL_LOG_STORAGE_STATE
memberikan informasi tentang tempat log transaksi untuk PITR disimpan untuk instance.
Status penyimpanan log transaksi yang mungkin terjadi adalah sebagai berikut:
DISK
: instance menyimpan log transaksi yang digunakan untuk PITR di disk. Jika Anda mengupgrade instance edisi Cloud SQL Enterprise ke edisi Cloud SQL Enterprise Plus, proses upgrade akan otomatis mengalihkan lokasi penyimpanan log ke Cloud Storage. Untuk informasi selengkapnya, lihat Mengupgrade instance ke edisi Cloud SQL Enterprise Plus menggunakan upgrade langsung. Anda juga dapat memilih untuk mengalihkan lokasi penyimpanan menggunakan gcloud CLI atau Cloud SQL Admin API tanpa mengupgrade edisi instance dan tanpa menimbulkan periode nonaktif. Untuk informasi selengkapnya, lihat Mengganti penyimpanan log transaksi ke Cloud Storage.SWITCHING_TO_CLOUD_STORAGE
: instance mengalihkan lokasi penyimpanan untuk log transaksi PITR ke Cloud Storage.SWITCHED_TO_CLOUD_STORAGE
: instance telah menyelesaikan pengalihan lokasi penyimpanan untuk log transaksi PITR dari disk ke Cloud Storage.CLOUD_STORAGE
: instance menyimpan log transaksi yang digunakan untuk PITR di Cloud Storage.
Mengalihkan penyimpanan log transaksi ke Cloud Storage
Jika instance Anda menyimpan log transaksi yang digunakan untuk PITR di disk, Anda dapat mengalihkan lokasi penyimpanan ke Cloud Storage tanpa mengalami periode nonaktif. Proses keseluruhan untuk beralih lokasi penyimpanan memerlukan waktu sekitar durasi periode retensi log transaksi (hari) untuk diselesaikan. Segera setelah Anda memulai tombol, log transaksi akan mulai bertambah di Cloud Storage. Selama operasi, Anda dapat memeriksa status keseluruhan proses menggunakan perintah di Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR.
Setelah keseluruhan proses peralihan ke Cloud Storage selesai, Cloud SQL akan menggunakan log transaksi dari Cloud Storage untuk PITR.
gcloud
Untuk mengalihkan lokasi penyimpanan ke Cloud Storage, gunakan perintah berikut:
gcloud sql instances patch INSTANCE_NAME \ --switch-transaction-logs-to-cloud-storage
Ganti INSTANCE_NAME dengan nama instance. Instance harus berupa instance utama, bukan instance replika. Responsnya mirip dengan hal berikut ini:
The following message is used for the patch API method. {"name": "INSTANCE_NAME", "project": "PROJECT_NAME", "switchTransactionalLogsToCloudStorageEnabled": "true"} Patching Cloud SQL instance...done. Updated [https://sqladmin.prod.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME].
Jika perintah menampilkan error, lihat Memecahkan masalah peralihan ke Cloud Storage untuk mengetahui kemungkinan langkah berikutnya.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID.
- INSTANCE_ID: ID instance. Instance harus berupa instance utama, bukan instance replika.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Meminta isi JSON:
{ "switchTransactionLogsToCloudStorageEnabled": true }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Jika permintaan menampilkan error, lihat Memecahkan masalah peralihan ke Cloud Storage untuk mengetahui kemungkinan langkah berikutnya.
REST v1beta4
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID.
- INSTANCE_ID: ID instance. Instance harus berupa instance utama, bukan instance replika.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Meminta isi JSON:
{ "switchTransactionLogsToCloudStorageEnabled": true }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Jika permintaan menampilkan error, lihat Memecahkan masalah peralihan ke Cloud Storage untuk mengetahui kemungkinan langkah berikutnya.
Menetapkan retensi log transaksi
Untuk menetapkan jumlah hari guna mempertahankan log write-ahead:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Buka menu tindakan lainnya untuk instance yang ingin Anda gunakan untuk menetapkan log transaksi, lalu pilih Edit.
- Di bawah Customize your instance, luaskan bagian Data Protection.
- Di bagian Aktifkan pemulihan point-in-time, luaskan Opsi lanjutan.
- Masukkan jumlah hari untuk menyimpan log, dari 1-35 untuk edisi Cloud SQL Enterprise Plus atau 1-7 untuk edisi Cloud SQL Enterprise.
- Klik Simpan.
gcloud
Edit instance untuk menetapkan jumlah hari untuk mempertahankan log write-ahead.
Ganti kode berikut:
- INSTANCE_NAME: Nama instance yang ingin Anda tetapkan log transaksinya.
DAYS_TO_RETAIN: Jumlah hari log transaksi yang perlu disimpan. Untuk edisi Cloud SQL Enterprise Plus, rentang yang valid adalah antara 1 hingga 35 hari, dengan default 14 hari. Untuk edisi Cloud SQL Enterprise, rentang yang valid adalah antara 1 hingga 7 hari, dengan default 7 hari.
Jika tidak ada nilai yang ditentukan, nilai default akan digunakan. Hal ini hanya berlaku jika PITR 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:
- PROJECT_ID: project ID.
- INSTANCE_ID: ID instance.
DAYS_TO_RETAIN: jumlah hari untuk menyimpan log transaksi. Untuk edisi Cloud SQL Enterprise Plus, rentang yang valid adalah antara 1 hingga 35 hari, dengan default 14 hari. Untuk edisi Cloud SQL Enterprise, rentang yang valid adalah antara 1 hingga 7 hari, dengan default 7 hari.
Jika tidak ada nilai yang ditentukan, nilai default akan digunakan. Hal ini hanya berlaku jika PITR diaktifkan. Menyimpan log transaksi dalam waktu yang lebih lama memerlukan ukuran penyimpanan yang lebih besar.
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 menerima respons JSON yang mirip dengan yang berikut ini:
REST v1beta4
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID.
- INSTANCE_ID: ID instance.
DAYS_TO_RETAIN: jumlah hari untuk menyimpan log transaksi. Untuk edisi Cloud SQL Enterprise Plus, rentang yang valid adalah antara 1 hingga 35 hari, dengan default 14 hari. Untuk edisi Cloud SQL Enterprise, rentang yang valid adalah antara 1 hingga 7 hari, dengan default 7 hari.
Jika tidak ada nilai yang ditentukan, nilai default akan digunakan. Hal ini hanya berlaku jika PITR diaktifkan. Menyimpan log transaksi dalam waktu yang lebih lama memerlukan ukuran penyimpanan yang lebih besar.
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 menerima respons JSON yang mirip dengan yang berikut ini:
Memecahkan masalah
Masalah | Pemecahan masalah |
---|---|
ATAU
|
Stempel waktu yang Anda berikan tidak valid. |
ATAU
|
Stempel waktu yang Anda berikan adalah untuk waktu saat cadangan atau saat koordinat binlog tidak dapat ditemukan. |
Memecahkan masalah peralihan ke Cloud Storage
Tabel berikut mencantumkan kemungkinan error yang mungkin ditampilkan dengan kode INVALID REQUEST
saat Anda mengalihkan lokasi penyimpanan log transaksi dari disk ke Cloud Storage.
Masalah | Pemecahan masalah |
---|---|
Switching the storage location of the transaction logs
used for PITR is not supported for instances with database type %s.
|
Pastikan Anda menjalankan perintah gcloud CLI atau membuat permintaan API di instance Cloud SQL untuk MySQL atau Cloud SQL untuk PostgreSQL. Mengganti lokasi penyimpanan untuk log transaksi menggunakan gcloud CLI atau Cloud SQL Admin API tidak didukung untuk Cloud SQL untuk SQL Server. |
PostgreSQL transactional logging is not enabled on this instance.
|
PostgreSQL menggunakan logging write-ahead sebagai log transaksi untuk pemulihan point-in-time (PITR). Untuk mendukung PITR, PostgreSQL mengharuskan Anda mengaktifkan logging write-ahead di instance. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan logging write-ahead, lihat Mengaktifkan PITR. |
This instance is already storing transaction logs used for PITR in
Cloud Storage
|
Untuk memverifikasi lokasi penyimpanan log transaksi, jalankan perintah di Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR. |
The instance is already switching transaction logs used for PITR from disk
to Cloud Storage.
|
Tunggu hingga operasi tombol selesai. Untuk memverifikasi status operasi dan lokasi penyimpanan log transaksi, jalankan perintah di Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR. |
Langkah selanjutnya
- Mengonfigurasi flag pada clone Anda