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