Amazon RDS - การนำเข้า MySQL DB Export
Amazon RDS MySQL มีวิธีง่ายๆในการนำเข้าข้อมูลไปยังฐานข้อมูลและส่งออกข้อมูลจากฐานข้อมูล หลังจากที่เราสามารถเชื่อมต่อกับฐานข้อมูล MySQL ได้สำเร็จแล้วเราสามารถใช้เครื่องมือ CLI เพื่อเรียกใช้คำสั่งนำเข้าและส่งออกเพื่อรับข้อมูลจากแหล่งอื่นเข้าและออกจากฐานข้อมูล RDS ด้านล่างนี้เป็นสถานการณ์ที่ต้องพิจารณาเมื่อตัดสินใจเลือกแนวทางการนำเข้าข้อมูลไปยังฐานข้อมูล Amazon RDS - MySQL
MySQL DB ที่มีอยู่สามารถนำเสนอในองค์กรหรือในอินสแตนซ์ EC2 อื่น แผนภาพสิ่งที่เราทำแสดงอยู่ด้านล่าง
การสร้างข้อมูลสำรองจาก On-Premise DB
ในขั้นตอนแรกเราจะสร้างข้อมูลสำรองของฐานข้อมูลในองค์กรโดยใช้คำสั่งด้านล่าง
mysqldump -u user -p[user_password] [database_name] > backupfile.sql
ไฟล์ที่มีชื่อ backupfile.sql ถูกสร้างขึ้นซึ่งมีโครงสร้างตารางพร้อมกับข้อมูลที่จะใช้
การจัดเก็บไฟล์สำรองใน S3
อัปโหลดไฟล์สำรองที่สร้างขึ้นด้านบนไปยังที่เก็บข้อมูล Amazon S3 ที่กำหนดไว้ล่วงหน้าในภูมิภาคเดียวกับที่มีฐานข้อมูล RDS MySQL DB เป้าหมายอยู่ คุณสามารถไปที่ลิงค์นี้เพื่อเรียนรู้เกี่ยวกับวิธีการอัปโหลด
นำเข้าข้อมูลจาก Amazon S3 ไปยังฐานข้อมูล RDS- MySQL
คุณสามารถใช้คำสั่ง Amazon CLI ต่อไปนี้เพื่อนำเข้าข้อมูลจาก S3 ไปยัง 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
อาจมีสถานการณ์สมมติเมื่อคุณต้องการให้ข้อมูลจาก RDS MYSQL DB ที่มีอยู่ถูกนำไปยัง RDS MYSQL DB อื่น ตัวอย่างเช่นเพื่อหยุดการทำงานของฐานข้อมูลการกู้คืนความเสียหายหรือสร้างฐานข้อมูลเฉพาะสำหรับการรายงานทางธุรกิจเป็นต้นในสถานการณ์ดังกล่าวเราสร้างแบบจำลองการอ่านซึ่งเป็นสำเนาของฐานข้อมูลต้นทางของพวกเขา ใช้เพื่อป้องกันการอ่านหนักโดยตรงจากฐานข้อมูลต้นฉบับเมื่อเราต้องการคัดลอกข้อมูล
สร้างแบบจำลองการอ่าน
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
โปรโมตแบบจำลองการอ่านไปยังอินสแตนซ์ DB
ตอนนี้เมื่อเรามีแบบจำลองแล้วเราสามารถโปรโมตเป็นอินสแตนซ์ DB แบบสแตนด์อโลนได้ สิ่งนี้จะตอบสนองความต้องการขั้นสุดท้ายของเราในการนำเข้าข้อมูลจาก o RDS - Mysql DB ไปยังข้อมูลใหม่ คำสั่งต่อไปนี้ใช้เพื่อดำเนินการส่งเสริมการจำลองการอ่านไปยังอินสแตนซ์ 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
ในการนำเข้าข้อมูลจากฐานข้อมูลอื่นไปยัง Amazon RDS - MySQL เราต้องใช้บริการการย้ายข้อมูลของ amazon หรือที่เรียกว่า Amazon DMS ใช้เครื่องมือการแปลง Schema เพื่อแปลฐานข้อมูลที่มีอยู่เป็นแพลตฟอร์ม MYSQL แผนภาพด้านล่างอธิบายกระบวนการโดยรวม นอกจากนี้ยังทำงานบนหลักการจำลองแบบที่คล้ายกันตามที่อธิบายไว้ในส่วนก่อนหน้า
การส่งออกข้อมูลจาก Amazon RDS Mysql DB เป็นกระบวนการส่งต่อโดยตรงซึ่งทำงานบนหลักการจำลองแบบเดียวกับที่เราได้เห็นข้างต้น ด้านล่างนี้เป็นขั้นตอนในการดำเนินกระบวนการส่งออก
- เริ่มอินสแตนซ์ของ MySQL ที่รันภายนอกไปยัง Amazon RDS
- กำหนดอินสแตนซ์ MySQL DB ให้เป็นแหล่งจำลองแบบ
- ใช้ mysqldump เพื่อถ่ายโอนฐานข้อมูลจากอินสแตนซ์ Amazon RDS ไปยังอินสแตนซ์ภายนอกไปยัง Amazon RDS
ด้านล่างนี้คือโค้ดสำหรับคำสั่ง 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