Anda dapat menggunakan pemulihan point-in-time (PITR) untuk memulihkan instance Cloud SQL utama Anda, baik instance tersebut aktif maupun dihapus. PITR memungkinkan Anda memulihkan instance ke titik waktu tertentu. Untuk instance yang dihapus, Anda dapat memulihkan instance ke titik waktu tertentu ke instance baru atau yang ada.
Cloud SQL menyediakan opsi berikut untuk memulihkan instance Anda menggunakan PITR:
Untuk melakukan PITR pada instance yang tidak tersedia atau dihapus, Anda harus menemukan waktu pemulihan terbaru dan paling awal.
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.
- Pilih All database, atau tentukan nama database.
Jika Anda menentukan nama database, hanya satu nama yang dapat dipilih. Secara default, PITR ditujukan untuk semua database. - Klik Buat 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 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 dapat menentukan hingga satu nama database tertentu sebagai
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 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
Dalam permintaan JSON, Anda dapat menentukan hingga satu nama database tertentu sebagai
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 menerima respons JSON yang mirip dengan yang berikut ini:
Melakukan PITR menggunakan vault cadangan
Jika instance Cloud SQL Anda diaktifkan untuk menggunakan cadangan yang ditingkatkan, Anda dapat melakukan pemulihan point-in-time untuk instance Anda menggunakan vault cadangan.
Konsol
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
Buka menu tindakan lainnya
untuk instance yang ingin
Anda pulihkan, lalu klik Create clone.Pilih Clone dari titik waktu sebelumnya.
Masukkan waktu PITR.
Klik Buat clone.
gcloud
Untuk melakukan PITR pada instance dari vault cadangan, Anda harus menemukan
data-source untuk cadangan yang paling mendekati waktu yang Anda inginkan untuk melakukan
PITR. Untuk menemukan cadangan, lihat
Mencantumkan semua cadangan di vault cadangan untuk instance. Setelah Anda mengidentifikasi cadangan, jalankan perintah berikut untuk melakukan PITR:
gcloud sql instances point-in-time-restore DATA_SOURCE
PITR_TIMESTAMP
--project=TARGET_PROJECT
Ganti kode berikut:
- DATA_SOURCE: jalur
data-sourceuntuk cadangan yang paling mendekati stempel waktu PITR yang ingin Anda pulihkan. - PITR_TIMESTAMP: stempel waktu UTC untuk log PITR instance sumber yang ingin Anda gunakan untuk memulihkan instance, dalam format RFC 3339. Misalnya, 2012-11-15T16:19:00.094Z.
- TARGET_PROJECT: project ID instance Cloud SQL Anda.
REST v1
REST v1beta4
Melakukan PITR pada instance yang dihapus
Untuk menggunakan PITR guna memulihkan instance yang dihapus, Anda memerlukan:
- stempel waktu PITR (
timestamp) yang ingin Anda gunakan untuk memulihkan instance - nama instance target
- waktu instance sumber dihapus (
source-instance-deletion-time)
Anda hanya dapat menggunakan PITR pada instance yang dihapus menggunakan gcloud CLI atau Cloud SQL API. Untuk mengetahui informasi selengkapnya, lihat Memulihkan instance yang dihapus menggunakan PITR.
gcloud
Menemukan periode PITR Anda
Untuk menemukan periode PITR instance yang dihapus, dapatkan waktu pemulihan paling awal dan terbaru untuk instance Anda. Anda dapat memilih stempel waktu kapan saja di jendela ini untuk melakukan PITR.
Menemukan waktu penghapusan instance sumber dan hari retensi log
source-instance-deletion-time dan log-retention-days untuk instance yang dihapus disimpan dengan cadangan yang dipertahankan untuk instance Anda setelah penghapusan. Untuk menemukan nilai ini untuk instance yang dihapus, lihat
Mencantumkan cadangan yang dipertahankan.
Memulihkan menggunakan PITR
Untuk memulihkan instance yang dihapus menggunakan PITR, jalankan perintah berikut:
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time='PITR_TIMESTAMP' \
--source-instance-deletion-time=SOURCE_INSTANCE_DELETION_TIMESTAMP
Ganti kode berikut:
SOURCE_INSTANCE_NAME: nama instance sumber yang ingin Anda pulihkan.NEW_INSTANCE_NAME: nama instance baru.PITR_TIMESTAMP: stempel waktu UTC untuk log PITR instance sumber yang ingin Anda gunakan untuk memulihkan instance, dalam format RFC 3339. Misalnya, 2012-11-15T16:19:00.094Z.SOURCE_INSTANCE_DELETION_TIMESTAMP: stempel waktu UTC untuk waktu saat instance sumber dihapus, dalam format RFC 3339. Misalnya, 2012-11-15T16:19:00.094Z.
REST v1
Menemukan periode PITR Anda
Untuk menemukan periode PITR instance yang dihapus, dapatkan waktu pemulihan paling awal dan terbaru untuk instance Anda. Anda dapat memilih stempel waktu kapan saja di jendela ini untuk melakukan PITR.
Menemukan waktu penghapusan instance sumber dan hari retensi log
source-instance-deletion-time dan log-retention-days untuk instance yang dihapus disimpan dengan cadangan yang dipertahankan untuk instance Anda setelah penghapusan. Untuk menemukan nilai ini untuk instance yang dihapus, lihat
Mencantumkan cadangan yang dipertahankan.
Memulihkan menggunakan PITR
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: the project ID
- target-instance-id: ID instance target
- source-instance-id: ID instance sumber
- source-instance-deletion-time: waktu penghapusan instance sumber
- restore-timestamp point-in-time yang ingin Anda gunakan untuk memulihkan instance
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",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"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
Menemukan periode PITR Anda
Untuk menemukan periode PITR instance yang dihapus, dapatkan waktu pemulihan paling awal dan terbaru untuk instance Anda. Anda dapat memilih stempel waktu kapan saja di jendela ini untuk melakukan PITR.
Menemukan waktu penghapusan instance sumber dan hari retensi log
source-instance-deletion-time dan log-retention-days untuk instance yang dihapus disimpan dengan cadangan yang dipertahankan untuk instance Anda setelah penghapusan. Untuk menemukan nilai ini untuk instance yang dihapus, lihat
Mencantumkan cadangan yang dipertahankan.
Memulihkan menggunakan PITR
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: the project ID
- target-instance-id: ID instance target
- source-instance-id: ID instance sumber
- source-instance-deletion-time: waktu penghapusan instance sumber
- restore-timestamp point-in-time yang ingin Anda gunakan untuk memulihkan instance
Dalam permintaan JSON, Anda dapat menentukan hingga satu nama database tertentu sebagai
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",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Mendapatkan waktu pemulihan paling awal dan terbaru
Untuk instance yang tersedia, Anda dapat melakukan PITR ke stempel waktu mana pun dalam periode PITR instance. Interval PITR dimulai pada waktu pemulihan paling awal dan berakhir pada waktu pemulihan paling akhir. Jika instance tidak tersedia dan log instance disimpan di Cloud Storage, atau instance dihapus dan retensi PITR diaktifkan, Anda dapat mengambil waktu pemulihan paling awal dan terbaru, serta melakukan PITR ke stempel waktu mana pun dalam periode tersebut. Dalam semua kasus, Anda dapat memulihkan instance ke zona primer atau sekunder yang berbeda dengan memberikan nilai untuk zona yang diinginkan.
gcloud
Instance tidak tersedia
Untuk mendapatkan waktu paling awal dan terbaru untuk memulihkan instance Cloud SQL yang tidak tersedia, jalankan perintah berikut:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
Ganti kode berikut:
INSTANCE_NAME: nama instance yang ingin Anda temukan waktu pemulihan terbarunya.
Instance yang dihapus
Untuk mendapatkan waktu paling awal dan terbaru untuk memulihkan instance Cloud SQL yang dihapus, jalankan perintah berikut:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
--source-instance-deletion-time='SOURCE_INSTANCE_DELETION_TIMESTAMP'
Ganti kode berikut:
INSTANCE_NAME: nama instance yang ingin Anda temukan waktu pemulihan terbarunya.SOURCE_INSTANCE_DELETION_TIMESTAMP: stempel waktu UTC untuk waktu saat instance sumber dihapus, dalam format RFC 3339. Misalnya, 2012-11-15T16:19:00.094Z.
REST v1
Instance tidak tersedia
Sebelum menggunakan salah satu data permintaan, lakukan penggantian 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 Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Instance yang dihapus
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: the project ID
- INSTANCE_NAME: nama instance sumber yang dibuatkan kueri untuk waktu pemulihan terakhir
- SOURCE_INSTANCE_DELETION_TIME: waktu saat instance sumber dihapus
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
REST v1beta4
Instance tidak tersedia
Sebelum menggunakan salah satu data permintaan, lakukan penggantian 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 Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Instance yang dihapus
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: the project ID
- INSTANCE_NAME: nama instance sumber yang dibuatkan kueri untuk waktu pemulihan terakhir
- SOURCE_INSTANCE_DELETION_TIME: waktu saat instance sumber dihapus
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
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. |
Langkah berikutnya
- Mengonfigurasi flag pada clone Anda