

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

# Memisahkan pecahan dalam grup pecahan DB
<a name="limitless-shard-split"></a>

Anda dapat membagi pecahan dalam grup pecahan DB secara manual menjadi dua pecahan yang lebih kecil. Ini disebut pemecahan pecahan yang *diprakarsai pengguna*.

Aurora PostgreSQL Limitless Database juga dapat membagi pecahan ketika mereka memiliki jumlah data yang sangat besar atau penggunaan yang sangat tinggi. Ini disebut pemisahan pecahan yang *diprakarsai sistem*.

**Topics**
+ [Prasyarat](#limitless-shard-split.prereqs)
+ [Memisahkan pecahan](#limitless-shard-split.proc)
+ [Melacak pecahan pecahan](#limitless-shard-split.track)
+ [Menyelesaikan pecahan pecahan](#limitless-shard-split.finalize)
+ [Membatalkan pecahan pecahan](#limitless-shard-split.cancel)

## Prasyarat
<a name="limitless-shard-split.prereqs"></a>

Pembagian pecahan yang diprakarsai pengguna memiliki prasyarat berikut:
+ Anda harus memiliki grup pecahan DB.
+ Grup pecahan DB tidak dapat kosong: harus berisi setidaknya satu tabel sharded.
+ Seorang pengguna harus memiliki hak `rds_aurora_limitless_cluster_admin` istimewa. `rds_superuser`Memiliki hak istimewa ini; oleh karena itu pengguna master juga memilikinya. `rds_superuser`Dapat memberikan hak istimewa kepada pengguna lain:

  ```
  /* Logged in as the master user or a user with rds_superuser privileges */
  CREATE USER username;
  GRANT rds_aurora_limitless_cluster_admin to username;
  ```
+ Anda harus mengetahui ID subcluster (node) dari pecahan yang ingin Anda pisahkan. Anda dapat memperoleh ID dengan menggunakan kueri berikut:

  ```
  SELECT * FROM rds_aurora.limitless_subclusters;
  
   subcluster_id | subcluster_type
  ---------------+-----------------
   1             | router
   2             | router
   3             | shard
   4             | shard
   5             | shard
   6             | shard
  ```

Untuk mengaktifkan pemisahan pecahan yang dimulai sistem, setel parameter cluster DB berikut dalam grup parameter cluster DB kustom yang terkait dengan cluster DB Anda:


| Parameter | Nilai | 
| --- | --- | 
|  `rds_aurora.limitless_enable_auto_scale`  |  `on`  | 
|  `rds_aurora.limitless_auto_scale_options`  |  Entah `split_shard` atau `add_router,split_shard`  | 
|  `rds_aurora.limitless_finalize_split_shard_mode`  |  Parameter ini menentukan bagaimana pemisahan pecahan yang *diprakarsai sistem* diselesaikan. Nilai dapat menjadi salah satu dari yang berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/limitless-shard-split.html) Untuk informasi selengkapnya, lihat [Menyelesaikan pecahan pecahan](#limitless-shard-split.finalize).  Parameter ini hanya berlaku untuk pemisahan pecahan yang diprakarsai sistem.   | 

Untuk informasi selengkapnya, lihat [Grup parameter cluster DB untuk cluster Amazon Aurora DB](USER_WorkingWithDBClusterParamGroups.md).

## Memisahkan pecahan
<a name="limitless-shard-split.proc"></a>

Untuk membagi pecahan dalam grup pecahan DB, gunakan fungsinya. `rds_aurora.limitless_split_shard` Fungsi ini memulai pekerjaan shard-split yang berjalan secara asinkron.

```
SELECT rds_aurora.limitless_split_shard('subcluster_id');
```

Tunggu kembalinya ID pekerjaan setelah penyerahan pekerjaan berhasil, misalnya:

```
SELECT rds_aurora.limitless_split_shard('3');

    job_id
---------------
 1691300000000
(1 row)
```

**catatan**  
Operasi pecahan pecahan bersamaan tidak didukung. Jalankan setiap operasi secara berurutan dan selesaikan setiap operasi sebelum memulai operasi penambahan lainnya.

## Melacak pecahan pecahan
<a name="limitless-shard-split.track"></a>

Anda dapat menggunakan ID pekerjaan untuk melacak pekerjaan shard-split. Untuk mendeskripsikan pekerjaan tertentu dan mendapatkan detail lebih lanjut tentangnya, jalankan kueri berikut:

```
SELECT * FROM rds_aurora.limitless_list_shard_scale_jobs(job_id);
```

Contoh:

```
SELECT * FROM rds_aurora.limitless_list_shard_scale_jobs(1691300000000);

    job_id     |    action   |      job_details      | status  |    submission_time     |                  message                  
---------------+-------------+-----------------------+---------+------------------------+-------------------------------------------
 1691300000000 | SPLIT_SHARD | Split Shard 3 by User | SUCCESS | 2023-08-06 05:33:20+00 | Scaling job succeeded.                 +
               |             |                       |         |                        | New shard instance with ID 7 was created.
(1 row)
```

Kueri mengembalikan kesalahan saat Anda melewati pekerjaan yang tidak ada sebagai masukan.

```
SELECT * from rds_aurora.limitless_list_shard_scale_jobs(1691300000001);

ERROR:  no job found with the job ID provided
```

Anda dapat melacak status semua pekerjaan shard-split dengan menggunakan kueri yang sama tanpa ID pekerjaan, misalnya:

```
SELECT * FROM rds_aurora.limitless_list_shard_scale_jobs();

    job_id     |   action    |  job_details          |   status    |    submission_time     |                  message                 
---------------+-------------+-----------------------+-------------+------------------------+--------------------------------------------------------------
 1691200000000 | SPLIT_SHARD | Split Shard 3 by User | IN_PROGRESS | 2023-08-05 01:46:40+00 | 
 1691300000000 | SPLIT_SHARD | Split Shard 4 by User | SUCCESS     | 2023-08-06 05:33:20+00 | Scaling job succeeded. +
               |             |                       |             |                        | New shard instance with ID 7 was created.
 1691400000000 | SPLIT_SHARD | Split Shard 5 by User | FAILED      | 2023-08-07 09:20:00+00 | Error occurred for the add shard job 1691400000000.
               |             |                       |             |                        | Retry the command. If the issue persists, contact AWS Support.
 1691500000000 | SPLIT_SHARD | Split Shard 5 by User | CANCELED    | 2023-08-07 09:20:00+00 | Scaling job was cancelled.
(4 rows)
```

Status pekerjaan dapat berupa salah satu dari yang berikut:
+ `IN_PROGRESS`— Pekerjaan shard-split telah diserahkan dan sedang berlangsung. Anda hanya dapat memiliki satu pekerjaan yang sedang berlangsung pada satu waktu.
+ `PENDING`— Pekerjaan shard-split menunggu Anda untuk menyelesaikannya. Untuk informasi selengkapnya, lihat [Menyelesaikan pecahan pecahan](#limitless-shard-split.finalize).
+ `CANCELLATION_IN_PROGRESS`— Pekerjaan shard-split dibatalkan oleh pengguna.
+ `CANCELED`— Pekerjaan shard-split telah berhasil dibatalkan oleh pengguna atau oleh sistem.
+ `SUCCESS`— Pekerjaan shard-split berhasil diselesaikan. `message`Bidang berisi ID instance dari pecahan baru.
+ `FAILED`— Pekerjaan shard-split gagal. `message`Bidang berisi rincian kegagalan dan tindakan apa pun yang dapat diambil sebagai tindak lanjut dari pekerjaan yang gagal.

## Menyelesaikan pecahan pecahan
<a name="limitless-shard-split.finalize"></a>

Finalisasi adalah langkah terakhir dari proses shard-split. Ini menyebabkan beberapa downtime. Jika Anda memulai pekerjaan shard-split, maka finalisasi terjadi segera setelah pekerjaan selesai dengan sukses.

Terkadang sistem membagi pecahan berdasarkan beban kerja, saat Anda mengaktifkan pemisahan pecahan yang dimulai sistem dengan menggunakan parameter. `rds_aurora.limitless_enable_auto_scale`

Dalam hal ini, Anda dapat memilih apakah finalisasi terjadi segera, atau pada waktu yang Anda pilih. Anda menggunakan parameter cluster `rds_aurora.limitless_finalize_split_shard_mode` DB untuk memilih kapan itu terjadi:
+ Jika Anda menetapkan nilainya`immediate`, itu terjadi segera.
+ Jika Anda menetapkan nilainya`user_initiated`, Anda harus menyelesaikan pekerjaan shard-split secara manual.

  Acara RDS dikirimkan kepada Anda, dan status pekerjaan shard-split diatur ke. `PENDING`

Saat disetel ke`user_initiated`, Anda menggunakan `rds_aurora.limitless_finalize_split_shard` fungsi untuk menyelesaikan pekerjaan shard-split:

```
SELECT * FROM rds_aurora.limitless_finalize_split_shard(job_id);
```

**catatan**  
Fungsi ini hanya berlaku untuk pecahan pecahan yang diprakarsai oleh sistem, bukan oleh Anda.

## Membatalkan pecahan pecahan
<a name="limitless-shard-split.cancel"></a>

Anda dapat membatalkan pemisahan pecahan yang diprakarsai pengguna atau yang diprakarsai sistem yaitu atau. `IN_PROGRESS` `PENDING` Anda memerlukan ID pekerjaan untuk membatalkannya.

```
SELECT * from rds_aurora.limitless_cancel_shard_scale_jobs(job_id);
```

Tidak ada output yang dikembalikan kecuali ada kesalahan. Anda dapat melacak pembatalan menggunakan kueri pelacakan pekerjaan.