Amazon RDS - Nhập xuất MySQL DB
Amazon RDS MySQL cung cấp các cách dễ dàng để nhập dữ liệu vào DB và xuất dữ liệu từ DB. Sau khi chúng tôi có thể kết nối thành công với cơ sở dữ liệu MySQL, chúng tôi có thể sử dụng các công cụ CLI để chạy các lệnh nhập và xuất để lấy dữ liệu từ các nguồn khác trong và ngoài cơ sở dữ liệu RDS. Dưới đây là các tình huống cần xem xét khi quyết định cách tiếp cận để nhập dữ liệu vào cơ sở dữ liệu Amazon RDS - MySQL.
Cơ sở dữ liệu MySQL hiện có có thể xuất hiện tại cơ sở hoặc trong một phiên bản EC2 khác. Sơ đồ những gì chúng tôi làm được hiển thị bên dưới.
Tạo một bản sao lưu từ On-Premise DB
Bước đầu tiên, chúng tôi tạo một bản sao lưu của cơ sở dữ liệu tại chỗ bằng cách sử dụng lệnh dưới đây.
mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Một tệp có tên backupfile.sql được tạo trong đó chứa cấu trúc bảng cùng với dữ liệu sẽ được sử dụng.
Lưu trữ tệp sao lưu trong S3.
Tải tệp sao lưu đã tạo ở trên lên nhóm Amazon S3 đã được quyết định trước trong cùng khu vực có cơ sở dữ liệu RDS MySQL DB đích. Bạn có thể theo liên kết này để tìm hiểu về cách tải lên.
Nhập dữ liệu từ Amazon S3 sang cơ sở dữ liệu RDS- MySQL
Bạn có thể sử dụng lệnh Amazon CLI sau để nhập dữ liệu từ S3 sang MySQL DB.
aws rds restore-db-instance-from-s3 \
--allocated-storage 125 \
--db-instance-identifier tddbidentifier \
--db-instance-class db.m4.small \
--engine mysql \
--master-user-name masterawsuser \
--master-user-password masteruserpassword \
--s3-bucket-name tpbucket \
--s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
--s3-prefix bucketprefix \
--source-engine mysql \
--source-engine-version 5.6.27
Có thể có các tình huống khi bạn muốn dữ liệu từ một RDS MYSQL DB hiện có được đưa vào một RDS MYSQL DB khác. Ví dụ: để ngừng một DB khôi phục thảm họa hoặc tạo một DB chỉ để báo cáo kinh doanh, v.v. Trong trường hợp như vậy, chúng tôi tạo các bản sao đã đọc là bản sao của DB nguồn của chúng và sau đó quảng bá bản sao đã đọc đó thành một bản sao DB mới. Chúng được sử dụng để ngăn việc đọc dữ liệu nặng trực tiếp từ DB nguồn ban đầu khi chúng ta muốn sao chép dữ liệu.
tạo một bản sao đọc
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Quảng cáo bản sao Đọc lên Phiên bản DB
Bây giờ khi chúng ta có bản sao, chúng ta có thể quảng bá nó thành một bản sao DB độc lập. Điều này sẽ phục vụ nhu cầu cuối cùng của chúng ta là nhập dữ liệu từ o RDS - Mysql DB sang một dữ liệu mới. Lệnh sau được sử dụng để hoàn thành việc quảng bá một bản sao đã đọc thành một cá thể db.
aws rds create-db-instance-read-replica \
--db-instance-identifier readreplica_name \
--region target_region_name
--db-subnet-group-name subnet_name
--source-db-instance-identifier arn:aws:rds:region_name:11323467889012:db:mysql_instance1
Để nhập dữ liệu từ bất kỳ cơ sở dữ liệu nào khác vào Amazon RDS - MySQL, chúng ta phải sử dụng Dịch vụ di chuyển dữ liệu của amazon còn được gọi là Amazon DMS. Nó sử dụng công cụ chuyển đổi lược đồ để chuyển cơ sở dữ liệu hiện có sang nền tảng MYSQL. Sơ đồ dưới đây giải thích quy trình tổng thể. Ngoài ra, nó hoạt động trên nguyên tắc nhân bản tương tự như đã mô tả trong phần trước.
Xuất dữ liệu từ Amazon RDS Mysql DB là một quá trình chuyển tiếp thẳng, nơi nó hoạt động trên cùng một nguyên tắc sao chép mà chúng ta đã thấy ở trên. Dưới đây là các bước để thực hiện quá trình xuất khẩu.
- Bắt đầu phiên bản MySQL chạy bên ngoài Amazon RDS.
- Chỉ định phiên bản MySQL DB làm nguồn sao chép.
- Sử dụng mysqldump để chuyển cơ sở dữ liệu từ phiên bản Amazon RDS sang phiên bản bên ngoài Amazon RDS.
Dưới đây là mã cho lệnh mysqldum
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MySQL host \
-u master user \
-p password \
--port 3306