

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

# Mencadangkan dan memulihkan instans Amazon RDS Custom for SQL Server DB
<a name="custom-backup-sqlserver"></a>

Seperti AmazonRDS, RDS Custom membuat dan menyimpan cadangan otomatis instans RDS Custom for SQL Server DB Anda saat retensi cadangan diaktifkan. Anda juga dapat mencadangkan instans DB secara manual. Cadangan otomatis terdiri dari cadangan snapshot dan cadangan log transaksi. Cadangan snapshot diambil untuk seluruh volume penyimpanan instans DB selama jendela cadangan yang Anda tentukan. Pencadangan log transaksi diambil untuk database yang PITR memenuhi syarat pada periode interval reguler. RDSKustom menyimpan cadangan otomatis instans DB Anda sesuai dengan periode retensi cadangan yang Anda tentukan. Anda dapat menggunakan cadangan otomatis untuk memulihkan instans DB Anda ke titik waktu dalam periode retensi cadangan.

Anda juga dapat membuat cadangan snapshot secara manual. Anda dapat membuat instans DB baru dari cadangan snapshot ini kapan saja. Untuk informasi selengkapnya tentang cara membuat snapshot DB secara manual, lihat [Membuat snapshot RDS Kustom untuk SQL Server](custom-backup-sqlserver.creating.md).

Meskipun cadangan snapshot berfungsi secara operasional sebagai cadangan penuh, Anda hanya ditagih untuk penggunaan penyimpanan tambahan. Snapshot pertama dari instans RDS Custom DB berisi data untuk instans DB lengkap. Snapshot berikutnya dari basis data yang sama bersifat inkremental, artinya hanya data yang berubah setelah snapshot terbaru Anda yang disimpan. 

**Topics**
+ [Membuat snapshot RDS Kustom untuk SQL Server](custom-backup-sqlserver.creating.md)
+ [Memulihkan dari snapshot RDS Custom for SQL Server DB](custom-backup-sqlserver.restoring.md)
+ [Memulihkan instans RDS Custom for SQL Server ke suatu titik waktu](custom-backup.pitr-sqs.md)
+ [Menghapus snapshot RDS Kustom untuk SQL Server](custom-backup-sqlserver.deleting.md)
+ [Menghapus RDS Custom for SQL Server backup otomatis](custom-backup-sqlserver.deleting-backups.md)

# Membuat snapshot RDS Kustom untuk SQL Server
<a name="custom-backup-sqlserver.creating"></a>

RDSCustom for SQL Server membuat snapshot volume penyimpanan instans DB Anda, mencadangkan seluruh instans DB dan bukan hanya database individual. Saat Anda membuat snapshot, tentukan instans RDS Custom for SQL Server DB mana yang akan dicadangkan. Beri nama snapshot sehingga Anda dapat melakukan proses pemulihan dari snapshot tersebut nanti.

Saat Anda membuat snapshot, RDS Custom for SQL Server membuat EBS snapshot Amazon untuk volume`(D:)`, yang merupakan volume database yang dilampirkan ke instans DB. Agar mudah dikaitkan dengan instans DB tertentu, snapshot ditandai dengan `DBSnapshotIdentifier`, `DbiResourceId`, dan `VolumeType`.

Membuat snapshot DB menghasilkan suspensi I/O singkat. Suspensi ini dapat bertahan beberapa detik hingga beberapa menit, bergantung pada ukuran dan kelas instans DB Anda. Waktu pembuatan snapshot bervariasi menurut jumlah total dan ukuran basis data Anda. Untuk mempelajari lebih lanjut tentang jumlah database yang memenuhi syarat untuk operasi point in time restore (PITR), lihat[Jumlah basis data yang memenuhi syarat untuk PITR per jenis kelas instans](custom-backup.pitr-sqs.md#custom-backup.pitr.sqlserver.eligiblecountperinstance).

Karena snapshot mencakup seluruh volume penyimpanan, ukuran file seperti file sementara juga memengaruhi waktu pembuatan snapshot. Untuk mempelajari selengkapnya tentang membuat snapshot, lihat [Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS](USER_CreateSnapshot.md).

Buat snapshot RDS Kustom untuk SQL Server menggunakan konsol atau file. AWS CLI

## Konsol
<a name="USER_CreateSnapshot-sqlserver.CON"></a>

**Untuk membuat snapshot RDS Kustom**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Basis Data**.

1. Dalam daftar instans RDS Custom DB, pilih instance yang ingin Anda ambil snapshot.

1. Untuk **Tindakan**, pilih **Ambil snapshot**.

   Jendela **Ambil snapshot DB** akan muncul.

1. Untuk **Nama snapshot**, masukkan nama snapshot.

1. Pilih **Ambil snapshot**.

## AWS CLI
<a name="USER_CreateSnapshot-sqlserver.CLI"></a>

Anda membuat snapshot dari instans RDS Custom DB dengan menggunakan [create-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-snapshot.html) AWS CLI perintah.

Tentukan opsi berikut:
+ `--db-instance-identifier`— Mengidentifikasi instans RDS Custom DB mana yang akan Anda cadangkan
+ `--db-snapshot-identifier`— Beri nama snapshot RDS Kustom Anda sehingga Anda dapat mengembalikannya nanti

Dalam contoh ini, Anda membuat snapshot DB yang disebut *`my-custom-snapshot`* untuk instance RDS Custom DB yang disebut`my-custom-instance`.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
1. aws rds create-db-snapshot \
2.     --db-instance-identifier my-custom-instance \
3.     --db-snapshot-identifier my-custom-snapshot
```
Untuk Windows:  

```
1. aws rds create-db-snapshot ^
2.     --db-instance-identifier my-custom-instance ^
3.     --db-snapshot-identifier my-custom-snapshot
```

# Memulihkan dari snapshot RDS Custom for SQL Server DB
<a name="custom-backup-sqlserver.restoring"></a>

Saat memulihkan instans RDS Custom for SQL Server DB, Anda memberikan nama snapshot DB dan nama untuk instance baru. Anda tidak dapat memulihkan dari snapshot ke instans RDS Custom DB yang ada. Instans RDS Custom for SQL Server DB baru dibuat saat Anda memulihkan.

Memulihkan dari snapshot akan mengembalikan volume penyimpanan ke titik waktu ketika snapshot diambil. Hal ini akan mencakup semua basis data dan file lain yang ada pada volume `(D:)`.

## Konsol
<a name="custom-backup-sqlserver.restoring.console"></a>

**Untuk memulihkan instans RDS Custom DB dari snapshot DB**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Snapshot**.

1. Pilih snapshot DB yang ingin dipulihkan.

1. Untuk **Tindakan**, pilih **Pulihkan snapshot**.

1. Pada halaman **instans Restore DB**, untuk **pengidentifikasi instans DB**, masukkan nama untuk instans RDS Custom DB Anda yang dipulihkan.

1. Pilih **Pulihkan instans DB**. 

## AWS CLI
<a name="custom-backup-sqlserver.restoring.CLI"></a>

Anda mengembalikan snapshot RDS Custom DB dengan menggunakan perintah [ restore-db-instance-from AWS CLI -db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html).

Jika snapshot yang Anda pulihkan adalah untuk instans DB privat, pastikan untuk menentukan `db-subnet-group-name` dan `no-publicly-accessible` yang benar. Jika tidak, default instans DB diatur agar dapat diakses publik. Opsi berikut diperlukan:
+ `db-snapshot-identifier` — Mengidentifikasi snapshot yang akan dipulihkan
+ `db-instance-identifier`- Menentukan nama contoh RDS Custom DB untuk membuat dari snapshot DB
+ `custom-iam-instance-profile`— Menentukan profil instans yang terkait dengan instans Amazon yang mendasari EC2 instans DB RDS Kustom.

Kode berikut memulihkan snapshot bernama `my-custom-snapshot` untuk `my-custom-instance`.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds restore-db-instance-from-db-snapshot \
  --db-snapshot-identifier my-custom-snapshot \
  --db-instance-identifier my-custom-instance \
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
  --no-publicly-accessible
```
Untuk Windows:  

```
aws rds restore-db-instance-from-db-snapshot ^
  --db-snapshot-identifier my-custom-snapshot ^
  --db-instance-identifier my-custom-instance ^
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
  --no-publicly-accessible
```

# Memulihkan instans RDS Custom for SQL Server ke suatu titik waktu
<a name="custom-backup.pitr-sqs"></a>

Anda dapat memulihkan instans DB ke titik waktu tertentu (PITR) dan membuat instans DB baru. Untuk mendukung PITR, instans DB Anda harus mengaktifkan retensi cadangan.

Waktu pemulihan terbaru untuk instans DB RDS Custom for SQL Server bergantung pada beberapa faktor, tetapi biasanya dalam 5 menit dari waktu saat ini. Untuk melihat waktu restorable terbaru untuk instans DB, gunakan AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)perintah dan lihat nilai yang dikembalikan di `LatestRestorableTime` bidang untuk instans DB. Untuk melihat waktu pemulihan terbaru setiap instans DB di konsol Amazon RDS, pilih **Cadangan otomatis**.

Anda dapat memulihkan ke titik waktu mana pun dalam periode retensi cadangan Anda. Untuk melihat waktu pemulihan terbaru setiap instans DB, pilih **Cadangan otomatis** di konsol Amazon RDS.

Untuk informasi umum tentang PITR, lihat [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md).

**Topics**
+ [Pertimbangan PITR untuk RDS Custom for SQL Server](#custom-backup.pitr.sqlserver)
+ [Jumlah basis data yang memenuhi syarat untuk PITR per jenis kelas instans](#custom-backup.pitr.sqlserver.eligiblecountperinstance)
+ [Membuat basis data tidak memenuhi syarat untuk PITR](#custom-backup.pitr.sqlserver.ineligible)
+ [Log transaksi di Amazon S3](#custom-backup.pitr.sqlserver.tlogs)
+ [PITR Restore menggunakanKonsol Manajemen AWS,AWS CLI, atau RDS API.](#custom-backup.pitr-sqs-concli)

## Pertimbangan PITR untuk RDS Custom for SQL Server
<a name="custom-backup.pitr.sqlserver"></a>

PITR di RDS Custom for SQL Server berbeda dari PITR di Amazon RDS dalam beberapa hal penting berikut:
+ PITR hanya memulihkan basis data dalam instans DB. PITR tidak memulihkan sistem operasi atau file pada drive C:.
+ Untuk instans DB RDS Custom for SQL Server, basis data dicadangkan secara otomatis dan memenuhi syarat untuk PITR hanya dalam kondisi berikut:
  + Basis data online.
  + Model pemulihannya diatur ke `FULL`.
  + Dapat ditulis.
  + Memiliki file fisik di drive D:.
  + Tidak tercantum dalam tabel `rds_pitr_blocked_databases`. Untuk informasi selengkapnya, lihat [Membuat basis data tidak memenuhi syarat untuk PITR](#custom-backup.pitr.sqlserver.ineligible).
+ Basis data yang memenuhi syarat untuk PITR ditentukan oleh urutan ID basis data. RDS Custom for SQL Server memungkinkan hingga 5.000 basis data per instans DB. Namun, jumlah maksimum basis data yang dipulihkan oleh operasi PITR untuk instans DB RDS Custom for SQL Server bergantung pada jenis kelas instans. Untuk informasi selengkapnya, lihat [Jumlah basis data yang memenuhi syarat untuk PITR per jenis kelas instans](#custom-backup.pitr.sqlserver.eligiblecountperinstance).

  Basis data lain yang bukan bagian dari PITR dapat dipulihkan dari snapshot DB, termasuk cadangan snapshot otomatis yang digunakan untuk PITR.
+ Menambahkan basis data baru, mengganti nama basis data, atau memulihkan basis data yang memenuhi syarat untuk PITR memulai snapshot instans DB.
+ Jumlah maksimum basis data yang memenuhi syarat untuk PITR berubah ketika instans basis data melewati operasi komputasi skala, bergantung pada jenis kelas instans target. Jika skala instans dinaikkan dan memungkinkan lebih banyak basis data pada instans memenuhi syarat untuk PITR, snapshot baru akan diambil.
+ Basis data yang dipulihkan memiliki nama yang sama seperti pada instans DB sumber. Anda tidak dapat menentukan nama yang berbeda.
+ `AWSRDSCustomSQLServerIamRolePolicy`membutuhkan akses ke AWS layanan lain. Untuk informasi selengkapnya, lihat [Menambahkan kebijakan akses ke AWSRDSCustom SQLServer InstanceRole](custom-setup-sqlserver.md#custom-setup-sqlserver.iam.add-policy).
+ Perubahan zona waktu tidak didukung untuk RDS Custom for SQL Server. Jika Anda mengubah zona waktu sistem operasi atau instans DB, PITR (dan otomatisasi lainnya) tidak berfungsi.

## Jumlah basis data yang memenuhi syarat untuk PITR per jenis kelas instans
<a name="custom-backup.pitr.sqlserver.eligiblecountperinstance"></a>

Tabel berikut menunjukkan jumlah maksimum basis data yang memenuhi syarat untuk PITR berdasarkan jenis kelas instans.


| Jenis kelas instans | Jumlah maksimum basis data yang memenuhi syarat untuk PITR | 
| --- | --- | 
| db.\$1.large | 100 | 
| db.\$1.xlarge hingga db.\$1.2xlarge | 150 | 
| db.\$1.4xlarge hingga db.\$1.8xlarge | 300 | 
| db.\$1.12xlarge hingga db.\$1.16xlarge | 600 | 
| db.\$1.24xlarge, db.\$132xlarge | 1000 | 

`*` *Menunjukkan jenis kelas instans yang berbeda.*

Jumlah maksimum basis data yang memenuhi syarat untuk PITR pada instans DB bergantung pada jenis kelas instans. Jumlahnya berkisar dari 100 pada jenis kelas instans terkecil hingga 1000 pada jenis kelas instans terbesar yang didukung oleh RDS Custom for SQL Server. Basis data sistem SQL server `(master, model, msdb, tempdb)`, tidak termasuk dalam batas ini. Ketika skala instans DB dinaikkan atau diturunkan, bergantung pada jenis kelas instans target, RDS Custom akan otomatis memperbarui jumlah basis data yang memenuhi syarat untuk PITR. RDS Custom for SQL Server akan mengirim `RDS-EVENT-0352` ketika jumlah maksimum basis data yang memenuhi syarat untuk PITR berubah pada instans DB. Untuk informasi selengkapnya, lihat [Peristiwa versi mesin kustom](USER_Events.Messages.md#USER_Events.Messages.CEV).

**catatan**  
Dukungan PITR untuk lebih dari 100 basis data hanya tersedia pada instans DB yang dibuat setelah 26 Agustus 2023. Untuk instans yang dibuat sebelum 26 Agustus 2023, jumlah maksimum basis data yang memenuhi syarat untuk PITR adalah 100, terlepas dari kelas instansnya. Guna mengaktifkan dukungan PITR untuk lebih dari 100 basis data pada instans DB yang dibuat sebelum 26 Agustus 2023, Anda dapat melakukan tindakan berikut:  
Tingkatkan versi mesin DB ke 15.00.4322.2.v1 atau lebih tinggi

Selama operasi PITR, RDS Custom akan memulihkan semua basis data yang merupakan bagian dari PITR pada instans DB sumber pada waktu pemulihan. Setelah instans DB target menyelesaikan operasi pemulihan, jika retensi cadangan diaktifkan, instans DB akan mulai mencadangkan berdasarkan jumlah maksimum basis data yang memenuhi syarat untuk PITR pada instans DB target.

Misalnya, jika instans DB Anda berjalan pada `db.*.xlarge` yang memiliki 200 basis data:

1. RDS Custom for SQL Server akan memilih 150 basis data pertama yang diurutkan berdasarkan ID basis data untuk cadangan PITR.

1. Anda memodifikasi instans untuk menaikkan skala hingga db.\$1.4xlarge.

1. Setelah operasi komputasi skala selesai, RDS Custom for SQL Server akan memilih 300 basis data pertama, diurutkan berdasarkan ID basis data, untuk cadangan PITR. Masing-masing dari 200 basis data yang memenuhi kondisi persyaratan PITR sekarang akan memenuhi syarat untuk PITR.

1. Sekarang Anda memodifikasi instans untuk menurunkan skala kembali ke db.\$1.xlarge.

1. Setelah operasi komputasi skala selesai, RDS Custom for SQL Server akan kembali memilih 150 basis data pertama, diurutkan berdasarkan ID basis data, untuk cadangan PITR.

## Membuat basis data tidak memenuhi syarat untuk PITR
<a name="custom-backup.pitr.sqlserver.ineligible"></a>

Anda dapat memilih untuk mengecualikan basis data individual dari PITR. Untuk melakukan ini, masukkan nilai `database_id` ke dalam tabel `rds_pitr_blocked_databases`. Gunakan skrip SQL berikut untuk membuat tabel.

**Cara membuat tabel rds\$1pitr\$1blocked\$1databases**
+ Jalankan skrip SQL berikut.

  ```
  create table msdb..rds_pitr_blocked_databases
  (
  database_id INT NOT NULL,
  database_name SYSNAME NOT NULL,
  db_entry_updated_date datetime NOT NULL DEFAULT GETDATE(),
  db_entry_updated_by SYSNAME NOT NULL DEFAULT CURRENT_USER,
  PRIMARY KEY (database_id)
  );
  ```

Untuk daftar basis data yang memenuhi syarat dan tidak memenuhi syarat, lihat file `RI.End` pada direktori `RDSCustomForSQLServer/Instances/DB_instance_resource_ID/TransactionLogMetadata` di bucket Amazon S3 `do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier`. Untuk informasi selengkapnya tentang file `RI.End`, lihat [Log transaksi di Amazon S3](#custom-backup.pitr.sqlserver.tlogs).

Anda juga dapat menentukan daftar basis data yang memenuhi syarat untuk PITR menggunakan skrip SQL berikut. Tetapkan variabel `@limit` ke jumlah maksimum basis data yang memenuhi syarat untuk PITR untuk kelas instans. Untuk informasi selengkapnya, lihat [Jumlah basis data yang memenuhi syarat untuk PITR per jenis kelas instans](#custom-backup.pitr.sqlserver.eligiblecountperinstance).

**Cara menentukan daftar basis data yang memenuhi syarat untuk PITR pada kelas instans DB**
+ Jalankan skrip SQL berikut.

  ```
  DECLARE @Limit INT;
  SET @Limit = (insert-database-instance-limit-here);
  
  USE msdb;
  IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND  TABLE_NAME = 'rds_pitr_blocked_databases'))
      WITH TABLE0 AS (
          SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable
          FROM sys.dm_hadr_database_replica_states hdrs
          INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id
          WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) 
          OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY')
      ),
      TABLE1 as (
              SELECT dbs.database_id as DatabaseId, sysdbs.name as DatabaseName, 'OPTOUT' as Reason,
              CASE WHEN dbs.database_name = sysdbs.name THEN NULL ELSE dbs.database_name END AS DatabaseNameOnPitrTable
              FROM msdb.dbo.rds_pitr_blocked_databases dbs
              INNER JOIN sys.databases sysdbs ON dbs.database_id = sysdbs.database_id
              WHERE sysdbs.database_id > 4
              ),
      TABLE2 as (
              SELECT
              db.name AS DatabaseName,
              db.create_date AS CreateDate,
              db.state_desc AS DatabaseState,
              db.database_id AS DatabaseId,
              rs.database_guid AS DatabaseGuid,
              rs.last_log_backup_lsn AS LastLogBackupLSN,
              rs.recovery_fork_guid RecoveryForkGuid,
              rs.first_recovery_fork_guid AS FirstRecoveryForkGuid,
              db.recovery_model_desc AS RecoveryModel,
              db.is_auto_close_on AS IsAutoClose,
              db.is_read_only as IsReadOnly,
              NEWID() as FileName,
              CASE WHEN(db.state_desc = 'ONLINE'
                      AND db.recovery_model_desc != 'SIMPLE' 
                      AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) 
                      AND db.is_read_only != 1
                      AND db.user_access = 0
                      AND db.source_database_id IS NULL
                      AND db.is_in_standby != 1
                      THEN 1 ELSE 0 END AS IsPartOfSnapshot,
              CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot
              FROM sys.databases db
              INNER JOIN sys.database_recovery_status rs
              ON db.database_id = rs.database_id
              WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE1) AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0)
          ),
          TABLE3 as(
              Select @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE2 where TABLE2.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb')
          )
          SELECT TOP(SELECT TotalNumberOfDatabases from TABLE3)  DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE2 where TABLE2.IsPartOfSnapshot=1
          ORDER BY TABLE2.DatabaseID ASC
  ELSE
      WITH TABLE0 AS (
          SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable
          FROM sys.dm_hadr_database_replica_states hdrs
          INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id
          WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) 
          OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY')
      ),
      TABLE1 as (
              SELECT
              db.name AS DatabaseName,
              db.create_date AS CreateDate,
              db.state_desc AS DatabaseState,
              db.database_id AS DatabaseId,
              rs.database_guid AS DatabaseGuid,
              rs.last_log_backup_lsn AS LastLogBackupLSN,
              rs.recovery_fork_guid RecoveryForkGuid,
              rs.first_recovery_fork_guid AS FirstRecoveryForkGuid,
              db.recovery_model_desc AS RecoveryModel,
              db.is_auto_close_on AS IsAutoClose,
              db.is_read_only as IsReadOnly,
              NEWID() as FileName,
              CASE WHEN(db.state_desc = 'ONLINE'
                      AND db.recovery_model_desc != 'SIMPLE' 
                      AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) 
                      AND db.is_read_only != 1
                      AND db.user_access = 0
                      AND db.source_database_id IS NULL
                      AND db.is_in_standby != 1
                      THEN 1 ELSE 0 END AS IsPartOfSnapshot,
              CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot
              FROM sys.databases db
              INNER JOIN sys.database_recovery_status rs
              ON db.database_id = rs.database_id
              WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0)
          ),
          TABLE2 as(
              SELECT @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE1 where TABLE1.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb')
          )
          select top(select TotalNumberOfDatabases from TABLE2)  DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE1 where TABLE1.IsPartOfSnapshot=1
          ORDER BY TABLE1.DatabaseID ASC
  ```

**catatan**  
Basis data yang hanya merupakan tautan simbolis juga dikecualikan dari basis data yang memenuhi syarat untuk operasi PITR. Kueri di atas tidak memfilter berdasarkan kriteria ini.

## Log transaksi di Amazon S3
<a name="custom-backup.pitr.sqlserver.tlogs"></a>

Periode retensi cadangan menentukan apakah log transaksi untuk instans DB RDS Custom for SQL Server secara otomatis diekstraksi dan diunggah ke Amazon S3. Nilai bukan nol berarti cadangan otomatis dibuat dan agen RDS Custom mengunggah log transaksi ke S3 setiap 5 menit.

File log transaksi pada S3 dienkripsi saat diam menggunakan AWS KMS key yang Anda berikan saat membuat instans DB. Untuk informasi selengkapnya, lihat [Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) di *Panduan Pengguna Amazon Simple Storage Service*.

Log transaksi untuk setiap basis data diunggah ke bucket S3 bernama `do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier`. Direktori `RDSCustomForSQLServer/Instances/DB_instance_resource_ID` di bucket S3 berisi dua subdirektori:
+ `TransactionLogs` — Berisi log transaksi untuk setiap basis data dan metadata masing-masing.

  Nama file log transaksi mengikuti pola `yyyyMMddHHmm.database_id.timestamp`, misalnya:

  ```
  202110202230.11.1634769287
  ```

  Nama file yang sama dengan akhiran `_metadata` berisi informasi tentang log transaksi seperti nomor urut log, nama basis data, dan `RdsChunkCount`. `RdsChunkCount` menentukan berapa banyak file fisik yang mewakili satu file log transaksi. Anda mungkin melihat file dengan sufiks `_0001`, `_0002`, dan sebagainya, yang berarti potongan fisik dari file log transaksi. Jika Anda ingin menggunakan potongan file log transaksi, pastikan untuk menggabungkan potongan setelah mengunduhnya.

  Pertimbangkan skenario ketika Anda memiliki file berikut:
  + `202110202230.11.1634769287`
  + ` 202110202230.11.1634769287_0001`
  + ` 202110202230.11.1634769287_0002 `
  + ` 202110202230.11.1634769287_metadata`

  `RdsChunkCount` adalah `3`. Urutan untuk menggabungkan file adalah sebagai berikut: `202110202230.11.1634769287`, ` 202110202230.11.1634769287_0001`, `202110202230.11.1634769287_0002`.
+ `TransactionLogMetadata` — Berisi informasi metadata tentang setiap iterasi ekstraksi log transaksi.

  File `RI.End` berisi informasi untuk semua basis data yang log transaksinya diekstraksi dan semua basis data yang ada tetapi tidak log transaksinya tidak diekstraksi. Nama file `RI.End` mengikuti pola `yyyyMMddHHmm.RI.End.timestamp`, misalnya:

  ```
  202110202230.RI.End.1634769281
  ```

## PITR Restore menggunakanKonsol Manajemen AWS,AWS CLI, atau RDS API.
<a name="custom-backup.pitr-sqs-concli"></a>

Anda dapat memulihkan instans RDS Custom for SQL Server DB ke titik waktu menggunakanKonsol Manajemen AWS, APIAWS CLI, atau RDS.

### Konsol
<a name="custom-backup-sqs.pitr2.CON"></a>

**Cara memulihkan instans DB RDS Custom ke waktu tertentu**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Pencadangan otomatis**.

1. Pilih instans DB RDS Custom yang ingin Anda pulihkan.

1. Untuk **Tindakan**, pilih **Pulihkan ke titik waktu**.

   Jendela **Pulihkan ke titik waktu** akan muncul.

1. Pilih **Waktu pemulihan terbaru** untuk memulihkan ke waktu terbaru yang dimungkinkan atau pilih **Kustom** untuk memilih waktu.

   Jika Anda memilih **Kustom**, masukkan tanggal dan waktu untuk memulihkan instans.

   Waktu ditampilkan dalam zona waktu lokal Anda, yang ditunjukkan dengan offset dari Waktu Universal Terkoordinasi (UTC). Misalnya, UTC-5 adalah Time/Central Waktu Siang Standar Timur.

1. Untuk **Pengidentifikasi instans DB**, masukkan nama target instans DB RDS Custom yang dipulihkan. Nama harus unik.

1. Pilih opsi lain sesuai kebutuhan, seperti kelas instans DB.

1. Pilih **Pulihkan ke titik waktu**.

### AWS CLI
<a name="custom-backup-sqs.pitr2.CLI"></a>

Anda mengembalikan instans DB ke waktu tertentu dengan menggunakan point-in-time AWS CLI perintah [ restore-db-instance-to-](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) untuk membuat instance RDS Custom DB baru.

Gunakan salah satu opsi berikut untuk menentukan cadangan yang akan dipulihkan dari:
+ `--source-db-instance-identifier mysourcedbinstance`
+ `--source-dbi-resource-id dbinstanceresourceID`
+ `--source-db-instance-automated-backups-arn backupARN`

Opsi `custom-iam-instance-profile` diperlukan.

Contoh berikut memulihkan `my-custom-db-instance` ke instans DB baru bernama `my-restored-custom-db-instance` pada waktu yang ditentukan.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
1. aws rds restore-db-instance-to-point-in-time \
2.     --source-db-instance-identifier my-custom-db-instance\
3.     --target-db-instance-identifier my-restored-custom-db-instance \
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
5.     --restore-time 2022-10-14T23:45:00.000Z
```
Untuk Windows:  

```
1. aws rds restore-db-instance-to-point-in-time ^
2.     --source-db-instance-identifier my-custom-db-instance ^
3.     --target-db-instance-identifier my-restored-custom-db-instance ^
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
5.     --restore-time 2022-10-14T23:45:00.000Z
```

# Menghapus snapshot RDS Kustom untuk SQL Server
<a name="custom-backup-sqlserver.deleting"></a>

Anda dapat menghapus snapshot DB yang dikelola oleh RDS Custom for SQL Server saat Anda tidak lagi membutuhkannya. Prosedur penghapusan sama untuk instans Amazon RDS dan RDS Custom DB.

EBSSnapshot Amazon untuk volume biner dan root tetap ada di akun Anda untuk waktu yang lebih lama karena mungkin ditautkan ke beberapa instance yang berjalan di akun Anda atau ke snapshot RDS Kustom untuk SQL Server lainnya. EBSSnapshot ini dihapus secara otomatis setelah tidak lagi terkait dengan sumber daya RDS Kustom untuk SQL Server yang ada (instans atau cadangan DB).

## Konsol
<a name="USER_DeleteSnapshot-sqlserver.CON"></a>

**Untuk menghapus snapshot dari instans RDS Custom DB**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Snapshot**.

1. Pilih snapshot DB yang ingin Anda hapus.

1. Untuk **Tindakan**, pilih **Hapus snapshot**.

1. Pilih **Hapus** di halaman konfirmasi.

## AWS CLI
<a name="USER_DeleteSnapshot-sqlserver.CLI"></a>

Untuk menghapus snapshot RDS Kustom, gunakan AWS CLI perintah [delete-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-snapshot.html).

Opsi berikut diperlukan:
+ `--db-snapshot-identifier` — Snapshot yang akan dihapus

Contoh berikut menghapus snapshot DB `my-custom-snapshot`.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
1. aws rds delete-db-snapshot \  
2.   --db-snapshot-identifier my-custom-snapshot
```
Untuk Windows:  

```
1. aws rds delete-db-snapshot ^
2.   --db-snapshot-identifier my-custom-snapshot
```

# Menghapus RDS Custom for SQL Server backup otomatis
<a name="custom-backup-sqlserver.deleting-backups"></a>

Anda dapat menghapus cadangan otomatis yang dipertahankan untuk RDS Custom for SQL Server ketika mereka tidak lagi diperlukan. Prosedurnya sama dengan prosedur untuk menghapus RDS cadangan Amazon.

## Konsol
<a name="USER_WorkingWithAutomatedBackups-sqlserver-Deleting.CON"></a>

**Untuk menghapus cadangan otomatis yang dipertahankan**

1. Masuk ke Konsol Manajemen AWS dan buka RDS konsol Amazon di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Pencadangan otomatis**.

1. Pilih **Dipertahankan**.

1. Pilih cadangan otomatis yang dipertahankan yang ingin Anda hapus.

1. Untuk **Tindakan**, pilih **Hapus**.

1. Di halaman konfirmasi, masukkan **delete me** dan pilih **Hapus**. 

## AWS CLI
<a name="USER_WorkingWithAutomatedBackups-sqlserver-Deleting.CLI"></a>

Anda dapat menghapus cadangan otomatis yang dipertahankan dengan menggunakan AWS CLI perintah [delete-db-instance-automated-backup](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance-automated-backup.html).

Opsi berikut digunakan untuk menghapus cadangan otomatis yang dipertahankan:
+ `--dbi-resource-id`— Pengidentifikasi sumber daya untuk instans RDS Custom DB sumber.

  [Anda dapat menemukan pengenal sumber daya untuk instance DB sumber dari cadangan otomatis yang dipertahankan dengan menggunakan AWS CLI perintah describe-db-instance-automated -backup.](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instance-automated-backups.html)

Contoh berikut menghapus cadangan otomatis yang dipertahankan dengan pengidentifikasi sumber daya instans DB sumber `custom-db-123ABCEXAMPLE`.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
1. aws rds delete-db-instance-automated-backup \
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```
Untuk Windows:  

```
1. aws rds delete-db-instance-automated-backup ^
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```