Saat Anda membuat instance baru di konsol Google Cloud , baik pencadangan otomatis maupun pemulihan point-in-time (PITR) akan diaktifkan secara otomatis. Anda dapat mengonfigurasi PITR untuk instance yang ada dengan melakukan hal berikut:
- Mengaktifkan PITR
- Menonaktifkan PITR
- Menetapkan retensi log transaksi
- Periksa lokasi penyimpanan log transaksi yang digunakan dalam PITR
Mengaktifkan PITR
Saat Anda membuat instance baru di konsol Google Cloud , Pencadangan otomatis dan Aktifkan pemulihan point-in-time akan diaktifkan secara otomatis.Prosedur berikut mengaktifkan 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 Hari log, 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: falsedi bagianbackupConfiguration, aktifkan pencadangan terjadwal:gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM
Tentukan parameter
backup-start-timemenggunakan waktu 24 jam dalam zona waktu UTC±00. - Aktifkan PITR:
gcloud sql instances patch INSTANCE_NAME \ --enable-bin-log
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 melihatbinaryLogEnabled: truejika perubahan berhasil.
Terraform
Untuk mengaktifkan PITR, gunakan resource Terraform.
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud
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.tfyang 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
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project 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_protectionkefalse.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yespada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform destroy
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance replika baca atau utama 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,
"binaryLogEnabled": 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 dari project Google Cloud yang berisi instance
- INSTANCE_NAME: nama instance replika baca atau utama yang Anda konfigurasi untuk ketersediaan tinggi
- START_TIME: waktu (dalam jam dan menit)
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Meminta isi JSON:
{
"settings":
{
"backupConfiguration":
{
"startTime": "START_TIME",
"enabled": true,
"binaryLogEnabled": true
}
}
}
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
- Menonaktifkan pemulihan point-in-time:
gcloud sql instances patch INSTANCE_NAME \ --no-enable-bin-log
- Konfirmasi perubahan Anda:
gcloud sql instances describe INSTANCE_NAME
Di bagian
backupConfiguration, Anda akan melihatbinaryLogEnabled: falsejika 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,
"binaryLogEnabled": 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,
"binaryLogEnabled": false
}
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Menetapkan retensi log transaksi
Untuk menetapkan jumlah hari untuk menyimpan log biner:
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 yang diperlukan untuk menyimpan log biner.
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 Anda tidak menentukan nilai, Cloud SQL akan menggunakan nilai default. Ini hanya valid 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 dan 35 hari, dengan default 14 hari. Untuk edisi Cloud SQL Enterprise, rentang yang valid adalah antara 1 dan 7 hari, dengan default 7 hari.
Jika tidak ada nilai yang ditentukan, nilai default akan digunakan. Ini hanya valid 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 dan 35 hari, dengan default 14 hari. Untuk edisi Cloud SQL Enterprise, rentang yang valid adalah antara 1 dan 7 hari, dengan default 7 hari.
Jika tidak ada nilai yang ditentukan, nilai default akan digunakan. Ini hanya valid 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:
Periksa 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 di disk atau Cloud Storage, gunakan perintah berikut:
gcloud sql instances describe INSTANCE_NAME
Ganti INSTANCE_NAME dengan nama instance.
Untuk beberapa instance dalam project yang sama, Anda juga dapat memeriksa lokasi penyimpanan log transaksi. 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 MYSQL_8_0 us-central-1 DISK my_02 MYSQL_8_0 us-central-1 CLOUD_STORAGE ...
Dalam output perintah, kolom transactionalLogStorageState
atau TRANSACTIONAL_LOG_STORAGE_STATE memberikan
informasi tentang tempat log
transaksi untuk PITR disimpan untuk instance.
Kemungkinan status penyimpanan log transaksi 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 mengalihkan lokasi penyimpanan log ke Cloud Storage secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade instance ke edisi Cloud SQL Enterprise Plus menggunakan upgrade langsung. Anda juga dapat memilih untuk mengganti lokasi penyimpanan menggunakan gcloud CLI atau Cloud SQL Admin API tanpa mengupgrade edisi instance dan tanpa mengalami periode nonaktif. Untuk mengetahui informasi selengkapnya, lihat Mengalihkan penyimpanan log transaksi ke Cloud Storage.SWITCHING_TO_CLOUD_STORAGE: instance sedang 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 mengganti lokasi penyimpanan memerlukan waktu sekitar durasi periode retensi log transaksi (dalam hari) untuk diselesaikan. Segera setelah Anda memulai peralihan, log transaksi akan mulai terakumulasi di Cloud Storage. Selama operasi, Anda dapat memeriksa status keseluruhan proses menggunakan perintah di Periksa lokasi penyimpanan log transaksi yang digunakan untuk PITR.
Setelah keseluruhan proses beralih ke Cloud Storage selesai, Cloud SQL 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 selanjutnya.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID.
- INSTANCE_ID: ID instance. Instance harus berupa instance utama dan 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 selanjutnya.
REST v1beta4
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID.
- INSTANCE_ID: ID instance. Instance harus berupa instance utama dan 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 selanjutnya.
Penyimpanan dan konfigurasi log transaksi setelah peralihan
Untuk tujuan replikasi, Cloud SQL tetap menyimpan salinan log biner di disk.
Jika Anda ingin menjelajahi log biner dengan utilitas mysqlbinlog, menyimpan log biner di disk akan berguna.
Jika Anda mengonfigurasi tanda expire_logs_days atau binlog_expire_logs_seconds di instance sebelum pengalihan, nilai yang dikonfigurasi akan tetap utuh.
Setelah pengalihan, karena log biner yang digunakan untuk melakukan PITR kini disimpan di Cloud Storage, pastikan nilai flag mencerminkan retensi log transaksi di disk yang Anda harapkan. Cloud SQL hanya menyimpan log di disk untuk nilai minimum salah satu dari berikut ini:
- setelan konfigurasi PITR
transactionLogRetentionDayssebelum pengalihan. Nilai default untuk setelan ini adalah 7 hari. - tanda
expire_logs_daysataubinlog_expire_logs_secondsyang Anda tetapkan pada instance secara manual.
Jika Anda ingin menghemat ruang disk, setelah proses pengalihan selesai, konfigurasi nilai flag expire_logs_days atau binlog_expire_logs_seconds menjadi 1 hari untuk mengurangi ukuran disk yang dialokasikan dan biaya penyimpanan disk. Untuk mengetahui informasi selengkapnya tentang
penyimpanan log transaksi dan PITR,
lihat Penyimpanan log untuk PITR.
Untuk mengetahui informasi selengkapnya tentang cara memeriksa penggunaan disk, lihat Log dan penggunaan disk.
Memecahkan masalah peralihan ke Cloud Storage
Tabel berikut mencantumkan kemungkinan error yang dapat 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 pada instance Cloud SQL untuk MySQL atau Cloud SQL untuk PostgreSQL. Mengalihkan lokasi penyimpanan untuk log transaksi menggunakan gcloud CLI atau Cloud SQL Admin API tidak didukung untuk Cloud SQL untuk SQL Server. |
MySQL transactional logging is not enabled on this instance.
|
MySQL menggunakan logging biner sebagai log transaksi untuk pemulihan point-in-time (PITR). Untuk mendukung PITR, MySQL mengharuskan Anda mengaktifkan logging biner pada instance. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan logging biner, lihat Mengaktifkan PITR. |
This command is not supported on replica instances.
Run the command on the primary instance instead.
|
Pastikan Anda menentukan instance utama saat menjalankan perintah atau membuat permintaan API. |
This instance is already storing transaction logs used for PITR in
Cloud Storage
|
Untuk memverifikasi lokasi penyimpanan log transaksi, jalankan perintah di Periksa 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 pengalihan selesai. Untuk memverifikasi status operasi dan lokasi penyimpanan log transaksi, jalankan perintah di Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR. |
Langkah berikutnya
- Mengonfigurasi flag pada clone Anda