Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aurora Tutorial peningkatan di tempat SQL saya
Contoh Linux berikut menunjukkan bagaimana Anda dapat melakukan langkah-langkah umum dari 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.10.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 pada Wilayah AWS dimana 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 peningkatan ke 3.02.0 merupakan peningkatan versi mayor.
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \ --query '*[].{EngineVersion:EngineVersion}' --output text
5.7.mysql_aurora.2.10.2
aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.10.2 \ --query '*[].[ValidUpgradeTarget]'... { "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "Description": "Aurora MySQL 3.02.0 (compatible with MySQL 8.0.23)", "AutoUpgrade": false, "IsMajorVersionUpgrade": true, "SupportedEngineModes": [ "provisioned" ], "SupportsParallelQuery": true, "SupportsGlobalDatabases": true, "SupportsBabelfish": 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.10.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.02.0 --region us-east-1 --apply-immediatelyAn 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.02.0 --apply-immediately --allow-major-version-upgrade{ "DBClusterIdentifier": "mynewdbcluster", "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.10.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.10.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.02.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.10.2. Dalam output describe-db-engine-versions
, nilai False
dan True
merepresentasikan properti IsMajorVersionUpgrade
. Dari versi 2.10.2, Anda dapat meningkatkan ke beberapa versi 2.* 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.* yang ditampilkan dalam daftar.
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \ --query '*[].{EngineVersion:EngineVersion}' --output text
5.7.mysql_aurora.2.10.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 text5.7.mysql_aurora.2.10.3 False 5.7.mysql_aurora.2.11.0 False 5.7.mysql_aurora.2.11.1 False 8.0.mysql_aurora.3.01.1 True 8.0.mysql_aurora.3.02.0 True 8.0.mysql_aurora.3.02.2 True
aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \ --engine-version 8.0.mysql_aurora.3.02.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" } ] }