Cập nhật phiên bản MySQL

Khi Amazon RDS hỗ trợ phiên bản mới của công cụ cơ sở dữ liệu, bạn có thể nâng cấp phiên bản CSDL của mình lên phiên bản mới. Có hai loại nâng cấp cho các phiên bản Cơ sở dữ liệu MySQL. nâng cấp phiên bản chính và nâng cấp phiên bản nhỏ

Các bản nâng cấp phiên bản chính có thể chứa các thay đổi cơ sở dữ liệu không tương thích ngược với các ứng dụng hiện có. Do đó, bạn phải thực hiện nâng cấp phiên bản chính của các phiên bản CSDL của mình theo cách thủ công. Bạn có thể bắt đầu nâng cấp phiên bản chính bằng cách sửa đổi phiên bản CSDL của mình. Tuy nhiên, trước khi bạn thực hiện nâng cấp phiên bản chính, chúng tôi khuyên bạn nên làm theo hướng dẫn trong Nâng cấp phiên bản chính cho MySQL

Ngược lại, các bản nâng cấp phiên bản nhỏ chỉ bao gồm các thay đổi tương thích ngược với các ứng dụng hiện có. Bạn có thể bắt đầu nâng cấp phiên bản phụ theo cách thủ công bằng cách sửa đổi phiên bản CSDL của mình. Hoặc bạn có thể bật tùy chọn Tự động nâng cấp phiên bản phụ khi tạo hoặc sửa đổi phiên bản CSDL. Làm như vậy có nghĩa là phiên bản CSDL của bạn sẽ tự động được nâng cấp sau khi Amazon RDS kiểm tra và phê duyệt phiên bản mới. Để biết thông tin về cách thực hiện nâng cấp, hãy xem Nâng cấp phiên bản công cụ phiên bản CSDL

Nếu phiên bản CSDL MySQL của bạn đang sử dụng bản sao chỉ có quyền đọc, thì bạn phải nâng cấp tất cả các bản sao chỉ có quyền đọc trước khi nâng cấp phiên bản nguồn. Nếu phiên bản CSDL của bạn đang triển khai Multi-AZ, thì cả bản sao chính và dự phòng đều được nâng cấp. Phiên bản CSDL của bạn sẽ không khả dụng cho đến khi quá trình nâng cấp hoàn tất

Nâng cấp công cụ cơ sở dữ liệu yêu cầu thời gian chết. Khoảng thời gian ngừng hoạt động thay đổi tùy theo kích thước phiên bản CSDL của bạn

Bạn có thể giảm thiểu thời gian ngừng hoạt động cần thiết để nâng cấp phiên bản CSDL bằng cách sử dụng triển khai xanh lam/xanh lá cây. Để biết thêm thông tin, xem Sử dụng Triển khai Amazon RDS Blue/Green để cập nhật cơ sở dữ liệu

Tổng quan về nâng cấp

Khi bạn sử dụng Bảng điều khiển quản lý AWS để nâng cấp phiên bản CSDL, bảng này sẽ hiển thị các mục tiêu nâng cấp hợp lệ cho phiên bản CSDL. Bạn cũng có thể sử dụng lệnh AWS CLI sau để xác định các mục tiêu nâng cấp hợp lệ cho phiên bản CSDL

Đối với Linux, macOS hoặc Unix

aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version version-number \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Cho cửa sổ

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Ví dụ: để xác định các mục tiêu nâng cấp hợp lệ cho phiên bản MySQL 8. 0. 23 DB, hãy chạy lệnh AWS CLI sau

Đối với Linux, macOS hoặc Unix

aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Cho cửa sổ

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Amazon RDS thực hiện hai bản kết xuất nhanh cơ sở dữ liệu trong quá trình nâng cấp. Ảnh chụp nhanh cơ sở dữ liệu đầu tiên là của phiên bản CSDL trước khi thực hiện bất kỳ thay đổi nâng cấp nào. Nếu bản nâng cấp không hoạt động đối với cơ sở dữ liệu của bạn, thì bạn có thể khôi phục ảnh chụp nhanh này để tạo một phiên bản CSDL chạy phiên bản cũ. Ảnh chụp nhanh cơ sở dữ liệu thứ hai được chụp khi quá trình nâng cấp hoàn tất. RDS thực hiện các kết xuất nhanh này bất kể AWS Backup có quản lý các bản sao lưu cho phiên bản CSDL hay không

Amazon RDS chỉ lấy kết xuất nhanh cơ sở dữ liệu nếu bạn đã đặt khoảng thời gian lưu giữ sao lưu cho phiên bản CSDL của mình thành một số lớn hơn 0. Để thay đổi thời gian lưu giữ bản sao lưu của bạn, hãy xem Sửa đổi phiên bản Amazon RDS DB

Sau khi nâng cấp hoàn tất, bạn không thể hoàn nguyên về phiên bản trước của công cụ cơ sở dữ liệu. Nếu bạn muốn quay lại phiên bản trước, hãy khôi phục ảnh chụp nhanh cơ sở dữ liệu đầu tiên được thực hiện để tạo phiên bản CSDL mới

Bạn kiểm soát thời điểm nâng cấp phiên bản CSDL của mình lên phiên bản mới được Amazon RDS hỗ trợ. Mức kiểm soát này giúp bạn duy trì khả năng tương thích với các phiên bản cơ sở dữ liệu cụ thể và thử nghiệm các phiên bản mới với ứng dụng của bạn trước khi triển khai trong sản xuất. Khi bạn đã sẵn sàng, bạn có thể thực hiện nâng cấp phiên bản vào thời điểm phù hợp nhất với lịch trình của mình

Nếu phiên bản CSDL của bạn đang sử dụng bản sao chỉ có quyền đọc, thì bạn phải nâng cấp tất cả các Bản sao chỉ có quyền đọc trước khi nâng cấp phiên bản nguồn

Nếu phiên bản CSDL của bạn đang triển khai Multi-AZ, thì cả phiên bản CSDL chính và dự phòng đều được nâng cấp. Các phiên bản DB chính và dự phòng được nâng cấp đồng thời và bạn sẽ gặp phải tình trạng ngừng hoạt động cho đến khi quá trình nâng cấp hoàn tất. Thời gian ngừng hoạt động thay đổi tùy theo công cụ cơ sở dữ liệu, phiên bản công cụ và kích thước phiên bản CSDL của bạn

Nâng cấp phiên bản chính cho MySQL

Amazon RDS hỗ trợ các bản nâng cấp tại chỗ sau cho các phiên bản chính của công cụ cơ sở dữ liệu MySQL

  • mysql 5. 6 đến MySQL 5. 7

  • mysql 5. 7 đến Mysql 8. 0

Bạn chỉ có thể tạo phiên bản MySQL 5. 7 và 8. 0 phiên bản CSDL với các lớp phiên bản CSDL thế hệ mới nhất và thế hệ hiện tại, ngoài phiên bản db. m3 lớp phiên bản CSDL thế hệ trước

Trong một số trường hợp, bạn muốn nâng cấp phiên bản MySQL 5. 6 phiên bản CSDL chạy trên lớp phiên bản CSDL thế hệ trước [không phải db. m3] lên phiên bản MySQL 5. 7 phiên bản cơ sở dữ liệu. Trong những trường hợp này, trước tiên hãy sửa đổi phiên bản CSDL để sử dụng lớp phiên bản CSDL thế hệ mới nhất hoặc thế hệ hiện tại. Sau khi thực hiện việc này, bạn có thể sửa đổi phiên bản CSDL để sử dụng MySQL phiên bản 5. 7 công cụ cơ sở dữ liệu. Để biết thông tin về các lớp phiên bản CSDL Amazon RDS, xem Các lớp phiên bản CSDL

Tổng quan về nâng cấp phiên bản chính của MySQL

Các bản nâng cấp phiên bản chính có thể chứa các thay đổi cơ sở dữ liệu không tương thích ngược với các ứng dụng hiện có. Do đó, Amazon RDS không tự động áp dụng các nâng cấp phiên bản chính; . Chúng tôi khuyên bạn nên kiểm tra kỹ lưỡng bất kỳ bản nâng cấp nào trước khi áp dụng nó cho các phiên bản sản xuất của mình

Để thực hiện nâng cấp phiên bản chính cho MySQL phiên bản 5. 6 Phiên bản CSDL trên Amazon RDS sang MySQL phiên bản 5. 7 trở lên, trước tiên hãy thực hiện mọi bản cập nhật hệ điều hành có sẵn. Sau khi cập nhật hệ điều hành hoàn tất, hãy nâng cấp lên từng phiên bản chính. 5. 6 đến 5. 7 rồi 5. 7 đến 8. 0. Phiên bản Cơ sở dữ liệu MySQL được tạo trước ngày 24 tháng 4 năm 2014, hiển thị bản cập nhật hệ điều hành khả dụng cho đến khi bản cập nhật được áp dụng. Để biết thêm thông tin về các bản cập nhật hệ điều hành, hãy xem Áp dụng các bản cập nhật cho phiên bản CSDL

Trong quá trình nâng cấp phiên bản chính của MySQL, Amazon RDS chạy tệp nhị phân MySQL

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0 để nâng cấp các bảng, nếu cần. Ngoài ra, Amazon RDS làm trống các bảng
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
1 và
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
2 trong quá trình nâng cấp phiên bản chính. Để lưu giữ thông tin nhật ký, hãy lưu nội dung nhật ký trước khi nâng cấp phiên bản chính

Nâng cấp phiên bản chính của MySQL thường hoàn tất sau khoảng 10 phút. Một số nâng cấp có thể mất nhiều thời gian hơn do kích thước lớp phiên bản CSDL hoặc do phiên bản không tuân theo các nguyên tắc vận hành nhất định trong Các phương pháp hay nhất dành cho Amazon RDS. Nếu bạn nâng cấp một phiên bản CSDL từ bảng điều khiển Amazon RDS, thì trạng thái của phiên bản CSDL sẽ cho biết khi quá trình nâng cấp hoàn tất. Nếu bạn nâng cấp bằng Giao diện dòng lệnh AWS [AWS CLI], hãy sử dụng lệnh description-db-instance và kiểm tra giá trị

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
3

MySQL phiên bản 5. 6. 4 đã giới thiệu định dạng ngày và giờ mới cho các cột

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
4,
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
5 và
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6 cho phép các thành phần phân số trong các giá trị ngày và giờ. Khi nâng cấp một phiên bản CSDL lên MySQL phiên bản 5. 7, MySQL buộc chuyển đổi tất cả các loại cột ngày và giờ sang định dạng mới

Vì quá trình chuyển đổi này sẽ xây dựng lại các bảng của bạn, nên có thể mất một lượng thời gian đáng kể để hoàn tất quá trình nâng cấp phiên bản CSDL. Chuyển đổi bắt buộc xảy ra đối với bất kỳ phiên bản DB nào đang chạy phiên bản trước MySQL phiên bản 5. 6. 4. Nó cũng xảy ra đối với bất kỳ phiên bản DB nào đã được nâng cấp từ phiên bản trước MySQL phiên bản 5. 6. 4 đến một phiên bản khác với 5. 7

Nếu phiên bản CSDL của bạn chạy một phiên bản trước MySQL phiên bản 5. 6. 4 hoặc đã được nâng cấp từ phiên bản trước 5. 6. 4, chúng tôi đề xuất thêm một bước. Trong những trường hợp này, chúng tôi khuyên bạn nên chuyển đổi các cột

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
4,
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
5 và
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6 trong cơ sở dữ liệu của mình trước khi nâng cấp phiên bản CSDL của bạn lên MySQL phiên bản 5. 7. Việc chuyển đổi này có thể giảm đáng kể lượng thời gian cần thiết để nâng cấp phiên bản CSDL lên MySQL phiên bản 5. 7. Để nâng cấp các cột ngày và giờ của bạn lên định dạng mới, hãy cấp
aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0 FORCE; . Vì việc thay đổi bảng sẽ khóa bảng ở dạng chỉ đọc, chúng tôi khuyên bạn nên thực hiện cập nhật này trong thời gian bảo trì

Để tìm tất cả các bảng trong cơ sở dữ liệu của bạn có các cột

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
4,
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
5 hoặc
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6 và tạo một LỰC LƯỢNG
aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0;

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
9

Kiểm tra trước các bản nâng cấp từ MySQL 5. 7 đến 8. 0

mysql 8. 0 bao gồm một số điểm không tương thích với MySQL 5. 7. Những điểm không tương thích này có thể gây ra sự cố trong quá trình nâng cấp từ MySQL 5. 7 đến Mysql 8. 0. Vì vậy, có thể cần phải chuẩn bị một số cơ sở dữ liệu để quá trình nâng cấp thành công. Sau đây là danh sách chung về những điểm không tương thích này

  • Không được có bảng nào sử dụng kiểu dữ liệu hoặc hàm lỗi thời

  • Chắc không có mồ côi đâu *. tập tin frm

  • Trình kích hoạt không được có bộ xác định bị thiếu hoặc trống hoặc ngữ cảnh tạo không hợp lệ

  • Không được có bảng được phân vùng sử dụng công cụ lưu trữ không có hỗ trợ phân vùng gốc

  • Không được có từ khóa hoặc vi phạm từ dành riêng. Một số từ khóa có thể được bảo lưu trong MySQL 8. 0 chưa được đặt trước

    Để biết thêm thông tin, hãy xem Từ khóa và từ dành riêng trong tài liệu MySQL

  • Không được có bảng nào trong MySQL 5. 7 Cơ sở dữ liệu hệ thống

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    5 có cùng tên với bảng được sử dụng bởi MySQL 8. 0 từ điển dữ liệu

  • Không được có chế độ SQL lỗi thời nào được xác định trong cài đặt biến hệ thống

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 của bạn

  • Không được có bảng hoặc thủ tục được lưu trữ với các phần tử cột

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    7 hoặc
    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    8 riêng lẻ có độ dài vượt quá 255 ký tự hoặc 1020 byte

  • Trước khi nâng cấp lên MySQL 8. 0. 13 trở lên, không được có phân vùng bảng nằm trong không gian bảng InnoDB được chia sẻ

  • Không được có truy vấn và định nghĩa chương trình được lưu trữ từ MySQL 8. 0. 12 hoặc thấp hơn sử dụng từ hạn định

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    9 hoặc
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    0 cho mệnh đề
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    1

  • MySQL 5 của bạn. 7 không được sử dụng các tính năng không được hỗ trợ trong MySQL 8. 0

    Để biết thêm thông tin, hãy xem Các tính năng bị xóa trong MySQL 8. 0 trong tài liệu MySQL

  • Không được có tên ràng buộc khóa ngoại dài hơn 64 ký tự

  • Để hỗ trợ Unicode được cải thiện, hãy xem xét chuyển đổi các đối tượng sử dụng bộ ký tự

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2 để sử dụng bộ ký tự
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3. Bộ ký tự
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2 không được dùng nữa. Ngoài ra, hãy cân nhắc sử dụng
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3 cho tham chiếu bộ ký tự thay vì
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6, vì hiện tại
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 là bí danh cho bộ ký tự
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2

    Để biết thêm thông tin, hãy xem Bộ ký tự utf8mb3 [mã hóa unicode UTF-8 3 byte] trong tài liệu MySQL

Khi bạn bắt đầu nâng cấp từ MySQL 5. 7 đến 8. 0, Amazon RDS sẽ tự động chạy kiểm tra trước để phát hiện những điểm không tương thích này. Để biết thông tin về việc nâng cấp lên MySQL 8. 0, xem Nâng cấp MySQL trong tài liệu MySQL

Những kiểm tra trước này là bắt buộc. Bạn không thể chọn bỏ qua chúng. Kiểm tra trước cung cấp các lợi ích sau

  • Chúng cho phép bạn tránh thời gian ngừng hoạt động ngoài dự kiến ​​trong quá trình nâng cấp

  • Nếu có điểm không tương thích, Amazon RDS sẽ ngăn nâng cấp và cung cấp nhật ký để bạn tìm hiểu về chúng. Sau đó, bạn có thể sử dụng nhật ký để chuẩn bị cơ sở dữ liệu của mình để nâng cấp lên MySQL 8. 0 bằng cách loại bỏ sự không tương thích. Để biết thông tin chi tiết về cách loại bỏ tính không tương thích, hãy xem Chuẩn bị cài đặt của bạn để nâng cấp trong tài liệu MySQL và Nâng cấp lên MySQL 8. 0? . trên Blog máy chủ MySQL

Kiểm tra trước bao gồm một số kiểm tra có trong MySQL và một số kiểm tra trước do nhóm Amazon RDS tạo riêng. Để biết thông tin về kiểm tra trước do MySQL cung cấp, hãy xem Tiện ích trình kiểm tra nâng cấp

Các kiểm tra trước chạy trước khi phiên bản CSDL bị dừng để nâng cấp, nghĩa là chúng không gây ra bất kỳ thời gian ngừng hoạt động nào khi chạy. Nếu quá trình kiểm tra trước phát hiện thấy sự không tương thích, Amazon RDS sẽ tự động hủy nâng cấp trước khi phiên bản CSDL bị dừng. Amazon RDS cũng tạo ra một sự kiện cho sự không tương thích. Để biết thêm thông tin về các sự kiện Amazon RDS, xem Làm việc với thông báo sự kiện Amazon RDS

Amazon RDS ghi lại thông tin chi tiết về từng điểm không tương thích trong tệp nhật ký

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
9. Trong hầu hết các trường hợp, mục nhật ký bao gồm một liên kết đến tài liệu MySQL để sửa lỗi không tương thích. Để biết thêm thông tin về cách xem tệp nhật ký, hãy xem Xem và liệt kê tệp nhật ký cơ sở dữ liệu

Do bản chất của việc kiểm tra trước, chúng sẽ phân tích các đối tượng trong cơ sở dữ liệu của bạn. Phân tích này dẫn đến tiêu thụ tài nguyên và tăng thời gian nâng cấp hoàn tất

Amazon RDS chỉ chạy tất cả các bước kiểm tra trước này đối với bản nâng cấp từ MySQL 5. 7 đến Mysql 8. 0. Để nâng cấp từ MySQL 5. 6 đến MySQL 5. 7, kiểm tra trước được giới hạn để xác nhận rằng không có bảng mồ côi nào và có đủ dung lượng lưu trữ để xây dựng lại bảng. Kiểm tra trước không chạy để nâng cấp lên các bản phát hành thấp hơn MySQL 5. 7

Phục hồi sau khi không nâng cấp từ MySQL 5. 7 đến 8. 0

Khi bạn nâng cấp một phiên bản CSDL từ MySQL phiên bản 5. 7 đến MySQL phiên bản 8. 0, quá trình nâng cấp có thể thất bại. Cụ thể, nó có thể không thành công nếu từ điển dữ liệu chứa các điểm không tương thích không được kiểm tra trước. Trong trường hợp này, cơ sở dữ liệu không khởi động thành công trong MySQL 8 mới. 0 phiên bản. Tại thời điểm này, Amazon RDS khôi phục các thay đổi đã thực hiện để nâng cấp. Sau khi khôi phục, phiên bản Cơ sở dữ liệu MySQL đang chạy phiên bản MySQL 5. 7. Khi quá trình nâng cấp không thành công và bị khôi phục, Amazon RDS sẽ tạo một sự kiện có ID sự kiện là RDS-EVENT-0188

Thông thường, nâng cấp không thành công do có sự không tương thích trong siêu dữ liệu giữa các cơ sở dữ liệu trong phiên bản CSDL của bạn và phiên bản MySQL đích. Khi nâng cấp không thành công, bạn có thể xem chi tiết về những điểm không tương thích này trong tệp

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
90. Giải quyết sự không tương thích trước khi thử nâng cấp lại

Trong một lần thử nâng cấp và khôi phục không thành công, phiên bản CSDL của bạn sẽ được khởi động lại. Mọi thay đổi tham số đang chờ xử lý đều được áp dụng trong quá trình khởi động lại và tồn tại sau khi khôi phục

Để biết thêm thông tin về việc nâng cấp lên MySQL 8. 0, xem các chủ đề sau trong tài liệu MySQL

Hiện tại, tính năng tự động khôi phục sau khi nâng cấp không thành công chỉ được hỗ trợ cho MySQL 5. 7 đến 8. 0 nâng cấp phiên bản chính

Thử nghiệm nâng cấp

Trước khi bạn thực hiện nâng cấp phiên bản chính trên phiên bản CSDL của mình, hãy kiểm tra kỹ lưỡng cơ sở dữ liệu của bạn để đảm bảo tính tương thích với phiên bản mới. Ngoài ra, kiểm tra kỹ lưỡng tất cả các ứng dụng truy cập cơ sở dữ liệu để tương thích với phiên bản mới. Chúng tôi khuyên bạn nên sử dụng quy trình sau

Để kiểm tra nâng cấp phiên bản chính

  1. Xem lại tài liệu nâng cấp cho phiên bản mới của công cụ cơ sở dữ liệu để xem liệu có vấn đề tương thích nào có thể ảnh hưởng đến cơ sở dữ liệu hoặc ứng dụng của bạn không

  2. Nếu phiên bản CSDL của bạn là thành viên của nhóm tham số DB tùy chỉnh, hãy tạo một nhóm tham số DB mới với các cài đặt hiện có của bạn tương thích với phiên bản chính mới. Chỉ định nhóm tham số DB mới khi bạn nâng cấp phiên bản thử nghiệm của mình để quá trình thử nghiệm nâng cấp của bạn đảm bảo rằng phiên bản đó hoạt động chính xác. Để biết thêm thông tin về cách tạo nhóm tham số DB, hãy xem Làm việc với các nhóm tham số

  3. Tạo ảnh chụp nhanh cơ sở dữ liệu của phiên bản CSDL sẽ được nâng cấp. Để biết thêm thông tin, hãy xem Tạo ảnh chụp nhanh cơ sở dữ liệu

  4. Khôi phục ảnh chụp nhanh cơ sở dữ liệu để tạo phiên bản cơ sở dữ liệu thử nghiệm mới. Để biết thêm thông tin, hãy xem Khôi phục từ ảnh chụp nhanh cơ sở dữ liệu

  5. Sửa đổi phiên bản CSDL thử nghiệm mới này để nâng cấp nó lên phiên bản mới, sử dụng một trong các phương pháp được nêu chi tiết sau đây. Nếu bạn đã tạo một nhóm tham số mới ở bước 2, hãy chỉ định nhóm tham số đó

  6. Đánh giá dung lượng lưu trữ mà phiên bản đã nâng cấp sử dụng để xác định xem bản nâng cấp có yêu cầu dung lượng lưu trữ bổ sung hay không

  7. Chạy càng nhiều thử nghiệm đảm bảo chất lượng đối với phiên bản CSDL được nâng cấp càng tốt để đảm bảo rằng cơ sở dữ liệu và ứng dụng của bạn hoạt động chính xác với phiên bản mới. Triển khai bất kỳ thử nghiệm mới nào cần thiết để đánh giá tác động của bất kỳ sự cố tương thích nào mà bạn đã xác định ở bước 1. Kiểm tra tất cả các thủ tục và chức năng được lưu trữ. Chuyển trực tiếp các phiên bản thử nghiệm của ứng dụng của bạn sang phiên bản CSDL đã nâng cấp

  8. Nếu tất cả các kiểm tra đều vượt qua, thì hãy thực hiện nâng cấp trên phiên bản CSDL sản xuất của bạn. Chúng tôi khuyên bạn không nên cho phép thao tác ghi vào phiên bản CSDL cho đến khi bạn xác nhận rằng mọi thứ đang hoạt động bình thường

Nâng cấp một phiên bản MySQL DB

Để biết thông tin về nâng cấp thủ công hoặc tự động phiên bản CSDL MySQL, hãy xem Nâng cấp phiên bản công cụ phiên bản CSDL

Tự động nâng cấp phiên bản nhỏ cho MySQL

Nếu bạn chỉ định các cài đặt sau khi tạo hoặc sửa đổi phiên bản CSDL, bạn có thể tự động nâng cấp phiên bản CSDL của mình

  • Cài đặt tự động nâng cấp phiên bản nhỏ được bật

  • Cài đặt thời gian lưu giữ Sao lưu lớn hơn 0

Trong Bảng điều khiển quản lý AWS, các cài đặt này nằm trong Cấu hình bổ sung. Hình ảnh sau đây hiển thị cài đặt Nâng cấp phiên bản phụ tự động

Để biết thêm thông tin về các cài đặt này, hãy xem Cài đặt cho phiên bản CSDL

Đối với một số phiên bản chính của RDS dành cho MySQL ở một số Khu vực AWS, một phiên bản phụ được RDS chỉ định làm phiên bản nâng cấp tự động. Sau khi phiên bản phụ đã được Amazon RDS kiểm tra và phê duyệt, quá trình nâng cấp phiên bản phụ sẽ tự động diễn ra trong thời gian bảo trì của bạn. RDS không tự động đặt các phiên bản phụ đã phát hành mới hơn làm phiên bản nâng cấp tự động. Trước khi RDS chỉ định phiên bản nâng cấp tự động mới hơn, một số tiêu chí được xem xét, chẳng hạn như sau

  • Các vấn đề bảo mật đã biết

  • Lỗi trong phiên bản cộng đồng MySQL

  • Sự ổn định tổng thể của hạm đội kể từ khi phiên bản phụ được phát hành

Bạn có thể sử dụng lệnh AWS CLI sau để xác định phiên bản mục tiêu nâng cấp nhỏ tự động hiện tại cho một phiên bản nhỏ của MySQL được chỉ định trong một Khu vực AWS cụ thể

Đối với Linux, macOS hoặc Unix

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
6

Cho cửa sổ

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
7

Ví dụ: lệnh AWS CLI sau đây xác định mục tiêu nâng cấp nhỏ tự động cho MySQL nhỏ phiên bản 8. 0. 11 ở Khu vực AWS Miền Đông Hoa Kỳ [Ohio] [us-East-2]

Đối với Linux, macOS hoặc Unix

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
8

Cho cửa sổ

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
9

Đầu ra của bạn tương tự như sau

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
0

Trong ví dụ này, giá trị

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
91 là
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
92 cho MySQL phiên bản 8. 0. 23. Vì vậy, mục tiêu nâng cấp nhỏ tự động là MySQL phiên bản 8. 0. 23, được đánh dấu trong đầu ra

Phiên bản Cơ sở dữ liệu MySQL được tự động nâng cấp trong thời gian bảo trì của bạn nếu các tiêu chí sau được đáp ứng

  • Cài đặt tự động nâng cấp phiên bản nhỏ được bật

  • Cài đặt thời gian lưu giữ Sao lưu lớn hơn 0

  • Phiên bản DB đang chạy một phiên bản công cụ DB nhỏ hơn phiên bản phụ nâng cấp tự động hiện tại

Để biết thêm thông tin, hãy xem Tự động nâng cấp phiên bản động cơ nhỏ

Nếu phiên bản CSDL MySQL của bạn hiện đang được sử dụng với một ứng dụng sản xuất, thì bạn có thể sử dụng quy trình sau để nâng cấp phiên bản cơ sở dữ liệu cho phiên bản CSDL của mình. Quy trình này có thể giảm lượng thời gian ngừng hoạt động cho ứng dụng của bạn

Bằng cách sử dụng bản sao chỉ có quyền đọc, bạn có thể thực hiện trước hầu hết các bước bảo trì và giảm thiểu những thay đổi cần thiết trong thời gian ngừng hoạt động thực tế. Với kỹ thuật này, bạn có thể kiểm tra và chuẩn bị phiên bản CSDL mới mà không cần thực hiện bất kỳ thay đổi nào đối với phiên bản CSDL hiện tại của mình

Quy trình sau đây cho thấy một ví dụ về nâng cấp từ MySQL phiên bản 5. 7 đến MySQL phiên bản 8. 0. Bạn có thể sử dụng các bước chung tương tự để nâng cấp lên các phiên bản chính khác

Khi bạn đang nâng cấp từ MySQL phiên bản 5. 7 đến MySQL phiên bản 8. 0, hoàn thành kiểm tra trước khi thực hiện nâng cấp. Để biết thêm thông tin, hãy xem Kiểm tra trước để nâng cấp từ MySQL 5. 7 đến 8. 0

Để nâng cấp cơ sở dữ liệu MySQL trong khi phiên bản CSDL đang được sử dụng

  1. Đăng nhập vào Bảng điều khiển quản lý AWS và mở bảng điều khiển Amazon RDS tại https. // bảng điều khiển. aws. amazon. com/rds/

  2. Tạo một bản sao có quyền đọc của MySQL 5 của bạn. 7 phiên bản cơ sở dữ liệu. Quá trình này tạo ra một bản sao có thể nâng cấp của cơ sở dữ liệu của bạn. Các bản sao chỉ có quyền đọc khác của phiên bản CSDL cũng có thể tồn tại

    1. Trong bảng điều khiển, chọn Cơ sở dữ liệu rồi chọn phiên bản CSDL mà bạn muốn nâng cấp

    2. Đối với Hành động, hãy chọn Tạo bản sao chỉ có quyền đọc

    3. Cung cấp giá trị cho mã định danh phiên bản CSDL cho bản sao chỉ có quyền đọc của bạn và đảm bảo rằng lớp phiên bản CSDL và các cài đặt khác khớp với MySQL 5 của bạn. 7 phiên bản cơ sở dữ liệu

    4. Chọn Tạo bản sao đã đọc

  3. [Tùy chọn] Khi bản sao chỉ có quyền đọc đã được tạo và Trạng thái hiển thị Có sẵn, hãy chuyển đổi bản sao chỉ có quyền đọc thành triển khai Multi-AZ và bật sao lưu

    Theo mặc định, một bản sao chỉ có quyền đọc được tạo dưới dạng triển khai một vùng sẵn sàng với tính năng sao lưu bị tắt. Vì bản sao chỉ có quyền đọc cuối cùng sẽ trở thành phiên bản CSDL sản xuất, nên cách tốt nhất là định cấu hình triển khai Multi-AZ và bật sao lưu ngay bây giờ

    1. Trong bảng điều khiển, chọn Cơ sở dữ liệu, sau đó chọn bản sao chỉ có quyền đọc mà bạn vừa tạo

    2. Chọn Sửa đổi

    3. Để triển khai Multi-AZ, hãy chọn Tạo phiên bản dự phòng

    4. Đối với Khoảng thời gian lưu giữ dự phòng, hãy chọn một giá trị dương khác không, ví dụ: 3 ngày, sau đó chọn Tiếp tục

    5. Đối với Lập kế hoạch sửa đổi, chọn Áp dụng ngay lập tức

    6. Chọn Sửa đổi phiên bản CSDL

  4. Khi Trạng thái bản sao chỉ có quyền hiển thị Có sẵn, hãy nâng cấp bản sao chỉ có quyền đọc lên MySQL 8. 0

    1. Trong bảng điều khiển, chọn Cơ sở dữ liệu, sau đó chọn bản sao chỉ có quyền đọc mà bạn vừa tạo

    2. Chọn Sửa đổi

    3. Đối với phiên bản công cụ DB, hãy chọn MySQL 8. 0 để nâng cấp lên rồi chọn Tiếp tục

    4. Đối với Lập kế hoạch sửa đổi, chọn Áp dụng ngay lập tức

    5. Chọn Sửa phiên bản CSDL để bắt đầu nâng cấp

  5. Khi quá trình nâng cấp hoàn tất và Trạng thái hiển thị Có sẵn, hãy xác minh rằng bản sao chỉ có quyền đọc đã nâng cấp được cập nhật với MySQL 5 nguồn. 7 phiên bản cơ sở dữ liệu. Bạn có thể thực hiện việc này bằng cách kết nối với bản sao chỉ có quyền đọc và đưa ra lệnh

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    93. Nếu trường
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    94 là
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    95, thì bản sao được cập nhật

    Các phiên bản trước của MySQL đã sử dụng

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    96 thay vì
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    93. Nếu bạn đang sử dụng phiên bản MySQL trước 8. 0. 23, sau đó sử dụng
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    96

  6. [Tùy chọn] Tạo bản sao chỉ có quyền đọc của bản sao chỉ có quyền đọc của bạn

    Nếu bạn muốn phiên bản CSDL có bản sao chỉ có quyền đọc sau khi được nâng cấp thành phiên bản CSDL độc lập, bạn có thể tạo bản sao chỉ có quyền đọc ngay bây giờ

    1. Trong bảng điều khiển, chọn Cơ sở dữ liệu, sau đó chọn bản sao chỉ có quyền đọc mà bạn vừa nâng cấp

    2. Đối với Hành động, hãy chọn Tạo bản sao chỉ có quyền đọc

    3. Cung cấp giá trị cho mã định danh phiên bản CSDL cho bản sao chỉ có quyền đọc của bạn và đảm bảo rằng lớp phiên bản CSDL và các cài đặt khác khớp với MySQL 5 của bạn. 7 phiên bản cơ sở dữ liệu

    4. Chọn Tạo bản sao đã đọc

  7. [Tùy chọn] Định cấu hình nhóm tham số DB tùy chỉnh cho bản sao chỉ có quyền đọc

    Nếu bạn muốn phiên bản CSDL sử dụng nhóm tham số tùy chỉnh sau khi nó được nâng cấp thành phiên bản CSDL độc lập, bạn có thể tạo nhóm tham số DB ngay bây giờ và có thể liên kết nó với bản sao chỉ có quyền đọc

    1. Tạo nhóm tham số DB tùy chỉnh cho MySQL 8. 0. Để biết hướng dẫn, hãy xem Tạo nhóm tham số DB

    2. Sửa các tham số muốn thay đổi trong nhóm tham số DB vừa tạo. Để biết hướng dẫn, hãy xem Sửa đổi tham số trong nhóm tham số DB

    3. Trong bảng điều khiển, chọn Cơ sở dữ liệu, sau đó chọn bản sao chỉ có quyền đọc

    4. Chọn Sửa đổi

    5. Đối với nhóm tham số DB, hãy chọn MySQL 8. 0 DB mà bạn vừa tạo, sau đó chọn Tiếp tục

    6. Đối với Lập kế hoạch sửa đổi, chọn Áp dụng ngay lập tức

    7. Chọn Sửa phiên bản CSDL để bắt đầu nâng cấp

  8. Tạo MySQL 8 của bạn. 0 đọc bản sao một phiên bản CSDL độc lập

    Khi bạn quảng bá MySQL 8 của mình. 0 đọc bản sao thành phiên bản DB độc lập, nó không còn là bản sao của MySQL 5 của bạn nữa. 7 phiên bản cơ sở dữ liệu. Chúng tôi khuyên bạn nên quảng bá MySQL 8 của mình. 0 đọc bản sao trong thời gian bảo trì khi nguồn MySQL 5 của bạn. 7 Phiên bản CSDL đang ở chế độ chỉ đọc và tất cả các thao tác ghi đều bị tạm ngưng. Khi chương trình khuyến mãi hoàn tất, bạn có thể chuyển các thao tác ghi của mình sang MySQL 8 đã nâng cấp. 0 DB để đảm bảo rằng không có thao tác ghi nào bị mất

    Ngoài ra, chúng tôi khuyên rằng, trước khi quảng bá MySQL 8 của bạn. 0, bạn thực hiện tất cả các thao tác ngôn ngữ định nghĩa dữ liệu [DDL] cần thiết trên MySQL 8 của mình. 0 đọc bản sao. Một ví dụ là tạo chỉ mục. Cách tiếp cận này tránh các tác động tiêu cực đến hiệu suất của MySQL 8. 0 bản sao đã đọc sau khi được thăng hạng. Để quảng cáo bản sao chỉ có quyền đọc, hãy sử dụng quy trình sau

    1. Trong bảng điều khiển, chọn Cơ sở dữ liệu, sau đó chọn bản sao chỉ có quyền đọc mà bạn vừa nâng cấp

    2. Đối với Hành động, hãy chọn Quảng cáo

    3. Chọn Có để bật sao lưu tự động cho phiên bản bản sao chỉ có quyền đọc. Để biết thêm thông tin, hãy xem Làm việc với các bản sao lưu

    4. Chọn Tiếp tục

    5. Chọn Quảng cáo Bản sao đã đọc

  9. Bây giờ bạn đã có phiên bản nâng cấp của cơ sở dữ liệu MySQL của mình. Tại thời điểm này, bạn có thể chuyển các ứng dụng của mình sang MySQL 8 mới. 0 phiên bản cơ sở dữ liệu

    Cách cập nhật MySQL từ 5. 7 đến 8?

    Tất cả những gì bạn cần làm là chạy nâng cấp apt hoặc cập nhật yum và bạn đã sẵn sàng. Việc nâng cấp thậm chí còn thuận tiện hơn – trước đây, người ta phải nhớ chạy mysql_upgrade để đảm bảo tất cả các bảng hệ thống được nâng cấp đúng theo định dạng mà phiên bản MySQL mới yêu cầu.

    Làm cách nào để nâng cấp phiên bản MySQL trong Linux?

    Để thực hiện nâng cấp hợp lý. .
    Xem lại thông tin trong Phần 10. 1, “Trước khi bạn bắt đầu”
    Xuất dữ liệu hiện có của bạn từ bản cài đặt MySQL trước đó. mysqldump -u root -p --add-drop-table --routines --events --all-databases --force > data-for-upgrade. .
    Tắt máy chủ MySQL cũ. .
    Cài đặt MySQL 5. 7

    Làm cách nào để nâng cấp phiên bản phụ trong MySQL?

    Việc nâng cấp nhỏ tương đối dễ thực hiện – hầu hết thời gian, tất cả những gì bạn cần làm chỉ là cài đặt phiên bản mới bằng trình quản lý gói của bản phân phối của bạn. Once you do that, you need to ensure that MySQL has been started after the upgrade and then you should run the mysql_upgrade script.

    Phiên bản MySQL mới nhất là gì?

    Phiên bản này chứa các bản phát hành của MySQL 5. 7 đến MySQL 5. 6. 27 phiên bản. Phiên bản này chứa các bản phát hành của MySQL 8. 0 đến MySQL 8. 0. . Các tính năng bị xóa trong MySQL 8. 0

Chủ Đề