Memulihkan tabel Amazon Keyspaces ke titik waktu - Amazon Keyspaces (untuk Apache Cassandra)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulihkan tabel Amazon Keyspaces ke titik waktu

point-in-time Pemulihan (PITR) Amazon Keyspaces (untuk Apache Cassandra) memungkinkan Anda memulihkan data tabel Amazon Keyspaces ke titik waktu apa pun dalam 35 hari terakhir. Bagian pertama dari tutorial ini menunjukkan kepada Anda bagaimana mengembalikan tabel ke titik waktu dengan menggunakan konsol Amazon Keyspaces,AWS Command Line Interface (AWS CLI), dan Cassandra Query Language (CQL). Bagian kedua menunjukkan cara mengembalikan tabel dihapus menggunakanAWS CLI dan CQL.

Sebelum Anda memulai

Jika Anda belum melakukannya, Anda harus mengonfigurasi izin yang sesuai bagi pengguna untuk memulihkan tabel Amazon Keyspaces. DalamAWS Identity and Access Management (IAM), kebijakan yangAWS dikelolaAmazonKeyspacesFullAccess menyertakan izin untuk memulihkan tabel Amazon Keyspaces. Untuk langkah-langkah mendetail untuk menerapkan kebijakan dengan izin minimum yang diperlukan, lihatIzin diperlukan untuk memulihkan tabel.

Memulihkan tabel ke titik waktu ()

Contoh berikut menunjukkan cara menggunakan konsol Amazon Keyspaces untuk memulihkan tabel yang ada bernamamytable ke sebuah titik waktu.

catatan

Prosedur ini mengasumsikan bahwa Anda telah mengaktifkan point-in-time pemulihan. Untuk mengaktifkan PITR untukmytable tabel, ikuti langkah-langkah diMengaktifkan PITR dengan konsol.

  1. Masuk keAWS Management Console, dan buka konsol Amazon Keyspaces di https://console.aws.amazon.com/keyspaces/home.

  2. Di panel navigasi pada sisi kiri konsol, pilih Tabel.

  3. Dalam daftar tabel, pilih tabel mytable.

  4. Pada tab Backupmytable tabel, di bagian oint-in-time pemulihan P, pilih Pulihkan.

  5. Untuk nama tabel baru, masukkan mytable_restored.

  6. Untuk menentukan titik waktu untuk operasi pemulihan, Anda dapat memilih di antara dua opsi:

    • Pilih waktu paling awal yang telah dikonfigurasikan sebelumnya.

    • Pilih Tentukan tanggal dan waktu dan masukkan tanggal dan waktu yang Anda inginkan untuk memulihkan tabel baru.

    catatan

    Anda dapat memulihkan ke titik waktu mana pun dalam waktu paling awal dan waktu saat ini. Amazon Keyspaces memulihkan data tabel Anda ke keadaan berdasarkan tanggal dan waktu yang dipilih ().

  7. Pilih Pulihkan untuk memulai proses pemulihan.

    Tabel yang sedang dipulihkan ditampilkan dengan status Memulihkan. Setelah proses pemulihan selesai, status mytable_restored tabel berubah menjadi Aktif.

    penting

    Ketika pemulihan sedang berlangsung, jangan memodifikasi atau menghapus kebijakan (IAM) AWS Identity and Access Management yang memberikan izin entitas IAM (misalnya, pengguna, grup, atau peran) untuk melakukan pemulihan. Jika tidak, perilaku tak terduga dapat terjadi. Sebagai contoh, misalkan Anda menghapus izin tulis untuk tabel yang sedang dipulihkan. Dalam kasus ini, operasi RestoreTableToPointInTime yang mendasar tidak dapat menulis data mana pun yang dipulihkan ke tabel.

    Anda dapat mengubah atau menghapus izin hanya setelah operasi pemulihan selesai.

Memulihkan tabel ke titik waktu denganAWS CLI

Prosedur berikut menunjukkan cara menggunakan AWS CLI untuk memulihkan tabel yang ada bernama myTable ke titik waktu.

  1. Pada langkah pertama, Anda membuat tabel sederhana bernamamyTable yang memiliki PITR diaktifkan. Perintah telah dipecah menjadi baris terpisah untuk dibaca.

    aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --point-in-time-recovery 'status=ENABLED'
  2. Konfirmasikan properti tabel baru dan tinjauearliestRestorableTimestamp untuk PITR.

    aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'

    Output perintah ini mengembalikan yang berikut ini ini ini ini ini ini ini ini dilakukan.

    { "keyspaceName": "myKeyspace", "tableName": "myTable", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable", "creationTimestamp": "2022-06-20T14:34:57.049000-07:00", "status": "ACTIVE", "schemaDefinition": { "allColumns": [ { "name": "id", "type": "int" }, { "name": "date", "type": "timestamp" }, { "name": "name", "type": "text" } ], "partitionKeys": [ { "name": "id" } ], "clusteringKeys": [], "staticColumns": [] }, "capacitySpecification": { "throughputMode": "PAY_PER_REQUEST", "lastUpdateToPayPerRequestTimestamp": "2022-06-20T14:34:57.049000-07:00" }, "encryptionSpecification": { "type": "AWS_OWNED_KMS_KEY" }, "pointInTimeRecovery": { "status": "ENABLED", "earliestRestorableTimestamp": "2022-06-20T14:35:13.693000-07:00" }, "defaultTimeToLive": 0, "comment": { "message": "" } }

    Anda dapat mengembalikan tabel aktif ke salah satu point-in-time antaraearliestRestorableTimestamp dan waktu saat ini dalam interval satu detik. Waktu saat ini adalah default.

  3. Untuk memulihkan tabel ke titik waktu, tentukanrestore_timestamp dalam format ISO 8601. Anda dapat memilih titik waktu apa pun selama 35 hari terakhir dalam interval satu detik. Sebagai contoh, perintah berikut memulihkan tabel ke EarliestRestorableDateTime.

    aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored' --restore-timestamp "2022-06-20 21:35:14.693"

    Output perintah ini mengembalikan ARN tabel dipulihkan.

    { "restoredTableARN": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable_restored" }

    Untuk mengembalikan tabel ke waktu saat ini, Anda dapat menghilangkanrestore-timestamp.

    aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored1'"
penting

Ketika pemulihan sedang berlangsung, jangan memodifikasi atau menghapus kebijakan (IAM) AWS Identity and Access Management yang memberikan izin entitas IAM (misalnya, pengguna, grup, atau peran) untuk melakukan pemulihan. Jika tidak, perilaku tak terduga dapat terjadi. Sebagai contoh, misalkan Anda menghapus izin tulis untuk tabel yang sedang dipulihkan. Dalam kasus ini, operasi RestoreTableToPointInTime yang mendasar tidak dapat menulis data mana pun yang dipulihkan ke tabel.

Anda dapat mengubah atau menghapus izin hanya setelah operasi pemulihan selesai.

Memulihkan tabel ke titik waktu dengan CQL

Prosedur berikut menunjukkan cara menggunakan CQL untuk memulihkan tabel yang ada bernamamytable ke titik waktu.

catatan

Prosedur ini mengasumsikan bahwa Anda telah mengaktifkan point-in-time pemulihan. Untuk mengaktifkan PITR di atas meja, ikuti langkah-langkah diMengaktifkan PITR menggunakan CQL.

  1. Anda dapat mengembalikan tabel aktif ke point-in-time antaraearliest_restorable_timestamp dan waktu saat ini. Waktu saat ini adalah default.

    Untuk mengonfirmasi bahwa point-in-time pemulihan diaktifkan untukmytable tabel, kuerisystem_schema_mcs.tables sebagai berikut.

    SELECT custom_properties FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

    oint-in-time pemulihan P diaktifkan seperti yang ditunjukkan dalam output sampel berikut ini.

    custom_properties ----------------- { ..., "point_in_time_recovery": { "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z" "status":"enabled" } }
  2. Memulihkan tabel ke titik waktu, ditentukan olehrestore_timestamp format ISO 8601. Dalam hal ini,mytable tabel dipulihkan ke waktu saat ini. Anda dapat menghilangkanWITH restore_timestamp = ... klausa. Tanpa klausa, stempel waktu saat ini digunakan.

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;

    Anda juga dapat memulihkan ke titik waktu tertentu. Anda dapat menentukan titik waktu apa pun selama 35 hari terakhir. Sebagai contoh, perintah berikut memulihkan tabel ke EarliestRestorableDateTime.

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable WITH restore_timestamp = '2020-06-30T19:19:21.175Z';

    Untuk deskripsi sintaks lengkap, lihatMENGEMBALIKAN TABEL di referensi bahasa.

Untuk memverifikasi bahwa pemulihan tabel berhasil, kuerisystem_schema_mcs.tables untuk mengkonfirmasi status tabel.

SELECT status FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'

Kueri menunjukkan output berikut ini.

status ------ RESTORING

Tabel yang sedang dipulihkan ditampilkan dengan status Memulihkan. Setelah proses pemulihan selesai, status mytable_restored tabel berubah menjadi Aktif.

penting

Ketika pemulihan sedang berlangsung, jangan memodifikasi atau menghapus kebijakan (IAM) AWS Identity and Access Management yang memberikan izin entitas IAM (misalnya, pengguna, grup, atau peran) untuk melakukan pemulihan. Jika tidak, perilaku tak terduga dapat terjadi. Sebagai contoh, misalkan Anda menghapus izin tulis untuk tabel yang sedang dipulihkan. Dalam kasus ini, operasi RestoreTableToPointInTime yang mendasar tidak dapat menulis data mana pun yang dipulihkan ke tabel.

Anda dapat mengubah atau menghapus izin hanya setelah operasi pemulihan selesai.

Memulihkan tabel yang dihapus denganAWS CLI

Prosedur berikut menunjukkan cara menggunakanAWS CLI untuk memulihkan tabel yang dihapus bernamamyTable ke waktu penghapusan.

catatan

Prosedur ini mengasumsikan bahwa PITR diaktifkan pada tabel dihapus.

  1. Hapus tabel yang Anda buat di tutorial sebelumnya.

    aws keyspaces delete-table --keyspace-name 'myKeyspace' --table-name 'myTable'
  2. Kembalikan tabel yang dihapus ke waktu penghapusan dengan perintah berikut.

    aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored2'

    Output perintah ini mengembalikan ARN tabel dipulihkan.

    { "restoredTableARN": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable_restored2" }

Memulihkan tabel yang dihapus dengan CQL

Prosedur berikut menunjukkan cara menggunakan CQL untuk memulihkan tabel yang dihapus bernamamytable ke waktu penghapusan.

catatan

Prosedur ini mengasumsikan bahwa PITR diaktifkan pada tabel dihapus.

  1. Untuk mengonfirmasi bahwa point-in-time pemulihan diaktifkan untuk tabel yang dihapus, kueri tabel sistem. Hanya tabel dengan point-in-time pemulihan diaktifkan yang ditampilkan.

    SELECT custom_properties FROM system_schema_mcs.tables_history WHERE keyspace_name = 'mykeyspace' AND table_name = 'my_table';

    Kueri menunjukkan output berikut ini.

    custom_properties ------------------ { ..., "point_in_time_recovery":{ "restorable_until_time":"2020-08-04T00:48:58.381Z", "status":"enabled" } }
  2. Kembalikan tabel ke waktu penghapusan dengan pernyataan sampel berikut.

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;