Amazon RDS - Nhập dữ liệu MariaDB
Amazon RDS MariaDB 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 MariaDB, 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- MariaDB.
MariaDB hiện có có thể có mặt tại cơ sở hoặc trong một phiên bản EC2 khác. Biểu đồ 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. MariaDB là một bản sao của MySQL, có thể sử dụng gần như tất cả các lệnh giống như MySQL.
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Tệp có tên backupfile.sql được kết thúc, 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 bộ chứa Amazon S3 đã được quyết định trước trong cùng khu vực có cơ sở dữ liệu RDS MariaDB mục tiêu. 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- MariaDB
Bạn có thể sử dụng lệnh Amazon CLI sau để nhập dữ liệu từ S3 sang MariaDB 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
Từ một phiên bản RDS- MariaDB khác
Có thể có các tình huống khi bạn muốn dữ liệu từ một RDS MariaDB DB hiện có được đưa vào một RDS MariaDB 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 - MariaDB 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
Từ bất kỳ cơ sở dữ liệu nào
Để nhập dữ liệu từ bất kỳ cơ sở dữ liệu nào khác vào Amazon RDS - MariaDB, 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 MariaDB chạy bên ngoài Amazon RDS.
- Chỉ định cá thể MariaDB 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 mysqldump để chuyển dữ liệu
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MariaDB host \
-u master user \
-p password \
--port 3306