Amazon RDS - MySQL DB Export Import
Amazon RDS MySQL, verileri veritabanına aktarmanın ve veritabanından dışa aktarmanın kolay yollarını sağlar. MySQL veritabanına başarılı bir şekilde bağlanabildikten sonra, verileri RDS veritabanının içindeki ve dışındaki diğer kaynaklardan almak için içe ve dışa aktarma komutlarını çalıştırmak için CLI araçlarını kullanabiliriz. Verilerin Amazon RDS - MySQL veritabanına aktarılmasına yönelik yaklaşıma karar verirken göz önünde bulundurulması gereken senaryolar aşağıda verilmiştir.
Mevcut bir MySQL DB şirket içinde veya başka bir EC2 bulut sunucusunda mevcut olabilir. Yaptığımız şey şematik olarak aşağıda gösterilmiştir.
On-Premise DB'den bir yedekleme oluşturma
İlk adım olarak, aşağıdaki komutu kullanarak şirket içi veritabanının bir yedeğini oluşturuyoruz.
mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Kullanılacak verilerle birlikte tablo yapısını içeren backupfile.sql isimli bir dosya oluşturulur.
Yedekleme dosyasını S3'te saklama.
Yukarıda oluşturulan yedekleme dosyasını, hedef RDS MySQL DB veritabanının bulunduğu bölgedeki önceden kararlaştırılmış bir Amazon S3 klasörüne yükleyin. Nasıl yükleyeceğinizi öğrenmek için bu bağlantıyı takip edebilirsiniz .
Amazon S3'ten RDS - MySQL veritabanına veri aktarın
Verileri S3'ten MySQL DB'ye aktarmak için aşağıdaki Amazon CLI komutunu kullanabilirsiniz.
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
Mevcut bir RDS MYSQL DB'deki verilerin başka bir RDS MYSQL DB'ye alınmasını istediğinizde senaryolar olabilir. Örneğin, bir Olağanüstü Durum Kurtarma DB'sini onaylamak veya yalnızca iş raporlaması vb. İçin bir DB oluşturmak için. Bu tür bir senaryoda, kaynak DB'lerinin bir kopyası olan okuma kopyaları oluşturur ve ardından bu okuma kopyasını yeni bir DB örneğine yükseltiriz. Verileri kopyalamak istediğimizde orijinal kaynak DB'den doğrudan yoğun okumayı önlemek için kullanılırlar.
bir okuma kopyası oluştur
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Bir Okuma çoğaltmasını Veritabanı Örneğine yükseltme
Artık kopyaya sahip olduğumuz için, onu bağımsız bir DB örneğine yükseltebiliriz. Bu, verileri RDS - Mysql DB'den yenisine aktarma ihtiyacımızı karşılayacak. Aşağıdaki komut, bir okuma kopyasının bir db örneğine yükseltilmesini tamamlamak için kullanılır.
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
Başka bir veritabanından Amazon RDS - MySQL'e veri aktarmak için Amazon DMS olarak da adlandırılan amazon Veri Taşıma Hizmeti'ni kullanmamız gerekiyor. Mevcut veri tabanını MYSQL platformuna çevirmek için Şema dönüştürme aracını kullanır. Aşağıdaki şema genel süreci açıklamaktadır. Ayrıca, önceki bölümde açıklanan benzer çoğaltma ilkesi üzerinde çalışır.
Verilerin Amazon RDS Mysql DB'den dışa aktarılması, yukarıda gördüğümüz replikasyon ilkesine göre çalıştığı doğrudan bir ileri işlemdir. İhracat sürecini gerçekleştirme adımları aşağıdadır.
- Amazon RDS dışında çalışan MySQL örneğini başlatın.
- MySQL DB örneğini çoğaltma kaynağı olarak belirleyin.
- Veritabanını Amazon RDS örneğinden Amazon RDS dışındaki örneğe aktarmak için mysqldump kullanın.
Mysqldum komutunun kodu aşağıdadır
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