

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

# Masalah umum dan batasan untuk Amazon RDS for MySQL
<a name="MySQL.KnownIssuesAndLimitations"></a>

Berikut ini adalah masalah umum dan batasan untuk menggunakan Amazon RDS for MySQL.

**Topics**
+ [Kata yang dicadangkan InnoDB](#MySQL.Concepts.KnownIssuesAndLimitations.InnodbDatabaseName)
+ [Perilaku penyimpanan penuh untuk Amazon RDS for MySQL](#MySQL.Concepts.StorageFullBehavior)
+ [Ukuran pool buffer InnoDB tidak konsisten](#MySQL.Concepts.KnownIssuesAndLimitations.InnodbBufferPoolSize)
+ [Pengoptimalan penggabungan indeks memberikan hasil yang salah](#MySQL.Concepts.KnownIssuesAndLimitations.IndexMergeOptimization)
+ [Pengecualian parameter MySQL untuk instans DB Amazon RDS](#MySQL.Concepts.ParameterNotes)
+ [Batas ukuran file MySQL di Amazon RDS](#MySQL.Concepts.Limits.FileSize)
+ [Plugin Keyring MySQL tidak didukung](#MySQL.Concepts.Limits.KeyRing)
+ [Port kustom](#MySQL.Concepts.KnownIssuesAndLimitations.CustomPorts)
+ [Batasan prosedur tersimpan MySQL](#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures)
+ [Replikasi berbasis GTID dengan instans sumber eksternal](#MySQL.Concepts.KnownIssuesAndLimitations.GTID)
+ [Plugin otentikasi default MySQL](#MySQL.Concepts.KnownIssuesAndLimitations.authentication-plugin)
+ [Mengesampingkan innodb\$1buffer\$1pool\$1size](#MySQL.Concepts.KnownIssuesAndLimitations.innodb-bp-size)
+ [Upgrade dari MySQL 5.7 ke MySQL 8.4](#MySQL.Concepts.KnownIssuesAndLimitations.upgrade-8-4)
+ [Kompresi halaman InnoDB](#MySQL.Concepts.KnownIssuesAndLimitations.innodb-page-compression)

## Kata yang dicadangkan InnoDB
<a name="MySQL.Concepts.KnownIssuesAndLimitations.InnodbDatabaseName"></a>

`InnoDB` adalah kata yang dicadangkan untuk RDS for MySQL. Anda tidak dapat menggunakan nama ini untuk basis data MySQL.

## Perilaku penyimpanan penuh untuk Amazon RDS for MySQL
<a name="MySQL.Concepts.StorageFullBehavior"></a>

Ketika penyimpanan menjadi penuh untuk instans DB MySQL, terkadang akan ada inkonsistensi metadata, ketidaksesuaian kamus, dan tabel orphan. Untuk mencegah masalah ini, Amazon RDS secara otomatis menghentikan instans DB yang mencapai status `storage-full`.

Instans DB MySQL mencapai status `storage-full` dalam kasus berikut:
+ Instans DB memiliki penyimpanan kurang dari 20.000 MiB, dan penyimpanan yang tersedia mencapai 200 MiB atau kurang.
+ Instans DB memiliki penyimpanan lebih dari 102.400 MiB, dan penyimpanan yang tersedia mencapai 1024 MiB atau kurang.
+ Instans DB memiliki penyimpanan antara 20.000 MiB dan 102.400 MiB, dan memiliki kurang dari 1% dari penyimpanan yang tersedia.

Setelah Amazon RDS menghentikan instans DB secara otomatis karena mencapai status `storage-full`, Anda masih dapat memodifikasinya. Untuk memulai ulang instans DB, selesaikan setidaknya salah satu hal berikut:
+ Modifikasi instans DB untuk mengaktifkan penskalaan otomatis penyimpanan.

  Untuk informasi selengkapnya tentang penskalaan otomatis penyimpanan, lihat [Mengelola kapasitas secara otomatis dengan penskalaan otomatis penyimpanan Amazon RDS](USER_PIOPS.Autoscaling.md).
+ Modifikasi instans DB untuk meningkatkan kapasitas penyimpanan.

  Untuk informasi selengkapnya tentang peningkatan kapasitas penyimpanan, lihat [Meningkatkan kapasitas penyimpanan instans DB](USER_PIOPS.ModifyingExisting.md).

Setelah Anda melakukan salah satu perubahan ini, instans DB dimulai ulang secara otomatis. Untuk informasi tentang memodifikasi instans DB, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

## Ukuran pool buffer InnoDB tidak konsisten
<a name="MySQL.Concepts.KnownIssuesAndLimitations.InnodbBufferPoolSize"></a>

Untuk MySQL 5.7, saat ini terdapat bug dalam cara pengelolaan ukuran pool buffer. MySQL 5.7 mungkin menyesuaikan nilai parameter `innodb_buffer_pool_size` ke nilai yang besar yang dapat mengakibatkan pool buffer InnoDB tumbuh terlalu besar dan menggunakan terlalu banyak memori. Efek ini dapat menyebabkan mesin basis data MySQL berhenti berjalan atau dapat mencegahnya untuk menyala. Masalah ini lebih umum untuk kelas instans DB yang memiliki memori lebih sedikit.

Untuk mengatasi masalah ini, tetapkan nilai parameter `innodb_buffer_pool_size` ke beberapa produk nilai parameter `innodb_buffer_pool_instances` dan nilai parameter `innodb_buffer_pool_chunk_size`. Misalnya, Anda dapat mengatur nilai parameter `innodb_buffer_pool_size` ke beberapa kali delapan kali lipat produk nilai parameter `innodb_buffer_pool_instances` dan `innodb_buffer_pool_chunk_size`, seperti yang ditunjukkan dalam contoh berikut.

```
innodb_buffer_pool_chunk_size = 536870912
innodb_buffer_pool_instances = 4
innodb_buffer_pool_size = (536870912 * 4) * 8 = 17179869184
```

[Untuk detail tentang bug MySQL 5.7 ini, lihat /bug.php? https://bugs.mysql.com id=79379 dalam dokumentasi MySQL](https://bugs.mysql.com/bug.php?id=79379). 

## Pengoptimalan penggabungan indeks memberikan hasil yang salah
<a name="MySQL.Concepts.KnownIssuesAndLimitations.IndexMergeOptimization"></a>

Kueri yang menggunakan pengoptimalan gabungan indeks mungkin mengembalikan hasil yang salah karena bug di pengoptimal kueri MySQL yang diperkenalkan di MySQL 5.5.37. Saat Anda mengeluarkan kueri terhadap tabel dengan beberapa indeks, pengoptimal memindai rentang baris berdasarkan beberapa indeks, tetapi tidak menggabungkan hasil bersama-sama dengan benar. Untuk informasi selengkapnya tentang bug pengoptimal kueri, lihat [http://bugs.mysql.com/bug.php?id=72745](https://bugs.mysql.com/bug.php?id=72745) dan [http://bugs.mysql.com/bug.php?id=68194](https://bugs.mysql.com/bug.php?id=68194) di basis data bug MySQL. 

Misalnya, pertimbangkan kueri pada tabel dengan dua indeks di mana argumen pencarian mereferensikan kolom yang diindeks. 

```
1. SELECT * FROM table1
2. WHERE indexed_col1 = 'value1' AND indexed_col2 = 'value2';
```

Dalam kasus ini, mesin pencari akan mencari kedua indeks. Namun, karena bug, hasil gabungan tidak benar. 

Untuk mengatasi masalah ini, Anda dapat melakukan salah satu dari yang berikut: 
+ Tetapkan parameter `optimizer_switch` ke `index_merge=off` di grup parameter DB untuk instans DB MySQL Anda. Untuk informasi tentang pengaturan parameter grup parameter DB, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).
+ Tingkatkan instans DB MySQL Anda ke MySQL versi 5.7 atau 8.0. Untuk informasi selengkapnya, lihat [Upgrade RDS untuk mesin MySQL DB](USER_UpgradeDBInstance.MySQL.md). 
+ Jika Anda tidak dapat meningkatkan instans Anda atau mengubah parameter `optimizer_switch`, Anda dapat mengatasi bug dengan mengidentifikasi indeks untuk kueri secara eksplisit, misalnya: 

  ```
  1. SELECT * FROM table1
  2. USE INDEX covering_index
  3. WHERE indexed_col1 = 'value1' AND indexed_col2 = 'value2';
  ```

Untuk informasi selengkapnya, lihat [Index merge optimization](https://dev.mysql.com/doc/refman/8.0/en/index-merge-optimization.html) dalam dokumentasi MySQL. 

## Pengecualian parameter MySQL untuk instans DB Amazon RDS
<a name="MySQL.Concepts.ParameterNotes"></a>

Beberapa parameter MySQL memerlukan pertimbangan khusus saat digunakan dengan instans DB Amazon RDS.

### lower\$1case\$1table\$1names
<a name="MySQL.Concepts.ParameterNotes.lower-case-table-names"></a>

Karena Amazon RDS menggunakan sistem file yang peka huruf besar/kecil, pengaturan nilai parameter server `lower_case_table_names` menjadi 2 (nama disimpan seperti yang diberikan tetapi dibandingkan dalam huruf kecil) tidak didukung. Berikut adalah nilai yang didukung untuk instans DB Amazon RDS for MySQL:
+ 0 (nama yang disimpan seperti yang diberikan dan perbandingan peka terhadap huruf besar-kecil) didukung untuk semua versi RDS for MySQL.
+ 1 (nama yang disimpan dalam huruf kecil dan perbandingan tidak peka huruf besar/kecil) didukung untuk RDS untuk MySQL versi 5.7, versi 8.0.28 dan versi 8.0 yang lebih tinggi, dan versi 8.4.

Atur parameter `lower_case_table_names` di dalam grup parameter DB kustom sebelum membuat instans DB. Kemudian, tentukan grup parameter DB kustom ketika Anda membuat instans DB.

Ketika grup parameter dikaitkan dengan instans DB MySQL dengan versi di bawah 8.0, kami sarankan Anda tidak mengubah parameter `lower_case_table_names` di dalam grup parameter. Mengubahnya dapat menyebabkan ketidakkonsistenan dengan cadangan point-in-time pemulihan dan membaca instance replika DB.

Ketika grup parameter dikaitkan dengan instance MySQL DB versi 8.0 atau 8.4, Anda tidak dapat memodifikasi parameter dalam `lower_case_table_names` grup parameter.

Replika baca harus selalu menggunakan nilai parameter `lower_case_table_names` yang sama dengan instans DB sumber. 

### long\$1query\$1time
<a name="MySQL.Concepts.ParameterNotes.long_query_time"></a>

Anda dapat menyetel parameter `long_query_time` ke nilai titik mengambang sehingga Anda dapat mencatatkan kueri lambat ke log kueri lambat MySQL dengan resolusi mikrodetik. Anda dapat mengatur nilai seperti 0,1 detik, yang akan menjadi 100 milidetik, untuk memudahkan debugging transaksi lambat yang membutuhkan waktu kurang dari satu detik. 

## Batas ukuran file MySQL di Amazon RDS
<a name="MySQL.Concepts.Limits.FileSize"></a>

Untuk MySQL versi 8.0 dan instans DB yang lebih tinggi, ukuran file maksimum adalah 16 TiB. Saat menggunakan file-per-table tablespaces, ukuran file maksimum membatasi ukuran tabel InnoDB hingga 16 TiB. file-per-tableRuang tabel InnoDB (dengan tabel masing-masing di tablespace mereka sendiri) diatur secara default untuk instance MySQL DB. Untuk informasi selengkapnya, lihat [Batas InnoDB dalam dokumentasi](https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html) MySQL.

**catatan**  
Beberapa instans DB yang ada memiliki batas yang lebih rendah. Misalnya, instans DB MySQL yang dibuat sebelum April 2014 memiliki batas ukuran file dan tabel 2 TB. Batas ukuran file 2 TB ini juga berlaku untuk instans DB atau replika baca yang dibuat dari snapshot DB yang diambil sebelum April 2014, terlepas dari kapan instans DB dibuat.

Ada keuntungan dan kerugian untuk menggunakan InnoDB file-per-table tablespaces, tergantung pada aplikasi Anda. Untuk menentukan pendekatan terbaik untuk aplikasi Anda, lihat [File-per-table tablespace dalam dokumentasi](https://dev.mysql.com/doc/refman/8.0/en/innodb-file-per-table-tablespaces.html) MySQL. 

Kami tidak menyarankan Anda membiarkan tabel berkembang hingga ukuran file maksimum. Secara umum, praktik yang lebih baik adalah membagi data menjadi tabel yang lebih kecil, yang dapat meningkatkan waktu performa dan pemulihan. 

Salah satu opsi yang dapat Anda gunakan untuk memecah tabel ke dalam tabel yang lebih kecil adalah partisi. Partisi mendistribusikan porsi tabel besar ke dalam file terpisah berdasarkan aturan yang Anda tentukan. Misalnya, jika menyimpan transaksi berdasarkan tanggal, Anda dapat membuat aturan partisi yang mendistribusikan transaksi lama ke dalam file terpisah menggunakan partisi. Kemudian, Anda secara berkala dapat mengarsipkan data transaksi historis yang tidak diperlukan aplikasi Anda. Untuk informasi selengkapnya, lihat [Partitioning](https://dev.mysql.com/doc/refman/8.0/en/partitioning.html) dalam dokumentasi MySQL. 

Karena tidak ada tabel sistem atau tampilan tunggal yang menyediakan ukuran semua tabel dan ruang tabel sistem InnoDB, Anda harus mengueri beberapa tabel untuk menentukan ukuran ruang tabelnya.

**Untuk menentukan ukuran ruang tabel sistem InnoDB dan ruang tabel kamus data**
+ Gunakan perintah SQL berikut untuk menentukan apakah ada ruang tabel Anda yang terlalu besar dan merupakan kandidat untuk partisi. 
**catatan**  
Ruang tabel kamus data khusus untuk MySQL 8.0 dan versi yang lebih tinggi.

  ```
  1. select FILE_NAME,TABLESPACE_NAME, ROUND(((TOTAL_EXTENTS*EXTENT_SIZE)
  2. /1024/1024/1024), 2)  as "File Size (GB)" from information_schema.FILES
  3. where tablespace_name in ('mysql','innodb_system');
  ```

**Untuk menentukan ukuran tabel pengguna InnoDB di luar ruang tabel sistem InnoDB (untuk versi MySQL 5.7)**
+ Gunakan perintah SQL berikut untuk menentukan apakah salah satu tabel Anda terlalu besar dan merupakan kandidat untuk partisi.

  ```
  1. SELECT SPACE,NAME,ROUND((ALLOCATED_SIZE/1024/1024/1024), 2)
  2. as "Tablespace Size (GB)"
  3. FROM information_schema.INNODB_SYS_TABLESPACES ORDER BY 3 DESC;
  ```

**Untuk menentukan ukuran tabel pengguna InnoDB di luar tablespace sistem InnoDB (untuk MySQL 8.0 dan versi yang lebih tinggi)**
+ Gunakan perintah SQL berikut untuk menentukan apakah salah satu tabel Anda terlalu besar dan merupakan kandidat untuk partisi.

  ```
  1. SELECT SPACE,NAME,ROUND((ALLOCATED_SIZE/1024/1024/1024), 2)
  2. as "Tablespace Size (GB)"
  3. FROM information_schema.INNODB_TABLESPACES ORDER BY 3 DESC;
  ```

**Untuk menentukan ukuran tabel pengguna non-InnoDB**
+ Gunakan perintah SQL berikut untuk menentukan apakah ada tabel pengguna non-InnoDB Anda yang terlalu besar.

  ```
  SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH+DATA_FREE)
  / 1024 / 1024/ 1024), 2) As "Approximate size (GB)" FROM information_schema.TABLES
  WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema')
  and ENGINE<>'InnoDB';
  ```

**Untuk mengaktifkan ruang meja file-per-table InnoDB**
+ Setel parameter *innodb\$1file\$1per\$1table* ke `1` di dalam grup parameter untuk instans DB. 

**Untuk menonaktifkan ruang meja file-per-table InnoDB**
+ Setel parameter *innodb\$1file\$1per\$1table* ke `0` di dalam grup parameter untuk instans DB.

Untuk informasi tentang pembaruan grup parameter, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md). 

Bila Anda telah mengaktifkan atau menonaktifkan file-per-table ruang tabel InnoDB, Anda dapat mengeluarkan `ALTER TABLE` perintah untuk memindahkan tabel dari tablespace global ke tablespace sendiri, atau dari tablespace sendiri ke tablespace global seperti yang ditunjukkan pada contoh berikut: 

```
ALTER TABLE table_name TABLESPACE=innodb_file_per_table;
```

## Plugin Keyring MySQL tidak didukung
<a name="MySQL.Concepts.Limits.KeyRing"></a>

Saat ini, Amazon RDS for MySQL tidak mendukung Plugin Keyring Amazon Web Services `keyring_aws` MySQL.

## Port kustom
<a name="MySQL.Concepts.KnownIssuesAndLimitations.CustomPorts"></a>

Amazon RDS memblokir koneksi ke port kustom 33060 untuk mesin MySQL. Pilih port yang berbeda untuk mesin MySQL Anda.

## Batasan prosedur tersimpan MySQL
<a name="MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures"></a>

Prosedur tersimpan [mysql.rds\$1kill](mysql-stored-proc-ending.md#mysql_rds_kill) dan [mysql.rds\$1kill\$1query](mysql-stored-proc-ending.md#mysql_rds_kill_query) tidak dapat mengakhiri sesi atau kueri yang dimiliki oleh pengguna MySQL dengan nama pengguna lebih dari 16 karakter pada versi RDS for MySQL berikut:
+ 8.0.32 dan versi 8 yang lebih rendah
+ 5.7.41 dan versi 5.7 yang lebih rendah

## Replikasi berbasis GTID dengan instans sumber eksternal
<a name="MySQL.Concepts.KnownIssuesAndLimitations.GTID"></a>

Amazon RDS mendukung replikasi berdasarkan pengidentifikasi transaksi global (GTIDs) dari instance MySQL eksternal ke instans Amazon RDS for MySQL DB yang memerlukan pengaturan GTID\$1PURGED selama konfigurasi. Namun, hanya RDS untuk MySQL 8.0.37 dan versi yang lebih tinggi yang mendukung fungsi ini.

## Plugin otentikasi default MySQL
<a name="MySQL.Concepts.KnownIssuesAndLimitations.authentication-plugin"></a>

RDS untuk MySQL versi 8.0.34 dan versi 8.0 yang lebih tinggi menggunakan plugin. `mysql_native_password` Anda tidak dapat mengubah pengaturan `default_authentication_plugin`.

RDS untuk MySQL versi 8.4 dan versi yang lebih tinggi menggunakan plugin sebagai plugin otentikasi `caching_sha2_password` default. Anda dapat mengubah plugin otentikasi default untuk MySQL 8.4. `mysql_native_password`Plugin ini masih bekerja dengan MySQL 8.4, tetapi dukungan plugin ini berakhir dengan MySQL 8.4. Untuk mengubah plugin otentikasi default, buat grup parameter khusus dan ubah nilai `authentication_policy` parameter. Untuk informasi selengkapnya, lihat [Grup parameter kustom dan default](parameter-groups-overview.md#parameter-groups-overview.custom). 

## Mengesampingkan innodb\$1buffer\$1pool\$1size
<a name="MySQL.Concepts.KnownIssuesAndLimitations.innodb-bp-size"></a>

Dengan kelas instans DB mikro atau kecil, nilai default untuk `innodb_buffer_pool_size` parameter mungkin berbeda dari nilai yang dikembalikan dengan menjalankan perintah berikut: 

```
mysql> SELECT @@innodb_buffer_pool_size;
```

Perbedaan ini dapat terjadi ketika Amazon RDS perlu mengganti nilai default sebagai bagian dari pengelolaan kelas instans DB. Jika perlu, Anda dapat mengganti nilai default dan mengaturnya ke nilai yang didukung oleh kelas instans DB Anda. Untuk menentukan nilai yang valid, tambahkan penggunaan memori dan total memori yang tersedia pada instans DB Anda. Untuk informasi selengkapnya, lihat [jenis instans Amazon RDS](https://aws.amazon.com/rds/instance-types/).

Jika instans DB Anda hanya memiliki 4 GB memori, Anda tidak dapat mengatur `innodb_buffer_pool_size` ke 8 GB tetapi Anda mungkin dapat mengaturnya ke 3 GB, tergantung pada berapa banyak memori yang Anda alokasikan untuk parameter lain.

Jika nilai yang Anda masukkan terlalu besar, Amazon RDS menurunkan nilainya ke batas berikut:
+ Kelas instans DB mikro: 256 MB
+ db.t4g.micro kelas instans DB: 128 MB

## Upgrade dari MySQL 5.7 ke MySQL 8.4
<a name="MySQL.Concepts.KnownIssuesAndLimitations.upgrade-8-4"></a>

Anda tidak dapat meng-upgrade langsung dari MySQL 5.7 ke MySQL 8.4. Anda harus terlebih dahulu meng-upgrade dari MySQL 5.7 ke MySQL 8.0, dan kemudian upgrade dari MySQL 8.0 ke MySQL 8.4. Untuk informasi selengkapnya, lihat [Upgrade versi utama untuk RDS untuk MySQL](USER_UpgradeDBInstance.MySQL.Major.md).

## Kompresi halaman InnoDB
<a name="MySQL.Concepts.KnownIssuesAndLimitations.innodb-page-compression"></a>

Kompresi halaman InnoDB tidak berfungsi dengan instans Amazon RDS DB yang memiliki ukuran blok sistem file 16k karena ukuran blok sistem file harus lebih kecil dari ukuran halaman InnoDB. Mulai Februari 2024, semua instans DB yang baru dibuat memiliki ukuran blok sistem file 16k, yang meningkatkan throughput dan mengurangi konsumsi IOPS selama pembilasan halaman.