

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

# Pembaruan mesin database untuk Amazon Aurora My SQL
<a name="AuroraMySQL.Updates"></a><a name="mysql_relnotes"></a>

Amazon Aurora merilis pembaruan secara berkala. Pembaruan diterapkan pada klaster Aurora DB selama periode pemeliharaan sistem. Pengaturan waktu saat pembaruan diterapkan tergantung pada wilayah dan pengaturan periode pemeliharaan untuk klaster DB, serta jenis pembaruannya. 

Rilis Amazon Aurora tersedia untuk semua AWS Wilayah selama beberapa hari. Untuk sementara waktu, beberapa Wilayah mungkin menampilkan versi mesin yang belum tersedia di Wilayah lain.

 Pembaruan diterapkan ke semua instans dalam klaster DB pada saat yang sama. Pembaruan memerlukan pengaktifan ulang basis data di semua instans dalam klaster DB, sehingga Anda akan mengalami waktu henti 20 hingga 30 detik. Setelah itu, Anda dapat melanjutkan menggunakan klaster DB Anda. Anda dapat melihat atau mengubah pengaturan jendela pemeliharaan dari [Konsol Manajemen AWS](https://console.aws.amazon.com/). 

Untuk detail tentang Aurora SQL versi Saya yang didukung oleh Amazon Aurora, lihat [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). SQL

 Setelah itu, Anda dapat mempelajari cara memilih SQL versi Aurora My yang tepat untuk klaster Anda, cara menentukan versi saat Anda membuat atau memutakhirkan cluster, dan prosedur untuk meningkatkan cluster dari satu versi ke versi lainnya dengan gangguan minimal. 

**Topics**
+ [Memeriksa Aurora Nomor versi saya SQL](AuroraMySQL.Updates.Versions.md)
+ [Dukungan jangka panjang (LTS) dan rilis beta untuk Amazon Aurora MySQL](AuroraMySQL.Update.SpecialVersions.md)
+ [Mempersiapkan Amazon Aurora MySQL-kompatibel Edition versi 2 akhir dukungan standar](Aurora.MySQL57.EOL.md)
+ [Mempersiapkan Amazon Aurora My SQL -Compatible Edition versi 1 akhir hayat](Aurora.MySQL56.EOL.md)
+ [Memutakhirkan Amazon Aurora SQL My DB cluster](AuroraMySQL.Updates.Upgrading.md)
+ [Pembaruan dan perbaikan mesin database untuk Amazon Aurora MySQL](AuroraMySQL.Updates.RN.md)

# Memeriksa Aurora Nomor versi saya SQL
<a name="AuroraMySQL.Updates.Versions"></a>

 Meskipun Aurora My SQL -Compatible Edition kompatibel dengan mesin SQL database Saya, Aurora My SQL menyertakan fitur dan perbaikan bug yang khusus untuk versi Aurora My tertentu. SQL Pengembang aplikasi dapat memeriksa SQL versi Aurora My di aplikasi mereka dengan menggunakan. SQL Administrator database dapat memeriksa dan menentukan versi Aurora SQL My saat membuat atau memutakhirkan cluster Aurora SQL My DB dan instans DB. 

**Topics**
+ [Memeriksa atau menentukan versi Aurora SQL My engine melalui AWS](#AuroraMySQL.Updates.EngineVersions)
+ [Memeriksa Aurora Versi saya menggunakan SQL SQL](#AuroraMySQL.Updates.DBVersions)

## Memeriksa atau menentukan versi Aurora SQL My engine melalui AWS
<a name="AuroraMySQL.Updates.EngineVersions"></a>

 Saat Anda melakukan tugas administratif menggunakan,, atau Konsol Manajemen AWS AWS CLI RDSAPI, Anda menentukan SQL versi Aurora My dalam format alfanumerik deskriptif. 

 Dimulai dengan Aurora My SQL versi 2, versi mesin Aurora memiliki sintaks berikut. 

```
mysql-major-version.mysql_aurora.aurora-mysql-version
```

 Bagian `mysql-major-version-` adalah `5.7` atau `8.0`. Nilai ini mewakili versi protokol klien dan tingkat umum dukungan SQL fitur Saya untuk Aurora versi Saya SQL yang sesuai. 

 `aurora-mysql-version`Ini adalah nilai putus-putus dengan tiga bagian: Aurora My SQL major version, Aurora My SQL minor version, dan patch level. Versi mayor adalah `2` atau `3`. Nilai-nilai tersebut mewakili Aurora My SQL kompatibel dengan My SQL 5.7 atau 8.0, masing-masing. Versi minor merepresentasikan rilis fitur dalam seri 2.x atau 3.x. Tingkat patch dimulai dari `0` untuk setiap versi minor, dan merepresentasikan serangkaian perbaikan bug berikutnya yang berlaku untuk versi minor. Terkadang, fitur baru disertakan ke dalam versi minor, tetapi tidak segera terlihat. Dalam hal ini, fitur tersebut mendapatkan penyesuaian dan diterbitkan di tingkat patch berikutnya. 

Semua versi 2.x Aurora SQL My engine kompatibel dengan kabel dengan Community SQL My 5.7.12 atau lebih tinggi. Semua versi 3.x Aurora SQL My engine kompatibel dengan kabel dengan SQL My 8.0.23 atau lebih tinggi. Anda dapat merujuk ke catatan rilis versi 3.x tertentu untuk menemukan versi SQL kompatibel Saya yang sesuai.

Misalnya, versi mesin untuk Aurora My SQL 3.04.0 dan 2.11.2 adalah sebagai berikut.

```
8.0.mysql_aurora.3.04.0
5.7.mysql_aurora.2.11.2
```

**catatan**  
Tidak ada one-to-one korespondensi antara versi Komunitas Saya dan SQL versi Aurora SQL My 2.x. Untuk Aurora My SQL versi 3, ada pemetaan yang lebih langsung. *Untuk memeriksa perbaikan bug dan fitur baru yang ada di Aurora Rilis SQL saya tertentu, [lihat Pembaruan mesin database untuk Amazon Aurora Versi saya 3 dan pembaruan mesin Database untuk Amazon Aurora Versi SQL saya](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) [2 di Catatan Rilis untuk Aurora Milik SQL Saya](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.20Updates.html). SQL* Untuk daftar kronologis fitur dan rilis baru, lihat [Riwayat dokumen](WhatsNew.md). *Untuk memeriksa versi minimum yang diperlukan untuk perbaikan terkait keamanan, lihat [Kerentanan keamanan diperbaiki di Aurora Milik di Catatan Rilis untuk Aurora SQL Milik Saya](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.CVE_list.html). SQL*

Anda menentukan versi Aurora My SQL engine di beberapa AWS CLI perintah dan RDS API operasi. Misalnya, Anda menentukan `--engine-version` opsi ketika Anda menjalankan AWS CLI perintah [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)dan [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html). Anda menentukan `EngineVersion` parameter ketika Anda menjalankan RDS API operasi [C reateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) dan [M odifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html).

Di Aurora My SQL versi 2 dan lebih tinggi, versi mesin di Konsol Manajemen AWS juga menyertakan versi Aurora. Peningkatan klaster akan mengubah nilai yang ditampilkan. Perubahan ini membantu Anda menentukan dan memeriksa SQL versi Aurora My yang tepat, tanpa perlu terhubung ke cluster atau menjalankan perintah apa punSQL.

**Tip**  
Untuk cluster Aurora yang dikelola melalui CloudFormation, perubahan dalam `EngineVersion` pengaturan ini dapat memicu tindakan oleh. CloudFormation Untuk informasi tentang cara CloudFormation memperlakukan perubahan pada `EngineVersion` setelan, lihat [CloudFormation dokumentasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html).

## Memeriksa Aurora Versi saya menggunakan SQL SQL
<a name="AuroraMySQL.Updates.DBVersions"></a>

 Nomor versi Aurora yang dapat Anda ambil dalam aplikasi Anda menggunakan SQL kueri menggunakan format. `<major version>.<minor version>.<patch version>` Anda bisa mendapatkan nomor versi ini untuk instans DB apa pun di SQL cluster Aurora My Anda dengan menanyakan variabel sistem`AURORA_VERSION`. Untuk mendapatkan nomor versi ini, gunakan salah satu kueri berikut. 

```
select aurora_version();
select @@aurora_version;
```

 Kueri tersebut menghasilkan output seperti yang berikut ini. 

```
mysql> select aurora_version(), @@aurora_version;
+------------------+------------------+
| aurora_version() | @@aurora_version |
+------------------+------------------+
| 3.05.2           | 3.05.2           |
+------------------+------------------+
```

 Nomor versi yang konsol,CLI, dan RDS API kembali dengan menggunakan teknik yang dijelaskan dalam [Memeriksa atau menentukan versi Aurora SQL My engine melalui AWS](#AuroraMySQL.Updates.EngineVersions) biasanya lebih deskriptif.

# Dukungan jangka panjang (LTS) dan rilis beta untuk Amazon Aurora MySQL
<a name="AuroraMySQL.Update.SpecialVersions"></a>

Aurora MySQL menyediakan dukungan jangka panjang (LTS) dan rilis beta untuk beberapa versi mesin Aurora MySQL. 

**Topics**
+ [Rilis dukungan jangka panjang (LTS) Aurora MySQL](#AuroraMySQL.Updates.LTS)
+ [Rilis beta Aurora MySQL](#AuroraMySQL.Updates.Beta)

## Rilis dukungan jangka panjang (LTS) Aurora MySQL
<a name="AuroraMySQL.Updates.LTS"></a>

Setiap Aurora MySQL versi baru akan tetap tersedia selama waktu tertentu untuk Anda gunakan saat membuat atau meningkatkan klaster DB. Setelah periode ini, Anda harus meningkatkan klaster yang menggunakan versi tersebut. Anda dapat meningkatkan klaster secara manual sebelum periode dukungan berakhir, atau Aurora dapat meningkatkan-nya secara otomatis untuk Anda saat versi Aurora MySQL-nya tidak lagi didukung.

Aurora menetapkan versi Aurora MySQL tertentu sebagai rilis dukungan jangka panjang (LTS). Klaster DB yang menggunakan rilis LTS dapat bertahan pada versi yang sama lebih lama dan menjalani siklus peningkatan yang lebih sedikit dibandingkan klaster yang menggunakan rilis non-LTS. Cluster database yang menggunakan rilis LTS dapat tetap pada versi minor yang sama setidaknya selama tiga tahun, atau sampai akhir dukungan standar untuk versi mayor, mana yang lebih dulu. Ketika klaster DB yang menggunakan rilis LTS harus ditingkatkan, Aurora akan meningkatkan-nya ke rilis LTS berikutnya. Dengan demikian, klaster ini tidak perlu ditingkatkan lagi dalam jangka waktu lama.

Selama masa rilis LTS Aurora MySQL, tingkat patch baru memperkenalkan perbaikan untuk masalah penting. Tingkat patch tidak mencakup fitur baru apa pun. Anda dapat memilih untuk menerapkan patch tersebut ke klaster DB yang menjalankan rilis LTS. Kami merekomendasikan pelanggan yang menjalankan rilis LTS untuk meningkatkan ke rilis patch terbaru dari versi minor LTS setidaknya setahun sekali untuk memanfaatkan keamanan tingkat keparahan tinggi dan perbaikan operasional. Untuk perbaikan kritis tertentu, Amazon mungkin akan melakukan peningkatan terkelola ke sebuah tingkat patch dalam rilis LTS yang sama. Peningkatan terkelola tersebut dilakukan secara otomatis dalam periode pemeliharaan klaster. Semua rilis Aurora MySQL (baik rilis LTS dan non-LTS) menjalani stabilitas ekstensif dan pengujian operasional. Versi minor tertentu ditetapkan sebagai rilis LTS untuk memungkinkan pelanggan tetap menggunakan versi minor tersebut lebih lama tanpa meningkatkan ke versi minor yang lebih baru. 

Kami menyarankan agar Anda meningkatkan ke rilis terbaru, bukan menggunakan rilis LTS, untuk sebagian besar klaster Aurora MySQL Anda. Dengan menerapkan patch tersebut, Aurora dapat dimanfaatkan sebagai layanan terkelola serta memberi Anda akses ke fitur dan perbaikan bug terbaru. Rilis LTS ditujukan untuk klaster yang memiliki karakteristik berikut:
+ Anda tidak sanggup mengalami waktu henti pada aplikasi Aurora MySQL Anda untuk melakukan peningkatan di luar waktu-waktu terbatas yang biasanya ditujukan untuk patch kritis. 
+ Siklus pengujian untuk klaster dan aplikasi terkait membutuhkan waktu lama untuk setiap pembaruan ke mesin basis data Aurora MySQL. 
+ Versi basis data untuk klaster Aurora MySQL Anda memiliki semua fitur mesin DB dan perbaikan bug yang dibutuhkan aplikasi Anda.

Rilis LTS saat ini untuk Aurora MySQL adalah sebagai berikut:
+ Aurora MySQL versi 3.10.\$1. 
+ Aurora MySQL versi 3.04.\$1. 

Untuk detail selengkapnya tentang versi LTS, lihat [Pembaruan mesin basis data untuk Amazon Aurora MySQL versi 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) dalam *Catatan Rilis untuk Aurora MySQL*.

**catatan**  
Kami menyarankan Anda menonaktifkan upgrade versi minor otomatis untuk versi LTS. Setel `AutoMinorVersionUpgrade` parameter ke`false`, atau hapus kotak centang **Aktifkan pemutakhiran versi minor otomatis** pada Konsol Manajemen AWS.  
Jika Anda tidak menonaktifkannya, cluster DB Anda dapat ditingkatkan ke versi non-LTS.

## Rilis beta Aurora MySQL
<a name="AuroraMySQL.Updates.Beta"></a>

Rilis beta MySQL Aurora adalah rilis awal, perbaikan keamanan—hanya rilis dalam jumlah terbatas. Wilayah AWS Perbaikan ini kemudian di-deploy secara lebih luas ke semua Wilayah dengan rilis patch berikutnya.

Penomoran untuk rilis beta mirip dengan versi minor Aurora MySQL, tetapi dengan digit keempat tambahan, misalnya 2.12.0.1 atau 3.05.0.1.

Untuk informasi selengkapnya, lihat [Pembaruan mesin basis data untuk Amazon Aurora MySQL versi 2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.20Updates.html) dan [Pembaruan mesin basis data untuk Amazon Aurora MySQL versi 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) dalam *Catatan Rilis untuk Aurora MySQL*.

# Mempersiapkan Amazon Aurora MySQL-kompatibel Edition versi 2 akhir dukungan standar
<a name="Aurora.MySQL57.EOL"></a>

Amazon Aurora MySQL Compatible Edition versi 2 (dengan kompatibilitas MySQL 5.7) direncanakan akan mencapai akhir dukungan standar pada 31 Oktober 2024. Kami menyarankan Anda meningkatkan semua cluster yang menjalankan Aurora MySQL versi 2 ke default Aurora MySQL versi 3 (dengan kompatibilitas MySQL 8.0) atau lebih tinggi sebelum Aurora MySQL versi 2 mencapai akhir periode dukungan standarnya. Pada 31 Oktober 2024, Amazon RDS akan secara otomatis mendaftarkan database Anda ke [Amazon RDS](extended-support.md) Extended Support. Jika Anda menjalankan Amazon Aurora MySQL versi 2 (dengan kompatibilitas MySQL 5.7) dalam klaster versi 1, ini tidak berlaku untuk Anda. Aurora Serverless Jika Anda ingin memutakhirkan cluster Aurora Serverless versi 1 Anda ke Aurora MySQL versi 3, lihat. [Tingkatkan jalur untuk cluster Aurora Serverless v1 DB](#Aurora-Upgrade-Serverlessv1-Clusters)

Anda dapat menemukan end-of-support tanggal mendatang untuk versi utama Aurora MySQL di kalender Rilis [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.major](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.major) MySQL.

Jika Anda memiliki cluster yang menjalankan Aurora MySQL versi 2, Anda akan menerima pemberitahuan berkala dengan informasi terbaru tentang cara melakukan peningkatan saat kami mendekati akhir tanggal dukungan standar. Kami akan memperbarui halaman ini secara berkala dengan informasi terbaru.

## Akhir dari garis waktu dukungan standar
<a name="timeline"></a>

1. Sekarang hingga 31 Oktober 2024 – Anda dapat meningkatkan klaster dari Aurora MySQL versi 2 (dengan kompatibilitas MySQL 5.7) ke Aurora MySQL versi 3 (dengan kompatibilitas MySQL 8.0).

1. 31 Oktober 2024 — Pada tanggal ini, Aurora MySQL versi 2 akan mencapai akhir dukungan standar dan Amazon RDS secara otomatis mendaftarkan cluster Anda ke Amazon RDS Extended Support.

Kami akan secara otomatis mendaftarkan Anda di RDS Extended Support. Untuk informasi selengkapnya, lihat [Amazon RDS Extended Support dengan ](extended-support.md).

## Menemukan cluster yang terpengaruh oleh proses ini end-of-life
<a name="find-cluster"></a>

Untuk menemukan cluster yang terpengaruh oleh end-of-life proses ini, gunakan prosedur berikut.

**penting**  
Pastikan untuk melakukan instruksi ini di setiap Wilayah AWS dan untuk setiap Akun AWS tempat sumber daya Anda berada.

### Konsol
<a name="aurora-find-mysqlv1-cluster.CON"></a>

**Untuk menemukan klaster Aurora MySQL versi 2**

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 **Basis data**.

1.  Di kotak **Filter berdasarkan basis data**, masukkan **5.7**.

1. Periksa Aurora MySQL di kolom mesin.

### AWS CLI
<a name="aurora-find-mysqlv1-cluster.CLI"></a>

Untuk menemukan cluster yang terpengaruh oleh end-of-life proses ini menggunakan AWS CLI, panggil [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)perintah. Anda dapat menggunakan contoh skrip berikut.

**Example**  

```
aws rds describe-db-clusters --include-share --query 'DBClusters[?(Engine==`aurora-mysql` && contains(EngineVersion,`5.7.mysql_aurora`))].{EngineVersion:EngineVersion, DBClusterIdentifier:DBClusterIdentifier, EngineMode:EngineMode}' --output table --region us-east-1     
        
        +---------------------------------------------------------------+
        |                      DescribeDBClusters                       |
        +---------------------+---------------+-------------------------+
        |         DBCI        |      EM       |          EV             |
        +---------------------+---------------+-------------------------+
        |    aurora-mysql2    |  provisioned  | 5.7.mysql_aurora.2.11.3 |
        | aurora-serverlessv1 |   serverless  | 5.7.mysql_aurora.2.11.3 |
        +---------------------+---------------+-------------------------+
```

### API RDS
<a name="Aurora-find-mysqlv1-cluster.API"></a>

[Untuk menemukan cluster DB MySQL Aurora yang menjalankan Aurora MySQL versi 2, gunakan operasi RDS Describe API dengan parameter yang diperlukan berikut: DBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) 
+  `DescribeDBClusters`
  + Filters.Filter.N
    + Name
      + engine
    + Values.Value.N
      + ['aurora']

## Dukungan Amazon RDS yang Diperluas
<a name="Aurora-RDS-Extended-Support"></a>

Anda dapat menggunakan Amazon RDS Extended Support melalui komunitas MySQL 5.7 tanpa biaya hingga akhir tanggal dukungan, 31 Oktober 2024. Pada tanggal 31 Oktober 2024, Amazon RDS secara otomatis mendaftarkan database Anda ke RDS Extended Support untuk Aurora MySQL versi 2. RDS Extended Support for Aurora adalah layanan berbayar yang menyediakan hingga 28 bulan dukungan tambahan untuk Aurora MySQL versi 2 hingga akhir RDS Extended Support pada Februari 2027. Dukungan yang Diperluas RDS hanya akan ditawarkan untuk Aurora MySQL versi minor 2.11 dan 2.12. Untuk menggunakan Amazon Aurora MySQL versi 2 melewati akhir dukungan standar, rencanakan untuk menjalankan database Anda di salah satu versi minor ini sebelum 31 Oktober 2024.

Untuk informasi selengkapnya tentang RDS Extended Support, seperti biaya dan pertimbangan lainnya, lihat. [Amazon RDS Extended Support dengan ](extended-support.md)

## Melakukan upgrade
<a name="Aurora-Performing-an-Upgrade"></a>

Peningkatan antarversi mayor memerlukan perencanaan dan pengujian yang lebih ekstensif daripada versi minor. Prosesnya bisa memakan waktu yang cukup lama. Kami ingin menjelaskan peningkatan sebagai proses tiga langkah, dengan aktivitas sebelum peningkatan, selama peningkatan, dan setelah peningkatan.

**Sebelum peningkatan:**

Sebelum peningkatan, sebaiknya Anda memeriksa kompatibilitas aplikasi, performa, prosedur pemeliharaan, dan pertimbangan serupa untuk klaster yang ditingkatkan, sehingga akan mengonfirmasi bahwa setelah peningkatan, aplikasi Anda akan berfungsi seperti yang diharapkan. Berikut adalah lima rekomendasi yang akan membantu memberi Anda pengalaman peningkatan yang lebih baik.
+ Pertama, sangat penting untuk dipahami[Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence).
+ Selanjutnya, jelajahi teknik peningkatan yang tersedia saat[Upgrade dari Aurora MySQL versi 2 ke versi 3](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Updates.MajorVersionUpgrade.2to3).
+ Untuk membantu Anda memutuskan waktu dan pendekatan yang tepat untuk meningkatkan, Anda dapat mempelajari perbedaan antara Aurora MySQL versi 3 dan lingkungan Anda saat ini dengan. [Membandingkan Aurora SQL Versi saya 2 dan Aurora Versi saya 3 SQL](AuroraMySQL.Compare-v2-v3.md) 
+ Setelah Anda memutuskan opsi yang nyaman dan berfungsi paling baik, coba upgrade tiruan di tempat pada kloning kloning, gunakan. [Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning)
+ Tinjau[Pra-pemeriksaan peningkatan versi mayor untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.md). Pra-pemeriksa pemutakhiran dapat menjalankan dan menentukan apakah database Anda dapat ditingkatkan dengan sukses, dan jika ada masalah ketidakcocokan aplikasi pasca-peningkatan serta kinerja, prosedur pemeliharaan, dan pertimbangan serupa.
+ Tidak semua jenis atau versi klaster Aurora MySQL dapat menggunakan mekanisme peningkatan di tempat. Untuk informasi selengkapnya, lihat [Jalur peningkatan versi mayor Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Compatibility).

Jika Anda memiliki pertanyaan atau masalah, AWS Support Team tersedia di [forum komunitas](https://repost.aws/) dan [Premium Support](https://aws.amazon.com/premiumsupport/).

**Melakukan peningkatan:**

Anda dapat menggunakan salah satu teknik peningkatan berikut. Jumlah downtime yang akan dialami sistem Anda tergantung pada teknik yang dipilih.
+ **Penerapan Biru/Hijau** — Untuk situasi di mana prioritas utamanya adalah mengurangi waktu henti aplikasi, Anda dapat menggunakan [ Blue/Green Penyebaran Amazon RDS untuk melakukan peningkatan versi utama di kluster Amazon Aurora](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/) DB yang disediakan. blue/green Penerapan menciptakan lingkungan pementasan yang menyalin lingkungan produksi. Anda dapat membuat perubahan tertentu pada klaster DB Aurora di lingkungan green (staging) tanpa memengaruhi beban kerja produksi. Switchover biasanya memakan waktu kurang dari satu menit tanpa kehilangan data. Untuk informasi selengkapnya, lihat [Ikhtisar Amazon Blue/Green Aurora](blue-green-deployments-overview.md). Hal ini meminimalkan waktu henti, tetapi mengharuskan Anda untuk menjalankan sumber daya tambahan saat melakukan peningkatan.
+ **Upgrade di tempat — Anda dapat melakukan upgrade** [di tempat di mana](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) Aurora secara otomatis melakukan proses precheck untuk Anda, membuat cluster offline, mencadangkan cluster Anda, melakukan upgrade, dan menempatkan cluster Anda kembali online. Upgrade versi utama di tempat dapat dilakukan dalam beberapa klik, dan tidak melibatkan koordinasi atau kegagalan lain dengan cluster lain, tetapi melibatkan downtime. Untuk informasi selengkapnya, lihat [Cara melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md)
+ **Pemulihan snapshot** - Anda dapat meningkatkan cluster Aurora MySQL versi 2 Anda dengan memulihkan dari snapshot Aurora MySQL versi 2 ke cluster Aurora MySQL versi 3. Untuk melakukannya, Anda harus mengikuti proses untuk mengambil snapshot dan [memulihkannya](aurora-restore-snapshot.md). Proses ini melibatkan gangguan database karena Anda memulihkan dari snapshot.

**Setelah peningkatan:**

Setelah upgrade, Anda perlu memonitor sistem Anda (aplikasi dan database) dan membuat perubahan fine-tuning jika perlu. Mengikuti langkah-langkah pra-peningkatan dengan cermat akan meminimalkan perubahan yang diperlukan. Untuk informasi selengkapnya, lihat [Memecahkan masalah Amazon Aurora Kinerja database saya SQL](aurora-mysql-troubleshooting.md).

Untuk mempelajari lebih lanjut tentang metode, perencanaan, pengujian, dan pemecahan masalah upgrade versi utama Aurora MySQL, pastikan untuk membaca secara menyeluruh, termasuk. [Meningkatkan versi mayor klaster DB Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md) [Pemecahan masalah untuk Aurora Peningkatan di tempat saya SQL](AuroraMySQL.Upgrading.Troubleshooting.md) Juga, perhatikan bahwa beberapa jenis instance tidak didukung untuk Aurora MySQL versi 3. Untuk informasi selengkapnya, lihat [Kelas instans Amazon Aurora DB](Concepts.DBInstanceClass.md).

## Tingkatkan jalur untuk cluster Aurora Serverless v1 DB
<a name="Aurora-Upgrade-Serverlessv1-Clusters"></a>

Peningkatan antarversi mayor memerlukan perencanaan dan pengujian yang lebih ekstensif daripada versi minor. Prosesnya bisa memakan waktu yang cukup lama. Kami ingin menjelaskan peningkatan sebagai proses tiga langkah, dengan aktivitas sebelum peningkatan, selama peningkatan, dan setelah peningkatan.

 Aurora MySQL versi 2 (dengan kompatibilitas MySQL 5.7) akan terus menerima dukungan standar untuk cluster. Aurora Serverless v1 

Jika Anda ingin meningkatkan ke Amazon Aurora MySQL 3 (dengan kompatibilitas MySQL 8.0) dan terus menjalankan Aurora Serverless Anda dapat menggunakan Amazon Aurora Serverless v2. Untuk memahami perbedaan antara Aurora Serverless v1 danAurora Serverless v2, lihat[Perbandingan Aurora Serverless v2 dan Aurora Serverless v1](aurora-serverless-v2.upgrade.md#aurora-serverless.comparison).

**Tingkatkan keAurora Serverless v2:** Anda dapat memutakhirkan Aurora Serverless v1 cluster keAurora Serverless v2. Lihat informasi yang lebih lengkap di [Peningkatan dari klaster Aurora Serverless v1 ke Aurora Serverless v2](aurora-serverless-v2.upgrade.md#aurora-serverless-v2.upgrade-from-serverless-v1-procedure).

# Mempersiapkan Amazon Aurora My SQL -Compatible Edition versi 1 akhir hayat
<a name="Aurora.MySQL56.EOL"></a>

Amazon Aurora My SQL -Compatible Edition versi 1 (dengan kompatibilitas My SQL 5.6) direncanakan akan mencapai akhir masa pakai pada 28 Februari 2023. Amazon menyarankan agar Anda memutakhirkan semua cluster (disediakan dan) Aurora Serverless menjalankan Aurora My versi SQL 1 ke Aurora My versi 2 (dengan kompatibilitas My 5.7) atau Aurora My SQL versi 3 (dengan SQL kompatibilitas My 8.0). SQL SQL Lakukan ini sebelum Aurora SQL Versi saya 1 mencapai akhir periode dukungannya.

Untuk cluster DB yang disediakan Aurora, Anda dapat menyelesaikan peningkatan dari Aurora My versi SQL 1 ke Aurora My versi 2 dengan beberapa metode. SQL Anda dapat menemukan petunjuk untuk mekanisme peningkatan di tempat dalam [Cara melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md). Cara lain untuk menyelesaikan peningkatan adalah dengan mengambil snapshot dari cluster Aurora SQL My version 1 dan mengembalikan snapshot ke cluster Aurora SQL My version 2. Atau, Anda dapat mengikuti proses beberapa langkah yang menjalankan klaster lama dan baru secara berdampingan. Untuk detail selengkapnya tentang setiap metode, lihat [Meningkatkan versi mayor klaster DB Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md).

Untuk cluster Aurora Serverless v1 DB, Anda dapat melakukan peningkatan di tempat dari Aurora My versi SQL 1 ke Aurora My versi 2. SQL Untuk detail selengkapnya tentang metode ini, lihat [Memodifikasi klaster DB Aurora Serverless v1](aurora-serverless.modifying.md).

Untuk cluster DB yang disediakan Aurora, Anda dapat menyelesaikan peningkatan dari Aurora My versi SQL 1 ke Aurora My versi 3 dengan menggunakan proses peningkatan dua tahap: SQL

1. Tingkatkan dari Aurora My SQL version 1 ke Aurora My SQL version 2 menggunakan metode yang dijelaskan sebelumnya.

1. Tingkatkan dari Aurora SQL Versi saya 2 ke Aurora SQL Versi saya 3 menggunakan metode yang sama seperti untuk meningkatkan dari versi 1 ke versi 2. Untuk detail selengkapnya, lihat [Upgrade dari Aurora MySQL versi 2 ke versi 3](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Updates.MajorVersionUpgrade.2to3). Perhatikan [Perbedaan fitur antara Aurora My SQL versi 2 dan 3](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.Compare-v2-v3-features).

Anda dapat menemukan end-of-life tanggal mendatang untuk versi utama Aurora di. [Versi Amazon Aurora](Aurora.VersionPolicy.md) Amazon secara otomatis memutakhirkan cluster apa pun yang tidak Anda tingkatkan sendiri sebelum tanggal. end-of-life Setelah end-of-life tanggal, upgrade otomatis ini ke versi utama berikutnya terjadi selama jendela pemeliharaan terjadwal untuk cluster. 

Berikut ini adalah tonggak tambahan untuk meningkatkan klaster Aurora My SQL versi 1 (disediakan danAurora Serverless) yang mencapai akhir hayat. Untuk masing-masing, waktu mulai adalah 00:00 Waktu Terkoordinasi Universal ()UTC. 

1. Sekarang hingga 28 Februari 2023 - Anda dapat setiap saat memulai peningkatan cluster Aurora My SQL versi 1 (dengan kompatibilitas SQL 5.6 Saya) ke Aurora My SQL versi 2 (dengan kompatibilitas 5.7 Saya). SQL Dari Aurora My SQL versi 2, Anda dapat melakukan peningkatan lebih lanjut ke Aurora My SQL versi 3 (dengan SQL kompatibilitas My 8.0) untuk cluster DB yang disediakan Aurora. 

1. 16 Januari 2023 — Setelah waktu ini, Anda tidak dapat membuat cluster atau instance Aurora SQL My version 1 baru dari atau Konsol Manajemen AWS (). AWS Command Line Interface AWS CLI Anda juga tidak dapat menambahkan Wilayah sekunder baru ke sebuah basis data global Aurora. Ini mungkin memengaruhi kemampuan Anda untuk pulih dari pemadaman yang tidak direncanakan seperti yang diuraikan dalam [Memulihkan basis data global Amazon Aurora dari pemadaman yang tidak direncanakan](aurora-global-database-disaster-recovery.md#aurora-global-database-failover) karena Anda tidak dapat menyelesaikan langkah 5 dan 6 setelah waktu ini. Anda juga tidak akan dapat membuat replika baca Lintas wilayah baru yang menjalankan Aurora My versi 1. SQL Anda masih dapat melakukan hal berikut untuk cluster Aurora My SQL versi 1 yang ada hingga 28 Februari 2023:
   + Kembalikan snapshot yang diambil dari cluster Aurora SQL My version 1 ke versi yang sama dengan cluster snapshot asli.
   + Tambahkan replika baca (tidak berlaku untuk klaster DB Aurora Serverless).
   + Ubah konfigurasi instans.
   + Lakukan point-in-time pemulihan.
   + Buat klon dari klaster versi 1 yang ada.
   + Buat replika baca Lintas wilayah baru yang menjalankan Aurora My SQL versi 2 atau lebih tinggi.

1.  28 Februari 2023 — Setelah waktu ini, kami berencana untuk secara otomatis meningkatkan klaster Aurora SQL My versi 1 ke versi default Aurora SQL My versi 2 dalam jendela pemeliharaan terjadwal berikut. Memulihkan snapshot Aurora SQL My version 1 DB menghasilkan upgrade otomatis cluster yang dipulihkan ke versi default Aurora SQL My versi 2 pada waktu itu. 

Peningkatan antarversi mayor memerlukan perencanaan dan pengujian yang lebih ekstensif daripada versi minor. Prosesnya bisa memakan waktu yang cukup lama.

Untuk situasi yang prioritas utamanya adalah mengurangi waktu henti, Anda juga dapat menggunakan [deployment blue/green](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/) untuk melakukan peningkatan versi mayor di klaster DB Amazon Aurora terprovisi. Deployment blue/green membuat lingkungan staging yang menyerupai lingkungan produksi. Anda dapat membuat perubahan pada klaster DB Aurora di lingkungan green (staging) tanpa memengaruhi beban kerja produksi. Switchover biasanya memakan waktu kurang dari satu menit tanpa kehilangan data dan tidak memerlukan perubahan aplikasi. Untuk informasi selengkapnya, lihat [Ikhtisar Amazon Blue/Green Aurora](blue-green-deployments-overview.md).

Setelah peningkatan selesai, Anda mungkin juga memiliki pekerjaan tindak lanjut yang harus dilakukan. Misalnya, Anda mungkin perlu menindaklanjuti karena perbedaan SQL kompatibilitas, cara kerja fitur SQL terkait Saya tertentu, atau pengaturan parameter antara versi lama dan baru.

Untuk mempelajari lebih lanjut tentang metode, perencanaan, pengujian, dan pemecahan masalah peningkatan versi SQL utama Aurora My, pastikan untuk membaca secara menyeluruh. [Meningkatkan versi mayor klaster DB Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md)

## Menemukan cluster yang terpengaruh oleh proses ini end-of-life
<a name="find-cluster"></a>

Untuk menemukan cluster yang terpengaruh oleh end-of-life proses ini, gunakan prosedur berikut.

**penting**  
Pastikan untuk melakukan instruksi ini di setiap Wilayah AWS dan untuk setiap Akun AWS tempat sumber daya Anda berada.

### Konsol
<a name="aurora-find-mysqlv1-cluster.CON"></a>

**Untuk menemukan cluster Aurora My SQL version 1**

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.  Di kotak **Filter berdasarkan basis data**, masukkan **5.6**.

1. Periksa Aurora My SQL di kolom mesin.

### AWS CLI
<a name="aurora-find-mysqlv1-cluster.CLI"></a>

Untuk menemukan cluster yang terpengaruh oleh end-of-life proses ini menggunakan AWS CLI, panggil [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)perintah. Anda dapat menggunakan contoh skrip berikut.

**Example**  

```
aws rds describe-db-clusters --include-share --query 'DBClusters[?Engine==`aurora`].{EV:EngineVersion, DBCI:DBClusterIdentifier, EM:EngineMode}' --output table --region us-east-1     
        
        +------------------------------------------+
        |            DescribeDBClusters            |
        +---------------+--------------+-----------+
        |     DBCI      |     EM       |    EV     |
        +---------------+--------------+-----------+
        |  my-database-1|  serverless  |  5.6.10a  |
        +---------------+--------------+-----------+
```

### RDS API
<a name="Aurora-find-mysqlv1-cluster.API"></a>

Untuk menemukan klaster Aurora My SQL DB yang menjalankan Aurora My SQL versi 1, gunakan escribeDBClusters API operasi RDS [D dengan parameter yang diperlukan](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) berikut: 
+  `DescribeDBClusters`
  + Filters.Filter.N
    + Name
      + engine
    + Values.Value.N
      + ['aurora']

# Memutakhirkan Amazon Aurora SQL My DB cluster
<a name="AuroraMySQL.Updates.Upgrading"></a><a name="mysql_upgrade"></a>

 Anda dapat memutakhirkan cluster Aurora My SQL DB untuk mendapatkan perbaikan bug, SQL fitur Aurora My baru, atau untuk mengubah ke versi yang sama sekali baru dari mesin database yang mendasarinya. Bagian berikut menunjukkan caranya. 

**catatan**  
 Jenis peningkatan yang Anda lakukan bergantung pada durasi waktu henti klaster yang dapat Anda toleransi, jumlah pengujian verifikasi yang berencana Anda lakukan, seberapa penting perbaikan bug tertentu atau fitur baru untuk kasus penggunaan Anda, dan apakah Anda berencana akan sering melakukan peningkatan kecil atau peningkatan sesekali yang melewati beberapa versi perantara. Untuk setiap peningkatan, Anda dapat mengubah versi mayor, versi minor, dan tingkat patch untuk klaster Anda. Jika Anda tidak terbiasa dengan perbedaan antara Aurora versi utama SQL saya, versi minor, dan level patch, Anda dapat membaca informasi latar belakang di. [Memeriksa Aurora Nomor versi saya SQL](AuroraMySQL.Updates.Versions.md) 

**Tip**  
Anda dapat meminimalkan waktu henti yang diperlukan untuk peningkatan klaster DB dengan menggunakan deployment blue/green. Untuk informasi selengkapnya, lihat [Menggunakan Amazon Blue/Green Aurora Deployment untuk pembaruan database](blue-green-deployments.md).

**Topics**
+ [Meningkatkan versi minor atau tingkat patch klaster DB Aurora MySQL](AuroraMySQL.Updates.Patching.md)
+ [Meningkatkan versi mayor klaster DB Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md)

# Meningkatkan versi minor atau tingkat patch klaster DB Aurora MySQL
<a name="AuroraMySQL.Updates.Patching"></a>

 Anda dapat menggunakan metode berikut untuk meningkatkan versi minor klaster DB atau untuk mem-patch klaster DB: 
+ [Meningkatkan Aurora MySQL dengan mengubah versi mesin](AuroraMySQL.Updates.Patching.ModifyEngineVersion.md) (untuk Aurora MySQL versi 2 dan 3)
+ [Mengaktifkan upgrade otomatis antara Aurora minor versi Saya SQL](AuroraMySQL.Updates.AMVU.md)

 Untuk informasi tentang cara patching zero-downtime dapat mengurangi gangguan selama proses peningkatan, lihat [Menggunakan zero-downtime patching](AuroraMySQL.Updates.ZDP.md). 

Untuk informasi tentang melakukan upgrade versi minor untuk cluster DB MySQL Aurora Anda, lihat topik berikut. 

**Topics**
+ [Sebelum melakukan upgrade versi minor](#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
+ [Pra-cek pemutakhiran versi minor untuk Aurora MySQL](#AuroraMySQL.minor-upgrade-prechecks)
+ [Meningkatkan Aurora MySQL dengan mengubah versi mesin](AuroraMySQL.Updates.Patching.ModifyEngineVersion.md)
+ [Mengaktifkan upgrade otomatis antara Aurora minor versi Saya SQL](AuroraMySQL.Updates.AMVU.md)
+ [Menggunakan zero-downtime patching](AuroraMySQL.Updates.ZDP.md)
+ [Teknik blue/green peningkatan alternatif](#AuroraMySQL.UpgradingMinor.BlueGreen)

## Sebelum melakukan upgrade versi minor
<a name="USER_UpgradeDBInstance.PostgreSQL.BeforeMinor"></a>

Kami menyarankan Anda melakukan tindakan berikut untuk mengurangi waktu henti selama upgrade versi minor:
+ Pemeliharaan cluster Aurora DB harus dilakukan selama periode lalu lintas rendah. Gunakan Performance Insights untuk mengidentifikasi periode waktu ini agar dapat mengonfigurasi jendela pemeliharaan dengan benar. Untuk informasi selengkapnya tentang Performance Insights, lihat [Memantau pemuatan DB dengan Performance Insights di](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) Amazon RDS. Untuk informasi lebih lanjut tentang jendela pemeliharaan cluster DB,[Menyesuaikan periode pemeliharaan klaster DB yang dinginkan](USER_UpgradeDBInstance.Maintenance.md#AdjustingTheMaintenanceWindow.Aurora).
+ Gunakan dukungan AWS SDKs itu backoff eksponensial dan jitter sebagai praktik terbaik. Untuk informasi lebih lanjut, lihat [Exponential Backoff](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) And Jitter.

## Pra-cek pemutakhiran versi minor untuk Aurora MySQL
<a name="AuroraMySQL.minor-upgrade-prechecks"></a>

Saat Anda memulai pemutakhiran versi minor, Amazon Aurora menjalankan prechecks secara otomatis.

Pra-pemeriksaan ini wajib dilakukan. Anda tidak dapat memilih untuk melewatinya. Pra-pemeriksaan menyediakan manfaat berikut:
+ Hal ini memungkinkan Anda menghindari waktu henti yang tidak direncanakan selama peningkatan.
+ Jika ada inkompatibilitas, Amazon Aurora akan mencegah peningkatan dan menyediakan log bagi Anda untuk mempelajarinya. Anda kemudian dapat menggunakan log untuk mempersiapkan database Anda untuk upgrade dengan mengurangi ketidakcocokan. Untuk informasi rinci tentang menghapus ketidakcocokan, lihat [Mempersiapkan instalasi Anda untuk upgrade](https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html) dalam dokumentasi MySQL.

Pra-pemeriksaan berjalan sebelum instans DB dihentikan untuk peningkatan, sehingga instans tersebut tidak akan menyebabkan waktu henti ketika berjalan. Jika pra-pemeriksaan menemukan inkompatibilitas, Aurora secara otomatis membatalkan peningkatan sebelum instans DB dihentikan. Aurora juga menghasilkan peristiwa untuk inkompatibilitas. Untuk informasi selengkapnya tentang peristiwa Amazon Aurora, lihat [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md).

Aurora mencatat informasi terperinci tentang setiap inkompatibilitas dalam file log `PrePatchCompatibility.log`. Dalam kebanyakan kasus, entri log berisi tautan ke dokumentasi MySQL untuk mengoreksi inkompatibilitas. Untuk informasi selengkapnya tentang format file log, lihat [Melihat dan mencantumkan file log basis data](USER_LogAccess.Procedural.Viewing.md).

Karena sifatnya, pra-pemeriksaan akan menganalisis objek di basis data Anda. Analisis ini mengakibatkan konsumsi sumber daya dan menambah waktu penyelesaian peningkatan.

# Meningkatkan Aurora MySQL dengan mengubah versi mesin
<a name="AuroraMySQL.Updates.Patching.ModifyEngineVersion"></a>

Memutakhirkan versi minor dari cluster DB MySQL Aurora menerapkan perbaikan tambahan dan fitur baru ke cluster yang ada.

Peningkatan semacam ini berlaku untuk cluster Aurora MySQL di mana versi asli dan versi yang ditingkatkan keduanya memiliki versi utama Aurora MySQL yang sama, baik 2 atau 3. Prosesnya cepat dan mudah karena tidak memerlukan konversi apa pun untuk metadata Aurora MySQL atau penyusunan ulang data tabel Anda.

Anda melakukan upgrade semacam ini dengan memodifikasi versi mesin dari cluster DB menggunakan Konsol Manajemen AWS, AWS CLI, atau RDS API. Misalnya, jika cluster Anda menjalankan Aurora MySQL 3.x, pilih versi 3.x yang lebih tinggi.

Jika Anda melakukan peningkatan kecil pada Database Global Aurora, tingkatkan semua cluster sekunder sebelum Anda memutakhirkan klaster utama.

**catatan**  
Untuk melakukan upgrade versi minor ke Aurora MySQL versi 3.04.\$1 atau lebih tinggi, atau versi 2.12.\$1, gunakan proses berikut:  
Hapus semua Wilayah sekunder dari klaster global. Ikuti langkah-langkahnya dalam [Menghapus klaster dari basis data global Amazon Aurora](aurora-global-database-detaching.md).
Tingkatkan versi mesin Wilayah utama ke versi 3.04.\$1 atau lebih tinggi, atau versi 2.12.\$1, sebagaimana berlaku. Ikuti langkah-langkahnya dalam [To modify the engine version of a DB cluster](#modify-db-cluster-engine-version).
Tambahkan Wilayah sekunder ke klaster global. Ikuti langkah-langkahnya dalam [Menambahkan Wilayah AWS ke database global Amazon Aurora](aurora-global-database-attaching.md).

 **Untuk mengubah versi mesin klaster DB** 
+ **Dengan menggunakan konsol** – Ubah properti klaster Anda. Di jendela **Modifikasi klaster DB**, ubah versi mesin Aurora MySQL dalam kotak **Versi mesin DB**. Jika Anda tidak memahami prosedur umum untuk mengubah klaster, ikuti petunjuk dalam [Memodifikasi klaster DB dengan menggunakan konsol, CLI, dan API](Aurora.Modifying.md#Aurora.Modifying.Cluster).
+ **Dengan menggunakan AWS CLI** — Panggil [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI perintah, dan tentukan nama cluster DB Anda untuk `--db-cluster-identifier` opsi dan versi mesin untuk `--engine-version` opsi tersebut.

  Misalnya, untuk meningkatkan ke Aurora MySQL versi 3.04.1, atur opsi ke. `--engine-version` `8.0.mysql_aurora.3.04.1` Tentukan opsi `--apply-immediately` untuk segera memperbarui versi mesin untuk klaster DB Anda.
+ **Dengan menggunakan RDS API** — Panggil operasi [Modify DBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) API, dan tentukan nama cluster DB Anda untuk `DBClusterIdentifier` parameter dan versi engine untuk `EngineVersion` parameter tersebut. Tetapkan parameter `ApplyImmediately` ke `true` untuk segera memperbarui versi mesin untuk klaster DB Anda.

# Mengaktifkan upgrade otomatis antara Aurora minor versi Saya SQL
<a name="AuroraMySQL.Updates.AMVU"></a><a name="amvu"></a>

Untuk klaster Amazon Aurora My SQL DB, Anda dapat menentukan bahwa Aurora memutakhirkan cluster DB secara otomatis ke versi minor baru. Anda melakukannya dengan menyetel `AutoMinorVersionUpgrade` properti (**Peningkatan versi minor otomatis** di Konsol Manajemen AWS) dari cluster DB.

Peningkatan otomatis terjadi selama periode pemeliharaan. Jika instans DB individu di klaster DB memiliki periode pemeliharaan yang berbeda dengan periode pemeliharaan klaster, periode pemeliharaan klaster akan diutamakan.

Upgrade versi minor otomatis tidak berlaku untuk jenis klaster Aurora My SQL berikut:
+ Klaster yang merupakan bagian dari basis data global Aurora.
+ Klaster yang memiliki replika lintas Wilayah.

Durasi pemadaman bervariasi tergantung pada beban kerja, ukuran cluster, jumlah data log biner, dan jika Aurora dapat menggunakan fitur zero-downtime patching (). ZDP Aurora mengaktifkan ulang klaster basis data, sehingga Anda mungkin mengalami periode ketidaktersediaan yang singkat sebelum melanjutkan penggunaan klaster Anda. Secara khusus, jumlah data log biner akan memengaruhi waktu pemulihan. Instans DB memproses data log biner selama pemulihan. Dengan demikian, volume tinggi data log biner akan menambah waktu pemulihan.

**catatan**  
Aurora hanya melakukan peningkatan otomatis jika semua instans DB di cluster DB Anda mengaktifkan pengaturan. `AutoMinorVersionUpgrade` Untuk informasi tentang cara mengaturnya, dan cara kerjanya saat diterapkan di tingkat cluster dan instance, lihat[Peningkatan versi minor otomatis untuk klaster DB Aurora](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU).  
Kemudian jika jalur pemutakhiran ada untuk instance cluster DB ke versi mesin DB minor yang telah `AutoUpgrade` disetel ke true, pemutakhiran akan dilakukan. `AutoUpgrade`Pengaturannya dinamis, dan diatur olehRDS.  
Peningkatan versi minor otomatis dilakukan ke versi minor default.

Anda dapat menggunakan CLI perintah seperti berikut ini untuk memeriksa status `AutoMinorVersionUpgrade` pengaturan untuk semua instans DB di cluster Aurora SQL My Anda.

```
aws rds describe-db-instances \
  --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'
```

Perintah ini menghasilkan output yang serupa dengan berikut:

```
[
  {
      "DBInstanceIdentifier": "db-t2-medium-instance",
      "DBClusterIdentifier": "cluster-57-2020-06-03-6411",
      "AutoMinorVersionUpgrade": true
  },
  {
      "DBInstanceIdentifier": "db-t2-small-original-size",
      "DBClusterIdentifier": "cluster-57-2020-06-03-6411",
      "AutoMinorVersionUpgrade": false
  },
  {
      "DBInstanceIdentifier": "instance-2020-05-01-2332",
      "DBClusterIdentifier": "cluster-57-2020-05-01-4615",
      "AutoMinorVersionUpgrade": true
  },
... output omitted ...
```

Dalam contoh ini, opsi **Aktifkan peningkatan versi minor otomatis** dinonaktifkan untuk klaster DB `cluster-57-2020-06-03-6411`, karena dinonaktifkan untuk salah satu instans DB dalam klaster.

# Menggunakan zero-downtime patching
<a name="AuroraMySQL.Updates.ZDP"></a><a name="zdp"></a>

Melakukan upgrade untuk Aurora SQL My DB cluster melibatkan kemungkinan pemadaman ketika database dimatikan dan saat sedang ditingkatkan. Secara default, jika Anda memulai peningkatan saat basis data sibuk, Anda akan kehilangan semua koneksi dan transaksi yang sedang diproses oleh klaster DB. Jika Anda menunggu hingga basis data idle untuk melakukan peningkatan, Anda mungkin harus menunggu lama.

Fitur zero-downtime patching (ZDP) mencoba, dengan upaya terbaik, untuk mempertahankan koneksi klien melalui peningkatan Aurora My. SQL Jika ZDP berhasil diselesaikan, sesi aplikasi dipertahankan dan mesin database restart saat upgrade sedang berlangsung. Pengaktifan ulang mesin basis data dapat menyebabkan penurunan throughput yang berlangsung selama beberapa detik hingga kira-kira satu menit.

ZDPtidak berlaku untuk yang berikut:
+ Patch dan peningkatan sistem operasi (OS)
+ Peningkatan versi mayor

ZDPtersedia untuk semua SQL versi Aurora My yang didukung dan kelas instans DB.

ZDPtidak didukung untuk Aurora Serverless v1 atau database global Aurora.

**catatan**  
Kami menyarankan penggunaan kelas instans DB T hanya untuk server pengembangan dan pengujian, atau server non-produksi lainnya. Untuk detail selengkapnya tentang kelas instans T, lihat [Menggunakan kelas instans T untuk pengembangan dan pengujian](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.T2Medium).

Anda dapat melihat metrik atribut penting selama ZDP di log SQL kesalahan saya. Anda juga dapat melihat informasi tentang kapan Aurora My SQL menggunakan ZDP atau memilih untuk tidak menggunakan ZDP pada halaman **Acara** di halaman. Konsol Manajemen AWS

Di Aurora My, SQL Aurora dapat melakukan patch zero-downtime apakah replikasi log biner diaktifkan atau tidak. Jika replikasi log biner diaktifkan, Aurora SQL My secara otomatis menjatuhkan koneksi ke target binlog selama operasi. ZDP Aurora My SQL secara otomatis terhubung kembali ke target binlog dan melanjutkan replikasi setelah restart selesai.

ZDPjuga berfungsi dalam kombinasi dengan peningkatan reboot di Aurora My. SQL Patching terhadap instans DB penulis akan secara otomatis menjalankan patching terhadap pembaca secara bersamaan. Setelah melakukan patching, Aurora memulihkan koneksi pada instans DB penulis dan pembaca.

ZDPmungkin tidak berhasil diselesaikan dalam kondisi berikut:
+ Kueri atau transaksi berjalan lama sedang berlangsung. Jika Aurora dapat melakukan ZDP dalam kasus ini, setiap transaksi terbuka dibatalkan tetapi koneksi mereka dipertahankan.
+ Tabel sementara, kunci pengguna, atau kunci tabel sedang digunakan, misalnya saat pernyataan bahasa definisi data (DDL) berjalan. Aurora menjatuhkan koneksi ini.
+ Ada perubahan parameter tertunda.

Jika tidak ada jendela waktu yang sesuai untuk melakukan ZDP menjadi tersedia karena satu atau lebih dari kondisi ini, patch kembali ke perilaku standar.

Meskipun koneksi tetap utuh setelah ZDP operasi yang berhasil, beberapa variabel dan fitur diinisialisasi ulang. Jenis informasi berikut ini tidak dipertahankan selama pengaktifan ulang yang disebabkan oleh zero-downtime patching:
+ Variabel global. Aurora memulihkan variabel sesi, tetapi tidak memulihkan variabel global setelah pengaktifan ulang.
+ Variabel status. Secara khusus, nilai uptime yang dilaporkan oleh status engine diatur ulang setelah restart yang menggunakan ZDP mekanisme ZDR atau.
+ `LAST_INSERT_ID`.
+ Status `auto_increment` dalam memori untuk tabel. Status inkremen otomatis dalam memori diinisialisasi ulang. Untuk informasi selengkapnya tentang nilai kenaikan otomatis, lihat Panduan [SQLReferensi Saya](https://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html#innodb-auto-increment-initialization).
+ Informasi diagnostik dari tabel `INFORMATION_SCHEMA` dan `PERFORMANCE_SCHEMA`. Informasi diagnostik ini juga muncul dalam output perintah seperti `SHOW PROFILE` dan `SHOW PROFILES`. 

Aktivitas berikut yang berkaitan dengan pengaktifan ulang dengan nol waktu henti akan dilaporkan di halaman **Peristiwa**:
+ Mencoba meningkatkan basis data dengan nol waktu henti.
+ Mencoba meningkatkan basis data dengan nol waktu henti selesai. Peristiwa ini melaporkan berapa lama prosesnya berjalan. Peristiwa ini juga melaporkan berapa banyak koneksi yang dipertahankan selama pengaktifan ulang dan berapa banyak koneksi yang terputus. Anda dapat melihat log kesalahan basis data untuk melihat detail selengkapnya tentang apa yang terjadi selama pengaktifan ulang.

## Teknik blue/green peningkatan alternatif
<a name="AuroraMySQL.UpgradingMinor.BlueGreen"></a>

Dalam situasi tertentu, prioritas utama Anda adalah melakukan switchover langsung dari klaster lama ke klaster yang ditingkatkan. Dalam situasi seperti itu, Anda dapat menggunakan proses multistep yang menjalankan cluster side-by-side lama dan baru. Di sini, Anda mereplikasi data dari klaster lama ke klaster baru hingga Anda siap untuk mengambil alih klaster baru. Untuk detailnya, lihat [Menggunakan Amazon Blue/Green Aurora Deployment untuk pembaruan database](blue-green-deployments.md).

# Meningkatkan versi mayor klaster DB Amazon Aurora MySQL
<a name="AuroraMySQL.Updates.MajorVersionUpgrade"></a><a name="mvu"></a>

Dalam nomor versi MySQL Aurora seperti 3.04.1, 3 mewakili versi utama. Aurora MySQL versi 2 kompatibel dengan MySQL 5.7. Aurora MySQL versi 3 kompatibel dengan MySQL 8.0.

Peningkatan antarversi mayor memerlukan perencanaan dan pengujian yang lebih ekstensif daripada versi minor. Prosesnya bisa memakan waktu yang cukup lama. Setelah peningkatan selesai, Anda mungkin juga memiliki pekerjaan lanjutan yang harus dilakukan. Misalnya, ini mungkin terjadi karena perbedaan kompatibilitas SQL atau cara kerja fitur terkait MySQL tertentu. Atau, ini mungkin terjadi karena pengaturan parameter yang berbeda antara versi lama dan baru.

**Contents**
+ [Upgrade dari Aurora MySQL versi 2 ke versi 3](#AuroraMySQL.Updates.MajorVersionUpgrade.2to3)
+ [Jalur peningkatan versi mayor Aurora MySQL](#AuroraMySQL.Upgrading.Compatibility)
+ [Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL](#AuroraMySQL.Upgrading.Sequence)
+ [Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL](#AuroraMySQL.Upgrading.Planning)
  + [Mensimulasikan peningkatan dengan mengkloning cluster DB Anda](#AuroraMySQL.Upgrading.Planning.clone)
  + [Deployment Blue/Green](#AuroraMySQL.UpgradingMajor.BlueGreen)
+ [Pra-pemeriksaan peningkatan versi mayor untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.md)
  + [Proses precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.process)
  + [Prececk format log untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.log-format)
  + [Contoh keluaran log precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.log-examples)
  + [Performa precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.performance)
  + [Ringkasan dari Community MySQL upgrade prechecks](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.community)
  + [Ringkasan dari Aurora MySQL upgrade prechecks](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.ams)
  + [Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md)
    + [Kesalahan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors)
      + [MySQL memeriksa sebelumnya yang melaporkan kesalahan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.mysql)
      + [Aurora MySQL memeriksa sebelumnya yang melaporkan kesalahan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.aurora)
    + [Peringatan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings)
      + [MySQL memeriksa sebelumnya yang melaporkan peringatan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.mysql)
      + [Aurora MySQL mengecek peringatan laporan itu](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.aurora)
    + [Pemberitahuan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-notices)
    + [Kesalahan, peringatan, atau pemberitahuan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-all)
+ [Cara melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md)
  + [Bagaimana peningkatan di tempat memengaruhi grup parameter untuk klaster](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.ParamGroups)
  + [Perubahan pada properti klaster di antara versi Aurora MySQL](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.Attrs)
  + [Peningkatan besar di tempat untuk basis data global](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.GlobalDB)
  + [Upgrade di tempat untuk cluster DB dengan replika baca lintas wilayah](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.XRRR)
+ [Aurora Tutorial peningkatan di tempat SQL saya](AuroraMySQL.Upgrading.Tutorial.md)
+ [Menemukan alasan Aurora Kegagalan peningkatan versi SQL utama saya](AuroraMySQL.Upgrading.failure-events.md)
+ [Pemecahan masalah untuk Aurora Peningkatan di tempat saya SQL](AuroraMySQL.Upgrading.Troubleshooting.md)
+ [Pembersihan pasca-upgrade untuk Aurora Versi saya 3 SQL](AuroraMySQL.mysql80-post-upgrade.md)
  + [Indeks spasial](AuroraMySQL.mysql80-post-upgrade.md#AuroraMySQL.mysql80-spatial)

## Upgrade dari Aurora MySQL versi 2 ke versi 3
<a name="AuroraMySQL.Updates.MajorVersionUpgrade.2to3"></a>

Jika Anda memiliki klaster yang kompatibel dengan MySQL 5.7 dan ingin meningkatkan-nya ke klaster yang kompatibel dengan MySQL 8.0, Anda dapat melakukannya dengan menjalankan proses peningkatan pada klaster itu sendiri. Peningkatan semacam ini adalah *peningkatan di tempat*, berbeda dengan peningkatan yang Anda lakukan dengan membuat klaster baru. Teknik ini mempertahankan titik akhir dan karakteristik lain yang sama dari klaster. Peningkatan ini relatif cepat karena tidak memerlukan penyalinan semua data Anda ke volume klaster baru. Stabilitas ini membantu meminimalkan perubahan konfigurasi dalam aplikasi Anda. Hal ini juga membantu mengurangi jumlah pengujian untuk klaster yang ditingkatkan. Hal ini karena jumlah instans DB dan kelas instansnya semua tetap sama.

Mekanisme peningkatan di tempat mengharuskan klaster DB Anda dinonaktifkan saat operasi berlangsung. Aurora melakukan penonaktifan bersih dan menyelesaikan operasi yang tertunda seperti rollback transaksi dan pembersihan undo. Untuk informasi selengkapnya, lihat [Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL](#AuroraMySQL.Upgrading.Sequence).

Metode peningkatan di tempat ini praktis karena mudah dilakukan dan meminimalkan perubahan konfigurasi pada aplikasi terkait. Misalnya, tingkatkan di tempat mempertahankan titik akhir dan kumpulan instans DB untuk klaster Anda. Namun, waktu yang diperlukan untuk peningkatan di tempat dapat bervariasi tergantung pada properti skema Anda dan seberapa sibuk klasternya. Jadi, tergantung pada kebutuhan untuk cluster Anda, Anda dapat memilih di antara teknik upgrade:
+ [Peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md)
+ [Penerapan Biru/Hijau](#AuroraMySQL.UpgradingMajor.BlueGreen)
+ [Pemulihan snapshot](aurora-restore-snapshot.md)
**catatan**  
Jika Anda menggunakan AWS CLI atau RDS API untuk metode upgrade pemulihan snapshot, Anda harus menjalankan operasi berikutnya untuk membuat instance DB penulis di cluster DB yang dipulihkan.

Untuk informasi umum tentang Aurora MySQL versi 3 dan fitur-fiturnya yang baru, lihat [Aurora SQL Versi saya 3 kompatibel dengan My 8.0 SQL](AuroraMySQL.MySQL80.md).

Untuk detail tentang merencanakan peningkatan, lihat [Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL](#AuroraMySQL.Upgrading.Planning) dan [Cara melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md).

## Jalur peningkatan versi mayor Aurora MySQL
<a name="AuroraMySQL.Upgrading.Compatibility"></a>

Tidak semua jenis atau versi klaster Aurora MySQL dapat menggunakan mekanisme peningkatan di tempat. Anda dapat mempelajari jalur peningkatan yang sesuai untuk setiap klaster Aurora MySQL dengan melihat tabel berikut.


|  Jenis klaster DB Aurora MySQL  | Apakah klaster dapat menggunakan peningkatan di tempat?  |  Tindakan  | 
| --- | --- | --- | 
|   Kluster yang disediakan Aurora MySQL, versi 2  |  Ya  |  Upgrade di tempat didukung untuk klaster MySQL MySQL 5.7 yang kompatibel dengan MySQL. Untuk informasi tentang peningkatan ke Aurora MySQL versi 3, lihat [Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL](#AuroraMySQL.Upgrading.Planning) dan [Cara melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md).  | 
|   Kluster yang disediakan Aurora MySQL, versi 3  |  Tidak berlaku  |  Gunakan prosedur peningkatan versi minor untuk peningkatan di antara Aurora MySQL versi 3.  | 
|  Klaster Aurora Serverless v1   |  Tidak berlaku  |  Aurora Serverless v1didukung untuk Aurora MySQL hanya pada versi 2.  | 
|  Klaster Aurora Serverless v2   |  Tidak berlaku  | Aurora Serverless v2didukung untuk Aurora MySQL hanya pada versi 3. | 
|  Klaster dalam basis data global Aurora  |  Ya  |  Untuk meningkatkan Aurora MySQL dari versi 2 ke versi 3, ikuti [prosedur untuk melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md) untuk klaster di basis data global Aurora. Lakukan peningkatan pada klaster global. Aurora meningkatkan klaster primer dan semua klaster sekunder dalam basis data global pada saat yang sama. Jika Anda menggunakan API AWS CLI atau RDS, panggil `modify-global-cluster` perintah atau `ModifyGlobalCluster` operasi alih-alih `modify-db-cluster` atau`ModifyDBCluster`. Anda dapat melakukan upgrade di tempat dari Aurora MySQL versi 2 ke versi 3 hanya `lower_case_table_names` jika parameter diatur ke default dan Anda reboot database global Anda. Untuk informasi selengkapnya, lihat [Peningkatan versi utama](aurora-global-database-upgrade.md#aurora-global-database-upgrade.major).  | 
|  Klaster kueri paralel  |  Ya  |  Anda dapat melakukan peningkatan di tempat.  | 
|  Klaster yang merupakan target replikasi log biner  |  Mungkin  |  Jika replikasi log biner berasal dari klaster Aurora MySQL, Anda dapat melakukan peningkatan di tempat. Anda tidak dapat melakukan peningkatan jika replikasi log biner berasal dari instans DB RDS for MySQL atau instans DB MySQL on-premise. Dalam hal ini, Anda dapat melakukan peningkatan menggunakan mekanisme pemulihan snapshot.  | 
|  Klaster dengan nol instans DB  |  Tidak  |  Menggunakan AWS CLI atau RDS API, Anda dapat membuat cluster Aurora MySQL tanpa instans DB yang terpasang. Dengan cara yang sama, Anda juga dapat menghapus semua instans DB dari klaster Aurora MySQL, tetapi membiarkan data dalam volume klaster tetap utuh. Meskipun sebuah klaster tidak memiliki instans DB, Anda tidak dapat melakukan peningkatan di tempat. Mekanisme peningkatan memerlukan instans penulis di klaster untuk melakukan konversi pada tabel sistem, file data, dan sebagainya. Dalam hal ini, gunakan AWS CLI atau RDS API untuk membuat instance penulis untuk cluster. Kemudian, Anda dapat melakukan peningkatan di tempat.  | 
|  Klaster dengan pelacakan mundur diaktifkan  |  Ya  |  Anda dapat melakukan upgrade di tempat untuk cluster Aurora MySQL yang menggunakan fitur Backtrack. Namun, setelah peningkatan, Anda tidak dapat melacak mundur klaster ke waktu sebelum peningkatan.  | 

## Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL
<a name="AuroraMySQL.Upgrading.Sequence"></a>

 Aurora MySQL melakukan peningkatan versi mayor sebagai proses multitahap. Anda dapat memeriksa status peningkatan saat ini. Beberapa langkah peningkatan juga memberikan informasi progres. Seiring setiap tahap dimulai, Aurora MySQL akan mencatat sebuah peristiwa. Anda dapat memeriksa peristiwa yang terjadi di halaman **Peristiwa** di konsol RDS. Untuk informasi selengkapnya tentang menggunakan peristiwa, lihat [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md). 

**penting**  
 Setelah proses dimulai, proses ini berjalan sampai peningkatan berhasil atau gagal. Anda tidak dapat membatalkan peningkatan saat sedang berlangsung. Jika peningkatan gagal, Aurora akan mengembalikan semua perubahan dan klaster Anda akan memiliki versi mesin, metadata, dan karakteristik lainnya yang sama seperti sebelumnya. 

 Proses peningkatan terdiri dari tiga tahap: 

1.  Aurora melakukan serangkaian [pra-pemeriksaan](AuroraMySQL.upgrade-prechecks.md) sebelum memulai proses peningkatan. Klaster Anda terus berjalan saat Aurora melakukan pemeriksaan ini. Misalnya, klaster tidak dapat memiliki transaksi XA apa pun dalam status siap atau memproses pernyataan bahasa definisi data (DDL). Misalnya, Anda mungkin perlu menutup aplikasi yang mengirimkan jenis pernyataan SQL tertentu. Atau, Anda mungkin hanya perlu menunggu sampai pernyataan berjalan lama tertentu diselesaikan. Kemudian, coba mulai peningkatan lagi. Beberapa pemeriksaan akan menguji kondisi yang tidak mencegah peningkatan, tetapi mungkin akan membuat peningkatan memakan waktu lama. 

    Jika Aurora mendeteksi bahwa kondisi yang diperlukan tidak terpenuhi, ubah kondisi yang diidentifikasi dalam detail peristiwa. Ikuti panduan dalam [Pemecahan masalah untuk Aurora Peningkatan di tempat saya SQL](AuroraMySQL.Upgrading.Troubleshooting.md). Jika Aurora mendeteksi kondisi yang mungkin menyebabkan peningkatan yang lambat, rencanakan untuk memantau peningkatan dalam waktu lama. 

1.  Aurora akan membuat klaster Anda menjadi offline. Kemudian, Aurora melakukan serangkaian pengujian serupa seperti pada tahap sebelumnya untuk memastikan bahwa tidak ada masalah baru yang muncul selama proses penonaktifan. Jika Aurora mendeteksi kondisi apa pun pada saat ini yang akan mencegah peningkatan, Aurora akan membatalkan peningkatan dan membuat klaster kembali online. Dalam hal ini, konfirmasikan jika kondisi tidak lagi berlaku dan mulai peningkatan lagi. 

1.  Aurora membuat snapshot dari volume klaster Anda. Misalkan Anda menemukan kompatibilitas atau jenis masalah lainnya setelah peningkatan selesai. Atau misalkan Anda ingin melakukan pengujian menggunakan klaster asli dan klaster yang ditingkatkan. Dalam kasus tersebut, Anda dapat memulihkan dari snapshot ini untuk membuat klaster baru dengan versi mesin asli dan data asli. 
**Tip**  
Snapshot ini adalah snapshot manual. Namun, Aurora dapat membuatnya dan melanjutkan proses peningkatan bahkan jika Anda telah mencapai kuota untuk snapshot manual. Snapshot ini tetap ada secara permanen (jika diperlukan) hingga Anda menghapusnya. Setelah Anda menyelesaikan semua pengujian pasca-peningkatan, Anda dapat menghapus snapshot ini untuk meminimalkan biaya penyimpanan.

1.  Aurora akan mengkloning volume klaster Anda. Kloning adalah operasi cepat yang tidak memerlukan penyalinan data tabel yang sebenarnya. Jika Aurora mengalami masalah selama peningkatan, ia kembali ke data asli dari volume klaster kloning dan membawa klaster kembali online. Volume yang dikloning sementara selama peningkatan tidak memiliki batas yang biasanya berlaku pada jumlah klon untuk satu volume klaster. 

1.  Aurora melakukan penonaktifan bersih untuk instans DB penulis. Selama penonaktifan bersih, progres peristiwa dicatat setiap 15 menit untuk operasi berikut. Anda dapat memeriksa peristiwa yang terjadi di halaman **Peristiwa** di konsol RDS. 
   +  Aurora membersihkan catatan undo untuk baris versi lama. 
   +  Aurora mengembalikan setiap transaksi yang tidak dikomit. 

1.  Aurora meningkatkan versi mesin pada instans DB penulis: 
   +  Aurora menginstal biner untuk versi mesin baru pada instans DB penulis. 
   +  Aurora menggunakan instans DB penulis untuk meningkatkan data Anda ke format yang kompatibel dengan MySQL 5.7. Selama tahap ini, Aurora memodifikasi tabel sistem dan melakukan konversi lain yang memengaruhi data dalam volume klaster Anda. Secara khusus, Aurora meningkatkan metadata partisi di tabel sistem agar kompatibel dengan format partisi MySQL 5.7. Tahap ini dapat memakan waktu lama jika tabel di klaster Anda memiliki sejumlah besar partisi. 

      Jika terjadi kesalahan selama tahap ini, Anda dapat menemukan detailnya dalam log kesalahan MySQL. Setelah tahap ini dimulai, jika proses peningkatan gagal karena alasan apa pun, Aurora akan mengembalikan data asli dari volume klaster yang dikloning. 

1.  Aurora meningkatkan versi mesin pada instans DB pembaca. 

1.  Proses peningkatan selesai. Aurora mencatat peristiwa akhir untuk menunjukkan bahwa proses peningkatan berhasil selesai. Sekarang klaster DB Anda menjalankan versi mayor baru. 

## Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL
<a name="AuroraMySQL.Upgrading.Planning"></a>

Untuk membantu Anda memutuskan waktu dan pendekatan yang tepat untuk meningkatkan, Anda dapat mempelajari perbedaan antara Aurora MySQL versi 3 dan lingkungan Anda saat ini:
+ Jika Anda mengonversi dari RDS untuk MySQL 8.0 atau MySQL 8.0 Community Edition, lihat. [Membandingkan Aurora MySQL versi 3 dan MySQL 8.0 Community Edition](AuroraMySQL.Compare-80-v3.md)
+ Jika Anda meningkatkan dari Aurora MySQL versi 2, RDS untuk MySQL 5.7, atau komunitas MySQL 5.7, lihat. [Membandingkan Aurora SQL Versi saya 2 dan Aurora Versi saya 3 SQL](AuroraMySQL.Compare-v2-v3.md) 
+ Buat versi baru yang kompatibel dengan MySQL 8.0 untuk setiap grup parameter kustom. Terapkan nilai parameter kustom yang diperlukan ke grup parameter baru. Baca [Perubahan parameter untuk Aurora Versi saya 3 SQL](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.mysql80-parameter-changes) untuk mempelajari tentang perubahan parameter.
+ Tinjau definisi skema dan objek basis data Aurora MySQL versi 2 untuk penggunaan kata kunci baru yang dicadangkan, yang diperkenalkan di MySQL 8.0 Community Edition. Lakukan hal ini sebelum Anda meningkatkan. Untuk informasi selengkapnya, lihat [MySQL 8.0 New Keywords and Reserved Words](https://dev.mysql.com/doc/mysqld-version-reference/en/keywords-8-0.html#keywords-new-in-8-0) dalam dokumentasi MySQL.

Anda juga dapat menemukan lebih banyak pertimbangan dan tips peningkatan khusus MySQL dalam [Changes in MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html) dalam *Panduan Referensi MySQL*. Misalnya, Anda dapat menggunakan perintah `mysqlcheck --check-upgrade` untuk menganalisis basis data Aurora MySQL yang ada dan mengidentifikasi potensi masalah peningkatan.

**catatan**  
Sebaiknya gunakan kelas instans DB yang lebih besar saat meningkatkan ke Aurora MySQL versi 3 menggunakan teknik peningkatan atau pemulihan snapshot di tempat. Contohnya adalah db.r5.24xlarge dan db.r6g.16xlarge. Hal ini membantu menyelesaikan proses peningkatan lebih cepat dengan menggunakan sebagian besar kapasitas CPU yang tersedia pada instans DB. Anda dapat mengubah ke kelas instans DB yang Anda inginkan setelah peningkatan versi mayor selesai.

Setelah Anda menyelesaikan peningkatan itu sendiri, Anda dapat mengikuti prosedur pasca-peningkatan dalam [Pembersihan pasca-upgrade untuk Aurora Versi saya 3 SQL](AuroraMySQL.mysql80-post-upgrade.md). Terakhir, uji fungsionalitas dan performa aplikasi Anda. 

Jika Anda mengonversi dari RDS dari MySQL atau MySQL komunitas, ikuti prosedur migrasi yang dijelaskan di. [Migrasi data ke cluster Amazon Aurora My DB SQL](AuroraMySQL.Migrating.md) Dalam beberapa kasus, Anda mungkin menggunakan replikasi log biner untuk menyinkronkan data Anda dengan klaster Aurora MySQL versi 3 sebagai bagian dari migrasi. Jika demikian, sistem sumber harus menjalankan versi yang kompatibel dengan cluster DB target Anda.

Untuk memastikan aplikasi dan prosedur administrasi Anda berjalan dengan lancar setelah meningkatkan klaster di antara versi mayor, lakukan beberapa perencanaan dan persiapan sebelumnya. Untuk melihat jenis kode manajemen apa yang akan diperbarui untuk AWS CLI skrip atau aplikasi berbasis API RDS, lihat. [Bagaimana peningkatan di tempat memengaruhi grup parameter untuk klaster](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.ParamGroups) Lihat juga [Perubahan pada properti klaster di antara versi Aurora MySQL](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.Attrs).

Untuk mempelajari masalah apa yang mungkin Anda temui selama peningkatan, lihat[Pemecahan masalah untuk Aurora Peningkatan di tempat saya SQL](AuroraMySQL.Upgrading.Troubleshooting.md). Untuk masalah yang mungkin menyebabkan peningkatan memakan waktu lama, Anda dapat menguji kondisi tersebut terlebih dahulu dan memperbaikinya.

**catatan**  
Upgrade di tempat melibatkan mematikan cluster DB Anda saat operasi berlangsung. Aurora MySQL melakukan shutdown bersih dan menyelesaikan operasi luar biasa seperti undo purge. Upgrade mungkin memakan waktu lama jika ada banyak catatan yang akan diurungkan untuk dibersihkan. Kami merekomendasikan melakukan peningkatan hanya setelah panjang daftar riwayat (HLL) rendah. Nilai yang dapat diterima secara umum untuk HLL adalah 100.000 atau kurang. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-2) ini.

### Mensimulasikan peningkatan dengan mengkloning cluster DB Anda
<a name="AuroraMySQL.Upgrading.Planning.clone"></a>

Anda dapat memeriksa kompatibilitas aplikasi, performa, prosedur pemeliharaan, dan pertimbangan serupa untuk klaster yang ditingkatkan. Untuk melakukannya, Anda dapat melakukan simulasi peningkatan sebelum melakukan peningkatan yang sebenarnya. Teknik ini dapat sangat berguna untuk klaster produksi. Di sini, penting untuk meminimalkan waktu henti dan menyiapkan klaster yang telah ditingkatkan agar siap digunakan segera setelah peningkatan selesai.

Gunakan langkah-langkah berikut:

1. Membuat klon dari klaster asli. Ikuti prosedur dalam [Mengkloning volume untuk klaster DB Amazon Aurora](Aurora.Managing.Clone.md).

1. Siapkan satu set instans DB penulis dan pembaca yang serupa seperti di klaster asli.

1. Melakukan peningkatan di tempat terhadap klaster yang dikloning. Ikuti prosedur dalam [Cara melakukan peningkatan di tempat](AuroraMySQL.Upgrading.Procedure.md).

   Mulai peningkatan segera setelah membuat klon. Dengan demikian, volume klaster masih identik dengan status klaster aslinya. Jika klon dalam keadaan idle sebelum Anda melakukan peningkatan, Aurora akan melakukan proses pembersihan basis data di latar belakang. Dalam hal ini, tingkatkan klon bukanlah simulasi yang akurat untuk peningkatan klaster asli.

1. Uji kompatibilitas aplikasi, performa, prosedur administrasi, dan sebagainya, menggunakan klaster yang dikloning.

1. Jika Anda mengalami masalah apa pun, sesuaikan rencana peningkatan Anda untuk mengantisipasinya. Misalnya, sesuaikan kode aplikasi apa pun agar kompatibel dengan kumpulan fitur dari versi yang lebih tinggi. Perkirakan berapa lama waktu yang dibutuhkan untuk peningkatan berdasarkan jumlah data di klaster Anda. Anda juga dapat memilih untuk menjadwalkan peningkatan pada saat klaster tidak sibuk.

1. Setelah Anda yakin bahwa aplikasi dan beban kerja Anda berfungsi dengan baik dengan klaster uji, Anda dapat melakukan peningkatan di tempat untuk klaster produksi Anda.

1. Berusahalah untuk meminimalkan total waktu henti klaster Anda selama peningkatan versi mayor. Untuk melakukannya, pastikan bahwa beban kerja di klaster rendah atau nol pada saat peningkatan. Secara khusus, pastikan bahwa tidak ada transaksi berjalan lama yang sedang berlangsung saat Anda memulai peningkatan.

### Deployment Blue/Green
<a name="AuroraMySQL.UpgradingMajor.BlueGreen"></a>

Dalam situasi tertentu, prioritas utama Anda adalah melakukan switchover langsung dari klaster lama ke klaster yang ditingkatkan. Dalam situasi seperti itu, Anda dapat menggunakan proses multistep yang menjalankan cluster side-by-side lama dan baru. Di sini, Anda mereplikasi data dari klaster lama ke klaster baru hingga Anda siap untuk mengambil alih klaster baru. Untuk detailnya, lihat [Menggunakan Amazon Blue/Green Aurora Deployment untuk pembaruan database](blue-green-deployments.md).

# Pra-pemeriksaan peningkatan versi mayor untuk Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks"></a>

Memutakhirkan MySQL dari satu versi utama ke versi lain, seperti beralih dari MySQL 5.7 ke MySQL 8.0, melibatkan beberapa perubahan arsitektur signifikan yang memerlukan perencanaan dan persiapan yang matang. Tidak seperti upgrade versi minor di mana fokusnya terutama pada memperbarui perangkat lunak mesin database dan dalam beberapa kasus tabel sistem, upgrade MySQL utama sering memperkenalkan perubahan mendasar pada bagaimana database menyimpan dan mengelola metadata-nya.

Untuk membantu Anda mengidentifikasi ketidakcocokan tersebut, saat memutakhirkan dari Aurora MySQL versi 2 ke versi 3, Aurora menjalankan pemeriksaan kompatibilitas pemutakhiran (prechecks) secara otomatis untuk memeriksa objek di cluster database Anda dan mengidentifikasi ketidakcocokan yang diketahui yang dapat memblokir peningkatan dari proses. Untuk detail tentang prechecks Aurora MySQL, lihat. [Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md) [Prececks Aurora berjalan selain yang dijalankan oleh utilitas pemeriksa pemutakhiran MySQL Komunitas.](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html)

Pra-pemeriksaan ini wajib dilakukan. Anda tidak dapat memilih untuk melewatinya. Pra-pemeriksaan menyediakan manfaat berikut:
+ Mereka dapat mengurangi kemungkinan mengalami kegagalan peningkatan yang dapat menyebabkan waktu henti yang diperpanjang.
+ Jika ada ketidakcocokan, Amazon Aurora mencegah pemutakhiran berjalan dan menyediakan log bagi Anda untuk mempelajarinya. Anda kemudian dapat menggunakan log untuk mempersiapkan database Anda untuk upgrade ke versi 3 dengan menyelesaikan ketidakcocokan. [Untuk informasi rinci tentang menyelesaikan ketidakcocokan, lihat [Mempersiapkan instalasi Anda untuk upgrade dalam dokumentasi MySQL dan Upgrade](https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html) ke MySQL 8.0? Inilah yang perlu Anda ketahui...](https://dev.mysql.com/blog-archive/upgrading-to-mysql-8-0-here-is-what-you-need-to-know/) di Blog MySQL Server.

  Untuk informasi tentang peningkatan ke MySQL 8.0, lihat [Upgrading to MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/upgrading.html) dalam dokumentasi MySQL.

Prececks berjalan sebelum cluster DB Anda diambil offline untuk upgrade versi utama. Jika pra-pemeriksaan menemukan inkompatibilitas, Aurora secara otomatis membatalkan peningkatan sebelum instans DB dihentikan. Aurora juga menghasilkan peristiwa untuk inkompatibilitas. Untuk informasi selengkapnya tentang peristiwa Amazon Aurora, lihat [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md).

Setelah prechecks selesai, Aurora mencatat informasi rinci tentang setiap ketidakcocokan dalam file. `upgrade-prechecks.log` Dalam kebanyakan kasus, entri log berisi tautan ke dokumentasi MySQL untuk mengoreksi inkompatibilitas. Untuk informasi selengkapnya tentang format file log, lihat [Melihat dan mencantumkan file log basis data](USER_LogAccess.Procedural.Viewing.md).

**catatan**  
Karena sifatnya, pra-pemeriksaan akan menganalisis objek di basis data Anda. Analisis ini mengakibatkan konsumsi sumber daya dan menambah waktu penyelesaian peningkatan. Untuk informasi selengkapnya tentang pertimbangan kinerja precheck, lihat. [Proses precheck untuk Aurora MySQL](#AuroraMySQL.upgrade-prechecks.process)

**Contents**
+ [Proses precheck untuk Aurora MySQL](#AuroraMySQL.upgrade-prechecks.process)
+ [Prececk format log untuk Aurora MySQL](#AuroraMySQL.upgrade-prechecks.log-format)
+ [Contoh keluaran log precheck untuk Aurora MySQL](#AuroraMySQL.upgrade-prechecks.log-examples)
+ [Performa precheck untuk Aurora MySQL](#AuroraMySQL.upgrade-prechecks.performance)
+ [Ringkasan dari Community MySQL upgrade prechecks](#AuroraMySQL.upgrade-prechecks.community)
+ [Ringkasan dari Aurora MySQL upgrade prechecks](#AuroraMySQL.upgrade-prechecks.ams)
+ [Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md)
  + [Kesalahan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors)
    + [MySQL memeriksa sebelumnya yang melaporkan kesalahan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.mysql)
    + [Aurora MySQL memeriksa sebelumnya yang melaporkan kesalahan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.aurora)
  + [Peringatan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings)
    + [MySQL memeriksa sebelumnya yang melaporkan peringatan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.mysql)
    + [Aurora MySQL mengecek peringatan laporan itu](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.aurora)
  + [Pemberitahuan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-notices)
  + [Kesalahan, peringatan, atau pemberitahuan](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-all)

## Proses precheck untuk Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.process"></a>

Seperti dijelaskan sebelumnya, proses upgrade MySQL Aurora melibatkan menjalankan pemeriksaan kompatibilitas (prechecks) pada database Anda sebelum upgrade versi utama dapat dilanjutkan.

Untuk peningkatan di tempat, precheck berjalan pada instance DB penulis Anda saat sedang online. Jika precheck berhasil, upgrade berlangsung. Jika kesalahan ditemukan, mereka masuk ke `upgrade-prechecks.log` file dan pemutakhiran dibatalkan. Sebelum mencoba upgrade lagi, selesaikan kesalahan yang dikembalikan dalam `upgrade-prechecks.log` file.

Untuk peningkatan snapshot-restore, precheck berjalan selama proses pemulihan. Jika berhasil, database Anda akan meng-upgrade ke versi Aurora MySQL yang baru. Jika kesalahan ditemukan, mereka masuk ke `upgrade-prechecks.log` file dan pemutakhiran dibatalkan. Sebelum mencoba upgrade lagi, selesaikan kesalahan yang dikembalikan dalam `upgrade-prechecks.log` file.

Untuk informasi selengkapnya, lihat [Menemukan alasan Aurora Kegagalan peningkatan versi SQL utama saya](AuroraMySQL.Upgrading.failure-events.md) dan [Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

Untuk memantau status precheck, Anda dapat melihat peristiwa berikut di cluster DB Anda.


| Status precheck | Pesan peristiwa | Tindakan | 
| --- | --- | --- | 
|  Dimulai  |  Persiapan peningkatan sedang berlangsung: Memulai prapecek peningkatan online.  | Tidak ada | 
|  Gagal  |  Kluster basis data berada dalam keadaan yang tidak dapat ditingkatkan: Prakecek pemutakhiran gagal. Untuk detail selengkapnya, lihat file upgrade-prechecks.log. Untuk informasi selengkapnya tentang pemecahan masalah penyebab kegagalan pemutakhiran, lihat [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.upgrade. Pemecahan masalah.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html)  |  `upgrade-prechecks.log`Tinjau kesalahan.  Memperbaiki kesalahan. Coba lagi upgrade.  | 
|  Berhasil  |  Persiapan peningkatan sedang berlangsung: Prakecek peningkatan online yang telah selesai.  |  Precheck berhasil tanpa kesalahan yang dikembalikan. Tinjau `upgrade-prechecks.log` peringatan dan pemberitahuan.  | 

Untuk informasi selengkapnya tentang melihat acara, lihat[Melihat RDS acara Amazon](USER_ListEvents.md).

## Prececk format log untuk Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.log-format"></a>

Setelah pemeriksaan kompatibilitas pemutakhiran (prechecks) selesai, Anda dapat meninjau `upgrade-prechecks.log` file tersebut. File log berisi hasil, objek yang terpengaruh, dan informasi remediasi untuk setiap precheck.

Kesalahan memblokir peningkatan. Anda harus menyelesaikannya sebelum mencoba kembali peningkatan.

Peringatan dan pemberitahuan kurang penting, tetapi kami tetap menyarankan Anda untuk memeriksanya dengan cermat untuk memastikan bahwa tidak ada masalah kompatibilitas dengan beban kerja aplikasi. Segera atasi masalah yang diidentifikasi.

File log memiliki format berikut:
+ `targetVersion`— Versi MySQL yang kompatibel dengan upgrade MySQL Aurora.
+ `auroraServerVersion`— Versi Aurora MySQL tempat precheck dijalankan.
+ `auroraTargetVersion`— Versi Aurora MySQL yang Anda tingkatkan.
+ `checksPerformed`— Berisi daftar prechecks yang dilakukan.
+ `id`— Nama precheck yang sedang dijalankan.
+ `title`— Deskripsi precheck yang sedang dijalankan.
+ `status`— Ini tidak menunjukkan apakah precheck berhasil atau gagal, tetapi menunjukkan status kueri precheck:
  + `OK`— Kueri precheck berjalan dan diselesaikan dengan sukses.
  + `ERROR`— Kueri precheck gagal dijalankan. Hal ini dapat terjadi karena masalah seperti kendala sumber daya, restart instance yang tidak terduga, atau kueri precheck kompatibilitas terganggu.

    Untuk informasi lebih lanjut, lihat [contoh ini](#precheck-query-failed).
+ `description`— Gambaran umum tentang ketidakcocokan, dan bagaimana memperbaiki masalah.
+ `documentationLink`— Jika berlaku, tautan ke dokumentasi Aurora MySQL atau MySQL yang relevan dicatat di sini. Untuk informasi selengkapnya, lihat [Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).
+ `detectedProblems`— Jika precheck mengembalikan kesalahan, peringatan, atau pemberitahuan, ini menunjukkan rincian ketidakcocokan, dan objek yang tidak kompatibel jika berlaku:
  + `level`— Tingkat ketidakcocokan yang terdeteksi oleh precheck. Level yang valid adalah sebagai berikut:
    + `Error`— Upgrade tidak dapat dilanjutkan sampai Anda menyelesaikan ketidakcocokan.
    + `Warning`— Upgrade dapat dilanjutkan, tetapi objek, sintaks, atau konfigurasi yang tidak digunakan lagi terdeteksi. Tinjau peringatan dengan hati-hati, dan selesaikan segera untuk menghindari masalah di rilis mendatang. 
    + `Notice`— Upgrade dapat dilanjutkan, tetapi objek, sintaks, atau konfigurasi yang tidak digunakan lagi terdeteksi. Tinjau pemberitahuan dengan cermat, dan selesaikan segera untuk menghindari masalah di rilis mendatang. 
  + `dbObject`— Nama objek database di mana ketidakcocokan terdeteksi.
  + `description`— Penjelasan rinci tentang ketidakcocokan, dan bagaimana memperbaiki masalah.
+ `errorCount`— Jumlah kesalahan ketidakcocokan yang terdeteksi. Ini memblokir peningkatan.
+ `warningCount`— Jumlah peringatan ketidakcocokan yang terdeteksi. Ini tidak memblokir peningkatan, tetapi segera mengatasinya untuk menghindari masalah di rilis mendatang.
+ `noticeCount`— Jumlah pemberitahuan ketidakcocokan yang terdeteksi. Ini tidak memblokir peningkatan, segera mengatasinya untuk menghindari masalah di rilis mendatang.
+ `Summary`— Ringkasan kesalahan kompatibilitas precheck, peringatan, dan jumlah pemberitahuan.

## Contoh keluaran log precheck untuk Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.log-examples"></a>

Contoh berikut menunjukkan output log precheck yang mungkin Anda lihat. Untuk detail prechecks yang dijalankan, lihat[Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

**Prececk status OK, tidak ada ketidakcocokan yang terdeteksi**  
Query precheck berhasil diselesaikan. Tidak ada ketidakcocokan yang terdeteksi.  

```
{
  "id": "auroraUpgradeCheckIndexLengthLimitOnTinytext",
  "title": "Check for the tables with indexes defined with prefix length greater than 255 bytes on tiny text columns",
  "status": "OK",
  "detectedProblems": []
},
```

**Prececk status OK, kesalahan terdeteksi**  
Query precheck berhasil diselesaikan. Satu kesalahan terdeteksi.  

```
{
  "id": "auroraUpgradeCheckForPrefixIndexOnGeometryColumns",
  "title": "Check for geometry columns on prefix indexes",
  "status": "OK",
  "description": "Consider dropping the prefix indexes of geometry columns and restart the upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test25.sbtest1",
        "description": "Table `test25`.`sbtest1` has an index `idx_t1` on geometry column/s. Mysql 8.0 does not support this type of index on a geometry column https://dev.mysql.com/worklog/task/?id=11808. To upgrade to MySQL 8.0, Run 'DROP INDEX `idx_t1` ON `test25`.`sbtest1`;"
      },
 }
```

**Prececk status OK, peringatan terdeteksi**  
Peringatan dapat dikembalikan ketika precheck berhasil atau tidak berhasil.  
Di sini kueri precheck berhasil diselesaikan. Dua peringatan terdeteksi.  

```
{
  "id": "zeroDatesCheck",
  "title": "Zero Date, Datetime, and Timestamp values",
  "status": "OK",
  "description": "Warning: By default zero date/datetime/timestamp values are no longer allowed in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in SQL_MODE by default. These modes should be used with strict mode as they will be merged with strict mode in a future release. If you do not include these modes in your SQL_MODE setting, you are able to insert date/datetime/timestamp values that contain zeros. It is strongly advised to replace zero values with valid ones, as they may not work correctly in the future.",
  "documentationLink": "https://lefred.be/content/mysql-8-0-and-wrong-dates/",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "global.sql_mode",
        "description": "does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      },
      {
        "level": "Warning",
        "dbObject": "session.sql_mode",
        "description": " of 10 session(s) does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      }
    ]
}
```

**Prececk status ERROR, tidak ada ketidakcocokan yang dilaporkan**  
Kueri precheck gagal dengan kesalahan, sehingga ketidakcocokan tidak dapat diverifikasi.  

```
{
  "id": "auroraUpgradeCheckForDatafilePathInconsistency",
  "title": "Check for inconsistency related to ibd file path.",
  "status": "ERROR",
  "description": "Can't connect to MySQL server on 'localhost:3306' (111) at 13/08/2024 12:22:20 UTC. This failure can occur due to low memory available on the instance for executing upgrade prechecks. Please check 'FreeableMemory' Cloudwatch metric to verify the available memory on the instance while executing prechecks. If instance ran out of memory, we recommend to retry the upgrade on a higher instance class."
}
```
Kegagalan ini dapat terjadi karena restart instance yang tidak terduga atau kueri precheck kompatibilitas terganggu pada database saat berjalan. Misalnya, pada kelas instans DB yang lebih kecil, Anda mungkin mengalami ini ketika memori yang tersedia pada instance berjalan rendah.  
Anda dapat menggunakan CloudWatch metrik `FreeableMemory` Amazon untuk memverifikasi memori yang tersedia pada instance saat menjalankan prechecks. Jika instance kehabisan memori, kami sarankan untuk mencoba kembali peningkatan pada kelas instans DB yang lebih besar. Dalam beberapa kasus, Anda dapat menggunakan [penerapan Biru/Hijau](blue-green-deployments-overview.md) Ini memungkinkan prechecks dan upgrade untuk berjalan pada cluster DB “hijau” independen dari beban kerja produksi, yang juga mengkonsumsi sumber daya sistem.  
Untuk informasi selengkapnya, lihat [Memecahkan masalah penggunaan memori untuk database Aurora MySQL](ams-workload-memory.md).

**Ringkasan precheck, satu kesalahan dan tiga peringatan terdeteksi**  
Precheck kompatibilitas juga berisi informasi tentang sumber dan target versi MySQL Aurora, dan ringkasan kesalahan, peringatan, dan jumlah pemberitahuan di akhir output precheck.  
Sebagai contoh, output berikut menunjukkan bahwa upaya telah dilakukan untuk meng-upgrade dari Aurora MySQL 2.11.6 ke Aurora MySQL 3.07.1. Upgrade mengembalikan satu kesalahan, tiga peringatan, dan tidak ada pemberitahuan. Karena pemutakhiran tidak dapat dilanjutkan ketika kesalahan dikembalikan, Anda harus menyelesaikan masalah [routineSyntaxCheck](AuroraMySQL.upgrade-prechecks.descriptions.md#routineSyntaxCheck)kompatibilitas dan mencoba lagi pemutakhiran.  

```
{
  "serverAddress": "/tmp%2Fmysql.sock",
  "serverVersion": "5.7.12 - MySQL Community Server (GPL)",
  "targetVersion": "8.0.36",
  "auroraServerVersion": "2.11.6",
  "auroraTargetVersion": "3.07.1",
  "outfilePath": "/rdsdbdata/tmp/PreChecker.log",
  "checksPerformed": [{
      ... output for each individual precheck ...
      .
      .
      {
        "id": "oldTemporalCheck",
        "title": "Usage of old temporal type",
        "status": "OK",
          "detectedProblems": []
      },
      {
        "id": "routinesSyntaxCheck",
        "title": "MySQL 8.0 syntax check for routine-like objects",
        "status": "OK",
        "description": "The following objects did not pass a syntax check with the latest MySQL 8.0 grammar. A common reason is that they reference names that conflict with new reserved keywords. You must update these routine definitions and `quote` any such references before upgrading.",
        "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html",
        "detectedProblems": [{
            "level": "Error",
            "dbObject": "test.select_res_word",
            "description": "at line 2,18: unexpected token 'except'"
        }]
      },
      .
      .
      .
      {
        "id": "zeroDatesCheck",
        "title": "Zero Date, Datetime, and Timestamp values",
        "status": "OK",
        "description": "Warning: By default zero date/datetime/timestamp values are no longer allowed in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in SQL_MODE by default. These modes should be used with strict mode as they will be merged with strict mode in a future release. If you do not include these modes in your SQL_MODE setting, you are able to insert date/datetime/timestamp values that contain zeros. It is strongly advised to replace zero values with valid ones, as they may not work correctly in the future.",
        "documentationLink": "https://lefred.be/content/mysql-8-0-and-wrong-dates/",
        "detectedProblems": [{
            "level": "Warning",
            "dbObject": "global.sql_mode",
            "description": "does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
            },
            {
            "level": "Warning",
            "dbObject": "session.sql_mode",
            "description": " of 8 session(s) does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
            }
          ]
       },
       .
       .
       .
  }],
  "errorCount": 1,
  "warningCount": 3,
  "noticeCount": 0,
  "Summary": "1 errors were found. Please correct these issues before upgrading to avoid compatibility issues."
}
```

## Performa precheck untuk Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.performance"></a>

Prakecek kompatibilitas dijalankan sebelum instans DB diambil offline untuk peningkatan, jadi dalam keadaan biasa mereka tidak menyebabkan downtime instans DB saat berjalan. Namun, mereka dapat memengaruhi beban kerja aplikasi yang berjalan pada instance DB penulis. Prececks mengakses kamus data melalui tabel [information\$1schema](https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.7/en/information-schema-introduction.html), yang bisa lambat jika ada banyak objek database. Pertimbangkan faktor-faktor berikut:
+ Durasi precheck bervariasi dengan jumlah objek database seperti tabel, kolom, rutinitas, dan kendala. Cluster DB dengan sejumlah besar objek dapat memakan waktu lebih lama untuk dijalankan.

  Misalnya, [removedFunctionsCheck](AuroraMySQL.upgrade-prechecks.descriptions.md#removedFunctionsCheck)dapat memakan waktu lebih lama dan menggunakan lebih banyak sumber daya berdasarkan jumlah [objek yang disimpan](https://dev.mysql.com/doc/refman/5.7/en/stored-objects.html).
+ Untuk peningkatan di tempat, menggunakan kelas instans DB yang lebih besar (misalnya, db.r5.24xlarge atau db.r6g.16xlarge) dapat membantu peningkatan selesai lebih cepat dengan menggunakan lebih banyak CPU. Anda dapat berhemat setelah upgrade.
+ Kueri `information_schema` di beberapa database bisa lambat, terutama dengan banyak objek dan pada instance DB yang lebih kecil. Dalam kasus seperti itu, pertimbangkan untuk menggunakan kloning, pemulihan snapshot, atau penerapan [Biru/Hijau](blue-green-deployments-overview.md) untuk peningkatan.
+ Penggunaan sumber daya precheck (CPU, memori) dapat meningkat dengan lebih banyak objek, yang menyebabkan waktu berjalan lebih lama pada instans DB yang lebih kecil. Dalam kasus seperti itu, pertimbangkan pengujian menggunakan kloning, pemulihan snapshot, atau Blue/Green penerapan untuk peningkatan.

  Jika precheck gagal karena kurangnya sumber daya, Anda dapat mendeteksi ini di log precheck menggunakan output status:

  ```
  "status": "ERROR",
  ```

Untuk informasi selengkapnya, lihat [Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) dan [Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning).

## Ringkasan dari Community MySQL upgrade prechecks
<a name="AuroraMySQL.upgrade-prechecks.community"></a>

Berikut ini adalah daftar umum inkompatibilitas antara MySQL 5.7 dan 8.0:
+ Klaster DB Anda yang kompatibel dengan MySQL 5.7 tidak boleh menggunakan fitur yang tidak didukung di MySQL 8.0.

  Untuk informasi selengkapnya, lihat [Features removed in MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals) dalam dokumentasi MySQL.
+ Tidak boleh ada pelanggaran terkait kata kunci atau kata yang digunakan sistem. Beberapa kata kunci mungkin dicadangkan di MySQL 8.0 yang sebelumnya tidak dicadangkan.

  Untuk informasi selengkapnya, lihat [Keywords and reserved words](https://dev.mysql.com/doc/refman/8.0/en/keywords.html) dalam dokumentasi MySQL.
+ Untuk dukungan Unicode yang lebih baik, pertimbangkan untuk mengonversi objek yang menggunakan set karakter `utf8mb3` untuk menggunakan set karakter `utf8mb4`. Set karakter `utf8mb3` sudah tidak digunakan lagi. Selain itu, pertimbangkan untuk menggunakan `utf8mb4` untuk referensi set karakter, bukan `utf8`, karena saat ini `utf8` adalah alias untuk set karakter `utf8mb3`.

  Untuk informasi selengkapnya, lihat [The utf8mb3 character set (3-byte UTF-8 unicode encoding)](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html) dalam dokumentasi MySQL.
+ Tidak boleh ada tabel InnoDB dengan format baris non-default.
+ Tidak boleh ada atribut jenis panjang `ZEROFILL` atau `display`.
+ Tidak boleh ada tabel partisi yang menggunakan mesin penyimpanan yang tidak memiliki dukungan partisi native.
+ Tidak boleh ada tabel di basis data sistem `mysql` MySQL 5.7 yang memiliki nama yang sama dengan tabel yang digunakan oleh kamus data MySQL 8.0.
+ Tidak boleh ada tabel yang menggunakan jenis atau fungsi data yang usang.
+ Tidak boleh ada nama pembatasan kunci asing yang lebih panjang dari 64 karakter.
+ Tidak boleh ada mode SQL usang yang ditentukan dalam pengaturan variabel sistem `sql_mode`.
+ Tidak boleh ada tabel atau prosedur tersimpan dengan elemen kolom `ENUM` atau `SET` individual dengan panjang melebihi 255 karakter.
+ Tidak boleh ada partisi tabel yang berada dalam ruang tabel InnoDB bersama.
+ Tidak boleh ada referensi sirkular di jalur file data ruang tabel.
+ Tidak boleh ada kueri dan definisi program tersimpan yang menggunakan pengualifikasi `ASC` atau `DESC` untuk klausa `GROUP BY`.
+ Tidak boleh ada variabel sistem yang dihapus, dan variabel sistem harus menggunakan nilai default baru untuk MySQL 8.0.
+ Tidak boleh ada nilai nol (`0`) untuk date, datetime, atau timestamp.
+ Tidak boleh ada inkonsistensi skema yang dihasilkan dari penghapusan atau kerusakan file.
+ Tidak boleh ada nama tabel yang berisi string karakter `FTS`.
+ Tidak boleh ada tabel InnoDB yang dimiliki oleh mesin yang berbeda.
+ Tidak boleh ada nama tabel atau skema yang tidak valid untuk MySQL 5.7.

Untuk detail prechecks yang dijalankan, lihat[Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

Untuk informasi tentang peningkatan ke MySQL 8.0, lihat [Upgrading to MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/upgrading.html) dalam dokumentasi MySQL. Untuk gambaran umum tentang perubahan di MySQL 8.0, [lihat Apa yang baru di MySQL 8.0 dalam dokumentasi MySQL](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html).

## Ringkasan dari Aurora MySQL upgrade prechecks
<a name="AuroraMySQL.upgrade-prechecks.ams"></a>

Aurora MySQL memiliki persyaratan spesifiknya sendiri saat memutakhirkan dari versi 2 ke versi 3, termasuk yang berikut:
+ Tidak boleh ada sintaks SQL yang sudah berhenti digunakan, seperti `SQL_CACHE`, `SQL_NO_CACHE`, dan `QUERY_CACHE`, dalam tampilan, rutinitas, pemicu, dan peristiwa.
+ Tidak boleh ada kolom `FTS_DOC_ID` yang ada di tabel apa pun tanpa indeks `FTS`.
+ Tidak boleh ada ketidakcocokan definisi kolom antara kamus data InnoDB dan definisi tabel yang sebenarnya.
+ Semua nama basis data dan tabel harus huruf kecil ketika parameter `lower_case_table_names` diatur ke `1`.
+ Peristiwa dan pemicu tidak boleh memiliki pendefinisi yang hilang atau kosong atau konteks pembuatan yang tidak valid.
+ Semua nama pemicu dalam basis data harus unik.
+ Pemulihan DDL dan DDL cepat tidak didukung di Aurora MySQL versi 3. Tidak boleh ada artefak dalam basis data yang terkait dengan fitur-fitur ini.
+ Tabel dengan format baris `COMPACT` atau `REDUNDANT` tidak dapat memiliki indeks yang lebih besar dari 767 byte.
+ Panjang awalan indeks yang ditentukan pada kolom teks `tiny` tidak boleh melebihi 255 byte. Dengan set karakter `utf8mb4`, panjang awalan yang didukung dibatasi hingga 63 karakter.

  Panjang awalan yang lebih besar diizinkan di MySQL 5.7 menggunakan parameter. `innodb_large_prefix` Parameter ini tidak digunakan lagi di MySQL 8.0.
+ Tidak boleh ada inkonsistensi metadata InnoDB dalam tabel `mysql.host`.
+ Tidak boleh ada inkompatibilitas jenis data kolom dalam tabel sistem.
+ Tidak boleh ada transaksi XA dalam status `prepared`.
+ Nama kolom dalam tampilan tidak boleh lebih panjang dari 64 karakter.
+ Karakter khusus dalam prosedur tersimpan tidak boleh tidak konsisten.
+ Tabel tidak boleh memiliki inkonsistensi jalur file data.

Untuk detail prechecks yang dijalankan, lihat[Referensi deskripsi precheck untuk Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

# Referensi deskripsi precheck untuk Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.descriptions"></a>

Pra-cek pemutakhiran untuk Aurora MySQL dijelaskan di sini secara rinci.

**Contents**
+ [Kesalahan](#precheck-descriptions-errors)
  + [MySQL memeriksa sebelumnya yang melaporkan kesalahan](#precheck-descriptions-errors.mysql)
  + [Aurora MySQL memeriksa sebelumnya yang melaporkan kesalahan](#precheck-descriptions-errors.aurora)
+ [Peringatan](#precheck-descriptions-warnings)
  + [MySQL memeriksa sebelumnya yang melaporkan peringatan](#precheck-descriptions-warnings.mysql)
  + [Aurora MySQL mengecek peringatan laporan itu](#precheck-descriptions-warnings.aurora)
+ [Pemberitahuan](#precheck-descriptions-notices)
+ [Kesalahan, peringatan, atau pemberitahuan](#precheck-descriptions-all)

## Kesalahan
<a name="precheck-descriptions-errors"></a>

Prececks berikut menghasilkan kesalahan saat precheck gagal, dan pemutakhiran tidak dapat dilanjutkan.

**Topics**
+ [MySQL memeriksa sebelumnya yang melaporkan kesalahan](#precheck-descriptions-errors.mysql)
+ [Aurora MySQL memeriksa sebelumnya yang melaporkan kesalahan](#precheck-descriptions-errors.aurora)

### MySQL memeriksa sebelumnya yang melaporkan kesalahan
<a name="precheck-descriptions-errors.mysql"></a>

Precheck berikut berasal dari MySQL Komunitas:
+ [checkTableMysqlSkema](#checkTableMysqlSchema)
+ [circularDirectoryCheck](#circularDirectoryCheck)
+ [columnsWhichCannotHaveDefaultsCheck](#columnsWhichCannotHaveDefaultsCheck)
+ [depreciatedSyntaxCheck](#depreciatedSyntaxCheck)
+ [engineMixupCheck](#engineMixupCheck)
+ [enumSetElementLengthCheck](#enumSetElementLengthCheck)
+ [foreignKeyLengthMemeriksa](#foreignKeyLengthCheck)
+ [getDuplicateTriggers](#getDuplicateTriggers)
+ [getEventsWithNullDefiner](#getEventsWithNullDefiner)
+ [getMismatchedMetadata](#getMismatchedMetadata)
+ [getTriggersWithNullDefiner](#getTriggersWithNullDefiner)
+ [getValueOfVariableLower\$1case\$1table\$1names](#getValueOfVariable)
+ [groupByAscSyntaxCheck](#groupByAscSyntaxCheck)
+ [mysqlEmptyDotTableSyntaxCheck](#mysqlEmptyDotTableSyntaxCheck)
+ [mysqlIndexTooLargeCheck](#mysqlIndexTooLargeCheck)
+ [MySQLinkValid57 NamesCheck](#mysqlInvalid57NamesCheck)
+ [mysqlOrphanedRoutinesMemeriksa](#mysqlOrphanedRoutinesCheck)
+ [mysqlSchemaCheck](#mysqlSchemaCheck)
+ [nonNativePartitioningMemeriksa](#nonNativePartitioningCheck)
+ [oldTemporalCheck](#oldTemporalCheck)
+ [partitionedTablesInBerbagi TablespaceCheck](#partitionedTablesInSharedTablespace)
+ [removedFunctionsCheck](#removedFunctionsCheck)
+ [routineSyntaxCheck](#routineSyntaxCheck)
+ [schemaInconsistencyCheck](#schemaInconsistencyCheck)

**checkTableMysqlSkema**  
**Tingkat precheck: Kesalahan**  
**Masalah yang dilaporkan oleh `check table x for upgrade` perintah untuk `mysql` skema**  
Sebelum memulai upgrade ke Aurora MySQL versi 3, `check table for upgrade` dijalankan pada setiap tabel dalam skema pada instance DB. `mysql` `check table for upgrade`Perintah memeriksa tabel untuk setiap potensi masalah yang mungkin timbul selama upgrade ke versi MySQL yang lebih baru. Menjalankan perintah ini sebelum mencoba upgrade dapat membantu mengidentifikasi dan menyelesaikan ketidakcocokan sebelumnya, membuat proses upgrade yang sebenarnya lebih lancar.  
Perintah ini melakukan berbagai pemeriksaan pada setiap tabel, seperti berikut ini:  
+ Memverifikasi bahwa struktur tabel dan metadata kompatibel dengan versi MySQL target
+ Memeriksa fitur yang tidak digunakan lagi atau dihapus yang digunakan oleh tabel
+ Memastikan bahwa tabel dapat ditingkatkan dengan benar tanpa kehilangan data
Untuk informasi selengkapnya, lihat [pernyataan CHECK TABLE](https://dev.mysql.com/doc/refman/5.7/en/check-table.html) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "checkTableMysqlSchema",
  "title": "Issues reported by 'check table x for upgrade' command for mysql schema.",
  "status": "OK",
  "detectedProblems": []
}
```
Output untuk precheck ini tergantung pada kesalahan yang ditemui, dan ketika ditemui, karena `check table for upgrade` melakukan beberapa pemeriksaan.  
Jika Anda menemukan kesalahan dengan precheck ini, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.

**circularDirectoryCheck**  
**Tingkat precheck: Kesalahan**  
**Referensi direktori melingkar di jalur file data tablespace**  
Pada [MySQL](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-17.html) 8.0.17, klausa tidak lagi mengizinkan referensi direktori `CREATE TABLESPACE ... ADD DATAFILE` melingkar. Untuk menghindari masalah peningkatan, hapus referensi direktori melingkar dari jalur file data tablespace sebelum memutakhirkan ke Aurora MySQL versi 3.  
**Contoh keluaran:**  

```
{
  "id": "circularDirectory",
  "title": "Circular directory references in tablespace data file paths",
  "status": "OK",
  "description": "Error: Following tablespaces contain circular directory references (e.g. the reference '/../') in data file paths which as of MySQL 8.0.17 are not permitted by the CREATE TABLESPACE ... ADD DATAFILE clause. An exception to the restriction exists on Linux, where a circular directory reference is permitted if the preceding directory is a symbolic link. To avoid upgrade issues, remove any circular directory references from tablespace data file paths before upgrading.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-innodb-changes",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "ts2",
        "description": "circular reference in datafile path: '/home/ec2-user/dbdata/mysql_5_7_44/../ts2.ibd'",
        "dbObjectType": "Tablespace"
      }
  ]
}
```
Jika Anda menerima kesalahan ini, buat kembali tabel Anda menggunakan [file-per-table tablespace](https://dev.mysql.com/doc/refman/8.0/en/innodb-file-per-table-tablespaces.html). Gunakan jalur file default untuk semua definisi tablespace dan tabel.  
Aurora MySQL tidak mendukung ruang meja atau perintah umum. `CREATE TABLESPACE`  
Sebelum membangun kembali tablespace, lihat [Operasi DDL online](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) di dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.
Setelah membangun kembali, precheck berlalu, memungkinkan peningkatan untuk melanjutkan.  

```
{
  "id": "circularDirectoryCheck",
  "title": "Circular directory references in tablespace data file paths",
  "status": "OK",
  "detectedProblems": []
},
```

**columnsWhichCannotHaveDefaultsCheck**  
**Tingkat precheck: Kesalahan**  
**Kolom yang tidak dapat memiliki nilai default**  
[Sebelum MySQL 8.0.13`BLOB`,,, `TEXT``GEOMETRY`, `JSON` dan kolom tidak dapat memiliki nilai default.](https://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.html) Hapus klausa default pada kolom ini sebelum memutakhirkan ke Aurora MySQL versi 3. Untuk informasi selengkapnya tentang perubahan penanganan default untuk tipe data ini, lihat [nilai default tipe Data](https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "columnsWhichCannotHaveDefaultsCheck",
  "title": "Columns which cannot have default values",
  "status": "OK",
  "description": "Error: The following columns are defined as either BLOB, TEXT, GEOMETRY or JSON and have a default value set. These data types cannot have default values in MySQL versions prior to 8.0.13, while starting with 8.0.13, the default value must be specified as an expression. In order to fix this issue, please use the ALTER TABLE ... ALTER COLUMN ... DROP DEFAULT statement.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html#data-type-defaults-explicit",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.test_blob_default.geo_col",
        "description": "geometry"
      }
  ]
},
```
Precheck mengembalikan kesalahan karena `geo_col` kolom dalam `test.test_blob_default` tabel menggunakan`BLOB`,, `TEXT``GEOMETRY`, atau tipe `JSON` data dengan nilai default yang ditentukan.  
Melihat definisi tabel, kita dapat melihat bahwa `geo_col` kolom didefinisikan sebagai`geo_col geometry NOT NULL default ''`.  

```
mysql> show create table test_blob_default\G
*************************** 1. row ***************************
       Table: test_blob_default
Create Table: CREATE TABLE `test_blob_default` (
  `geo_col` geometry NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=latin1
```
Menghapus klausa default ini untuk memungkinkan precheck lulus.  
Sebelum menjalankan `ALTER TABLE` pernyataan atau membangun kembali ruang tabel, lihat [Operasi DDL online](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) di dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.

```
mysql> ALTER TABLE test_blob_default modify COLUMN geo_col geometry NOT NULL;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table test_blob_default\G
*************************** 1. row ***************************
       Table: test_blob_default
Create Table: CREATE TABLE `test_blob_default` (
  `geo_col` geometry NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
```
Precheck berlalu, dan Anda dapat mencoba kembali upgrade.  

```
{
  "id": "columnsWhichCannotHaveDefaultsCheck",
  "title": "Columns which cannot have default values",
  "status": "OK",
  "detectedProblems": []
},
```

**depreciatedSyntaxCheck**  
**Tingkat precheck: Kesalahan**  
**Penggunaan kata kunci yang disusutkan dalam definisi**  
[MySQL 8.0 telah menghapus cache kueri.](https://dev.mysql.com/doc/refman/5.7/en/query-cache.html) Akibatnya, beberapa sintaks SQL khusus cache kueri telah dihapus. Jika salah satu objek database Anda berisi`QUERY CACHE`,`SQL_CACHE`, atau `SQL_NO_CACHE` kata kunci, kesalahan precheck dikembalikan. Untuk mengatasi masalah ini, buat ulang objek ini, hapus kata kunci yang disebutkan.  
**Contoh keluaran:**  

```
{
  "id": "depreciatedSyntaxCheck",
  "title": "Usage of depreciated keywords in definition",
  "status": "OK",
  "description": "Error: The following DB objects contain keywords like 'QUERY CACHE', 'SQL_CACHE', 'SQL_NO_CACHE' which are not supported in major version 8.0. It is recommended to drop these DB objects or rebuild without any of the above keywords before upgrade.",
  "detectedProblems": [
      {
"level": "Error",
"dbObject": "test.no_query_cache_check",
"description": "PROCEDURE uses depreciated words in definition"
      }
  ]
}
```
Precheck melaporkan bahwa prosedur yang `test.no_query_cache_check` disimpan menggunakan salah satu kata kunci yang dihapus. Melihat definisi prosedur, kita dapat melihat bahwa ia menggunakan`SQL_NO_CACHE`.  

```
mysql> show create procedure test.no_query_cache_check\G
*************************** 1. row ***************************
           Procedure: no_query_cache_check
            sql_mode:
    Create Procedure: CREATE DEFINER=`reinvent`@`%` PROCEDURE `no_query_cache_check`()
BEGIN
    SELECT SQL_NO_CACHE k from sbtest1 where id > 10 and id < 20 group by k asc;
END
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Hapus kata kunci.  

```
mysql> drop procedure test.no_query_cache_check;
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter //

mysql> CREATE DEFINER=`reinvent`@`%` PROCEDURE `no_query_cache_check`() BEGIN     SELECT k from sbtest1 where id > 10 and id < 20 group by k asc; END//
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
```
Setelah menghapus kata kunci, precheck selesai dengan sukses.  

```
{
  "id": "depreciatedSyntaxCheck",
  "title": "Usage of depreciated keywords in definition",
  "status": "OK",
  "detectedProblems": []
}
```

**engineMixupCheck**  
**Tingkat precheck: Kesalahan**  
**Tabel yang diakui oleh InnoDB milik mesin yang berbeda**  
Mirip dengan [schemaInconsistencyCheck](#schemaInconsistencyCheck), precheck ini memverifikasi bahwa metadata tabel di MySQL konsisten sebelum melanjutkan dengan peningkatan.   
Jika Anda menemukan kesalahan dengan precheck ini, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.  
**Contoh keluaran:**  

```
{
  "id": "engineMixupCheck",
  "title": "Tables recognized by InnoDB that belong to a different engine",
  "status": "OK",
  "description": "Error: Following tables are recognized by InnoDB engine while the SQL layer believes they belong to a different engine. Such situation may happen when one removes InnoDB table files manually from the disk and creates e.g. a MyISAM table with the same name.\n\nA possible way to solve this situation is to e.g. in case of MyISAM table:\n\n1. Rename the MyISAM table to a temporary name (RENAME TABLE).\n2. Create some dummy InnoDB table (its definition does not need to match), then copy (copy, not move) and rename the dummy .frm and .ibd files to the orphan name using OS file commands.\n3. The orphan table can be then dropped (DROP TABLE), as well as the dummy table.\n4. Finally the MyISAM table can be renamed back to its original name.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "mysql.general_log_backup",
        "description": "recognized by the InnoDB engine but belongs to CSV"
      }
  ]
}
```

**enumSetElementLengthCheck**  
**Tingkat precheck: Kesalahan**  
**`ENUM`dan definisi `SET` kolom yang mengandung elemen yang lebih panjang dari 255 karakter**  
Tabel dan prosedur yang disimpan tidak boleh memiliki `ENUM` atau elemen `SET` kolom melebihi 255 karakter atau 1020 byte. Sebelum MySQL 8.0, panjang gabungan maksimum adalah 64K, tetapi 8.0 membatasi elemen individu untuk 255 karakter atau 1020 byte (mendukung multibyte). Jika Anda mendapatkan kegagalan precheck`enumSetElementLengthCheck`, ubah elemen apa pun yang melebihi batas baru ini sebelum mencoba kembali pemutakhiran.  
**Contoh keluaran:**  

```
{
  "id": "enumSetElementLengthCheck",
  "title": "ENUM/SET column definitions containing elements longer than 255 characters",
  "status": "OK",
  "description": "Error: The following columns are defined as either ENUM or SET and contain at least one element longer that 255 characters. They need to be altered so that all elements fit into the 255 characters limit.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/string-type-overview.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.large_set.s",
        "description": "SET contains element longer than 255 characters"
      }
  ]
},
```
Precheck melaporkan kesalahan karena kolom `s` dalam `test.large_set` tabel berisi `SET` elemen yang lebih besar dari 255 karakter.  
Setelah mengurangi `SET` ukuran untuk kolom ini, precheck berlalu, memungkinkan peningkatan untuk melanjutkan.  

```
{
  "id": "enumSetElementLenghtCheck",
  "title": "ENUM/SET column definitions containing elements longer than 255 characters",
  "status": "OK",
  "detectedProblems": []
},
```

**foreignKeyLengthMemeriksa**  
**Tingkat precheck: Kesalahan**  
**Nama kendala kunci asing lebih panjang dari 64 karakter**  
[Di MySQL, panjang pengidentifikasi dibatasi hingga 64 karakter, seperti yang diuraikan dalam dokumentasi MySQL.](https://dev.mysql.com/doc/refman/8.0/en/identifier-length.html) Karena [masalah](https://bugs.mysql.com/bug.php?id=88118) yang diidentifikasi di mana panjang kunci asing dapat sama atau melebihi nilai ini, yang menyebabkan kegagalan peningkatan, precheck ini diterapkan. Jika Anda mengalami kesalahan dengan precheck ini, Anda harus [mengubah atau mengganti nama](https://dev.mysql.com/doc/refman/8.0/en/alter-table.html) kendala Anda sehingga kurang dari 64 karakter sebelum mencoba kembali pemutakhiran.  
**Contoh keluaran:**  

```
{
  "id": "foreignKeyLength",
  "title": "Foreign key constraint names longer than 64 characters",
  "status": "OK",
  "detectedProblems": []
}
```

**getDuplicateTriggers**  
**Tingkat precheck: Kesalahan**  
**Semua nama pemicu dalam database harus unik.**  
Karena perubahan dalam implementasi kamus data, MySQL 8.0 tidak mendukung pemicu case-sensitive dalam database. Precheck ini memvalidasi bahwa cluster DB Anda tidak memiliki satu atau lebih database yang berisi pemicu duplikat. Untuk informasi selengkapnya, lihat [Sensitivitas huruf pengenal](https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "getDuplicateTriggers",
  "title": "MySQL pre-checks that all trigger names in a database are unique or not.",
  "status": "OK",
  "description": "Error: You have one or more database containing duplicate triggers. Mysql 8.0 does not support case sensitive triggers within a database https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html. To upgrade to MySQL 8.0, drop the triggers with case-insensitive duplicate names and recreate with distinct names.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test",
        "description": "before_insert_product"
      },
      {
        "level": "Error",
        "dbObject": "test",
        "description": "before_insert_PRODUCT"
      }
  ]
}
```
Precheck melaporkan kesalahan bahwa cluster database memiliki dua pemicu dengan nama yang sama, tetapi menggunakan kasus yang berbeda: `test.before_insert_product` dan. `test.before_insert_PRODUCT`  
Sebelum memutakhirkan, ganti nama pemicu atau jatuhkan dan buat ulang dengan nama baru.  
Setelah mengganti nama `test.before_insert_PRODUCT` menjadi`test.before_insert_product_2`, precheck berhasil.  

```
{
  "id": "getDuplicateTriggers",
  "title": "MySQL pre-checks that all trigger names in a database are unique or not.",
  "status": "OK",
  "detectedProblems": []
}
```

**getEventsWithNullDefiner**  
**Tingkat precheck: Kesalahan**  
**Kolom definer untuk tidak `mysql.event` bisa null atau kosong.**  
`DEFINER`Atribut menentukan akun MySQL yang memiliki definisi objek tersimpan, seperti pemicu, prosedur tersimpan, atau peristiwa. Atribut ini sangat berguna dalam situasi di mana Anda ingin mengontrol konteks keamanan di mana objek yang disimpan berjalan. Saat membuat objek tersimpan, jika `DEFINER` tidak ditentukan, defaultnya adalah pengguna yang membuat objek.  
Saat memutakhirkan ke MySQL 8.0, Anda tidak dapat memiliki objek tersimpan yang memiliki definer atau kosong dalam kamus `null` data MySQL. Jika Anda memiliki objek yang disimpan seperti itu, kesalahan precheck akan muncul. Anda harus memperbaikinya sebelum upgrade dapat dilanjutkan.  
Contoh kesalahan:  

```
{
  "id": "getEventsWithNullDefiner",
  "title": "The definer column for mysql.event cannot be null or blank.",
  "status": "OK",
  "description": "Error: Set definer column in mysql.event to a valid non-null definer.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.get_version",
        "description": "Set definer for event get_version in Schema test"
      }
  ]
}
```
Precheck mengembalikan kesalahan untuk `test.get_version` [acara](https://dev.mysql.com/doc/refman/5.7/en/events-overview.html) karena memiliki `null` definer.  
Untuk mengatasi ini, Anda dapat memeriksa definisi acara. Seperti yang Anda lihat, definernya kosong `null` atau kosong.  

```
mysql> select db,name,definer from mysql.event where name='get_version';
+------+-------------+---------+
| db   | name        | definer |
+------+-------------+---------+
| test | get_version |         |
+------+-------------+---------+
1 row in set (0.00 sec)
```
Jatuhkan atau buat ulang acara dengan definer yang valid.  
Sebelum menjatuhkan atau mendefinisikan ulang`DEFINER`, tinjau dan periksa aplikasi dan persyaratan hak istimewa Anda dengan cermat. Untuk informasi selengkapnya, lihat [Kontrol akses objek tersimpan](https://dev.mysql.com/doc/refman/5.7/en/stored-objects-security.html) dalam dokumentasi MySQL.

```
mysql> drop event test.get_version;
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;
mysql> delimiter $$
mysql> CREATE EVENT get_version
    ->     ON SCHEDULE
    ->       EVERY 1 DAY
    ->     DO
    ->      ///DO SOMETHING //
    -> $$
Query OK, 0 rows affected (0.01 sec)

mysql> DELIMITER ;

mysql> select db,name,definer from mysql.event where name='get_version';
+------+-------------+------------+
| db   | name        | definer    |
+------+-------------+------------+
| test | get_version | reinvent@% |
+------+-------------+------------+
1 row in set (0.00 sec)
```
Sekarang precheck berlalu.  

```
{
  "id": "getEventsWithNullDefiner",
  "title": "The definer column for mysql.event cannot be null or blank.",
  "status": "OK",
  "detectedProblems": []},
```

**getMismatchedMetadata**  
**Tingkat precheck: Kesalahan**  
**Ketidakcocokan definisi kolom antara kamus data InnoDB dan definisi tabel aktual**  
Mirip dengan [schemaInconsistencyCheck](#schemaInconsistencyCheck), precheck ini memverifikasi bahwa metadata tabel di MySQL konsisten sebelum melanjutkan dengan peningkatan. Dalam hal ini, precheck memverifikasi bahwa definisi kolom cocok antara kamus data InnoDB dan definisi tabel MySQL. Jika ketidakcocokan jika terdeteksi, pemutakhiran tidak dilanjutkan.  
Jika Anda menemukan kesalahan dengan precheck ini, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.  
**Contoh keluaran:**  

```
{
  "id": "getMismatchedMetadata",
  "title": "Column definition mismatch between InnoDB Data Dictionary and actual table definition.",
  "status": "OK",
  "description": "Error: Your database has mismatched metadata. The upgrade to mysql 8.0 will not succeed until this is fixed.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.mismatchTable",
        "description": "Table `test/mismatchTable` column names mismatch with InnoDb dictionary column names: iD <> id"
      }
  ]
}
```
Precheck melaporkan ketidakcocokan dalam metadata untuk `id` kolom dalam tabel. `test.mismatchTable` Secara khusus, metadata MySQL memiliki nama kolom sebagai`iD`, sedangkan InnoDB memilikinya sebagai. `id`

**getTriggersWithNullDefiner**  
**Tingkat precheck: Kesalahan**  
**Kolom definer untuk tidak `information_schema.triggers` bisa `null` atau kosong.**  
Precheck memvalidasi bahwa database Anda tidak memiliki pemicu yang didefinisikan dengan `null` atau definer kosong. Untuk informasi selengkapnya tentang persyaratan definer untuk objek yang disimpan, lihat [getEventsWithNullDefiner](#getEventsWithNullDefiner).  
**Contoh keluaran:**  

```
{
  "id": "getTriggersWithNullDefiner",
  "title": "The definer column for information_schema.triggers cannot be null or blank.",
  "status": "OK",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.example_trigger",
        "description": "Set definer for trigger example_trigger in Schema test"
      }
  ]
}
```
Precheck mengembalikan kesalahan karena `example_trigger` pemicu dalam `test` skema memiliki definer. `null` Untuk memperbaiki masalah ini, perbaiki definer dengan membuat ulang pemicu dengan pengguna yang valid, atau lepaskan pelatuknya. Untuk informasi lebih lanjut, lihat contoh di [getEventsWithNullDefiner](#getEventsWithNullDefiner).  
Sebelum menjatuhkan atau mendefinisikan ulang`DEFINER`, tinjau dan periksa aplikasi dan persyaratan hak istimewa Anda dengan cermat. Untuk informasi selengkapnya, lihat [Kontrol akses objek tersimpan](https://dev.mysql.com/doc/refman/5.7/en/stored-objects-security.html) dalam dokumentasi MySQL.

**getValueOfVariableLower\$1case\$1table\$1names**  
**Tingkat precheck: Kesalahan**  
**Semua nama database atau tabel harus huruf kecil ketika `lower_case_table_names` parameter diatur ke. `1`**  
Sebelum MySQL 8.0, nama database, nama tabel, dan objek lain berhubungan dengan file dalam direktori data, seperti metadata berbasis file (.frm). Variabel sistem [lower\$1case\$1table\$1names](https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html) memungkinkan pengguna untuk mengontrol bagaimana server menangani sensitivitas kasus identifier untuk objek database, dan penyimpanan objek metadata tersebut. Parameter ini dapat diubah pada server yang sudah diinisialisasi setelah reboot.  
Namun, di MySQL 8.0, sementara parameter ini masih mengontrol bagaimana server menangani sensitivitas kasus pengenal, itu tidak dapat diubah setelah kamus data diinisialisasi. Saat memutakhirkan atau membuat database MySQL 8.0, nilai yang ditetapkan `lower_case_table_names` untuk pertama kalinya kamus data dimulai di MySQL, digunakan untuk seumur hidup database itu. Pembatasan ini diberlakukan sebagai bagian dari implementasi implementasi [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html), di mana objek database dimigrasikan dari metadata berbasis file ke tabel InnoDB internal dalam skema. `mysql`  
Untuk informasi selengkapnya, lihat [Perubahan kamus data](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-data-dictionary-changes) dalam dokumentasi MySQL.  
Untuk menghindari masalah selama pemutakhiran saat memperbarui metadata berbasis file ke Kamus Data Atom baru, pemeriksaan awal ini memvalidasi bahwa ketika`lower_case_table_names = 1`, semua tabel disimpan di disk dalam huruf kecil. Jika tidak, kesalahan precheck dikembalikan, dan Anda harus memperbaiki metadata sebelum melanjutkan dengan peningkatan.  
**Contoh keluaran:**  

```
{
  "id": "getValueOfVariablelower_case_table_names",
  "title": "MySQL pre-checks that all database or table names are lowercase when the lower_case_table_names parameter is set to 1.",
  "status": "OK",
  "description": "Error: You have one or more databases or tables with uppercase letters in the names, but the lower_case_table_names parameter is set to 1. To upgrade to MySQL 8.0, either change all database or table names to lowercase, or set the parameter to 0.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.TEST",
        "description": "Table test.TEST contains one or more capital letters in name while lower_case_table_names = 1"
      }
  ]
}
```
Kesalahan dikembalikan karena tabel `test.TEST` berisi huruf besar, tetapi `lower_case_table_names` diatur ke. `1`  
Untuk mengatasi masalah ini, Anda dapat mengganti nama tabel untuk menggunakan huruf kecil, atau memodifikasi `lower_case_table_names` parameter pada cluster DB sebelum memulai pemutakhiran.  
Uji dan tinjau dokumentasi [sensitivitas huruf besar/kecil](https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html) di MySQL dengan cermat, dan bagaimana perubahan tersebut dapat memengaruhi aplikasi Anda.  
Juga tinjau dokumentasi MySQL 8.0 tentang [bagaimana](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names) lower\$1case\$1table\$1names ditangani secara berbeda di MySQL 8.0.

**groupByAscSyntaxCheck**  
**Tingkat precheck: Kesalahan**  
**Penggunaan `GROUP BY ASC/DESC` sintaks yang dihapus**  
Pada MySQL 8.0.13, usang atau sintaks untuk `ASC` klausa telah dihapus`DESC`. `GROUP BY` Kueri yang mengandalkan `GROUP BY` pengurutan sekarang dapat menghasilkan hasil yang berbeda. Untuk mendapatkan urutan pengurutan tertentu, gunakan `ORDER BY` klausa sebagai gantinya. Jika ada objek yang ada dalam database Anda menggunakan sintaks ini, Anda harus membuat ulang mereka menggunakan `ORDER BY` klausa sebelum mencoba kembali upgrade. Untuk informasi selengkapnya, lihat [perubahan SQL](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-sql-changes) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "groupbyAscSyntaxCheck",
  "title": "Usage of removed GROUP BY ASC/DESC syntax",
  "status": "OK",
  "description": "Error: The following DB objects use removed GROUP BY ASC/DESC syntax. They need to be altered so that ASC/DESC keyword is removed from GROUP BY clause and placed in appropriate ORDER BY clause.",
  "documentationLink": "https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html#mysqld-8-0-13-sql-syntax",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.groupbyasc",
        "description": "PROCEDURE uses removed GROUP BY ASC syntax",
        "dbObjectType": "Routine"
      }
  ]
}
```

**mysqlEmptyDotTableSyntaxCheck**  
**Tingkat precheck: Kesalahan**  
**Periksa `.<table>` sintaks usang yang digunakan dalam rutinitas.**  
Di MySQL 8.0, rutinitas tidak dapat lagi berisi sintaks pengenal usang (). `\".<table>\"` Jika ada rutinitas atau pemicu yang disimpan berisi pengidentifikasi tersebut, pemutakhiran gagal. Misalnya, `.dot_table` referensi berikut tidak lagi diizinkan:  

```
mysql> show create procedure incorrect_procedure\G
*************************** 1. row ***************************
           Procedure: incorrect_procedure
            sql_mode:
    Create Procedure: CREATE DEFINER=`reinvent`@`%` PROCEDURE `incorrect_procedure`()
BEGIN delete FROM .dot_table; select * from .dot_table where 1=1; END
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Setelah Anda membuat ulang rutinitas dan pemicu untuk menggunakan sintaks pengenal yang benar dan melarikan diri, precheck lolos, dan pemutakhiran dapat dilanjutkan. Untuk informasi selengkapnya tentang pengidentifikasi, lihat [nama objek skema dalam dokumentasi](https://dev.mysql.com/doc/refman/8.0/en/identifiers.html) MySQL.  
**Contoh keluaran:**  

```
{
  "id": "mysqlEmptyDotTableSyntaxCheck",
  "title": "Check for deprecated '.<table>' syntax used in routines.",
  "status": "OK",
  "description": "Error: The following routines contain identifiers in deprecated identifier syntax (\".<table>\"), and should be corrected before upgrade:\n",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.incorrect_procedure",
        "description": " routine body contains deprecated identifiers."
      }
  ]
}
```
Precheck mengembalikan kesalahan untuk `incorrect_procedure` rutin dalam `test` database karena berisi sintaks usang.  
Setelah Anda memperbaiki rutinitas, precheck berhasil, dan Anda dapat mencoba lagi upgrade.

**mysqlIndexTooLargeCheck**  
**Tingkat precheck: Kesalahan**  
**Periksa indeks yang terlalu besar untuk bekerja pada versi MySQL yang lebih tinggi dari 5.7**  
Untuk format baris yang ringkas atau berlebihan, seharusnya tidak mungkin membuat indeks dengan awalan yang lebih besar dari 767 byte. Namun, sebelum MySQL versi 5.7.35 ini dimungkinkan. Untuk informasi selengkapnya, lihat catatan rilis [MySQL 5.7.35](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-35.html).  
Setiap indeks yang terpengaruh oleh bug ini akan menjadi tidak dapat diakses setelah memutakhirkan ke MySQL 8.0. Precheck ini mengidentifikasi indeks yang menyinggung yang harus dibangun kembali sebelum pemutakhiran diizinkan untuk dilanjutkan.  

```
 {
  "id": "mysqlIndexTooLargeCheck",
  "title": "Check for indexes that are too large to work on higher versions of MySQL Server than 5.7",
  "status": "OK",
  "description": "Error: The following indexes ware made too large for their format in an older version of MySQL (older than 5.7.34). Normally those indexes within tables with compact or redundant row formats shouldn't be larger than 767 bytes. To fix this problem those indexes should be dropped before upgrading or those tables will be inaccessible.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.table_with_large_idx",
        "description": "IDX_2"
      }
  ]
}
```
Precheck mengembalikan kesalahan karena `test.table_with_large_idx` tabel berisi indeks pada tabel menggunakan format baris kompak atau redundan yang lebih besar dari 767 byte. Tabel ini akan menjadi tidak dapat diakses setelah memutakhirkan ke MySQL 8.0. Sebelum melanjutkan dengan upgrade, lakukan salah satu hal berikut:  
+ Jatuhkan indeks yang disebutkan dalam precheck.
+ Tambahkan indeks yang disebutkan di precheck.
+ Ubah format baris yang digunakan oleh tabel.
Di sini kita membangun kembali tabel untuk menyelesaikan kegagalan precheck. [Sebelum membangun kembali tabel, pastikan bahwa [innodb\$1file\$1format diatur ke, dan innodb\$1default\$1row\$1format](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_file_format) diatur ke`Barracuda`.](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_default_row_format) `dynamic` Ini adalah default di MySQL 5.7. Untuk informasi selengkapnya, lihat [format baris InnoDB dan manajemen format](https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format.html) [file InnoDB](https://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html) dalam dokumentasi MySQL.  
Sebelum membangun kembali tablespace, lihat [Operasi DDL online](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) di dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.

```
mysql > select @@innodb_file_format,@@innodb_default_row_format;
+----------------------+-----------------------------+
| @@innodb_file_format | @@innodb_default_row_format |
+----------------------+-----------------------------+
| Barracuda            | dynamic                     |
+----------------------+-----------------------------+
1 row in set (0.00 sec)

mysql> optimize table table_with_large_idx;
+---------------------------+----------+----------+-------------------------------------------------------------------+
| Table                     | Op       | Msg_type | Msg_text                                                          |
+---------------------------+----------+----------+-------------------------------------------------------------------+
| test.table_with_large_idx | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| test.table_with_large_idx | optimize | status   | OK                                                                |
+---------------------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (0.02 sec)

# Verify FILE_FORMAT and ROW_FORMAT
mysql>  select * from information_schema.innodb_sys_tables where name like 'test/table_with_large_idx';
+----------+---------------------------+------+--------+-------+-------------+------------+---------------+------------+
| TABLE_ID | NAME                      | FLAG | N_COLS | SPACE | FILE_FORMAT | ROW_FORMAT | ZIP_PAGE_SIZE | SPACE_TYPE |
+----------+---------------------------+------+--------+-------+-------------+------------+---------------+------------+
|       43 | test/table_with_large_idx |   33 |      4 |    26 | Barracuda   | Dynamic    |             0 | Single     |
+----------+---------------------------+------+--------+-------+-------------+------------+---------------+------------+
1 row in set (0.00 sec)
```
Setelah membangun kembali tabel, precheck berlalu, dan peningkatan dapat dilanjutkan.  

```
{
  "id": "mysqlIndexTooLargeCheck",
  "title": "Check for indexes that are too large to work on higher versions of MySQL Server than 5.7",
  "status": "OK",
  "detectedProblems": []
},
```

**MySQLinkValid57 NamesCheck**  
**Tingkat precheck: Kesalahan**  
**Periksa nama tabel dan skema yang tidak valid yang digunakan di MySQL 5.7**  
Saat bermigrasi ke kamus data baru di MySQL 8.0, instance database Anda tidak dapat berisi skema atau tabel yang diawali dengan. `#mysql50#` Jika ada objek seperti itu, pemutakhiran gagal. Untuk mengatasi masalah ini, jalankan [mysqlcheck](https://dev.mysql.com/doc/refman/8.0/en/mysqlcheck.html) terhadap skema dan tabel yang dikembalikan.  
[Pastikan Anda menggunakan versi [MySQL 5.7](https://downloads.mysql.com/archives/community/), [karena - fix-db-names - [dan - fix-table-names](https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html#option_mysqlcheck_fix-table-names)](https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html#option_mysqlcheck_fix-db-names) - telah dihapus `mysqlcheck` dari MySQL 8.0.](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html)
**Contoh keluaran:**  

```
{
  "id": "mysqlInvalid57NamesCheck",
  "title": "Check for invalid table names and schema names used in 5.7",
  "status": "OK",
  "description": "The following tables and/or schemas have invalid names. In order to fix them use the mysqlcheck utility as follows:\n\n  $ mysqlcheck --check-upgrade --all-databases\n  $ mysqlcheck --fix-db-names --fix-table-names --all-databases\n\nOR via mysql client, for eg:\n\n  ALTER DATABASE `#mysql50#lost+found` UPGRADE DATA DIRECTORY NAME;",
  "documentationLink": "https://dev.mysql.com/doc/refman/5.7/en/identifier-mapping.html https://dev.mysql.com/doc/refman/5.7/en/alter-database.html https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "#mysql50#fix_db_names",
        "description": "Schema name"
      }
  ]
}
```
Precheck melaporkan bahwa skema `#mysql50#fix_db_names` memiliki nama yang tidak valid.  
Setelah memperbaiki nama skema, precheck lolos, memungkinkan peningkatan untuk melanjutkan.  

```
{
  "id": "mysqlInvalid57NamesCheck",
  "title": "Check for invalid table names and schema names used in 5.7",
  "status": "OK",
  "detectedProblems": []
},
```

**mysqlOrphanedRoutinesMemeriksa**  
**Tingkat precheck: Kesalahan**  
**Periksa rutinitas yatim piatu di 5.7**  
Saat bermigrasi ke kamus data baru di MySQL 8.0, jika ada prosedur tersimpan dalam database di mana skema tidak ada lagi, pemutakhiran gagal. Precheck ini memverifikasi bahwa semua skema yang direferensikan dalam prosedur tersimpan pada instans DB Anda masih ada. Untuk memungkinkan pemutakhiran dilanjutkan, jatuhkan prosedur yang disimpan ini.  
**Contoh keluaran:**  

```
{
  "id": "mysqlOrphanedRoutinesCheck",
  "title": "Check for orphaned routines in 5.7",
  "status": "OK",
  "description": "Error: The following routines have been orphaned. Schemas that they are referencing no longer exists.\nThey have to be cleaned up or the upgrade will fail.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "dropped_db.get_version",
        "description": "is orphaned"
      }
  ]
},
```
Precheck melaporkan bahwa prosedur yang `get_version` disimpan dalam `dropped_db` database adalah yatim piatu.  
Untuk membersihkan prosedur ini, Anda dapat membuat ulang skema yang hilang.  

```
mysql> create database dropped_db;
Query OK, 1 row affected (0.01 sec)
```
Setelah skema dibuat ulang, Anda dapat menghentikan prosedur untuk memungkinkan peningkatan dilanjutkan.  

```
{
  "id": "mysqlOrphanedRoutinesCheck",
  "title": "Check for orphaned routines in 5.7",
  "status": "OK",
  "detectedProblems": []
},
```

**mysqlSchemaCheck**  
**Tingkat precheck: Kesalahan**  
**Nama tabel dalam `mysql` skema yang bertentangan dengan tabel baru di MySQL 8.0**  
[Kamus Data Atom](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) baru yang diperkenalkan di MySQL 8.0 menyimpan semua metadata dalam satu set tabel InnoDB internal dalam skema. `mysql` Selama upgrade, [tabel kamus data internal](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-schema.html) baru dibuat dalam `mysql` skema. Untuk menghindari tabrakan penamaan, yang akan mengakibatkan kegagalan pemutakhiran, precheck memeriksa semua nama tabel dalam `mysql` skema untuk memastikan bahwa tidak ada nama tabel baru yang sudah digunakan. Jika ya, kesalahan dikembalikan, dan pemutakhiran tidak diizinkan untuk dilanjutkan.  
**Contoh keluaran:**  

```
{
  "id": "mysqlSchema",
  "title": "Table names in the mysql schema conflicting with new tables in the latest MySQL.",
  "status": "OK",
  "description": "Error: The following tables in mysql schema have names that will conflict with the ones introduced in the latest version. They must be renamed or removed before upgrading (use RENAME TABLE command). This may also entail changes to applications that use the affected tables.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrade-before-you-begin.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "mysql.tablespaces",
        "description": "Table name used in mysql schema.",
        "dbObjectType": "Table"
      }
  ]
}
```
Kesalahan dikembalikan karena ada tabel bernama `tablespaces` dalam `mysql` skema. Ini adalah salah satu nama tabel kamus data internal baru di MySQL 8.0. Anda harus mengganti nama atau menghapus tabel tersebut sebelum memutakhirkan, dengan menggunakan perintah. `RENAME TABLE`

**nonNativePartitioningMemeriksa**  
**Tingkat precheck: Kesalahan**  
**Tabel yang dipartisi menggunakan mesin dengan partisi non-asli**  
[https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html](https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html) Dari jumlah tersebut, hanya InnoDB yang didukung di Aurora MySQL versi 3, kompatibel dengan MySQL 8.0. Setiap upaya untuk membuat tabel yang dipartisi di MySQL 8.0 menggunakan mesin penyimpanan lainnya gagal. Precheck ini mencari tabel di cluster DB Anda yang menggunakan partisi non-native. Jika ada yang dikembalikan, Anda harus menghapus partisi atau mengubah mesin penyimpanan ke InnoDB.  
**Contoh keluaran:**  

```
{
  "id": "nonNativePartitioning",
  "title": "Partitioned tables using engines with non native partitioning",
  "status": "OK",
  "description": "Error: In the latest MySQL storage engine is responsible for providing its own partitioning handler, and the MySQL server no longer provides generic partitioning support. InnoDB and NDB are the only storage engines that provide a native partitioning handler that is supported in the latest MySQL. A partitioned table using any other storage engine must be altered—either to convert it to InnoDB or NDB, or to remove its partitioning—before upgrading the server, else it cannot be used afterwards.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-configuration-changes",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.partMyisamTable",
         "description": "MyISAM engine does not support native partitioning",
         "dbObjectType": "Table"
      }
  ]
}
```
Di sini tabel myISAM menggunakan partisi, yang memerlukan tindakan sebelum pemutakhiran dapat dilanjutkan.

**oldTemporalCheck**  
**Tingkat precheck: Kesalahan**  
**Penggunaan tipe temporal lama**  
“Temporal lama” mengacu pada kolom tipe temporal (seperti `TIMESTAMP` dan`DATETIME`) yang dibuat di MySQL versi 5.5 dan lebih rendah. Di MySQL 8.0, dukungan untuk tipe data temporal lama ini dihapus, yang berarti bahwa peningkatan di tempat dari MySQL 5.7 ke 8.0 tidak dimungkinkan jika database berisi tipe temporal lama ini. Untuk memperbaikinya, Anda harus [membangun kembali](https://dev.mysql.com/doc/refman/5.7/en/rebuilding-tables.html) tabel apa pun yang berisi jenis tanggal temporal lama seperti itu, sebelum melanjutkan dengan peningkatan.  
[Untuk informasi lebih lanjut tentang penghentian tipe data temporal lama di MySQL 5.7, lihat blog ini.](https://dev.mysql.com/blog-archive/how-to-easily-identify-tables-with-temporal-types-in-old-format/) [Untuk informasi lebih lanjut tentang penghapusan tipe data temporal lama di MySQL 8.0, lihat blog ini.](https://dev.mysql.com/blog-archive/mysql-8-0-removing-support-for-old-temporal-datatypes/)  
Sebelum membangun kembali tablespace, lihat [Operasi DDL online](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) di dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.
**Contoh keluaran:**  

```
{
  "id": "oldTemporalCheck",
  "title": "Usage of old temporal type",
  "status": "OK",
  "description": "Error: Following table columns use a deprecated and no longer supported temporal disk storage format. They must be converted to the new format before upgrading. It can by done by rebuilding the table using 'ALTER TABLE <table_name> FORCE' command",
  "documentationLink": "https://dev.mysql.com/blog-archive/mysql-8-0-removing-support-for-old-temporal-datatypes/",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.55_temporal_table.timestamp_column",
        "description": "timestamp /* 5.5 binary format */",
        "dbObjectType": "Column"
      }
  ]
},
```
Kesalahan dilaporkan untuk kolom `timestamp_column` dalam tabel`test.55_temporal_table`, karena menggunakan format penyimpanan disk temporal lama yang tidak lagi didukung.  
Untuk mengatasi masalah ini dan memungkinkan peningkatan untuk melanjutkan, buat kembali tabel untuk mengonversi format penyimpanan disk temporal lama ke yang baru diperkenalkan di MySQL 5.6. Untuk informasi selengkapnya dan prasyarat sebelum melakukannya, lihat [Mengonversi antara set karakter Unicode 3-byte dan 4-byte](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-conversion.html) dalam dokumentasi MySQL.  
Menjalankan perintah berikut untuk membangun kembali tabel yang disebutkan dalam precheck ini mengubah tipe temporal lama ke format yang lebih baru dengan presisi fraksional-detik.  

```
ALTER TABLE ... ENGINE=InnoDB;
```
Untuk informasi selengkapnya tentang membangun kembali tabel, lihat [pernyataan ALTER TABLE dalam dokumentasi](https://dev.mysql.com/doc/refman/8.0/en/alter-table.html) MySQL.  
Setelah membangun kembali tabel yang dimaksud dan memulai ulang pemutakhiran, pemeriksaan kompatibilitas berlalu, memungkinkan peningkatan untuk melanjutkan.  

```
{
  "id": "oldTemporalCheck",
  "title": "Usage of old temporal type",
  "status": "OK",
  "detectedProblems": []
}
```

**partitionedTablesInBerbagi TablespaceCheck**  
**Tingkat precheck: Kesalahan**  
**Penggunaan tabel yang dipartisi di ruang tabel bersama**  
Pada [MySQL](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html) 8.0.13, dukungan untuk menempatkan partisi tabel di ruang tabel bersama dihapus. Sebelum memutakhirkan, pindahkan tabel tersebut dari ruang tabel bersama ke file-per-table ruang tabel.  
Sebelum membangun kembali ruang tabel, lihat [Mempartisi operasi dalam](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html#online-ddl-partitioning) dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.
**Contoh keluaran:**  

```
{
  "id": "partitionedTablesInSharedTablespaceCheck",
  "title": "Usage of partitioned tables in shared tablespaces",
  "status": "OK",
  "description": "Error: The following tables have partitions in shared tablespaces. They need to be moved to file-per-table tablespace before upgrading. You can do this by running query like 'ALTER TABLE table_name REORGANIZE PARTITION X INTO (PARTITION X VALUES LESS THAN (30) TABLESPACE=innodb_file_per_table);'",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.partInnoDBTable",
        "description": "Partition p1 is in shared tablespace innodb",
        "dbObjectType": "Table"
      }
  ]
}
```
Precheck gagal karena partisi `p1` dari tabel `test.partInnoDBTable` ada di tablespace sistem.  
Untuk mengatasi masalah ini, buat kembali `test.partInnodbTable` tabel, tempatkan partisi yang menyinggung `p1` di tablespace. file-per-table  

```
mysql > ALTER TABLE partInnodbTable REORGANIZE PARTITION p1
    ->   INTO (PARTITION p1 VALUES LESS THAN ('2014-01-01') TABLESPACE=innodb_file_per_table);
Query OK, 0 rows affected, 1 warning (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
```
Setelah melakukannya, precheck berlalu.  

```
{
  "id": "partitionedTablesInSharedTablespaceCheck",
  "title": "Usage of partitioned tables in shared tablespaces",
  "status": "OK",
  "detectedProblems": []
}
```

**removedFunctionsCheck**  
**Tingkat precheck: Kesalahan**  
**Penggunaan fungsi yang telah dihapus dari versi MySQL terbaru**  
Di MySQL 8.0, sejumlah fungsi bawaan telah dihapus. Precheck ini memeriksa database Anda untuk objek yang mungkin menggunakan fungsi-fungsi ini. Jika ditemukan, kesalahan akan dikembalikan. Anda harus menyelesaikan masalah sebelum mencoba kembali upgrade.  
Mayoritas fungsi yang dihapus adalah [fungsi spasial](https://dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html), yang telah diganti dengan `ST_*` fungsi yang setara. Dalam kasus ini, Anda memodifikasi objek database untuk menggunakan penamaan prosedur baru. Untuk informasi selengkapnya, lihat [Features removed in MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "removedFunctionsCheck",
  "title": "Usage of removed functions",
  "status": "OK",
  "description": "Error: The following DB objects use functions that were removed in the latest MySQL version. Please make sure to update them to use supported alternatives before upgrade.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.GetLocationsInPolygon",
        "description": "PROCEDURE uses removed function POLYGONFROMTEXT (consider using ST_POLYGONFROMTEXT instead)",
        "dbObjectType": "Routine"
      },
      {
        "level": "Error",
        "dbObject": "test.InsertLocation",
        "description": "PROCEDURE uses removed function POINTFROMTEXT (consider using ST_POINTFROMTEXT instead)",
        "dbObjectType": "Routine"
      }
  ]
},
```
[Precheck melaporkan bahwa prosedur yang `test.GetLocationsInPolygon` disimpan menggunakan dua fungsi yang dihapus: [POLYGONFROMTEXT dan POINTFROMTEXT](https://dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html#function_polyfromtext).](https://dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html#function_st-mpointfromtext) [Ini juga menyarankan agar Anda menggunakan [ST\$1POLYGONFROMTEXT dan ST\$1POINTFROMTEXT](https://dev.mysql.com/doc/refman/8.0/en/gis-wkt-functions.html#function_st-polyfromtext) baru sebagai pengganti.](https://dev.mysql.com/doc/refman/8.0/en/gis-wkt-functions.html#function_st-mpointfromtext) Setelah membuat ulang prosedur menggunakan saran, precheck selesai dengan sukses.  

```
{
  "id": "removedFunctionsCheck",
  "title": "Usage of removed functions",
  "status": "OK",
  "detectedProblems": []
},
```
Meskipun dalam kebanyakan kasus, fungsi yang tidak digunakan lagi memiliki penggantian langsung, pastikan Anda menguji aplikasi dan meninjau dokumentasi untuk setiap perubahan perilaku sebagai akibat dari perubahan tersebut.

**routineSyntaxCheck**  
**Tingkat precheck: Kesalahan**  
**Pemeriksaan sintaks MySQL untuk objek seperti rutin**  
MySQL 8.0 [memperkenalkan kata kunci cadangan yang tidak dicadangkan](https://dev.mysql.com/doc/mysqld-version-reference/en/keywords-8-0.html#keywords-new-in-8-0) sebelumnya. Upgrade prechecker mengevaluasi penggunaan kata kunci yang dicadangkan dalam nama objek database dan dalam definisi dan badannya. Jika mendeteksi kata kunci cadangan yang digunakan dalam objek database, seperti prosedur, fungsi, peristiwa, dan pemicu yang disimpan, pemutakhiran gagal dan kesalahan dipublikasikan ke file. `upgrade-prechecks.log` Untuk mengatasi masalah ini, Anda harus memperbarui definisi objek ini dan melampirkan referensi tersebut dalam tanda kutip tunggal (') sebelum memutakhirkan. Untuk informasi selengkapnya tentang melarikan diri dari kata-kata yang dicadangkan di MySQL, [lihat String literal](https://dev.mysql.com/doc/refman/8.0/en/string-literals.html) dalam dokumentasi MySQL.  
Atau, Anda dapat mengubah nama ke nama lain, yang mungkin memerlukan perubahan aplikasi.  
**Contoh keluaran:**  

```
{
  "id": "routineSyntaxCheck",
  "title": "MySQL syntax check for routine-like objects",
  "status": "OK",
  "description": "The following objects did not pass a syntax check with the latest MySQL grammar. A common reason is that they reference names that conflict with new reserved keywords. You must update these routine definitions and `quote` any such references before upgrading.",
  "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html",
  "detectedProblems": [
      {
         "level": "Error",
         "dbObject": "test.select_res_word",
         "description": "at line 2,18: unexpected token 'except'",
         "dbObjectType": "Routine"
      }
  ]
}
```
Untuk memperbaiki masalah ini, periksa definisi rutin.  

```
SHOW CREATE PROCEDURE test.select_res_word\G

*************************** 1. row ***************************
           Procedure: select_res_word
            sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Create Procedure: CREATE PROCEDURE 'select_res_word'()
BEGIN
    SELECT * FROM except;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Prosedur ini menggunakan tabel bernama`except`, yang merupakan kata kunci baru di MySQL 8.0. Buat ulang prosedur dengan melarikan diri dari string literal.  

```
> drop procedure if exists select_res_word;
Query OK, 0 rows affected (0.00 sec)

> DELIMITER $$
 > CREATE PROCEDURE select_res_word()
    -> BEGIN
    ->     SELECT * FROM 'except';
    -> END$$
Query OK, 0 rows affected (0.00 sec)

 > DELIMITER ;
```
Precheck sekarang berlalu.  

```
{
  "id": "routineSyntaxCheck",
  "title": "MySQL syntax check for routine-like objects",
  "status": "OK",
  "detectedProblems": []
}
```

**schemaInconsistencyCheck**  
**Tingkat precheck: Kesalahan**  
**Inkonsistensi skema yang dihasilkan dari penghapusan file atau korupsi**  
Seperti dijelaskan sebelumnya, MySQL 8.0 memperkenalkan [Atomic Data](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) Dictionary, yang menyimpan semua metadata dalam satu set tabel InnoDB internal dalam skema. `mysql` Arsitektur baru ini menyediakan cara transaksional, sesuai [ACID](https://en.wikipedia.org/wiki/ACID) untuk mengelola metadata database, memecahkan masalah “DDL atom” dari pendekatan berbasis file lama. Sebelum MySQL 8.0, objek skema mungkin menjadi yatim piatu jika operasi DDL tiba-tiba terganggu. Migrasi metadata berbasis file ke tabel Atomic Data Dictionary baru selama upgrade memastikan bahwa tidak ada objek skema yatim piatu seperti itu dalam instance DB. Jika ada objek yatim piatu yang ditemui, pemutakhiran gagal.  
Untuk membantu mendeteksi objek yatim piatu ini sebelum memulai pemutakhiran, `schemaInconsistencyCheck` precheck dijalankan untuk memastikan bahwa semua objek metadata kamus data disinkronkan. Jika ada objek metadata yatim piatu yang terdeteksi, pemutakhiran tidak dilanjutkan. Untuk melanjutkan dengan upgrade, bersihkan objek metadata yatim piatu ini.  
Jika Anda menemukan kesalahan dengan precheck ini, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.  
**Contoh keluaran:**  

```
{
  "id": "schemaInconsistencyCheck",
  "title": "Schema inconsistencies resulting from file removal or corruption",
  "status": "OK",
  "description": "Error: Following tables show signs that either table datadir directory or frm file was removed/corrupted. Please check server logs, examine datadir to detect the issue and fix it before upgrade",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.schemaInconsistencyCheck_failure",
        "description": "present in INFORMATION_SCHEMA's INNODB_SYS_TABLES table but missing from TABLES table"
      }
  ]
}
```
Precheck melaporkan bahwa `test.schemaInconsistencyCheck_failure` tabel memiliki metadata yang tidak konsisten. Dalam hal ini, tabel ada di metadata mesin penyimpanan InnoDB (`information_schema.INNODB_SYS_TABLES`), tetapi tidak di metadata MySQL (). `information_schema.TABLES`

### Aurora MySQL memeriksa sebelumnya yang melaporkan kesalahan
<a name="precheck-descriptions-errors.aurora"></a>

Precheck berikut khusus untuk Aurora MySQL:
+ [AuroraCheck DDLRecovery](#auroraCheckDDLRecovery)
+ [auroraCheckRdsUpgradePrechecksTable](#auroraCheckRdsUpgradePrechecksTable)
+ [Aurora Cek FODUpgrade](#auroraFODUpgradeCheck)
+ [auroraGetDanglingFulltextIndex](#auroraGetDanglingFulltextIndex)
+ [auroraUpgradeCheckForDatafilePathInconsistency](#auroraUpgradeCheckForDatafilePathInconsistency)
+ [auroraUpgradeCheckForFtsSpaceIdZero](#auroraUpgradeCheckForFtsSpaceIdZero)
+ [auroraUpgradeCheckForIncompleteXATransactions](#auroraUpgradeCheckForIncompleteXATransactions)
+ [auroraUpgradeCheckForInstanceLimit](#auroraUpgradeCheckForInstanceLimit)
+ [auroraUpgradeCheckForInternalUsers](#auroraUpgradeCheckForInternalUsers)
+ [auroraUpgradeCheckForInvalidUtf8mb3 CharacterStringInViews](#auroraUpgradeCheckForInvalidUtf8mb3CharacterStringInViews)
+ [auroraUpgradeCheckForInvalidUtf8mb3 ColumnComments](#auroraUpgradeCheckForInvalidUtf8mb3ColumnComments)
+ [auroraUpgradeCheckForInvalidUtf8mb3 IndexComments](#auroraUpgradeCheckForInvalidUtf8mb3IndexComments)
+ [auroraUpgradeCheckForInvalidUtf8mb3 TableComments](#auroraUpgradeCheckForInvalidUtf8mb3TableComments)
+ [auroraUpgradeCheckForMasterUser](#auroraUpgradeCheckForMasterUser)
+ [auroraUpgradeCheckForPrefixIndexOnGeometryColumns](#auroraUpgradeCheckForPrefixIndexOnGeometryColumns)
+ [auroraUpgradeCheckForSpecialCharactersInProcedures](#auroraUpgradeCheckForSpecialCharactersInProcedures)
+ [auroraUpgradeCheckForSysSchemaObjectTypeMismatch](#auroraUpgradeCheckForSysSchemaObjectTypeMismatch)
+ [auroraUpgradeCheckForViewColumnNameLength](#auroraUpgradeCheckForViewColumnNameLength)
+ [auroraUpgradeCheckIndexLengthLimitOnTinyColumns](#auroraUpgradeCheckIndexLengthLimitOnTinyColumns)
+ [auroraUpgradeCheckMissingInnodbMetadataForMysqlHostTable](#auroraUpgradeCheckMissingInnodbMetadataForMysqlHostTable)

**AuroraCheck DDLRecovery**  
**Tingkat precheck: Kesalahan**  
**Periksa artefak yang terkait dengan fitur pemulihan Aurora DDL**  
Sebagai bagian dari implementasi pemulihan Data Definition Language (DDL) di Aurora MySQL, metadata pada pernyataan DDL dalam pesawat dipertahankan dalam dan tabel dalam skema. `ddl_log_md_table` `ddl_log_table` `mysql` Implementasi pemulihan DDL Aurora tidak didukung untuk versi 3 dan seterusnya, karena fungsinya merupakan bagian dari implementasi [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) baru di MySQL 8.0. Jika Anda memiliki pernyataan DDL yang berjalan selama pemeriksaan kompatibilitas, precheck ini mungkin gagal. Kami menyarankan Anda mencoba upgrade sementara tidak ada pernyataan DDL yang berjalan.  
Jika precheck ini gagal tanpa menjalankan pernyataan DDL, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.  
Jika ada pernyataan DDL yang berjalan, output precheck mencetak pesan berikut:  

```
“There are DDL statements in process. Please allow DDL statements to finish before upgrading.”
```
**Contoh keluaran:**  

```
{
  "id": "auroraCheckDDLRecovery",
  "title": "Check for artifacts related to Aurora DDL recovery feature",
  "status": "OK",
  "description": "Aurora implementation of DDL recovery is not supported from 3.x onwards. This check verifies that the database do not have artifacts realted to the feature",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "mysql.ddl_log_md_table",
        "description": "Table mysql.ddl_log_md_table is not empty. Your database has pending DDL recovery operations. Reachout to AWS support for assistance."
      },
      {
        "level": "Error",
        "dbObject": "mysql.ddl_log_table",
        "description": "Table mysql.ddl_log_table is not empty. Your database has pending DDL recovery operations. Reachout to AWS support for assistance."
      },
      {
        "level": "Error",
        "dbObject": "information_schema.processlist",
        "description": "There are DDL statements in process. Please allow DDL statements to finish before upgrading."
      }
  ]
}
```
Precheck mengembalikan kesalahan karena DDL dalam pesawat berjalan bersamaan dengan pemeriksaan kompatibilitas. Kami menyarankan Anda mencoba lagi upgrade tanpa DDLs berjalan.

**auroraCheckRdsUpgradePrechecksTable**  
**Tingkat precheck: Kesalahan**  
**Periksa keberadaan `mysql.rds_upgrade_prechecks` tabel**  
Ini adalah precheck internal saja yang dilakukan oleh layanan RDS. Kesalahan apa pun akan ditangani secara otomatis saat upgrade dan dapat diabaikan dengan aman.  
Jika Anda menemukan kesalahan dengan precheck ini, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.  

```
{
  "id": "auroraCheckRdsUpgradePrechecksTable",
  "title": "Check existence of mysql.rds_upgrade_prechecks table",
  "status": "OK",
  "detectedProblems": []
}
```

**Aurora Cek FODUpgrade**  
**Tingkat precheck: Kesalahan**  
**Periksa artefak yang terkait dengan fitur DDL cepat Aurora**  
Optimasi [Fast DDL](AuroraMySQL.Managing.FastDDL.md) diperkenalkan dalam [mode lab](AuroraMySQL.Updates.LabMode.md) pada Aurora MySQL versi 2 untuk meningkatkan efisiensi beberapa operasi DDL. [Di Aurora MySQL versi 3, mode lab telah dihapus, dan implementasi Fast DDL telah digantikan oleh fitur MySQL 8.0 yang disebut Instant DDL.](https://dev.mysql.com/doc/refman/8.4/en/innodb-online-ddl-operations.html)  
Sebelum memutakhirkan ke Aurora MySQL versi 3, tabel apa pun yang menggunakan Fast DDL dalam mode lab harus dibangun kembali dengan `ALTER TABLE ... ENGINE=InnoDB` menjalankan perintah or untuk memastikan kompatibilitas dengan `OPTIMIZE TABLE` Aurora MySQL versi 3.  
Precheck ini mengembalikan daftar tabel tersebut. Setelah tabel yang dikembalikan telah dibangun kembali, Anda dapat mencoba kembali upgrade.  
**Contoh keluaran:**  

```
{
  "id": "auroraFODUpgradeCheck",
  "title": "Check for artifacts related to Aurora fast DDL feature",
  "status": "OK",
  "description": "Aurora fast DDL is not supported from 3.x onwards. This check verifies that the database does not have artifacts related to the feature",
  "documentationLink": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.FastDDL.html#AuroraMySQL.Managing.FastDDL-v2",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.test",
        "description": "Your table has pending Aurora fast DDL operations. Run 'OPTIMIZE TABLE <table name>' for the table to apply all the pending DDL updates. Then try the upgrade again."
      }
  ]
}
```
Precheck melaporkan bahwa tabel `test.test` memiliki operasi Fast DDL yang tertunda.  
Untuk memungkinkan pemutakhiran dilanjutkan, Anda dapat membangun kembali tabel, lalu coba lagi pemutakhiran.  
Sebelum membangun kembali tablespace, lihat [Operasi DDL online](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) di dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.

```
mysql> optimize table test.test;
+-----------+----------+----------+-------------------------------------------------------------------+
| Table     | Op       | Msg_type | Msg_text                                                          |
+-----------+----------+----------+-------------------------------------------------------------------+
| test.test | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| test.test | optimize | status   | OK                                                                |
+-----------+----------+----------+-------------------------------------------------------------------+
2 rows in set (0.04 sec)
```
Setelah membangun kembali tabel, precheck berhasil.  

```
{
  "id": "auroraFODUpgradeCheck",
  "title": "Check for artifacts related to Aurora fast DDL feature",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraGetDanglingFulltextIndex**  
**Tingkat precheck: Kesalahan**  
**Tabel dengan referensi `FULLTEXT` indeks menggantung**  
Sebelum MySQL 5.6.26, ada kemungkinan bahwa setelah menjatuhkan indeks pencarian teks lengkap, kolom tersembunyi dan akan menjadi yatim piatu. `FTS_DOC_ID` `FTS_DOC_ID_INDEX` Untuk informasi selengkapnya, lihat [Bug \$176012](https://bugs.mysql.com/bug.php?id=76012).  
Jika Anda memiliki tabel yang dibuat pada versi MySQL sebelumnya di mana hal ini terjadi, ini dapat menyebabkan peningkatan ke Aurora MySQL versi 3 gagal. Precheck ini memverifikasi bahwa tidak ada indeks teks lengkap yatim piatu, atau “menggantung” yang ada di cluster DB Anda sebelum memutakhirkan ke MySQL 8.0. Jika precheck ini gagal, buat kembali tabel apa pun yang berisi indeks teks lengkap yang menggantung.  
**Contoh keluaran:**  

```
{
  "id": "auroraGetDanglingFulltextIndex",
  "title": "Tables with dangling FULLTEXT index reference",
  "status": "OK",
  "description": "Error: The following tables contain dangling FULLTEXT index which is not supported. It is recommended to rebuild the table before upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.table_with_fts_index",
        "description": "Table `test.table_with_fts_index` contains dangling FULLTEXT index. Kindly recreate the table before upgrade."
      }
  ]
},
```
Precheck melaporkan kesalahan untuk `test.table_with_fts_index` tabel karena berisi indeks teks lengkap yang menggantung. Untuk memungkinkan upgrade untuk melanjutkan, membangun kembali tabel untuk membersihkan tabel tambahan indeks teks lengkap. Gunakan `OPTIMIZE TABLE test.table_with_fts_index` atau`ALTER TABLE test.table_with_fts_index, ENGINE=INNODB`.  
Setelah membangun kembali tabel, precheck berlalu.  

```
{
  "id": "auroraGetDanglingFulltextIndex",
  "title": "Tables with dangling FULLTEXT index reference",
  "status": "OK",
  "detectedProblems": []
},
```

**auroraUpgradeCheckForDatafilePathInconsistency**  
**Tingkat precheck: Kesalahan**  
**Periksa ketidakkonsistenan yang terkait dengan jalur `ibd` file**  
Precheck ini hanya berlaku untuk Aurora MySQL versi 3.03.0 dan yang lebih rendah. Jika Anda mengalami kesalahan dengan precheck ini, tingkatkan ke Aurora MySQL versi 3.04 atau lebih tinggi.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForDatafilePathInconsistency",
  "title": "Check for inconsistency related to ibd file path.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForFtsSpaceIdZero**  
**Tingkat precheck: Kesalahan**  
**Periksa indeks teks lengkap dengan ID spasi sebagai nol**  
Di MySQL, saat Anda menambahkan [indeks teks lengkap](https://dev.mysql.com/doc/refman/5.7/en/innodb-fulltext-index.html) ke tabel InnoDB, sejumlah ruang tabel indeks tambahan dibuat. Karena [bug](https://bugs.mysql.com/bug.php?id=72132) di versi MySQL sebelumnya, yang diperbaiki di versi 5.6.20, ada kemungkinan bahwa tabel indeks tambahan ini dibuat di tablespace [sistem](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_system_tablespace), bukan tablespace InnoDB mereka sendiri.  
Jika ada ruang tabel tambahan seperti itu, pemutakhiran akan gagal. Buat ulang indeks teks lengkap yang disebutkan dalam kesalahan precheck, lalu coba lagi pemutakhiran.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForFtsSpaceIdZero",
  "title": "Check for fulltext index with space id as zero",
  "status": "OK",
  "description": "The auxiliary tables of FTS indexes on the table are created in system table-space. Due to this DDL queries executed on MySQL8.0 shall cause database unavailability. To avoid that, drop and recreate all the FTS indexes on the table or rebuild the table using ALTER TABLE query before the upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.fts_space_zero_check",
        "description": " The auxiliary tables of FTS indexes on the table 'test.fts_space_zero_check' are created in system table-space due to https://bugs.mysql.com/bug.php?id=72132. In MySQL8.0, DDL queries executed on this table shall cause database unavailability. To avoid that, drop and recreate all the FTS indexes on the table or rebuild the table using ALTER TABLE query before the upgrade."
      }
  ]
},
```
Precheck melaporkan kesalahan untuk `test.fts_space_zero_check` tabel, karena memiliki tabel pencarian teks lengkap (FTS) tambahan di tablespace sistem.  
Setelah Anda menjatuhkan dan membuat ulang indeks FTS yang terkait dengan tabel ini, precheck berhasil.  
Sebelum membangun kembali ruang tabel, lihat [Mempartisi operasi dalam](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html#online-ddl-partitioning) dokumentasi MySQL untuk memahami efek penguncian dan pergerakan data pada transaksi latar depan.

```
{
 "id": "auroraUpgradeCheckForFtsSpaceIdZero",
 "title": "Check for fulltext index with space id as zero",
 "status": "OK",
 "detectedProblems": []
}
```

**auroraUpgradeCheckForIncompleteXATransactions**  
**Tingkat precheck: Kesalahan**  
**Periksa transaksi XA dalam keadaan siap**  
[Saat menjalankan proses peningkatan versi utama, penting bahwa instance Aurora MySQL versi 2 DB mengalami shutdown yang bersih.](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_slow_shutdown) Ini memastikan bahwa semua transaksi dilakukan atau dibatalkan, dan bahwa InnoDB telah membersihkan semua catatan log undo. Karena rollback transaksi diperlukan, jika database Anda memiliki [transaksi XA](https://dev.mysql.com/doc/refman/5.7/en/xa.html) dalam keadaan siap, itu dapat memblokir shutdown bersih dari proses. Untuk alasan ini, jika ada transaksi XA yang disiapkan terdeteksi, peningkatan tidak akan dapat dilanjutkan sampai Anda mengambil tindakan untuk melakukan atau mengembalikannya.  
Untuk informasi selengkapnya tentang menemukan transaksi XA dalam keadaan siap menggunakan`XA RECOVER`, lihat [pernyataan SQL transaksi XA dalam dokumentasi MySQL](https://dev.mysql.com/doc/refman/5.7/en/xa-statements.html). Untuk informasi selengkapnya tentang status transaksi XA, lihat [status transaksi XA dalam dokumentasi](https://dev.mysql.com/doc/refman/5.7/en/xa-states.html) MySQL.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForIncompleteXATransactions",
  "title": "Pre-checks for XA Transactions in prepared state.",
  "status": "OK",
  "description": "Your cluster currently has XA transactions in the prepared state. To proceed with the upgrade, commit or rollback these transactions.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "all",
        "description": "Your cluster currently has XA transactions in the prepared state. To proceed with the upgrade, commit or rollback these transactions."
      }
  ]
}
```
Precheck ini melaporkan kesalahan karena ada transaksi dalam keadaan siap yang harus dilakukan atau dibatalkan.  
Setelah masuk ke database, Anda dapat memeriksa tabel [information\$1schema.innodb\$1trx](https://dev.mysql.com/doc/refman/5.7/en/information-schema-innodb-trx-table.html) dan output untuk informasi lebih lanjut. `XA RECOVER`  
Sebelum melakukan atau mengembalikan transaksi, kami sarankan Anda meninjau dokumentasi [MySQL](https://dev.mysql.com/doc/refman/5.7/en/xa-restrictions.html) dan persyaratan aplikasi Anda.

```
mysql> select trx_started,
    trx_mysql_thread_id,
    trx_id,trx_state,
    trx_operation_state,
    trx_rows_modified,
    trx_rows_locked 
from 
    information_schema.innodb_trx;
+---------------------+---------------------+---------+-----------+---------------------+-------------------+-----------------+
| trx_started         | trx_mysql_thread_id | trx_id  | trx_state | trx_operation_state | trx_rows_modified | trx_rows_locked |
+---------------------+---------------------+---------+-----------+---------------------+-------------------+-----------------+
| 2024-08-12 01:09:39 |                   0 | 2849470 | RUNNING   | NULL                |                 1 |               0 |
+---------------------+---------------------+---------+-----------+---------------------+-------------------+-----------------+
1 row in set (0.00 sec)

mysql> xa recover;
+----------+--------------+--------------+--------+
| formatID | gtrid_length | bqual_length | data   |
+----------+--------------+--------------+--------+
|        1 |            6 |            0 | xatest |
+----------+--------------+--------------+--------+
1 row in set (0.00 sec)
```
Dalam hal ini, kami memutar kembali transaksi yang disiapkan.  

```
mysql> XA ROLLBACK 'xatest';
Query OK, 0 rows affected (0.00 sec)
v
mysql> xa recover;
Empty set (0.00 sec)
```
Setelah transaksi XA dibatalkan, precheck berhasil.  

```
{
  "id": "auroraUpgradeCheckForIncompleteXATransactions",
  "title": "Pre-checks for XA Transactions in prepared state.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForInstanceLimit**  
**Tingkat precheck: Kesalahan**  
**Periksa apakah upgrade didukung pada kelas instance saat ini**  
Menjalankan pemutakhiran di tempat dari Aurora MySQL versi 2.12.0 atau 2.12.1, di mana kelas instans DB [penulis adalah db.r6i.32xlarge, saat](Concepts.DBInstanceClass.md) ini tidak didukung. Dalam hal ini, precheck mengembalikan kesalahan. Untuk memungkinkan pemutakhiran dilanjutkan, Anda dapat mengubah kelas instans DB Anda menjadi db.r6i.24xlarge atau lebih kecil. Atau Anda dapat meningkatkan ke Aurora MySQL versi 2.12.2 atau lebih tinggi, di mana upgrade di tempat ke Aurora MySQL versi 3 didukung pada db.r6i.32xlarge.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForInstanceLimit",
  "title": "Checks if upgrade is supported on the current instance class",
  "status": "OK",
  "description": "Upgrade from Aurora Version 2.12.0 and 2.12.1 may fail for 32.xl and above instance class.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "all",
        "description": "Upgrade is not supported on this instance size for Aurora MySql Version 2.12.1. Before upgrading to Aurora MySql 3, please consider either: 1. Changing the instance class to 24.xl or lower. -or- 2. Upgrading to patch version 2.12.2 or higher."
      }
  ]
},
```
Precheck mengembalikan kesalahan karena instance DB penulis menggunakan kelas instance db.r6i.32xlarge, dan berjalan pada Aurora MySQL versi 2.12.1.

**auroraUpgradeCheckForInternalUsers**  
**Tingkat precheck: Kesalahan**  
**Periksa 8.0 pengguna internal**  
Precheck ini hanya berlaku untuk Aurora MySQL versi 3.03.0 dan yang lebih rendah. Jika Anda mengalami kesalahan dengan precheck ini, tingkatkan ke Aurora MySQL versi 3.04 atau lebih tinggi.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForInternalUsers",
  "title": "Check for 8.0 internal users.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForInvalidUtf8mb3 CharacterStringInViews**  
**Tingkat precheck: Kesalahan**  
**Periksa karakter utf8mb3 yang tidak valid dalam definisi tampilan**  
Precheck ini mengidentifikasi tampilan yang berisi komentar dengan pengkodean karakter yang tidak valid`utf8mb3`. Di MySQL 8.0, validasi yang lebih ketat diterapkan pada pengkodean karakter dalam metadata, termasuk komentar tampilan. Jika ada definisi tampilan yang berisi karakter yang tidak valid dalam kumpulan `utf8mb3` karakter, pemutakhiran gagal.  
Untuk mengatasi masalah ini, ubah definisi tampilan untuk menghapus atau mengganti karakter non-BMP sebelum Anda mencoba upgrade.  
**Contoh keluaran:**  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3CharacterStringInViews",
"title": "Check for invalid utf8mb3 character string.",
"status": "OK",
"description": "Definition of following view(s) has/have invalid utf8mb3 character string.",
"detectedProblems": [
        {
            "level": "Error",
            "dbObject": "precheck.utf8mb3_invalid_char_view",
            "description": "Definition of view precheck.utf8mb3_invalid_char_view contains an invalid utf8mb3 character string. This is due to https://bugs.mysql.com/bug.php?id=110177. To fix the inconsistency, we recommend you to modify the view definition to not use non-BMP characters and try the upgrade again."
        }
    ]
},
```
Precheck melaporkan bahwa definisi `utf8mb3_invalid_char_view` tampilan berisi `utf8mb3` karakter yang tidak valid dalam definisinya.  
Untuk mengatasi masalah ini, identifikasi tampilan yang berisi karakter yang tidak didukung dan perbarui komentar. Pertama, periksa struktur tampilan dan identifikasi komentar.  

```
MySQL> SHOW CREATE VIEW precheck.utf8mb3_invalid_char_view\G
*************************** 1. row ***************************
                View: utf8mb3_invalid_char_view
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`admin`@`%` SQL SECURITY DEFINER VIEW `utf8mb3_invalid_char_view` AS select 'This row contains a dolphin 🐬' AS `message`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set, 1 warning (0.00 sec)
```
Setelah Anda mengidentifikasi tampilan yang berisi kesalahan, ganti tampilan dengan `CREATE OR REPLACE VIEW` pernyataan.  

```
MySQL> CREATE OR REPLACE VIEW precheck.utf8mb3_invalid_char_view AS select 'This view definition to not use non-BMP characters' AS message;
```
Setelah memperbarui semua definisi tampilan yang berisi karakter yang tidak didukung, precheck berlalu dan pemutakhiran dapat dilanjutkan.  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3ColumnComments",
"title": "Check for invalid utf8mb3 column comments.",
"status": "OK",
"detectedProblems": []
}
```

**auroraUpgradeCheckForInvalidUtf8mb3 ColumnComments**  
**Tingkat precheck: Kesalahan**  
**Periksa komentar kolom utf8mb3 yang tidak valid**  
Precheck ini mengidentifikasi tabel yang berisi komentar kolom dengan pengkodean karakter yang tidak valid`utf8mb3`. Di MySQL 8.0, validasi yang lebih ketat diterapkan pada pengkodean karakter dalam metadata, termasuk komentar kolom. Jika ada komentar kolom yang berisi karakter yang tidak valid dalam set karakter utf8mb3, pemutakhiran akan gagal.  
Untuk mengatasi masalah ini, Anda harus memodifikasi kolom komentar untuk menghapus atau mengganti karakter non-BMP sebelum mencoba upgrade. Anda dapat menggunakan `ALTER TABLE` pernyataan untuk memperbarui kolom komentar.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForInvalidUtf8mb3ColumnComments",
  "title": "Check for invalid utf8mb3 column comments.",
  "status": "OK",
  "description": "Following table(s) has/have invalid utf8mb3 comments on the column/columns.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.t2",
        "description": "Table test.t2 has invalid utf8mb3 comments in it's column/columns. This is due to non-BMP characters in the comment field. To fix the inconsistency, we recommend you to modify comment fields to not use non-BMP characters and try the upgrade again."
      }
  ]
}
```
Precheck melaporkan bahwa `test.t2` tabel berisi `utf8mb3` karakter yang tidak valid dalam satu atau beberapa kolom komentar, khususnya karena adanya karakter non-BMP.  
Untuk mengatasi masalah ini, Anda dapat mengidentifikasi kolom bermasalah dan memperbarui komentar mereka. Pertama, periksa struktur tabel untuk mengidentifikasi kolom dengan komentar:  

```
mysql> SHOW CREATE TABLE test.t2\G
```
Setelah Anda mengidentifikasi kolom dengan komentar bermasalah, perbarui dengan menggunakan `ALTER TABLE` pernyataan. Misalnya:  

```
mysql> ALTER TABLE test.t2 MODIFY COLUMN column_name data_type COMMENT 'Updated comment without non-BMP characters';
```
Atau, Anda dapat menghapus komentar sepenuhnya:  

```
mysql> ALTER TABLE test.t2 MODIFY COLUMN column_name data_type COMMENT '';
```
Setelah memperbarui semua komentar kolom yang bermasalah, precheck akan lulus dan peningkatan dapat dilanjutkan:  

```
{
  "id": "auroraUpgradeCheckForInvalidUtf8mb3ColumnComments",
  "title": "Check for invalid utf8mb3 column comments.",
  "status": "OK",
  "detectedProblems": []
}
```
Sebelum memodifikasi komentar kolom, pastikan bahwa kode aplikasi atau dokumentasi apa pun yang bergantung pada komentar ini diperbarui sesuai dengan itu. Pertimbangkan untuk bermigrasi ke set karakter utf8mb4 untuk dukungan Unicode yang lebih baik jika aplikasi Anda memerlukan karakter non-BMP.

**auroraUpgradeCheckForInvalidUtf8mb3 IndexComments**  
**Tingkat precheck: Kesalahan**  
**Periksa komentar indeks utf8mb3 yang tidak valid**  
Precheck ini mengidentifikasi tabel yang berisi komentar indeks dengan pengkodean karakter yang tidak valid`utf8mb3`. Di MySQL 8.0, validasi yang lebih ketat diterapkan pada pengkodean karakter dalam metadata, termasuk komentar indeks. Jika ada komentar indeks yang berisi karakter yang tidak valid dalam kumpulan `utf8mb3` karakter, pemutakhiran gagal.  
Untuk mengatasi masalah ini, Anda harus mengubah komentar indeks untuk menghapus atau mengganti karakter non-BMP sebelum mencoba upgrade.  
**Contoh keluaran:**  

```
{
    "id": "auroraUpgradeCheckForInvalidUtf8mb3IndexComments",
    "title": "Check for invalid utf8mb3 index comments.",
    "status": "OK",
    "description": "Following table(s) has/have invalid utf8mb3 comments on the index.",
    "detectedProblems": [
        {
            "level": "Error",
            "dbObject": "precheck.utf8mb3_tab_index_comment",
            "description": "Table precheck.utf8mb3_tab_index_comment has invalid utf8mb3 comments in it's index. This is due to https://bugs.mysql.com/bug.php?id=110177. To fix the inconsistency, we recommend you to modify comment fields to not use non-BMP characters and try the upgrade again."
        }
    ]
},
```
Precheck melaporkan bahwa `utf8mb3_tab_index_comment` tabel berisi `utf8mb3` karakter yang tidak valid dalam satu atau beberapa kolom komentar, khususnya karena adanya karakter non-BMP.  
Untuk mengatasi masalah ini, pertama, periksa struktur tabel untuk mengidentifikasi indeks dengan komentar bermasalah.  

```
MySQL> SHOW CREATE TABLE precheck.utf8mb3_tab_index_comment\G
*************************** 1. row ***************************
    Table: utf8mb3_tab_index_comment
Create Table: CREATE TABLE `utf8mb3_tab_index_comment` (
`id` int(11) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
KEY `idx_name` (`name`) COMMENT 'Name index 🐬'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)
```
Setelah Anda mengidentifikasi indeks yang berisi komentar yang menggunakan karakter yang tidak didukung, jatuhkan dan buat ulang indeks.  
Menjatuhkan dan membuat ulang indeks tabel dapat menyebabkan downtime. Kami menyarankan Anda merencanakan dan menjadwalkan operasi ini selama pemeliharaan.

```
MySQL> ALTER TABLE precheck.utf8mb3_tab_index_comment DROP INDEX idx_name;
MySQL> ALTER TABLE precheck.utf8mb3_tab_index_comment ADD INDEX idx_name(name);
```
Contoh berikut menunjukkan cara lain untuk membuat ulang indeks.  

```
MySQL> ALTER TABLE utf8mb3_tab_index_comment DROP INDEX idx_name, ADD INDEX idx_name (name) COMMENT 'Updated comment without non-BMP characters';
```
Setelah Anda menghapus atau memperbarui semua komentar indeks yang tidak didukung, precheck akan berlalu dan pemutakhiran dapat dilanjutkan.  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3IndexComments",
"title": "Check for invalid utf8mb3 index comments.",
"status": "OK",
"detectedProblems": []
},
```

**auroraUpgradeCheckForInvalidUtf8mb3 TableComments**  
**Tingkat precheck: Kesalahan**  
**Periksa karakter utf8mb3 yang tidak valid dalam definisi tabel**  
Precheck ini mengidentifikasi tabel yang berisi komentar dengan pengkodean karakter yang tidak valid`utf8mb3`. Di MySQL 8.0, validasi yang lebih ketat diterapkan pada pengkodean karakter dalam metadata, termasuk komentar tabel. Jika ada komentar tabel yang berisi karakter yang tidak valid dalam set `utf8mb3` karakter, pemutakhiran gagal.  
Untuk mengatasi masalah ini, Anda harus mengubah komentar tabel untuk menghapus atau mengganti karakter non-BMP sebelum mencoba upgrade.  
**Contoh keluaran:**  

```
{
    "id": "auroraUpgradeCheckForInvalidUtf8mb3TableComments",
    "title": "Check for invalid utf8mb3 table comments.",
    "status": "OK",
    "description": "Following table(s) has/have invalid utf8mb3 comments.",
    "detectedProblems": [
        {
            "level": "Error",
            "dbObject": "precheck.utf8mb3_table_with_comment",
            "description": "Table precheck.utf8mb3_table_with_comment has invalid utf8mb3 comments. This is due to https://bugs.mysql.com/bug.php?id=110177. To fix the inconsistency, we recommend you to modify comment fields to not use non-BMP characters and try the upgrade again."
        }
        
    ]
},
```
Precheck melaporkan `utf8mb3` komentar tidak valid yang ditentukan untuk `utf8mb3_table_with_comment` tabel dalam database pengujian.  
Untuk mengatasi masalah ini, identifikasi tabel yang berisi karakter yang tidak didukung dan perbarui komentar. Pertama, periksa struktur tabel dan identifikasi komentarnya.  

```
MySQL> SHOW CREATE TABLE precheck.utf8mb3_table_with_comment\G
*************************** 1. row ***************************
    Table: utf8mb3_table_with_comment
Create Table: CREATE TABLE `utf8mb3_table_with_comment` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='This table comment contains flag 🏳️'
1 row in set (0.00 sec)
```
Setelah Anda mengidentifikasi komentar tabel yang berisi obrolan yang tidak didukung, perbarui komentar dengan pernyataan tersebut. `ALTER TABLE`  

```
MySQL> ALTER TABLE precheck.utf8mb3_table_with_comment COMMENT='Updated comment without non-BMP characters';
```
Atau, Anda dapat menghapus komentar.  

```
MySQL> ALTER TABLE precheck.utf8mb3_table_with_comment COMMENT='';
```
Setelah Anda menghapus semua karakter yang tidak didukung dari semua komentar tabel, precheck berhasil.  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3TableComments",
"title": "Check for invalid utf8mb3 table comments.",
"status": "OK",
"detectedProblems": []
},
```

**auroraUpgradeCheckForMasterUser**  
**Tingkat precheck: Kesalahan**  
**Periksa apakah pengguna master RDS ada**  
MySQL 8 telah menambahkan model hak istimewa baru dengan dukungan [untuk peran dan hak istimewa dinamis untuk](https://dev.mysql.com/doc/refman/8.0/en/roles.html) [membuat manajemen hak istimewa lebih mudah dan](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#static-dynamic-privileges) lebih halus. Sebagai bagian dari perubahan ini, Aurora MySQL telah memperkenalkan yang baru`rds_superuser_role`, yang secara otomatis diberikan kepada pengguna master database pada peningkatan dari Aurora MySQL versi 2 ke versi 3.  
Untuk informasi selengkapnya tentang peran dan hak istimewa yang diberikan kepada pengguna master di Aurora MySQL, lihat. [Hak akses akun pengguna master](UsingWithRDS.MasterAccounts.md) Untuk informasi lebih lanjut tentang model hak istimewa berbasis peran di Aurora MySQL versi 3, lihat. [Model hak akses berbasis peran](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model)  
Precheck ini memverifikasi bahwa pengguna master ada dalam database. Jika pengguna master tidak ada, precheck gagal. Untuk memungkinkan pemutakhiran dilanjutkan, buat ulang pengguna master dengan mengatur ulang kata sandi pengguna master, atau dengan membuat pengguna secara manual. Kemudian coba lagi upgrade. Untuk informasi selengkapnya tentang mengatur ulang kata sandi pengguna utama, lihat[Mengubah kata sandi untuk pengguna master database](Aurora.Modifying.md#Aurora.Modifying.Password).  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForMasterUser",
  "title": "Check if master user exists",
  "status": "OK",
  "description": "Throws error if master user has been dropped!",
  "documentationLink": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.MasterAccounts.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "all",
        "description": "Your Master User on host '%' has been dropped. To proceed with the upgrade, recreate the master user `reinvent` on default host '%'"
      }
  ]
}
```
Setelah Anda mengatur ulang kata sandi pengguna utama Anda, precheck akan lulus, dan Anda dapat mencoba kembali upgrade.  
Contoh berikut menggunakan AWS CLI untuk mengatur ulang kata sandi. Perubahan kata sandi diterapkan segera.  

```
aws rds modify-db-cluster \
    --db-cluster-identifier my-db-cluster \
    --master-user-password my-new-password
```
Kemudian precheck berhasil.  

```
{
  "id": "auroraUpgradeCheckForMasterUser",
  title": "Check if master user exists",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForPrefixIndexOnGeometryColumns**  
**Tingkat precheck: Kesalahan**  
**Periksa kolom geometri pada indeks awalan**  
[Pada [MySQL](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html#mysqld-8-0-12-spatial-support) 8.0.12, Anda tidak dapat lagi membuat indeks awalan pada kolom [menggunakan](https://dev.mysql.com/doc/refman/5.7/en/column-indexes.html#column-indexes-prefix) tipe data GEOMETRY.](https://dev.mysql.com/doc/refman/5.7/en/gis-data-formats.html) Untuk informasi lebih lanjut, lihat [WL \$111808](https://dev.mysql.com/worklog/task/?id=11808).  
Jika ada indeks seperti itu, pemutakhiran Anda akan gagal. Untuk mengatasi masalah ini, letakkan `GEOMETRY` indeks awalan pada tabel yang disebutkan dalam kegagalan precheck.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForPrefixIndexOnGeometryColumns",
  "title": "Check for geometry columns on prefix indexs",
  "status": "OK",
  "description": "Consider dropping the prefix Indexes of geometry columns and restart the upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.geom_index_prefix",
        "description": "Table `test`.`geom_index_prefix` has an index `LatLon` on geometry column/s. Mysql 8.0 does not support this type of index on a geometry column https://dev.mysql.com/worklog/task/?id=11808. To upgrade to MySQL 8.0, Run 'DROP INDEX `LatLon` ON `test`.`geom_index_prefix`;"
      }
  ]
}
```
Precheck melaporkan kesalahan karena `test.geom_index_prefix` tabel berisi indeks dengan awalan pada kolom. `GEOMETRY`  
Setelah Anda menjatuhkan indeks ini, precheck berhasil.  

```
{
  "id": "auroraUpgradeCheckForPrefixIndexOnGeometryColumns",
  "title": "Check for geometry columns on prefix indexs",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForSpecialCharactersInProcedures**  
**Tingkat precheck: Kesalahan**  
**Periksa ketidakkonsistenan yang terkait dengan karakter khusus dalam prosedur tersimpan**  
Sebelum MySQL 8.0, nama database, nama tabel, dan objek lain berhubungan dengan file dalam direktori data, yaitu metadata berbasis file. [Sebagai bagian dari upgrade ke MySQL 8.0, semua objek database dimigrasikan ke tabel kamus data internal baru yang disimpan dalam `mysql` skema untuk mendukung Kamus Data Atom yang baru diimplementasikan.](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) Sebagai bagian dari migrasi prosedur tersimpan, definisi prosedur dan isi untuk setiap prosedur divalidasi karena dimasukkan ke dalam kamus data baru.  
Sebelum MySQL 8, dalam beberapa kasus dimungkinkan untuk membuat rutinitas yang disimpan, atau memasukkan langsung ke dalam tabel, prosedur `mysql.proc` yang berisi karakter khusus. Misalnya, Anda dapat membuat prosedur tersimpan yang berisi komentar dengan karakter spasi yang tidak sesuai dan [tidak melanggar](https://en.wikipedia.org/wiki/Non-breaking_space). `\xa0` Jika ada prosedur seperti itu ditemui, upgrade gagal.  
Precheck ini memvalidasi bahwa isi dan definisi prosedur tersimpan Anda tidak mengandung karakter seperti itu. Untuk memungkinkan peningkatan dilanjutkan, buat ulang prosedur tersimpan ini tanpa karakter tersembunyi atau khusus.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForSpecialCharactersInProcedures",
  "title": "Check for inconsistency related to special characters in stored procedures.",
  "status": "OK",
  "description": "Following procedure(s) has special characters inconsistency.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "information_schema.routines",
        "description": "Data Dictionary Metadata is inconsistent for the procedure `get_version_proc` in the database `test` due to usage of special characters in procedure body. To avoid that, drop and recreate the procedure without any special characters before proceeding with the Upgrade."
      }
  ]
}
```
Precheck melaporkan bahwa cluster DB berisi prosedur yang disebut `get_version_proc` dalam `test` database yang berisi karakter khusus dalam badan prosedur.  
Setelah menjatuhkan dan membuat ulang prosedur yang disimpan, precheck berhasil, memungkinkan peningkatan untuk melanjutkan.  

```
{
  "id": "auroraUpgradeCheckForSpecialCharactersInProcedures",
  "title": "Check for inconsistency related to special characters in stored procedures.",
  "status": "OK",
  "detectedProblems": []
},
```

**auroraUpgradeCheckForSysSchemaObjectTypeMismatch**  
**Tingkat precheck: Kesalahan**  
**Periksa ketidakcocokan tipe objek untuk skema `sys`**  
[Skema sys](https://dev.mysql.com/doc/refman/8.0/en/sys-schema.html) adalah sekumpulan objek dan tampilan dalam database MySQL yang membantu pengguna memecahkan masalah, mengoptimalkan, dan memantau instance DB mereka. Saat melakukan upgrade versi utama dari Aurora MySQL versi 2 ke versi 3, tampilan `sys` skema dibuat ulang dan diperbarui ke definisi Aurora MySQL versi 3 yang baru.  
Sebagai bagian dari peningkatan, jika ada objek dalam `sys` skema yang didefinisikan menggunakan mesin penyimpanan (`sys_config/BASE TABLE`di [INFORMATION\$1SCHEMA.TABLES](https://dev.mysql.com/doc/refman/5.7/en/information-schema-tables-table.html)), bukan tampilan, pemutakhiran akan gagal. Tabel semacam itu dapat ditemukan di `information_schema.tables` tabel. Ini bukan perilaku yang diharapkan, tetapi dalam beberapa kasus dapat terjadi karena kesalahan pengguna.  
Precheck ini memvalidasi semua objek `sys` skema untuk memastikan bahwa mereka menggunakan definisi tabel yang benar, dan bahwa tampilan tidak salah didefinisikan sebagai tabel InnoDB atau MyISAM. Untuk mengatasi masalah ini, perbaiki objek yang dikembalikan secara manual dengan mengganti nama atau menjatuhkannya. Kemudian coba lagi upgrade.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForSysSchemaObjectTypeMismatch",
  "title": "Check object type mismatch for sys schema.",
  "status": "OK",
  "description": "Database contains objects with type mismatch for sys schema.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "sys.waits_global_by_latency",
        "description": "Your object sys.waits_global_by_latency has a type mismatch. To fix the inconsistency we recommend to rename or remove the object before upgrading (use RENAME TABLE command). "
      }
  ]
}
```
Precheck melaporkan bahwa tampilan [sys.waits\$1global\$1by\$1latency](https://dev.mysql.com/doc/refman/5.7/en/sys-waits-global-by-latency.html) dalam skema memiliki ketidakcocokan tipe yang memblokir pemutakhiran agar tidak melanjutkan. `sys`  
Setelah masuk ke instance DB, Anda dapat melihat bahwa objek ini didefinisikan sebagai tabel InnoDB, ketika seharusnya tampilan.  

```
mysql> show create table sys.waits_global_by_latency\G
*************************** 1. row ***************************
       Table: waits_global_by_latency
Create Table: CREATE TABLE `waits_global_by_latency` (
  `events` varchar(128) DEFAULT NULL,
  `total` bigint(20) unsigned DEFAULT NULL,
  `total_latency` text,
  `avg_latency` text,
  `max_latency` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
```
Untuk mengatasi masalah ini, kami dapat menghapus dan membuat ulang tampilan dengan [definisi yang benar](https://github.com/mysql/mysql-server/blob/mysql-5.7.44/scripts/sys_schema/views/p_s/waits_global_by_latency.sql) atau mengganti namanya. Selama proses upgrade, itu akan secara otomatis dibuat dengan definisi tabel yang benar.  

```
mysql> RENAME TABLE sys.waits_global_by_latency to sys.waits_global_by_latency_old;
Query OK, 0 rows affected (0.01 sec)
```
Setelah melakukan ini, precheck berlalu.  

```
{
  "id": "auroraUpgradeCheckForSysSchemaObjectTypeMismatch",
  "title": "Check object type mismatch for sys schema.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForViewColumnNameLength**  
**Tingkat precheck: Kesalahan**  
**Periksa batas atas untuk nama kolom dalam tampilan**  
[Panjang maksimum yang diizinkan dari nama kolom](https://dev.mysql.com/doc/refman/5.7/en/identifier-length.html) di MySQL adalah 64 karakter. Sebelum MySQL 8.0, dalam beberapa kasus dimungkinkan untuk membuat tampilan dengan nama kolom yang lebih besar dari 64 karakter. Jika ada tampilan seperti itu pada instance database Anda, kesalahan precheck dikembalikan, dan pemutakhiran akan gagal. Untuk memungkinkan pemutakhiran dilanjutkan, Anda harus membuat ulang tampilan yang dimaksud, memastikan bahwa panjang kolomnya kurang dari 64 karakter. Kemudian coba lagi upgrade.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForViewColumnNameLength",
  "title": "Check for upperbound limit related to column name in view.",
  "status": "OK",
  "description": "Following view(s) has column(s) with length greater than 64.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.colname_view_test.col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad",
        "description": "View `test`.`colname_view_test`has column `col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad` with invalid column name length. To avoid Upgrade errors, view should be altered by renaming the column name so that its length is not 0 and doesn't exceed 64."
      }
  ]
}
```
Precheck melaporkan bahwa `test.colname_view_test` tampilan berisi kolom `col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad` yang melebihi panjang kolom maksimum yang diizinkan dari 64 karakter.  
Melihat definisi tampilan, kita bisa melihat kolom yang menyinggung.  

```
mysql> desc `test`.`colname_view_test`;
+------------------------------------------------------------------+-------------+------+-----+---------+-------+
| Field                                                            | Type        | Null | Key | Default | Extra |
+------------------------------------------------------------------+-------------+------+-----+---------+-------+
| col1                                                             | varchar(20) | YES  |     | NULL    |       |
| col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad | int(11)     | YES  |     | NULL    |       |
+------------------------------------------------------------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
```
Untuk memungkinkan pemutakhiran dilanjutkan, buat ulang tampilan, pastikan panjang kolom tidak melebihi 64 karakter.  

```
mysql> drop view `test`.`colname_view_test`;
Query OK, 0 rows affected (0.01 sec)

mysql> create view `test`.`colname_view_test`(col1, col2_nopad) as select inf, fodcol from test;
Query OK, 0 rows affected (0.01 sec)

mysql> desc `test`.`colname_view_test`;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| col1       | varchar(20) | YES  |     | NULL    |       |
| col2_nopad | int(11)     | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
```
Setelah melakukan ini, precheck berhasil.  

```
{
  "id": "auroraUpgradeCheckForViewColumnNameLength",
  "title": "Check for upperbound limit related to column name in view.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckIndexLengthLimitOnTinyColumns**  
**Tingkat precheck: Kesalahan**  
**Periksa tabel dengan indeks yang didefinisikan dengan panjang awalan lebih besar dari 255 byte pada kolom kecil**  
Saat membuat indeks pada kolom menggunakan [tipe data biner](https://dev.mysql.com/doc/refman/5.7/en/binary-varbinary.html) di MySQL, Anda harus menambahkan panjang awalan [dalam](https://dev.mysql.com/doc/refman/5.7/en/column-indexes.html#column-indexes-prefix) definisi indeks. Sebelum MySQL 8.0, dalam beberapa kasus dimungkinkan untuk menentukan panjang awalan yang lebih besar dari ukuran maksimum yang diizinkan dari tipe data tersebut. Contohnya adalah `TINYTEXT` dan `TINYBLOB` kolom, di mana ukuran data maksimum yang diizinkan adalah 255 byte, tetapi awalan indeks yang lebih besar dari ini diizinkan. Untuk informasi selengkapnya, lihat [batas InnoDB dalam dokumentasi](https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html) MySQL.  
Jika precheck ini gagal, jatuhkan indeks yang menyinggung atau kurangi panjang awalan `TINYTEXT` dan `TINYBLOB` kolom indeks menjadi kurang dari 255 byte. Kemudian coba lagi upgrade.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckIndexLengthLimitOnTinyColumns",
  "title": "Check for the tables with indexes defined with prefix length greater than 255 bytes on tiny columns",
  "status": "OK",
  "description": "Prefix length of the indexes defined on tiny columns cannot exceed 255 bytes. With utf8mb4 char set, this limits the prefix length supported upto 63 characters only. A larger prefix length was allowed in MySQL5.7 using innodb_large_prefix parameter. This parameter is deprecated in MySQL 8.0.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html, https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.tintxt_prefixed_index.col1",
        "description": "Index 'PRIMARY' on tinytext/tinyblob column `col1` of table `test.tintxt_prefixed_index` is defined with prefix length exceeding 255 bytes. Reduce the prefix length to <=255 bytes depending on character set used. For utf8mb4, it should be <=63."
      }
  ]
}
```
Precheck melaporkan kesalahan untuk `test.tintxt_prefixed_index` tabel, karena memiliki Indeks `PRIMARY` yang memiliki awalan lebih besar dari 255 byte pada kolom TINYTEXT atau TINYBLOB.  
Melihat definisi untuk tabel ini, kita dapat melihat bahwa kunci utama memiliki awalan 65 pada `TINYTEXT` kolom`col1`. Karena tabel didefinisikan menggunakan set `utf8mb4` karakter, yang menyimpan 4 byte per karakter, awalan melebihi batas 255-byte.  

```
mysql> show create table `test`.`tintxt_prefixed_index`\G
*************************** 1. row ***************************
       Table: tintxt_prefixed_index
Create Table: CREATE TABLE `tintxt_prefixed_index` (
  `col1` tinytext NOT NULL,
  `col2` tinytext,
  `col_id` tinytext,
  PRIMARY KEY (`col1`(65))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC
1 row in set (0.00 sec)
```
Memodifikasi awalan indeks ke 63 saat menggunakan set `utf8mb4` karakter akan memungkinkan peningkatan untuk melanjutkan.  

```
mysql> alter table `test`.`tintxt_prefixed_index` drop PRIMARY KEY, ADD  PRIMARY KEY (`col1`(63));
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
```
Setelah melakukan ini, precheck berhasil.  

```
{
  "id": "auroraUpgradeCheckIndexLengthLimitOnTinyColumns",
  "title": "Check for the tables with indexes defined with prefix length greater than 255 bytes on tiny columns",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckMissingInnodbMetadataForMysqlHostTable**  
**Tingkat precheck: Kesalahan**  
**Periksa inkonsistensi metadata InnoDB yang hilang untuk tabel `mysql.host`**  
Ini adalah precheck internal saja yang dilakukan oleh layanan RDS. Kesalahan apa pun akan ditangani secara otomatis saat upgrade dan dapat diabaikan dengan aman.  
Jika Anda menemukan kesalahan dengan precheck ini, buka kasus dengan [AWS Support](https://aws.amazon.com/support) untuk meminta agar inkonsistensi metadata diselesaikan. Atau, Anda dapat mencoba kembali upgrade dengan melakukan dump logis, kemudian mengembalikan ke cluster Aurora MySQL versi 3 DB baru.

## Peringatan
<a name="precheck-descriptions-warnings"></a>

Prechecks berikut menghasilkan peringatan ketika precheck gagal, tetapi upgrade dapat dilanjutkan.

**Topics**
+ [MySQL memeriksa sebelumnya yang melaporkan peringatan](#precheck-descriptions-warnings.mysql)
+ [Aurora MySQL mengecek peringatan laporan itu](#precheck-descriptions-warnings.aurora)

### MySQL memeriksa sebelumnya yang melaporkan peringatan
<a name="precheck-descriptions-warnings.mysql"></a>

Precheck berikut berasal dari MySQL Komunitas:
+ [defaultAuthenticationPlugin](#defaultAuthenticationPlugin)
+ [maxdbFlagCheck](#maxdbFlagCheck)
+ [mysqlDollarSignNameCheck](#mysqlDollarSignNameCheck)
+ [reservedKeywordsCheck](#reservedKeywordsCheck)
+ [UTF8MB3Periksa](#utf8mb3Check)
+ [zeroDatesCheck](#zeroDatesCheck)

**defaultAuthenticationPlugin**  
**Tingkat precheck: Peringatan**  
**Pertimbangan plugin otentikasi default baru**  
Di MySQL 8.0, plugin otentikasi diperkenalkan, `caching_sha2_password` menyediakan enkripsi kata sandi yang lebih aman dan kinerja yang lebih baik daripada plugin yang tidak digunakan lagi. `mysql_native_password` Untuk Aurora MySQL versi 3, plugin otentikasi default yang digunakan untuk pengguna database adalah plugin. `mysql_native_password`  
Precheck ini memperingatkan bahwa plugin ini akan dihapus dan default diubah dalam rilis versi utama masa depan. Pertimbangkan untuk mengevaluasi kompatibilitas klien dan pengguna aplikasi Anda sebelum perubahan ini.  
Untuk informasi selengkapnya, lihat masalah [kompatibilitas caching\$1sha2\$1password dan solusi](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatibility-issues) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "defaultAuthenticationPlugin",
  "title": "New default authentication plugin considerations",
  "description": "Warning: The new default authentication plugin 'caching_sha2_password' offers more secure password hashing than previously used 'mysql_native_password' (and consequent improved client connection authentication). However, it also has compatibility implications that may affect existing MySQL installations. If your MySQL installation must serve pre-8.0 clients and you encounter compatibility issues after upgrading, the simplest way to address those issues is to reconfigure the server to revert to the previous default authentication plugin (mysql_native_password). For example, use these lines in the server option file:\n\n[mysqld]\ndefault_authentication_plugin=mysql_native_password\n\nHowever, the setting should be viewed as temporary, not as a long term or permanent solution, because it causes new accounts created with the setting in effect to forego the improved authentication security.\nIf you are using replication please take time to understand how the authentication plugin changes may impact you.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatibility-issues\nhttps://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-replication"
},
```

**maxdbFlagCheck**  
**Tingkat precheck: Peringatan**  
**Penggunaan bendera usang `MAXDB` `sql_mode`**  
[Di MySQL 8.0, sejumlah opsi variabel sistem [sql\$1mode yang tidak digunakan lagi](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sql_mode) telah dihapus, salah satunya adalah.](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html) `MAXDB` Precheck ini memeriksa semua sesi yang terhubung saat ini, bersama dengan rutinitas dan pemicu, untuk memastikan bahwa tidak ada yang `sql_mode` mengatur kombinasi apa pun yang disertakan. `MAXDB`  
**Contoh keluaran:**  

```
{
  "id": "maxdbFlagCheck",
  "title": "Usage of obsolete MAXDB sql_mode flag",
  "status": "OK",
  "description": "Warning: The following DB objects have the obsolete MAXDB option persisted for sql_mode, which will be cleared during the upgrade. It can potentially change the datatype DATETIME into TIMESTAMP if it is used inside object's definition, and this in turn can change the behavior in case of dates earlier than 1970 or later than 2037. If this is a concern, please redefine these objects so that they do not rely on the MAXDB flag before running the upgrade.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.maxdb_stored_routine",
        "description": "PROCEDURE uses obsolete MAXDB sql_mode",
        "dbObjectType": "Routine"
      }
  ]
}
```
Precheck melaporkan bahwa `test.maxdb_stored_routine` rutinitas berisi opsi yang tidak didukung`sql_mode`.  
Setelah masuk ke database, Anda dapat melihat dalam definisi rutin yang `sql_mode` berisi`MAXDB`.  

```
 > SHOW CREATE PROCEDURE test.maxdb_stored_routine\G

*************************** 1. row ***************************
           Procedure: maxdb_stored_routine
            sql_mode: PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
    Create Procedure: CREATE DEFINER="msandbox"@"localhost" PROCEDURE "maxdb_stored_routine"()
BEGIN
    SELECT * FROM test;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Untuk mengatasi masalah, buat kembali prosedur setelah mengatur yang benar `sql_mode` pada klien.  
Menurut [dokumentasi MySQL, MySQL](https://dev.mysql.com/doc/refman/5.7/en/create-procedure.html) menyimpan `sql_mode` pengaturan yang berlaku ketika rutinitas dibuat atau diubah. Itu selalu menjalankan rutinitas dengan pengaturan ini, terlepas dari `sql_mode` pengaturan ketika rutinitas dimulai.  
Sebelum mengubah`sql_mode`, lihat [mode Server SQL](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html) dalam dokumentasi MySQL. Hati-hati mengevaluasi dampak potensial dari melakukannya pada aplikasi Anda.
Buat ulang prosedur tanpa yang tidak `sql_mode` didukung.  

```
mysql > set sql_mode='PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql > DROP PROCEDURE test.maxdb_stored_routine\G
Query OK, 0 rows affected (0.00 sec)

mysql >
mysql > DELIMITER $$
mysql >
mysql > CREATE PROCEDURE test.maxdb_stored_routine()
    -> SQL SECURITY DEFINER
    -> BEGIN
    ->     SELECT * FROM test;
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql >
mysql > DELIMITER ;
mysql > show create procedure test.maxdb_stored_routine\G
*************************** 1. row ***************************
           Procedure: maxdb_stored_routine
            sql_mode: PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE
    Create Procedure: CREATE DEFINER="msandbox"@"localhost" PROCEDURE "maxdb_stored_routine"()
BEGIN
    SELECT * FROM test;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Precheck berhasil.  

```
{
  "id": "maxdbFlagCheck",
  "title": "Usage of obsolete MAXDB sql_mode flag",
  "status": "OK",
  "detectedProblems": []
}
```

**mysqlDollarSignNameCheck**  
**Tingkat precheck: Peringatan**  
**Periksa penggunaan tanda dolar tunggal yang tidak digunakan lagi dalam nama objek**  
Pada [MySQL](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-32.html#mysqld-8-0-32-deprecation-removal) 8.0.32, penggunaan tanda dolar `$` () sebagai karakter pertama dari pengidentifikasi yang tidak dikutip tidak digunakan lagi. Jika Anda memiliki skema, tabel, tampilan, kolom, atau rutinitas yang berisi `$` sebagai karakter pertama, precheck ini mengembalikan peringatan. Meskipun peringatan ini tidak menghalangi peningkatan untuk melanjutkan, kami menyarankan Anda segera mengambil tindakan untuk menyelesaikannya. Dari [MySQL](https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html) 8.4 pengidentifikasi semacam itu akan mengembalikan kesalahan sintaks daripada peringatan.  
**Contoh keluaran:**  

```
{
  "id": "mysqlDollarSignNameCheck",
  "title": "Check for deprecated usage of single dollar signs in object names",
  "status": "OK",
  "description": "Warning: The following objects have names with deprecated usage of dollar sign ($) at the begining of the identifier. To correct this warning, ensure, that names starting with dollar sign, also end with it, similary to quotes ($example$). ",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.$deprecated_syntx",
        "description": " name starts with $ sign."
      }
  ]
},
```
Precheck melaporkan peringatan karena `$deprecated_syntx` tabel dalam `test` skema berisi a `$` sebagai karakter pertama.

**reservedKeywordsCheck**  
**Tingkat precheck: Peringatan**  
**Penggunaan objek database dengan nama yang bertentangan dengan kata kunci baru yang dicadangkan**  
Pemeriksaan ini mirip dengan [routineSyntaxCheck](#routineSyntaxCheck), karena memeriksa penggunaan objek database dengan nama yang bertentangan dengan kata kunci baru yang dicadangkan. Meskipun mereka tidak memblokir peningkatan, Anda perlu mengevaluasi peringatan dengan hati-hati.  
**Contoh keluaran:**  
Menggunakan contoh sebelumnya dengan tabel bernama`except`, precheck mengembalikan peringatan:  

```
{
  "id": "reservedKeywordsCheck",
  "title": "Usage of db objects with names conflicting with new reserved keywords",
  "status": "OK",
  "description": "Warning: The following objects have names that conflict with new reserved keywords. Ensure queries sent by your applications use `quotes` when referring to them or they will result in errors.",
  "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.except",
        "description": "Table name",
        "dbObjectType": "Table"
      }
  ]
}
```
Peringatan ini memberi tahu Anda bahwa mungkin ada beberapa kueri aplikasi untuk ditinjau. Jika kueri aplikasi Anda tidak [lolos dari literal string dengan benar, mereka mungkin mengalami kesalahan setelah memutakhirkan](https://dev.mysql.com/doc/refman/8.0/en/string-literals.html) ke MySQL 8.0. Tinjau aplikasi Anda untuk mengonfirmasi, menguji klon atau snapshot dari cluster DB MySQL Aurora Anda yang berjalan pada versi 3.  
Contoh kueri aplikasi yang tidak lolos yang akan gagal setelah memutakhirkan:  

```
SELECT * FROM escape;
```
Contoh kueri aplikasi yang lolos dengan benar yang akan berhasil setelah memutakhirkan:  

```
SELECT * FROM 'escape';
```

**UTF8MB3Periksa**  
**Tingkat precheck: Peringatan**  
**Penggunaan set `utf8mb3` karakter**  
Di MySQL 8.0 `utf8mb3` set karakter tidak digunakan lagi, dan akan dihapus dalam versi utama MySQL future. Precheck ini diimplementasikan untuk memunculkan peringatan jika ada objek database yang menggunakan set karakter ini terdeteksi. Meskipun ini tidak akan memblokir peningkatan dari proses, kami sangat menyarankan Anda berpikir tentang memigrasikan tabel ke set `utf8mb4` karakter, yang merupakan default pada MySQL 8.0. Untuk informasi selengkapnya tentang [utf8mb3 dan [utf8mb4](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb4.html)](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html), lihat [Mengonversi antara set karakter Unicode 3-byte dan 4-byte](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-conversion.html) dalam dokumentasi MySQL.  
**Contoh keluaran:**  

```
{
  "id": "utf8mb3",
  "title": "Usage of utf8mb3 charset",
  "status": "OK",
  "description": "Warning: The following objects use the deprecated utf8mb3 character set. It is recommended to convert them to use utf8mb4 instead, for improved Unicode support. The utf8mb3 character is subject to removal in the future.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.t1.col1",
        "description": "column's default character set: utf8",
        "dbObjectType": "Column"
      },
      {
        "level": "Warning",
        "dbObject": "test.t1.col2",
        "description": "column's default character set: utf8",
        "dbObjectType": "Column"
      }
  ]
}
```
Untuk mengatasi masalah ini, Anda membangun kembali objek dan tabel yang direferensikan. Untuk informasi selengkapnya dan prasyarat sebelum melakukannya, lihat [Mengonversi antara set karakter Unicode 3-byte dan 4-byte](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-conversion.html) dalam dokumentasi MySQL.

**zeroDatesCheck**  
**Tingkat precheck: Peringatan**  
**Nilai tanggal nol, datetime, dan stempel waktu**  
MySQL sekarang memberlakukan aturan yang lebih ketat mengenai penggunaan nilai nol di kolom tanggal, datetime, dan timestamp. Kami menyarankan Anda menggunakan `NO_ZERO_DATE SQL` mode `NO_ZERO_IN_DATE` dan dalam hubungannya dengan `strict` mode, karena mereka akan digabungkan dengan `strict` mode dalam rilis MySQL future.  
Jika `sql_mode` pengaturan untuk salah satu koneksi database Anda, pada saat menjalankan precheck, tidak menyertakan mode ini, peringatan akan muncul di precheck. Pengguna mungkin masih dapat menyisipkan nilai tanggal, datetime, dan stempel waktu yang berisi nilai nol. Namun, kami sangat menyarankan untuk mengganti nilai nol dengan nilai yang valid, karena perilakunya mungkin berubah di masa mendatang dan mungkin tidak berfungsi dengan benar. Karena ini adalah peringatan, ini tidak akan memblokir peningkatan, tetapi kami menyarankan Anda mulai merencanakan untuk mengambil tindakan.  
**Contoh keluaran:**  

```
{
  "id": "zeroDatesCheck",
  "title": "Zero Date, Datetime, and Timestamp values",
  "status": "OK",
  "description": "Warning: By default zero date/datetime/timestamp values are no longer allowed in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in SQL_MODE by default. These modes should be used with strict mode as they will be merged with strict mode in a future release. If you do not include these modes in your SQL_MODE setting, you are able to insert date/datetime/timestamp values that contain zeros. It is strongly advised to replace zero values with valid ones, as they may not work correctly in the future.",
  "documentationLink": "https://lefred.be/content/mysql-8-0-and-wrong-dates/",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "global.sql_mode",
        "description": "does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      },
      {
        "level": "Warning",
        "dbObject": "session.sql_mode",
        "description": " of 10 session(s) does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      }
  ]
}
```

### Aurora MySQL mengecek peringatan laporan itu
<a name="precheck-descriptions-warnings.aurora"></a>

Precheck berikut khusus untuk Aurora MySQL:
+ [auroraUpgradeCheckForRollbackSegmentHistoryLength](#auroraUpgradeCheckForRollbackSegmentHistoryLength)
+ [auroraUpgradeCheckForUncommittedRowModifications](#auroraUpgradeCheckForUncommittedRowModifications)

**auroraUpgradeCheckForRollbackSegmentHistoryLength**  
**Tingkat precheck: Peringatan**  
**Memeriksa apakah panjang daftar riwayat segmen rollback untuk cluster tinggi**  
[Seperti disebutkan dalam [auroraUpgradeCheckForIncompleteXATransactions](#auroraUpgradeCheckForIncompleteXATransactions), saat menjalankan proses peningkatan versi utama, penting bahwa instance Aurora MySQL versi 2 DB mengalami shutdown yang bersih.](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_slow_shutdown) Ini memastikan bahwa semua transaksi dilakukan atau dibatalkan, dan bahwa InnoDB telah membersihkan semua catatan log undo.  
Jika cluster DB Anda memiliki panjang daftar riwayat segmen rollback (HLL) yang tinggi, itu dapat memperpanjang jumlah waktu yang dibutuhkan InnoDB untuk menyelesaikan pembersihan catatan log batal, yang menyebabkan waktu henti yang diperpanjang selama proses peningkatan versi utama. Jika precheck mendeteksi bahwa HLL pada cluster DB Anda tinggi, itu menimbulkan peringatan. Meskipun ini tidak menghalangi peningkatan Anda untuk melanjutkan, kami sarankan Anda memantau HLL di cluster DB Anda dengan cermat. Menjaga pada tingkat rendah mengurangi waktu henti yang diperlukan selama peningkatan versi utama. Untuk informasi lebih lanjut tentang pemantauan HLL, lihat[Panjang daftar riwayat InnoDB meningkat secara signifikan](proactive-insights.history-list.md).  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForRollbackSegmentHistoryLength",
  "title": "Checks if the rollback segment history length for the cluster is high",
  "status": "OK",
  "description": "Rollback Segment History length is greater than 1M. Upgrade may take longer time.",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "information_schema.innodb_metrics",
        "description": "The InnoDB undo history list length('trx_rseg_history_len') is 82989114. Upgrade may take longer due to purging of undo information for old row versions."
      }
  ]
}
```
Precheck mengembalikan peringatan karena mendeteksi InnoDB undo HLL tinggi pada cluster database (82989114). Meskipun upgrade berlangsung, tergantung pada jumlah undo untuk membersihkan, itu dapat memperpanjang downtime yang diperlukan selama proses upgrade.  
Kami menyarankan Anda [menyelidiki transaksi terbuka](proactive-insights.history-list.md) pada cluster DB Anda sebelum menjalankan upgrade dalam produksi, untuk memastikan HLL Anda disimpan pada ukuran yang dapat dikelola.

**auroraUpgradeCheckForUncommittedRowModifications**  
**Tingkat precheck: Peringatan**  
**Memeriksa apakah ada banyak modifikasi baris yang tidak berkomitmen**  
[Seperti disebutkan dalam [auroraUpgradeCheckForIncompleteXATransactions](#auroraUpgradeCheckForIncompleteXATransactions), saat menjalankan proses peningkatan versi utama, penting bahwa instance Aurora MySQL versi 2 DB mengalami shutdown yang bersih.](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_slow_shutdown) Ini memastikan bahwa semua transaksi dilakukan atau dibatalkan, dan bahwa InnoDB telah membersihkan semua catatan log undo.  
Jika cluster DB Anda memiliki transaksi yang telah memodifikasi sejumlah besar baris, itu dapat memperpanjang jumlah waktu yang dibutuhkan InnoDB untuk menyelesaikan rollback transaksi ini sebagai bagian dari proses shutdown bersih. Jika precheck menemukan transaksi yang berjalan lama, dengan sejumlah besar baris yang dimodifikasi pada cluster DB Anda, itu menimbulkan peringatan. Meskipun ini tidak menghalangi peningkatan Anda untuk melanjutkan, kami sarankan Anda memantau dengan cermat ukuran transaksi aktif di cluster DB Anda. Menjaga pada tingkat rendah mengurangi waktu henti yang diperlukan selama peningkatan versi utama.  
**Contoh keluaran:**  

```
{
  "id": "auroraUpgradeCheckForUncommittedRowModifications",
  "title": "Checks if there are many uncommitted modifications to rows",
  "status": "OK",
  "description": "Database contains uncommitted row changes greater than 10M. Upgrade may take longer time.",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "information_schema.innodb_trx",
        "description": "The database contains 11000000 uncommitted row change(s) in 1 transaction(s). Upgrade may take longer due to transaction rollback."
      }
  ]
},
```
Precheck melaporkan bahwa cluster DB berisi transaksi dengan 11.000.000 perubahan baris tanpa komitmen yang perlu dibatalkan selama proses shutdown bersih. Upgrade akan dilanjutkan, tetapi untuk mengurangi downtime selama proses upgrade, kami sarankan Anda memantau dan menyelidiki ini sebelum menjalankan upgrade pada cluster produksi Anda.  
Untuk melihat transaksi aktif pada instance DB penulis Anda, Anda dapat menggunakan tabel [information\$1schema.innodb\$1trx](https://dev.mysql.com/doc/refman/5.7/en/information-schema-innodb-trx-table.html). Kueri berikut pada instance DB penulis menunjukkan transaksi saat ini, waktu berjalan, status, dan baris yang dimodifikasi untuk cluster DB.  

```
# Example of uncommitted transaction
mysql> SELECT trx_started,
       TIME_TO_SEC(TIMEDIFF(now(), trx_started)) AS seconds_trx_has_been_running,
       trx_mysql_thread_id AS show_processlist_connection_id,
       trx_id,
       trx_state,
       trx_rows_modified AS rows_modified
FROM information_schema.innodb_trx;
+---------------------+------------------------------+--------------------------------+----------+-----------+---------------+
| trx_started         | seconds_trx_has_been_running | show_processlist_connection_id | trx_id   | trx_state | rows_modified |
+---------------------+------------------------------+--------------------------------+----------+-----------+---------------+
| 2024-08-12 18:32:52 |                         1592 |                          20041 | 52866130 | RUNNING   |      11000000 |
+---------------------+------------------------------+--------------------------------+----------+-----------+---------------+
1 row in set (0.01 sec)

# Example of transaction rolling back
mysql> SELECT trx_started,
       TIME_TO_SEC(TIMEDIFF(now(), trx_started)) AS seconds_trx_has_been_running,
       trx_mysql_thread_id AS show_processlist_connection_id,
       trx_id,
       trx_state,
       trx_rows_modified AS rows_modified
FROM information_schema.innodb_trx;
+---------------------+------------------------------+--------------------------------+----------+--------------+---------------+
| trx_started         | seconds_trx_has_been_running | show_processlist_connection_id | trx_id   | trx_state    | rows_modified |
+---------------------+------------------------------+--------------------------------+----------+--------------+---------------+
| 2024-08-12 18:32:52 |                         1719 |                          20041 | 52866130 | ROLLING BACK |      10680479 |
+---------------------+------------------------------+--------------------------------+----------+--------------+---------------+
1 row in set (0.01 sec)
```
Setelah transaksi dilakukan atau dibatalkan, precheck tidak lagi mengembalikan peringatan. Konsultasikan dokumentasi MySQL dan tim aplikasi Anda sebelum mengembalikan transaksi besar apa pun, karena rollback dapat memakan waktu untuk diselesaikan, tergantung pada ukuran transaksi.  

```
{
  "id": "auroraUpgradeCheckForUncommittedRowModifications",
  "title": "Checks if there are many uncommitted modifications to rows",
  "status": "OK",
  "detectedProblems": []
},
```
Untuk informasi selengkapnya tentang mengoptimalkan manajemen transaksi InnoDB, dan dampak potensial dari menjalankan dan mengembalikan transaksi besar pada instance database MySQL, lihat [Mengoptimalkan manajemen transaksi InnoDB](https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-transaction-management.html) dalam dokumentasi MySQL.

## Pemberitahuan
<a name="precheck-descriptions-notices"></a>

Precheck berikut menghasilkan pemberitahuan ketika precheck gagal, tetapi upgrade dapat dilanjutkan.

**sqlModeFlagMemeriksa**  
**Tingkat precheck: Pemberitahuan**  
**Penggunaan bendera usang `sql_mode`**  
Selain itu`MAXDB`, sejumlah `sql_mode` opsi lain telah [dihapus](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html):`DB2`,,`MSSQL`,`MYSQL323`,`MYSQL40`,`ORACLE`,`POSTGRESQL`, `NO_FIELD_OPTIONS``NO_KEY_OPTIONS`, dan`NO_TABLE_OPTIONS`. Pada MySQL 8.0, tidak satu pun dari nilai-nilai ini dapat ditetapkan ke variabel sistem. `sql_mode` [Jika precheck ini menemukan sesi terbuka menggunakan `sql_mode` pengaturan ini, pastikan bahwa instans DB dan grup parameter cluster DB Anda, serta aplikasi dan konfigurasi klien, diperbarui untuk menonaktifkannya.- Untuk informasi lebih lanjut, lihat dokumentasi MySQL.](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html)  
**Contoh keluaran:**  

```
{
  "id": "sqlModeFlagCheck",
  "title": "Usage of obsolete sql_mode flags",
  "status": "OK",
  "detectedProblems": []
}
```
Untuk mengatasi salah satu kegagalan precheck ini, lihat [maxdbFlagCheck](#maxdbFlagCheck).

## Kesalahan, peringatan, atau pemberitahuan
<a name="precheck-descriptions-all"></a>

Precheck berikut dapat mengembalikan kesalahan, peringatan, atau pemberitahuan tergantung pada output precheck.

**checkTableOutput**  
**Tingkat precheck: Kesalahan, Peringatan, atau Pemberitahuan**  
**Masalah yang dilaporkan oleh `check table x for upgrade` perintah**  
Sebelum memulai upgrade ke Aurora MySQL versi 3, `check table for upgrade` dijalankan pada setiap tabel dalam skema pengguna di cluster DB Anda. Precheck ini tidak sama dengan [checkTableMysqlSchema](#checkTableMysqlSchema).  
`check table for upgrade`Perintah memeriksa tabel untuk setiap potensi masalah yang mungkin timbul selama upgrade ke versi MySQL yang lebih baru. Menjalankan perintah ini sebelum mencoba upgrade dapat membantu mengidentifikasi dan menyelesaikan ketidakcocokan sebelumnya, membuat proses upgrade yang sebenarnya lebih lancar.  
Perintah ini melakukan berbagai pemeriksaan pada setiap tabel, seperti berikut ini:  
+ Memverifikasi bahwa struktur tabel dan metadata kompatibel dengan versi MySQL target
+ Memeriksa fitur yang tidak digunakan lagi atau dihapus yang digunakan oleh tabel
+ Memastikan bahwa tabel dapat ditingkatkan dengan benar tanpa kehilangan data
Tidak seperti prechecks lainnya, ini dapat mengembalikan kesalahan, peringatan, atau pemberitahuan tergantung pada `check table` output. Jika precheck ini mengembalikan tabel apa pun, tinjau dengan cermat, bersama dengan kode pengembalian dan pesan sebelum memulai pemutakhiran. Untuk informasi selengkapnya, lihat [pernyataan CHECK TABLE](https://dev.mysql.com/doc/refman/5.7/en/check-table.html) dalam dokumentasi MySQL.  
Di sini kami memberikan contoh kesalahan dan contoh peringatan.  
**Contoh kesalahan:**  

```
{
  "id": "checkTableOutput",
  "title": "Issues reported by 'check table x for upgrade' command",
  "status": "OK",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.parent",
        "description": "Table 'test.parent' doesn't exist"
      }
  ]
},
```
Precheck melaporkan kesalahan bahwa `test.parent` tabel tidak ada.  
`mysql-error.log`File untuk instance DB penulis menunjukkan bahwa ada kesalahan kunci asing.  

```
2024-08-13T15:32:10.676893Z 62 [Warning] InnoDB: Load table `test`.`parent` failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again.
2024-08-13T15:32:10.676905Z 62 [Warning] InnoDB: Cannot open table test/parent from the internal data dictionary of InnoDB though the .frm file for the table exists.
Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
```
Masuk ke instans DB penulis dan jalankan `show engine innodb status\G` untuk mendapatkan informasi lebih lanjut tentang kesalahan kunci asing.  

```
mysql> show engine innodb status\G
*************************** 1. row ***************************
  Type: InnoDB
  Name:
Status:
=====================================
2024-08-13 15:33:33 0x14ef7b8a1700 INNODB MONITOR OUTPUT
=====================================
.
.
.
------------------------
LATEST FOREIGN KEY ERROR
------------------------
2024-08-13 15:32:10 0x14ef6dbbb700 Error in foreign key constraint of table test/child:
there is no index in referenced table which would contain
the columns as the first columns, or the data types in the
referenced table do not match the ones in table. Constraint:
,
  CONSTRAINT `fk_pname` FOREIGN KEY (`p_name`) REFERENCES `parent` (`name`)
The index in the foreign key in table is p_name_idx
Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-foreign-key-constraints.html for correct foreign key definition.
.
.
```
`LATEST FOREIGN KEY ERROR`Pesan melaporkan bahwa kendala kunci `fk_pname` asing dalam `test.child` tabel, yang mereferensikan `test.parent` tabel, memiliki indeks yang hilang atau ketidakcocokan tipe data. Dokumentasi MySQL [pada batasan kunci asing](https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html) menyatakan bahwa kolom yang direferensikan dalam kunci asing harus memiliki indeks terkait, dan kolom harus menggunakan tipe data yang parent/child sama.  
[Untuk memverifikasi apakah ini terkait dengan ketidakcocokan indeks atau tipe data yang hilang, masuk ke database dan periksa definisi tabel dengan menonaktifkan sementara variabel sesi foreign\$1key\$1checks.](https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html#foreign-key-checks) Setelah melakukannya, kita dapat melihat bahwa batasan anak di question (`fk_pname`) digunakan `p_name varchar(20) CHARACTER SET latin1 DEFAULT NULL` untuk mereferensikan tabel induk. `name varchar(20) NOT NULL` Tabel induk menggunakan`DEFAULT CHARSET=utf8`, tetapi `p_name` kolom tabel anak menggunakan`latin1`, sehingga kesalahan ketidakcocokan tipe data dilemparkan.  

```
mysql> show create table parent\G
ERROR 1146 (42S02): Table 'test.parent' doesn't exist

mysql> show create table child\G
*************************** 1. row ***************************
       Table: child
Create Table: CREATE TABLE `child` (
  `id` int(11) NOT NULL,
  `p_name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `p_name_idx` (`p_name`),
  CONSTRAINT `fk_pname` FOREIGN KEY (`p_name`) REFERENCES `parent` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> set foreign_key_checks=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show create table parent\G
*************************** 1. row ***************************
       Table: parent
Create Table: CREATE TABLE `parent` (
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> show create table child\G
*************************** 1. row ***************************
       Table: child
Create Table: CREATE TABLE `child` (
  `id` int(11) NOT NULL,
  `p_name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `p_name_idx` (`p_name`),
  CONSTRAINT `fk_pname` FOREIGN KEY (`p_name`) REFERENCES `parent` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
```
Untuk mengatasi masalah ini, kita dapat mengubah tabel anak untuk menggunakan set karakter yang sama dengan induk, atau mengubah induk untuk menggunakan set karakter yang sama dengan tabel anak. Di sini, karena tabel anak secara eksplisit menggunakan `latin1` dalam definisi `p_name` kolom, kami menjalankan `ALTER TABLE` untuk memodifikasi set karakter ke. `utf8`  

```
mysql> alter table child modify p_name varchar(20) character set utf8 DEFAULT NULL;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> flush tables;
Query OK, 0 rows affected (0.01 sec)
```
Setelah melakukannya, precheck berlalu, dan peningkatan dapat dilanjutkan.  
**Contoh peringatan:**  

```
{
  "id": "checkTableOutput",
  "title": "Issues reported by 'check table x for upgrade' command",
  "status": "OK",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.orders",
        "description": "Trigger test.orders.delete_audit_trigg does not have CREATED attribute."
      }
  ]
}
```
Precheck melaporkan peringatan untuk `delete_audit_trigg` pemicu di `test.orders` atas meja karena tidak memiliki `CREATED` atribut. Menurut [Memeriksa kompatibilitas versi](https://dev.mysql.com/doc/refman/5.7/en/check-table.html#check-table-version-compatibility) dalam dokumentasi MySQL, pesan ini bersifat informasi, dan dicetak untuk pemicu yang dibuat sebelum MySQL 5.7.2.  
Karena ini adalah peringatan, itu tidak menghalangi peningkatan untuk melanjutkan. Namun, jika Anda ingin menyelesaikan masalah, Anda dapat membuat ulang pemicu yang dimaksud, dan precheck berhasil tanpa peringatan.  

```
{
  "id": "checkTableOutput",
  "title": "Issues reported by 'check table x for upgrade' command",
  "status": "OK",
  "detectedProblems": []
},
```

# Cara melakukan peningkatan di tempat
<a name="AuroraMySQL.Upgrading.Procedure"></a>

Sebaiknya Anda meninjau materi latar belakang dalam [Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence).

Lakukan perencanaan dan pengujian pra-upgrade, seperti yang dijelaskan dalam[Merencanakan peningkatan versi mayor untuk klaster Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning).

## Konsol
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CON"></a>

Contoh berikut meningkatkan cluster `mydbcluster-cluster` DB ke Aurora MySQL versi 3.04.1.

**Untuk meningkatkan versi mayor klaster DB Aurora MySQL**

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. Jika Anda menggunakan grup parameter kustom untuk klaster DB asli, buat grup parameter terkait yang kompatibel dengan versi mayor baru. Buat penyesuaian yang diperlukan untuk parameter konfigurasi di grup parameter baru tersebut. Untuk informasi selengkapnya, lihat [Bagaimana peningkatan di tempat memengaruhi grup parameter untuk klaster](#AuroraMySQL.Upgrading.ParamGroups).

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

1.  Dalam daftar, pilih klaster DB yang ingin Anda ubah. 

1.  Pilih **Ubah**. 

1.  Untuk **Versi**, pilih versi mayor Aurora MySQL baru.

   Biasanya, kami merekomendasikan untuk menggunakan versi minor terbaru dari versi mayor. Di sini, kami memilih versi default saat ini.  
![\[Peningkatan di tempat terhadap klaster DB Aurora MySQL dari versi 2 ke versi 3\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ams-upgrade-v2-v3.png)

1.  Pilih **Lanjutkan**. 

1.  Di halaman berikutnya, tentukan kapan harus melakukan peningkatan. Pilih **Selama jendela pemeliharaan terjadwal berikutnya** atau **Segera**. 

1.  (Opsional) Periksa secara berkala halaman **Peristiwa** di konsol RDS selama peningkatan. Tindakan ini akan membantu Anda memantau progres peningkatan dan identifikasi masalah apa pun. Jika peningkatan mengalami masalah apa pun, lihat [Pemecahan masalah untuk Aurora Peningkatan di tempat saya SQL](AuroraMySQL.Upgrading.Troubleshooting.md) untuk langkah-langkah yang harus diambil. 

1. Jika Anda membuat grup parameter baru di awal prosedur ini, kaitkan grup parameter kustom dengan klaster yang ditingkatkan. Untuk informasi selengkapnya, lihat [Bagaimana peningkatan di tempat memengaruhi grup parameter untuk klaster](#AuroraMySQL.Upgrading.ParamGroups).
**catatan**  
 Langkah ini mengharuskan Anda untuk memulai ulang klaster lagi untuk menerapkan grup parameter baru. 

1.  (Opsional) Setelah Anda menyelesaikan setiap pengujian pasca-peningkatan, hapus snapshot manual yang dibuat Aurora pada awal peningkatan. 

## AWS CLI
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CLI"></a>

Untuk memutakhirkan versi utama cluster DB MySQL Aurora, gunakan AWS CLI [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)perintah dengan parameter yang diperlukan berikut:
+ `--db-cluster-identifier`
+ `--engine-version`
+ `--allow-major-version-upgrade`
+  `--apply-immediately` atau `--no-apply-immediately`

Jika klaster Anda menggunakan grup parameter kustom, sertakan juga salah satu atau kedua opsi berikut ini:
+ `--db-cluster-parameter-group-name`, jika klaster menggunakan grup parameter klaster kustom
+ `--db-instance-parameter-group-name`, jika ada instans di klaster yang menggunakan grup parameter DB kustom

Contoh berikut meningkatkan cluster `sample-cluster` DB ke Aurora MySQL versi 3.04.1. Peningkatan akan segera terjadi, bukan menunggu periode pemeliharaan berikutnya.

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

```
aws rds modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --engine-version 8.0.mysql_aurora.3.04.1 \
          --allow-major-version-upgrade \
          --apply-immediately
```
Untuk Windows:  

```
aws rds modify-db-cluster ^
          --db-cluster-identifier sample-cluster ^
          --engine-version 8.0.mysql_aurora.3.04.1 ^
          --allow-major-version-upgrade ^
          --apply-immediately
```
Anda dapat menggabungkan perintah CLI lainnya `modify-db-cluster` untuk membuat end-to-end proses otomatis untuk melakukan dan memverifikasi peningkatan. Untuk informasi selengkapnya dan contoh tambahan, lihat [Aurora Tutorial peningkatan di tempat SQL saya](AuroraMySQL.Upgrading.Tutorial.md).

**catatan**  
Jika klaster Anda adalah bagian dari basis data global Aurora, prosedur peningkatan di tempat ini sedikit berbeda. Anda memanggil operasi [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html)perintah alih-alih`modify-db-cluster`. Untuk informasi selengkapnya, lihat [Peningkatan besar di tempat untuk basis data global](#AuroraMySQL.Upgrading.GlobalDB).

## API RDS
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.API"></a>

[Untuk memutakhirkan versi utama cluster DB MySQL Aurora, gunakan operasi RDS API Modify dengan parameter yang diperlukan berikut: DBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)
+ `DBClusterIdentifier`
+ `Engine`
+ `EngineVersion`
+ `AllowMajorVersionUpgrade`
+ `ApplyImmediately` (atur ke `true` atau `false`)

**catatan**  
Jika klaster Anda adalah bagian dari basis data global Aurora, prosedur peningkatan di tempat ini sedikit berbeda. Anda memanggil [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalClusterParameterGroup.html)operasi alih-alih`ModifyDBCluster`. Untuk informasi selengkapnya, lihat [Peningkatan besar di tempat untuk basis data global](#AuroraMySQL.Upgrading.GlobalDB).

## Bagaimana peningkatan di tempat memengaruhi grup parameter untuk klaster
<a name="AuroraMySQL.Upgrading.ParamGroups"></a>

Grup parameter Aurora memiliki kumpulan pengaturan konfigurasi yang berbeda untuk klaster yang kompatibel dengan MySQL 5.7 atau 8.0. Saat Anda melakukan peningkatan di tempat, klaster yang ditingkatkan dan semua instans harus menggunakan grup parameter klaster dan instans yang sesuai:

Klaster dan instans Anda mungkin menggunakan grup parameter default yang kompatibel dengan 5.7. Jika demikian, klaster dan instans yang ditingkatkan akan dimulai dengan grup parameter default yang kompatibel dengan 8.0. Jika klaster dan instans Anda menggunakan grup parameter kustom apa pun, pastikan untuk membuat grup parameter yang sesuai atau yang kompatibel dengan 8.0. Pastikan juga untuk menentukannya selama proses peningkatan.

**catatan**  
Untuk sebagian besar pengaturan parameter, Anda dapat memilih grup parameter kustom di dua titik. Titik ini adalah saat Anda membuat klaster atau mengaitkan grup parameter dengan klaster nanti.  
Namun, jika Anda menggunakan pengaturan nondefault untuk parameter `lower_case_table_names`, Anda harus mengatur grup parameter kustom dengan pengaturan ini terlebih dahulu. Kemudian, tentukan grup parameter saat Anda melakukan pemulihan snapshot untuk membuat klaster. Setiap perubahan pada parameter `lower_case_table_names` tidak akan berpengaruh setelah klaster dibuat.  
Kami menyarankan Anda menggunakan pengaturan yang sama untuk `lower_case_table_names` ketika Anda meningkatkan dari Aurora MySQL versi 2 ke versi 3.  
Dengan database global Aurora berdasarkan Aurora MySQL, Anda dapat melakukan peningkatan di tempat dari Aurora MySQL versi 2 ke versi 3 hanya jika Anda mengatur parameter ke default dan me-reboot database global Anda. `lower_case_table_names` Untuk informasi selengkapnya tentang metode yang dapat Anda gunakan, lihat [Peningkatan versi utama](aurora-global-database-upgrade.md#aurora-global-database-upgrade.major).

## Perubahan pada properti klaster di antara versi Aurora MySQL
<a name="AuroraMySQL.Upgrading.Attrs"></a>

Saat Anda meningkatkan dari Aurora MySQL versi 2 ke versi 3, pastikan untuk memeriksa aplikasi atau skrip apa pun yang Anda gunakan untuk menyiapkan atau mengelola klaster dan instans DB Aurora MySQL.

Selain itu, ubah kode Anda yang memanipulasi grup parameter untuk memperhitungkan fakta bahwa nama grup parameter default berbeda untuk klaster yang kompatibel dengan 5.7 dan 8.0. Nama grup parameter default untuk klaster Aurora MySQL versi 2 dan 3 masing-masing adalah `default.aurora-mysql5.7` dan `default.aurora-mysql8.0`.

Misalnya, Anda mungkin memiliki kode seperti berikut yang berlaku untuk klaster Anda sebelum peningkatan.

```
# Check the default parameter values for MySQL 5.7–compatible clusters.
aws rds describe-db-parameters --db-parameter-group-name default.aurora-mysql5.7 --region us-east-1
```

 Setelah meningkatkan versi mayor klaster, ubah kode tersebut sebagai berikut.

```
# Check the default parameter values for MySQL 8.0–compatible clusters.
aws rds describe-db-parameters --db-parameter-group-name default.aurora-mysql8.0 --region us-east-1
```

## Peningkatan besar di tempat untuk basis data global
<a name="AuroraMySQL.Upgrading.GlobalDB"></a>

 Untuk basis data global Aurora, Anda meningkatkan klaster basis data global. Aurora secara otomatis meningkatkan semua klaster pada saat yang sama dan memastikan bahwa semua klaster ini menjalankan versi mesin yang sama. Persyaratan ini berlaku karena setiap perubahan pada tabel sistem, format file data, dan sebagainya akan secara otomatis direplikasi ke semua klaster sekunder. 

Ikuti petunjuk dalam [Cara kerja peningkatan di tempat terhadap versi mayor Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence). Saat Anda menentukan hal yang akan ditingkatkan, pastikan untuk memilih klaster basis data global, bukan salah satu klaster yang terdapat di dalamnya.

Jika Anda menggunakan Konsol Manajemen AWS, pilih item dengan peran **Database global**.

![\[Meningkatkan klaster basis data global\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-databases-major-upgrade-global-cluster.png)


 Jika Anda menggunakan AWS CLI atau RDS API, mulai proses upgrade dengan memanggil [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html)perintah atau [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalCluster.html)operasi. Anda akan menggunakan salah satunya, bukan `modify-db-cluster` atau `ModifyDBCluster`.

**catatan**  
Anda tidak dapat menentukan grup parameter kustom untuk klaster basis data global saat Anda melakukan peningkatan versi mayor basis data global Aurora tersebut. Buat grup parameter kustom Anda di setiap Wilayah klaster global. Kemudian, terapkan secara manual ke klaster Regional setelah peningkatan.

 Untuk meng-upgrade versi utama dari sebuah cluster database global MySQL Aurora dengan menggunakan AWS CLI, gunakan [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html)perintah dengan parameter yang diperlukan berikut: 
+  `--global-cluster-identifier` 
+  `--engine aurora-mysql` 
+  `--engine-version` 
+  `--allow-major-version-upgrade` 

Contoh berikut meningkatkan cluster database global ke Aurora MySQL versi 3.04.2.

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

```
aws rds modify-global-cluster \
          --global-cluster-identifier global_cluster_identifier \
          --engine aurora-mysql \
          --engine-version 8.0.mysql_aurora.3.04.2 \
          --allow-major-version-upgrade
```
Untuk Windows:  

```
aws rds modify-global-cluster ^
          --global-cluster-identifier global_cluster_identifier ^
          --engine aurora-mysql ^
          --engine-version 8.0.mysql_aurora.3.04.2 ^
          --allow-major-version-upgrade
```

## Upgrade di tempat untuk cluster DB dengan replika baca lintas wilayah
<a name="AuroraMySQL.Upgrading.XRRR"></a>

Anda dapat memutakhirkan cluster Aurora DB yang memiliki replika baca lintas wilayah menggunakan prosedur peningkatan di tempat, tetapi ada pertimbangan tertentu:
+ Anda harus memutakhirkan cluster DB replika baca terlebih dahulu. Jika Anda mencoba memutakhirkan klaster utama terlebih dahulu, Anda akan menerima pesan kesalahan seperti berikut ini:

  Tidak dapat memutakhirkan cluster DB test-xr-primary-cluster karena replika Aurora Cross-region terkait test-xr-replica-cluster belum ditambal. Tingkatkan replika Aurora Cross-region dan coba lagi.

  Ini berarti bahwa cluster DB primer tidak dapat memiliki versi mesin DB yang lebih tinggi daripada cluster replika.
+ Sebelum Anda memutakhirkan cluster DB primer, hentikan beban kerja tulis dan nonaktifkan permintaan koneksi baru apa pun ke instance DB penulis dari cluster utama.
+ Saat Anda memutakhirkan klaster utama, pilih grup parameter cluster DB kustom dengan `binlog_format` parameter yang disetel ke nilai yang mendukung replikasi logging biner, seperti`MIXED`.

  Untuk informasi selengkapnya tentang menggunakan pencatatan log biner dengan Aurora MySQL, lihat [Replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya (replikasi log biner)](AuroraMySQL.Replication.MySQL.md). Untuk informasi selengkapnya tentang memodifikasi parameter konfigurasi Aurora MySQL, lihat [Parameter konfigurasi Aurora MySQL](AuroraMySQL.Reference.ParameterGroups.md) dan [](USER_WorkingWithParamGroups.md).
+ Jangan menunggu lama untuk memutakhirkan cluster DB utama setelah Anda memutakhirkan cluster replika. Kami menyarankan untuk tidak menunggu lebih lama dari jendela pemeliharaan berikutnya.
+ Setelah Anda memutakhirkan cluster DB primer, reboot instance DB penulisnya. Grup parameter cluster DB kustom yang memungkinkan replikasi binlog tidak berlaku sampai instance DB penulis di-boot ulang.
+ Jangan melanjutkan beban kerja tulis atau mengaktifkan koneksi ke instans DB penulis sampai Anda mengonfirmasi bahwa replikasi lintas wilayah telah dimulai ulang, dan bahwa jeda replika di sekunder adalah 0. Wilayah AWS 

# Aurora Tutorial peningkatan di tempat SQL saya
<a name="AuroraMySQL.Upgrading.Tutorial"></a>

Contoh Linux berikut menunjukkan cara Anda dapat melakukan langkah-langkah umum untuk prosedur peningkatan di tempat menggunakan AWS CLI.

Contoh pertama ini membuat cluster Aurora DB yang menjalankan Aurora My versi 2.x. SQL Klaster ini mencakup instans DB penulis dan instans DB pembaca. Perintah `wait db-instance-available` dijeda hingga instans DB penulis tersedia. Pada saat itulah, klaster siap untuk ditingkatkan.

```
aws rds create-db-cluster --db-cluster-identifier mynewdbcluster --engine aurora-mysql \
  --db-cluster-version 5.7.mysql_aurora.2.11.2
...
aws rds create-db-instance --db-instance-identifier mynewdbcluster-instance1 \
  --db-cluster-identifier mynewdbcluster --db-instance-class db.t4g.medium --engine aurora-mysql
...
aws rds wait db-instance-available --db-instance-identifier mynewdbcluster-instance1
```

Versi Aurora My SQL 3.x yang dapat Anda tingkatkan cluster agar bergantung pada versi 2.x yang sedang dijalankan cluster dan di Wilayah AWS mana cluster berada. Perintah pertama, dengan `--output text`, hanya menunjukkan versi target yang tersedia. Perintah kedua menunjukkan JSON output penuh dari respons. Dalam respons tersebut, Anda dapat melihat detail seperti nilai `aurora-mysql` yang Anda gunakan untuk parameter `engine`. Anda juga dapat melihat fakta bahwa memutakhirkan ke 3.04.0 merupakan peningkatan versi utama.

```
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \
  --query '*[].{EngineVersion:EngineVersion}' --output text
5.7.mysql_aurora.2.11.2

aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.2 \
  --query '*[].[ValidUpgradeTarget]'
...
{
    "Engine": "aurora-mysql",
    "EngineVersion": "8.0.mysql_aurora.3.04.0",
    "Description": "Aurora MySQL 3.04.0 (compatible with MySQL 8.0.28)",
    "AutoUpgrade": false,
    "IsMajorVersionUpgrade": true,
    "SupportedEngineModes": [
        "provisioned"
    ],
    "SupportsParallelQuery": true,
    "SupportsGlobalDatabases": true,
    "SupportsBabelfish": false,
    "SupportsIntegrations": false
},
...
```

Contoh ini menunjukkan bahwa jika Anda memasukkan nomor versi target yang bukan merupakan target peningkatan yang valid untuk klaster, Aurora tidak akan melakukan peningkatan. Aurora juga tidak melakukan peningkatan versi mayor kecuali jika Anda menyertakan parameter `--allow-major-version-upgrade`. Dengan demikian, Anda tidak dapat tanpa disengaja melakukan peningkatan yang berpotensi akan memerlukan pengujian dan perubahan ekstensif terhadap kode aplikasi Anda.

```
aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \
  --engine-version 5.7.mysql_aurora.2.09.2 --apply-immediately
An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: Cannot find upgrade target from 5.7.mysql_aurora.2.11.2 with requested version 5.7.mysql_aurora.2.09.2.

aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \
  --engine-version 8.0.mysql_aurora.3.04.0 --region us-east-1 --apply-immediately
An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: The AllowMajorVersionUpgrade flag must be present when upgrading to a new major version.

aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \
  --engine-version 8.0.mysql_aurora.3.04.0 --apply-immediately --allow-major-version-upgrade
{
  "DBClusterIdentifier": "mynewdbcluster",
  "Status": "available",
  "Engine": "aurora-mysql",
  "EngineVersion": "5.7.mysql_aurora.2.11.2"
}
```

 Dibutuhkan beberapa saat hingga status klaster dan instans DB terkait berubah menjadi `upgrading`. Nomor versi untuk klaster dan instans DB hanya berubah saat peningkatan selesai. Sekali lagi, Anda dapat menggunakan perintah `wait db-instance-available` untuk instans DB penulis untuk menunggu hingga peningkatan selesai sebelum melanjutkan. 

```
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \
  --query '*[].[Status,EngineVersion]' --output text
upgrading 5.7.mysql_aurora.2.11.2

aws rds describe-db-instances --db-instance-identifier mynewdbcluster-instance1 \
  --query '*[].{DBInstanceIdentifier:DBInstanceIdentifier,DBInstanceStatus:DBInstanceStatus} | [0]'
{
    "DBInstanceIdentifier": "mynewdbcluster-instance1",
    "DBInstanceStatus": "upgrading"
}

aws rds wait db-instance-available --db-instance-identifier mynewdbcluster-instance1
```

 Pada tahap ini, nomor versi untuk klaster akan cocok dengan nomor versi yang ditentukan untuk peningkatan. 

```
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \
  --query '*[].[EngineVersion]' --output text

8.0.mysql_aurora.3.04.0
```

Contoh sebelumnya melakukan peningkatan langsung dengan menentukan parameter `--apply-immediately`. Agar peningkatan terjadi pada waktu yang tepat saat klaster diperkirakan tidak sibuk, Anda dapat menentukan parameter `--no-apply-immediately`. Tindakan ini akan membuat peningkatan dimulai selama periode pemeliharaan berikutnya untuk klaster. Periode pemeliharaan menentukan periode saat operasi pemeliharaan dapat dimulai. Operasi yang berjalan lama mungkin tidak selesai selama periode pemeliharaan. Dengan demikian, Anda tidak perlu menentukan periode pemeliharaan yang lebih panjang bahkan jika Anda memperkirakan bahwa peningkatan mungkin akan memakan waktu lama.

Contoh berikut memutakhirkan cluster yang awalnya menjalankan Aurora SQL My versi 2.11.2. Dalam output `describe-db-engine-versions`, nilai `False` dan `True` merepresentasikan properti `IsMajorVersionUpgrade`. Dari versi 2.11.2, Anda dapat meningkatkan ke beberapa versi 2.\$1 lainnya. Peningkatan tersebut tidak dianggap sebagai peningkatan versi mayor sehingga tidak memerlukan peningkatan di tempat. Peningkatan di tempat hanya tersedia untuk peningkatan ke versi 3.\$1 yang ditampilkan dalam daftar.

```
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \
  --query '*[].{EngineVersion:EngineVersion}' --output text
5.7.mysql_aurora.2.11.2

aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.10.2 \
  --query '*[].[ValidUpgradeTarget]|[0][0]|[*].[EngineVersion,IsMajorVersionUpgrade]' --output text

5.7.mysql_aurora.2.11.3 False
5.7.mysql_aurora.2.11.4 False
5.7.mysql_aurora.2.11.5 False
5.7.mysql_aurora.2.11.6 False
5.7.mysql_aurora.2.12.0 False
5.7.mysql_aurora.2.12.1 False
5.7.mysql_aurora.2.12.2 False
5.7.mysql_aurora.2.12.3 False
8.0.mysql_aurora.3.04.0 True
8.0.mysql_aurora.3.04.1 True
8.0.mysql_aurora.3.04.2 True
8.0.mysql_aurora.3.04.3 True
8.0.mysql_aurora.3.05.2 True
8.0.mysql_aurora.3.06.0 True
8.0.mysql_aurora.3.06.1 True
8.0.mysql_aurora.3.07.1 True

aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \
  --engine-version 8.0.mysql_aurora.3.04.0 --no-apply-immediately --allow-major-version-upgrade
...
```

Ketika sebuah klaster dibuat tanpa periode pemeliharaan yang ditentukan, Aurora akan memilih hari acak dalam seminggu. Dalam hal ini, perintah `modify-db-cluster` dikirimkan pada hari Senin. Dengan demikian, kita mengubah periode pemeliharaan menjadi Selasa pagi. Semua waktu diwakili dalam zona UTC waktu. Periode `tue:10:00-tue:10:30` sama dengan 02.00-02.30 waktu Pasifik. Perubahan periode pemeliharaan akan langsung berlaku.

```
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster --query '*[].[PreferredMaintenanceWindow]'
[
    [
        "sat:08:20-sat:08:50"
    ]
]

aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster --preferred-maintenance-window tue:10:00-tue:10:30"
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster --query '*[].[PreferredMaintenanceWindow]'
[
    [
        "tue:10:00-tue:10:30"
    ]
]
```

Contoh berikut menunjukkan cara mendapatkan laporan dari peristiwa yang dihasilkan oleh peningkatan. Argumen `--duration` merepresentasikan jumlah menit untuk mengambil informasi peristiwa. Argumen ini diperlukan, karena secara default `describe-events` hanya mengembalikan peristiwa dari jam terakhir.

```
aws rds describe-events --source-type db-cluster --source-identifier mynewdbcluster --duration 20160
{
    "Events": [
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "DB cluster created",
            "EventCategories": [
                "creation"
            ],
            "Date": "2022-11-17T01:24:11.093000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Performing online pre-upgrade checks.",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T22:57:08.450000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Performing offline pre-upgrade checks.",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T22:57:59.519000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-mynewdbcluster-5-7-mysql-aurora-2-10-2-to-8-0-mysql-aurora-3-02-0-2022-11-18-22-55].",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T23:00:22.318000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Cloning volume.",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T23:01:45.428000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Purging undo records for old row versions. Records remaining: 164",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T23:02:25.141000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Purging undo records for old row versions. Records remaining: 164",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T23:06:23.036000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Upgrade in progress: Upgrading database objects.",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T23:06:48.208000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        },
        {
            "SourceIdentifier": "mynewdbcluster",
            "SourceType": "db-cluster",
            "Message": "Database cluster major version has been upgraded",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2022-11-18T23:10:28.999000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster"
        }
    ]
}
```

# Menemukan alasan Aurora Kegagalan peningkatan versi SQL utama saya
<a name="AuroraMySQL.Upgrading.failure-events"></a>

Dalam [tutorial](AuroraMySQL.Upgrading.Tutorial.md), upgrade dari Aurora My SQL versi 2 ke versi 3 berhasil. Tetapi jika pemutakhiran gagal, Anda pasti ingin tahu alasannya.

Anda dapat mulai dengan menggunakan `describe-events` AWS CLI perintah untuk melihat peristiwa cluster DB. Contoh ini menunjukkan peristiwa `mydbcluster` selama 10 jam terakhir.

```
aws rds describe-events \
    --source-type db-cluster \
    --source-identifier mydbcluster \
    --duration 600
```

Dalam hal ini, kami mengalami kegagalan precheck upgrade.

```
{
    "Events": [
        {
            "SourceIdentifier": "mydbcluster",
            "SourceType": "db-cluster",
            "Message": "Database cluster engine version upgrade started.",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2024-04-11T13:23:22.846000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster"
        },
        {
            "SourceIdentifier": "mydbcluster",
            "SourceType": "db-cluster",
            "Message": "Database cluster is in a state that cannot be upgraded: Upgrade prechecks failed. For more details, see the  
             upgrade-prechecks.log file. For more information on troubleshooting the cause of the upgrade failure, see 
             https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2024-04-11T13:23:24.373000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster"
        }
    ]
}
```

Untuk mendiagnosis penyebab pasti masalah, periksa log database untuk instance DB penulis. Ketika upgrade ke Aurora My SQL version 3 gagal, instance writer berisi file log dengan nama. `upgrade-prechecks.log` Contoh ini menunjukkan cara mendeteksi keberadaan log tersebut lalu mengunduhnya ke file lokal untuk diperiksa.

```
aws rds describe-db-log-files --db-instance-identifier mydbcluster-instance \
    --query '*[].[LogFileName]' --output text

error/mysql-error-running.log
error/mysql-error-running.log.2024-04-11.20
error/mysql-error-running.log.2024-04-11.21
error/mysql-error.log
external/mysql-external.log
upgrade-prechecks.log

aws rds download-db-log-file-portion --db-instance-identifier mydbcluster-instance \
    --log-file-name upgrade-prechecks.log \
    --starting-token 0 \
    --output text >upgrade_prechecks.log
```

`upgrade-prechecks.log`File dalam JSON format. Kami mengunduhnya menggunakan `--output text` opsi untuk menghindari pengkodean JSON output dalam JSON pembungkus lain. Untuk upgrade Aurora My SQL versi 3, log ini selalu menyertakan pesan informasi dan peringatan tertentu. Log ini hanya berisi pesan kesalahan jika peningkatan gagal. Jika peningkatan berhasil, file log tidak dibuat sama sekali.

Untuk meringkas semua kesalahan dan menampilkan bidang objek dan deskripsi terkait, Anda dapat menjalankan perintah `grep -A 2 '"level": "Error"'` pada isi `upgrade-prechecks.log` file. Tindakan ini akan menampilkan setiap baris kesalahan dan dua baris setelahnya. Baris ini berisi nama objek basis data yang sesuai dan panduan tentang cara memperbaiki masalahnya.

```
$ cat upgrade-prechecks.log | grep -A 2 '"level": "Error"'

"level": "Error",
"dbObject": "problematic_upgrade.dangling_fulltext_index",
"description": "Table `problematic_upgrade.dangling_fulltext_index` contains dangling FULLTEXT index. Kindly recreate the table before upgrade."
```

Dalam contoh ini, Anda dapat menjalankan SQL perintah berikut pada tabel yang menyinggung untuk mencoba memperbaiki masalah, atau Anda dapat membuat ulang tabel tanpa indeks yang menggantung.

```
OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;
```

Kemudian coba lagi upgrade.

# Pemecahan masalah untuk Aurora Peningkatan di tempat saya SQL
<a name="AuroraMySQL.Upgrading.Troubleshooting"></a>

Gunakan tips berikut untuk membantu memecahkan masalah dengan peningkatan Aurora My in-place. SQL Tips ini tidak berlaku untuk Aurora Serverless klaster DB.


| Alasan peningkatan di tempat dibatalkan atau lambat | Efek | Solusi untuk memungkinkan peningkatan di tempat selesai dalam periode pemeliharaan | 
| --- | --- | --- | 
| Replika Lintas wilayah Aurora Terkait belum ditambal | Aurora membatalkan peningkatan. | Tingkatkan replika Aurora Cross-region dan coba lagi. | 
| Klaster memiliki transaksi XA dalam status siap | Aurora membatalkan peningkatan. | Komit atau kembalikan semua transaksi XA yang disiapkan. | 
| Cluster memproses pernyataan bahasa definisi data (DDL) apa pun | Aurora membatalkan peningkatan. | Pertimbangkan untuk menunggu dan melakukan peningkatan setelah semua DDL pernyataan selesai. | 
| Klaster memiliki perubahan yang tidak dikomit untuk banyak baris | Peningkatan mungkin memerlukan waktu lama. |  Proses peningkatan mengembalikan perubahan yang tidak dikomit. Indikator untuk kondisi ini adalah nilai `TRX_ROWS_MODIFIED` dalam tabel `INFORMATION_SCHEMA.INNODB_TRX`. Pertimbangkan untuk melakukan peningkatan hanya setelah semua transaksi besar dilakukan atau dikembalikan.  | 
| Klaster memiliki jumlah catatan undo yang tinggi | Peningkatan mungkin memerlukan waktu lama. |  Bahkan jika transaksi yang tidak dikomit tidak memengaruhi sejumlah besar baris, transaksi ini mungkin berkaitan dengan volume besar data. Misalnya, Anda mungkin memasukkan besarBLOBs. Aurora tidak akan secara otomatis mendeteksi atau menghasilkan peristiwa untuk jenis aktivitas transaksi ini. Indikator untuk kondisi ini adalah panjang daftar riwayat (HLL). Proses peningkatan mengembalikan perubahan yang tidak dikomit. Anda dapat memeriksa HLL output dari `SHOW ENGINE INNODB STATUS` SQL perintah, atau langsung dengan menggunakan SQL query berikut: <pre>SELECT count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';</pre> Anda juga dapat memantau `RollbackSegmentHistoryListLength` metrik di Amazon CloudWatch. Pertimbangkan untuk melakukan upgrade hanya setelah HLL lebih kecil.  | 
| Klaster sedang dalam proses melakukan komit transaksi log biner besar | Peningkatan mungkin memerlukan waktu lama. |  Proses peningkatan menunggu sampai perubahan log biner diterapkan. Lebih banyak transaksi atau DDL pernyataan dapat dimulai selama periode ini, yang selanjutnya memperlambat proses peningkatan. Jadwalkan proses peningkatan saat klaster tidak sibuk menghasilkan perubahan replikasi log biner. Aurora tidak akan secara otomatis mendeteksi atau membuat peristiwa untuk kondisi ini.  | 
| Inkonsistensi skema yang dihasilkan dari penghapusan atau kerusakan file | Aurora membatalkan peningkatan. |  Ubah mesin penyimpanan default untuk tabel sementara dari My ISAM ke InnoDB. Lakukan langkah-langkah berikut ini: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html)  | 
| Pengguna master dihapus | Aurora membatalkan peningkatan. |   Jangan hapus pengguna master.  Namun, jika karena alasan tertentu Anda kebetulan menghapus pengguna master, kembalikan menggunakan SQL perintah berikut: <pre>CREATE USER 'master_username'@'%' IDENTIFIED BY 'master_user_password' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;<br /><br />GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, <br />LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, <br />TRIGGER, LOAD FROM S3, SELECT INTO S3, INVOKE LAMBDA, INVOKE SAGEMAKER, INVOKE COMPREHEND ON *.* TO 'master_username'@'%' WITH GRANT OPTION;</pre>  | 

Untuk detail selengkapnya tentang masalah pemecahan masalah yang menyebabkan precheck upgrade gagal, lihat blog berikut:
+ [Amazon Aurora SQL Versi saya 2 (dengan kompatibilitas SQL 5.7 Saya) ke versi 3 (dengan kompatibilitas SQL 8.0 Saya) daftar periksa pemutakhiran, Bagian 1](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-1/)
+ [Amazon Aurora SQL Versi saya 2 (dengan kompatibilitas SQL 5.7 Saya) ke versi 3 (dengan kompatibilitas SQL 8.0 Saya) daftar periksa pemutakhiran, Bagian 2](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-2/)

 Anda dapat menggunakan langkah-langkah berikut untuk melakukan pemeriksaan Anda sendiri untuk beberapa kondisi di tabel sebelumnya. Dengan demikian, Anda dapat menjadwalkan peningkatan pada saat Anda mengetahui basis data dalam keadaan yang memungkinkan peningkatan berhasil diselesaikan dengan cepat. 
+  Anda dapat memeriksa transaksi XA terbuka dengan menjalankan pernyataan `XA RECOVER`. Anda kemudian dapat meng-commit atau mengembalikan transaksi XA sebelum memulai peningkatan. 
+  Anda dapat memeriksa DDL pernyataan dengan mengeksekusi `SHOW PROCESSLIST` pernyataan dan mencari`CREATE`,,`DROP`, `ALTER``RENAME`, dan `TRUNCATE` pernyataan dalam output. Izinkan semua DDL pernyataan selesai sebelum memulai peningkatan. 
+  Anda dapat memeriksa jumlah total baris yang tidak dikomit dengan mengueri tabel `INFORMATION_SCHEMA.INNODB_TRX`. Tabel ini berisi satu baris untuk setiap transaksi. Kolom `TRX_ROWS_MODIFIED` berisi jumlah baris yang diubah atau dimasukkan oleh transaksi. 
+  Anda dapat memeriksa panjang daftar riwayat InnoDB dengan menjalankan pernyataan `SHOW ENGINE INNODB STATUS SQL` dan mencari `History list length` dalam output. Anda juga dapat memeriksa nilai secara langsung dengan menjalankan kueri berikut: 

  ```
  SELECT count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';
  ```

   Panjang daftar riwayat sesuai dengan jumlah informasi undo yang disimpan oleh database untuk menerapkan kontrol konkurensi multi-versi (). MVCC 

# Pembersihan pasca-upgrade untuk Aurora Versi saya 3 SQL
<a name="AuroraMySQL.mysql80-post-upgrade"></a>

Setelah Anda selesai memutakhirkan klaster Aurora SQL My version 2 ke SQL Aurora My version 3, Anda dapat melakukan tindakan pembersihan lainnya:
+ Buat versi baru yang SQL kompatibel dengan My 8.0 dari grup parameter kustom apa pun. Terapkan nilai parameter kustom yang diperlukan ke grup parameter baru.
+ Perbarui CloudWatch alarm, skrip penyiapan, dan sebagainya untuk menggunakan nama baru untuk metrik apa pun yang namanya dipengaruhi oleh perubahan bahasa inklusif. Untuk daftar metrik tersebut, lihat [Perubahan bahasa inklusif untuk Aurora Versi saya 3 SQL](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.8.0-inclusive-language).
+ Perbarui apa saja CloudFormation template untuk menggunakan nama baru untuk parameter konfigurasi apa pun yang namanya dipengaruhi oleh perubahan bahasa inklusif. Untuk daftar parameter tersebut, lihat [Perubahan bahasa inklusif untuk Aurora Versi saya 3 SQL](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.8.0-inclusive-language).

## Indeks spasial
<a name="AuroraMySQL.mysql80-spatial"></a>

Setelah memutakhirkan ke Aurora SQL My versi 3, periksa apakah Anda perlu menjatuhkan atau membuat ulang objek dan indeks yang terkait dengan indeks spasial. Sebelum My SQL 8.0, Aurora dapat mengoptimalkan kueri spasial menggunakan indeks yang tidak berisi pengenal sumber daya spasial (). SRID Aurora SQL Versi saya 3 hanya menggunakan indeks spasial yang berisi. SRIDs Selama peningkatan, Aurora secara otomatis menjatuhkan indeks spasial apa pun tanpa SRIDs dan mencetak pesan peringatan di log database. Jika Anda mengamati pesan peringatan tersebut, buat indeks spasial baru SRIDs setelah pemutakhiran. Untuk informasi selengkapnya tentang perubahan fungsi spasial dan tipe data di My SQL 8.0, lihat [Perubahan pada SQL 8.0 Saya di Manual SQL](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html) *Referensi Saya*.

# Pembaruan dan perbaikan mesin database untuk Amazon Aurora MySQL
<a name="AuroraMySQL.Updates.RN"></a>

Anda dapat menemukan informasi berikut di *Catatan rilis untuk Amazon Aurora Edisi yang kompatibel dengan MySQL*:
+ [Pembaruan mesin database untuk Amazon Aurora MySQL versi 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html)
+ [Pembaruan mesin database untuk Amazon Aurora MySQL versi 2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.20Updates.html)
+ [Pembaruan mesin database untuk Amazon Aurora MySQL versi 1 (Usang)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.11Updates.html)
+ [Bug MySQL diperbaiki oleh pembaruan mesin database Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.MySQLBugs.html)
+ [Kerentanan keamanan diperbaiki di Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.CVE_list.html)