Amazon RDS - การนำเข้าข้อมูล MariaDB

Amazon RDS MariaDB มีวิธีง่ายๆในการนำเข้าข้อมูลไปยังฐานข้อมูลและส่งออกข้อมูลจากฐานข้อมูล หลังจากที่เราสามารถเชื่อมต่อกับฐานข้อมูล MariaDB ได้สำเร็จแล้วเราสามารถใช้เครื่องมือ CLI เพื่อเรียกใช้คำสั่งนำเข้าและส่งออกเพื่อรับข้อมูลจากแหล่งอื่นเข้าและออกจากฐานข้อมูล RDS

ด้านล่างนี้เป็นสถานการณ์ที่ต้องพิจารณาเมื่อตัดสินใจเลือกแนวทางการนำเข้าข้อมูลไปยังฐานข้อมูล Amazon RDS- MariaDB

MariaDB ที่มีอยู่สามารถนำเสนอในสถานที่ตั้งหรือในอินสแตนซ์ EC2 อื่น แผนภาพสิ่งที่เราทำแสดงอยู่ด้านล่าง

การสร้างข้อมูลสำรองจาก On-Premise DB

ในขั้นตอนแรกเราจะสร้างข้อมูลสำรองของฐานข้อมูลในองค์กรโดยใช้คำสั่งด้านล่าง MariaDB เป็นโคลนของ MySQL สามารถใช้คำสั่งเดียวกับ MySQL ได้เกือบทั้งหมด

# mysqldump -u user -p[user_password] [database_name] > backupfile.sql

ไฟล์ที่มีชื่อ backupfile.sql ถูกหยุดซึ่งมีโครงสร้างตารางพร้อมกับข้อมูลที่จะใช้

การจัดเก็บไฟล์สำรองใน S3

อัปโหลดไฟล์สำรองที่สร้างขึ้นด้านบนไปยังที่เก็บข้อมูล Amazon S3 ที่กำหนดไว้ล่วงหน้าในภูมิภาคเดียวกับที่มีฐานข้อมูล RDS MariaDB เป้าหมายอยู่ คุณสามารถไปที่ลิงค์นี้เพื่อเรียนรู้เกี่ยวกับวิธีการอัปโหลด

นำเข้าข้อมูลจาก Amazon S3 ไปยังฐานข้อมูล RDS- MariaDB

คุณสามารถใช้คำสั่ง Amazon CLI ต่อไปนี้เพื่อนำเข้าข้อมูลจาก S3 ไปยัง 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

จากอินสแตนซ์ RDS- MariaDB อื่น

อาจมีสถานการณ์สมมติเมื่อคุณต้องการให้ข้อมูลจาก RDS MariaDB DB ที่มีอยู่ถูกนำไปยัง RDS MariaDB อื่น ตัวอย่างเช่นเพื่อหยุดการทำงานของฐานข้อมูลการกู้คืนความเสียหายหรือสร้างฐานข้อมูลเฉพาะสำหรับการรายงานทางธุรกิจเป็นต้นในสถานการณ์ดังกล่าวเราสร้างแบบจำลองการอ่านซึ่งเป็นสำเนาของฐานข้อมูลต้นทางของพวกเขา ใช้เพื่อป้องกันการอ่านหนักโดยตรงจากฐานข้อมูลต้นฉบับเมื่อเราต้องการคัดลอกข้อมูล

สร้างแบบจำลองการอ่าน

aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance

โปรโมตแบบจำลองการอ่านไปยังอินสแตนซ์ DB

ตอนนี้เมื่อเรามีแบบจำลองแล้วเราสามารถโปรโมตเป็นอินสแตนซ์ DB แบบสแตนด์อโลนได้ สิ่งนี้จะตอบสนองความต้องการขั้นสุดท้ายของเราในการนำเข้าข้อมูลจาก o RDS - MariaDB 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 - MariaDB เราต้องใช้บริการการย้ายข้อมูลของ amazon หรือที่เรียกว่า Amazon DMS ใช้เครื่องมือการแปลง Schema เพื่อแปลฐานข้อมูลที่มีอยู่เป็นแพลตฟอร์ม MYSQL แผนภาพด้านล่างอธิบายกระบวนการโดยรวม นอกจากนี้ยังทำงานบนหลักการจำลองแบบที่คล้ายกันตามที่อธิบายไว้ในส่วนก่อนหน้า

การส่งออกข้อมูลจาก Amazon RDS Mysql DB เป็นกระบวนการส่งต่อโดยตรงซึ่งทำงานบนหลักการจำลองแบบเดียวกับที่เราได้เห็นข้างต้น ด้านล่างนี้เป็นขั้นตอนในการดำเนินกระบวนการส่งออก

  • เริ่มอินสแตนซ์ของ MariaDB ที่รันภายนอกไปยัง Amazon RDS
  • กำหนดอินสแตนซ์ MariaDB DB ให้เป็นแหล่งการจำลองแบบ
  • ใช้ mysqldump เพื่อถ่ายโอนฐานข้อมูลจากอินสแตนซ์ Amazon RDS ไปยังอินสแตนซ์ภายนอกไปยัง Amazon RDS

ด้านล่างนี้คือรหัสสำหรับคำสั่ง mysqldump เพื่อถ่ายโอนข้อมูล

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