ApsaraDB RDS for MySQL yerel çoğaltma özelliği, ek geçiş araçları veya ücretli veri aktarım hizmetlerine gerek kalmadan, standart MySQL çoğaltma protokolünü kullanarak verilerinizi kendi yönettiğiniz bir MySQL veritabanından doğrudan bir RDS örneğine aktarmanızı sağlar.
Kullanım senaryoları
Minimum kesinti süresiyle cloud'a geçiş: Kendi yönettiğiniz veritabanınızın tam yedeğini içe aktarın ve uygulamanızı yeni ortama taşıyana kadar RDS örneğini çoğaltma yoluyla senkronize tutun.
Hibrit veri senkronizasyonu: Örneğin aşamalı bir geçiş sürecinde veya olağanüstü durum kurtarma kurulumunda, şirket içi MySQL sunucunuz ile cloud'daki RDS örneğiniz arasında sürekli senkronizasyon sağlayın.
Çoklu cloud çoğaltması: Başka bir cloud sağlayıcısında barındırılan bir MySQL veritabanından ApsaraDB RDS for MySQL örneğine veri çoğaltın.
Ön koşullar
Başlamadan önce aşağıdaki koşulları sağladığınızdan emin olun:
Veritabanı sürümü: MySQL 5.7 (küçük sürüm 20240930 veya üzeri) ya da MySQL 8,0 (küçük sürüm 20250531 veya üzeri)
Ürün serisi: Basic Edition
Faturalama yöntemi: Abonelik veya kullandıkça öde
Bölge: China (Shanghai), China (Beijing), China (Shenzhen), China (Guangzhou) veya China (Chengdu)
Yerel çoğaltma özelliği şu anda yalnızca yukarıda listelenen bölgelerde kullanılabilir. Diğer bölgelerde bu özelliğe ihtiyaç duyuyorsanız destek talebi oluşturun .
Serverless yerel çoğaltma örneği kullanmak için öncelikle kullandıkça öde faturalama yöntemine sahip bir örnek oluşturun, yerel çoğaltmayı etkinleştirin ve ardından faturalama yöntemini Serverless olarak değiştirin.
Faturalandırma
Yerel çoğaltma etkinleştirilmiş yeni örnek: Standart örnek ücretleri geçerlidir. Yerel çoğaltma özelliğinin kendisi için ek bir ücret alınmaz.
Mevcut bir örneği yükseltme: Ek ücret yoktur.
Object Storage Service (OSS) üzerinden veri içe aktarma: Yedekleme dosyası OSS'te depolandığı sürece OSS depolama ücretleri uygulanır.
Sınırlamalar
İşlevsel sınırlamalar
Yerel çoğaltma etkin olduğu sürece örnek read-only modunda çalışır.
Ana sürüm yükseltmeleri desteklenmez.
Farklı ana sürümler arasında çoğaltma desteklenmez. Kendi yönettiğiniz MySQL veritabanı ile RDS yerel çoğaltma örneği aynı ana sürümü çalıştırmalıdır (örneğin, her ikisi de MySQL 8,0 olmalıdır).
Ürün serisi yükseltmesi desteklenmez (örneğin, Basic Edition'dan High-availability Edition veya Cluster Edition'a geçiş).
VPC değiştirme işlemi desteklenmez.
Veritabanı ve tablo kurtarma işlemi desteklenmez.
Mevcut bir örneği yerel çoğaltma örneğine yükselttiğinizde yaklaşık 30 saniye süren geçici bir bağlantı kesintisi yaşanabilir. Bu işlemi yoğun olmayan saatlerde gerçekleştirin ve uygulamanızın yeniden bağlantı mekanizmasına sahip olduğundan emin olun.
İzin sınırlamaları
Yetkili hesap kapsamı
Yerel çoğaltma için gereken bazı SUPER yetkileri, RDS örneğinin yetkili hesabına atanmıştır. Yalnızca yetkili hesap, CHANGE MASTER TO (MySQL 5.7) veya CHANGE REPLICATION SOURCE TO (MySQL 8,0) gibi yerel çoğaltma komutlarını çalıştırabilir.
Çoğaltma izinleri beyaz listesi
Yerel çoğaltma, harici bir kaynaktan binary log olaylarını uygularken öncelikle izinleri kontrol eder. Aşağıdaki listede belirtilenlerin ötesinde izin gerektiren herhangi bir işlem reddedilir ve çoğaltma bağlantısı kopar:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE,
DROP, RELOAD, PROCESS, REFERENCES, INDEX,
ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE,
REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER,
EVENT, TRIGGER ON *.* TO XXX;
Sistem veritabanı sınırlamaları
Çoğaltma sırasında sistem veritabanları üzerinde yapılan tüm işlemler yok sayılır. Sistem veritabanları şunlardır: mysql, sys, information_schema, performance_schema ve __recyclebin__.
Sistem veritabanlarını dolaylı olarak değiştiren işlemler —örneğinCREATE USERveGRANT—yok sayılmaz. Bu işlemlerin çoğaltma izinleri beyaz listesine uygun olması gerekir. Atanan izinlerin ötesindeki ifadeler, örneğinGRANT SUPER ON *.* TO xxx;, çoğaltma bağlantısını koparacaktır.
GTID sınırlamaları
ApsaraDB RDS for MySQL, Global Transaction Identifier (GTID) modunun etkin olmasını gerektirir ve bu modun devre dışı bırakılmasını desteklemez. Harici bir MySQL veritabanından çoğaltma yapmak için kaynak veritabanında da GTID'nin etkin olması gerekir.
Çoğaltmayı ayarlamadan önce, GTID durumunu kontrol etmek için kaynak veritabanında aşağıdaki komutu çalıştırın:
SHOW VARIABLES LIKE 'gtid_mode';
GTID etkin değilse aşağıdaki komutu çalıştırın:
SET GLOBAL gtid_mode = ON;
Bakım davranışı
Sunucu arası geçiş veya küçük sürüm yükseltmesi gibi bakım işlemleri sırasında, yerel çoğaltma komut izinleri ve parametre değiştirme izinleri geçici olarak iptal edilir. Çoğaltma işlemi bundan etkilenmez. Bakım tamamlandıktan sonra izinler otomatik olarak geri yüklenir.
Yerel çoğaltma izinleri
Yerel çoğaltma örneklerindeki yetkili hesaplar, standart RDS örneklerinde bulunmayan ek izinlere sahiptir.
Çoğaltma komutları
| Komut (MySQL 5.7) | Komut (MySQL 8,0) | Açıklama |
|---|---|---|
CHANGE MASTER TO |
CHANGE REPLICATION SOURCE TO |
Çoğaltma için kaynak ve başlangıç konumunu yapılandırın. Bkz. MySQL 5.7 belgeleri. |
START SLAVE |
START REPLICA |
Çoğaltma işlemini başlatın. |
STOP SLAVE |
STOP REPLICA |
Çoğaltma işlemini durdurun. |
RESET SLAVE |
RESET REPLICA |
Çoğaltmayı kaynaktan yeniden başlatmak için çoğaltma durumunu sıfırlayın. |
Parametre değişikliği
Yetkili hesaplar aşağıdaki çalışma zamanı parametrelerini de değiştirebilir:
`SET GLOBAL read_only = ON/OFF;` — Örneği salt okunur (ON) ve okuma/yazma (OFF) modları arasında değiştirin.
SET SESSION sql_log_bin = ON/OFF;— Geçerli oturumdaki SQL ifadelerinin binary log'a kaydedilip kaydedilmeyeceğini kontrol edin.SET SESSION GTID_NEXT = "<gtid_value>";— Sonraki işlem için GTID değerini ayarlayın.
Adım 1: Yerel çoğaltmayı etkinleştirin
Yeni bir örnekte yerel çoğaltmayı etkinleştirin
Standard Create sayfasında yeni bir ApsaraDB RDS for MySQL örneği oluştururken sayfanın en altına gidin, More seçeneğini genişletin ve Native Replication anahtarını açın.
Bu anahtar yalnızca örnek yapılandırması ön koşulları karşıladığında görünür.

Mevcut bir örnekte yerel çoğaltmayı etkinleştirin
Mevcut bir örneği yükseltmek yaklaşık 30 saniye süren geçici bir bağlantı kesintisine neden olur. Bu işlemi yoğun olmayan saatlerde gerçekleştirin ve uygulamanızın yeniden bağlantı mekanizmasına sahip olduğundan emin olun.
RDS Instances sayfasına gidin, bir bölge seçin ve hedef örneğin ID değerine tıklayın.
Sol gezinme bölmesinde Native Replication öğesine tıklayın, ardından Enable seçeneğine tıklayın.
İletişim kutusundaki bilgileri gözden geçirin ve OK düğmesine tıklayın.
Resmi ApsaraDB RDS hizmet hesabının henüz OSS'inize erişim izni ve esnek ağ arayüzleri (ENI) oluşturma ve bunları iliştirme izni yoksa, bu izinleri vermek için iletişim kutusundaki ilgili onay kutularını işaretleyin.
Adım 2: Ağ bağlantısını yapılandırın
Verileri içe aktarmadan önce, kendi yönettiğiniz MySQL veritabanının RDS örneği ile ağ üzerinden iletişim kurabildiğinden emin olun.
| Senaryo | Yapılandırma | Ücretler |
|---|---|---|
| Aynı VPC içindeki ECS üzerinde kendi yönetilen MySQL | Ağ bağlantısı varsayılan olarak kullanılabilir. RDS örneği IP'sinden gelen 3306 numaralı bağlantı noktasındaki gelen trafiğe izin vermek için ECS güvenlik grubunu yapılandırın. RDS örneği IP'sini almak için örneğe bağlanın ve SHOW VARIABLES LIKE 'report_host'; komutunu çalıştırın. |
Yok |
| Alibaba Cloud üzerinde çapraz VPC veya çapraz bölge | VPC eşlemesi bağlantısı veya Cloud Enterprise Network (CEN) kullanın. | VPC eşlemesi bağlantısı ücretleri geçerlidir. CEN örnekleri ücretsizdir ancak veri aktarımı ve bant genişliği ücretleri uygulanabilir. |
| Şirket içi veri merkezinden cloud'a | Veri merkezinizi VPC'ye bağlamak için VPN Gateway veya kiralık hat kullanın. | Ücretler kullanılan yönteme göre değişir. Ayrıntılar için resmi belgelere bakın. |
| Başka bir cloud sağlayıcısından ApsaraDB RDS'e | Cloud'lar arası ağ bağlantısı kurmak için VPN veya kiralık hat kullanın. | Ücretler kullanılan yönteme göre değişir. Ayrıntılar için resmi belgelere bakın. |
| Genel ağ (önerilmez) | ApsaraDB RDS yerel çoğaltma örnekleri genel ağ erişimini destekler. Güvenlik riskleri nedeniyle bu yöntem önerilmez. | Ücretler kullanılan yönteme göre değişir. |
Tam bir referans için bkz. Bağlantılar ve ağ.
Adım 3: Tam verileri içe aktarın ve çoğaltmayı ayarlayın
Kendi yönettiğiniz veritabanınızın tam yedeğini RDS'e aktarın, ardından iki veritabanını senkronize tutmak için artımlı çoğaltmayı ayarlayın.
Percona XtraBackup'i yükleyin ve kaynak veritabanını yedekleyin
Kendi yönettiğiniz veritabanı ana bilgisayarınıza Percona XtraBackup yükleyin.
CentOS üzerine yükleme
MySQL 5.7 için:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
MySQL 8,0 için:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
Ubuntu üzerine yükleme
MySQL 5.7 için:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
MySQL 8,0 için:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
Ubuntu üzerindeki XtraBackup qpress içermez. Ayrı olarak yükleyin:
sudo apt-get install -y qpress
Yedeklemeyi oluşturun
Aşağıdaki komutlar öncelikle InnoDB motorunu kullanan veritabanları içindir. Veritabanınız MyISAM tabloları içeriyorsa bunun yerine innobackupex komutunu kullanın.
Üç sıkıştırma yöntemi desteklenir. Birini seçin:
Yöntem 1: Varsayılan qpress sıkıştırması
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
--compress > ./<backup_file_name>.xb
Yöntem 2: QuickLZ sıkıştırması
XtraBackup sürüm 8,0.34-29 veya önceki bir sürüm gerektirir. Ayrıntılar için Percona XtraBackup belgelerine bakın.
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
--compress > ./<backup_file_name>_qp.xb
Yöntem 3: Zstandard (zstd) sıkıştırması
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
| zstd -q - > ./<backup_file_name>.xb.zstd
Yedeği içe aktarın ve çoğaltmayı ayarlayın
İki içe aktarma yöntemi mevcuttur. Yedekleme dosyasını OSS'e yükleyebiliyorsanız 1. Yöntemi kullanın. Ortamınız kısıtlıysa ve doğrudan akış tercih ediliyorsa 2. Yöntemi kullanın.
1. Yöntem: OSS'ten bir yedekleme dosyasını içe aktarma
Yedeği bir OSS paketlerine yükleyin
OSS paketi, RDS örneği ile aynı bölgede olmalıdır.
ossutil'i yükleyin:
yum install -y unzip
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
ossutil config
Yedekleme dosyasını yükleyin:
ossutil -e <OSS_Endpoint> -i <your_AccessKeyId> -k <your_AccessKeySecret> cp <backup_file_name> oss://<bucket_name>/
Yedeği RDS'e aktarın
RDS Instances sayfasına gidin, bir bölge seçin ve örnek ID'sine tıklayın.
Sol gezinme bölmesinde Native Replication öğesine tıklayın.
Import Full Data seçeneğine tıklayın, parametreleri yapılandırın ve OK düğmesine tıklayın.
| Kategori | Parametre | Açıklama |
|---|---|---|
| Yedekleme yükleme yöntemi (gerekli) | MySQL version | Otomatik olarak 5.7 veya 8.0 olarak görüntülenir. Yapılandırma gerekmez. |
| Import method | Import from OSS seçeneğini belirleyin. | |
| OSS bucket | Yedekleme dosyanızı içeren OSS paketini seçin. | |
| OSS file name | Yedekleme dosyasını seçin. Dosya bir alt dizindeyse tam yolu girin. Desteklenen formatlar: .xb (xbstream), _qp.xb (QuickLZ), .xb.zst (zstd). |
|
| Otomatik çoğaltma kurulumu (isteğe bağlı) | Auto replication building | İçe aktarmadan sonra kaynak veritabanından çoğaltmayı otomatik olarak ayarlamak için açın. Bu seçeneği kapatırsanız, içe aktardıktan sonra çoğaltmayı manuel olarak ayarlamanız gerekir. |
| Source IP address | Kaynak kendi yönetilen veritabanının IP adresi. | |
| Source port | Kaynak kendi yönetilen veritabanının bağlantı noktası. | |
| Source account | Kaynak veritabanındaki hesap. REPLICATION CLIENT ve REPLICATION SLAVE izinlerine sahip olmalıdır. |
|
| Account password | Kaynak hesabının parolası. |
2. Yöntem: Yedeği doğrudan RDS'e akışla gönderme
backup-helper aracını yükleyin ve yedekleme akışını başlatın
# Install the backup-helper tool
wget -O backup-helper https://mysql-backup-helper.oss-cn-beijing.aliyuncs.com/v1.0.0-alpha/backup-helper && chmod +x backup-helper
# Start the backup stream (requires MySQL and the matching XtraBackup version to be installed)
./backup-helper --backup --mode=stream --host=<MySQL_IP> --port=<MySQL_port> --user=<MySQL_account> --password=<MySQL_password>
Akışı RDS'e aktarın
ApsaraDB RDS konsoluna giriş yapın, bir bölge seçin ve örnek ID'sine tıklayın.
Sol gezinme bölmesinde Native Replication öğesine tıklayın.
Import Full Data seçeneğine tıklayın, parametreleri yapılandırın ve OK düğmesine tıklayın.
| Kategori | Parametre | Açıklama |
|---|---|---|
| Yedekleme yükleme yöntemi (gerekli) | MySQL version | Otomatik olarak 5.7 veya 8.0 olarak görüntülenir. Yapılandırma gerekmez. |
| Import method | Direct Stream Backup seçeneğini belirleyin. | |
| Source backup IP address | Yedekleme akışı için kullanılan IP adresi. | |
| Source backup port | Yedekleme akışı için kullanılan bağlantı noktası. Varsayılan: 9999. | |
| Otomatik çoğaltma kurulumu (isteğe bağlı) | Auto replication building | İçe aktarmadan sonra kaynak veritabanından çoğaltmayı otomatik olarak ayarlamak için açın. Bu seçeneği kapatırsanız, içe aktardıktan sonra çoğaltmayı manuel olarak ayarlamanız gerekir. |
| Source IP address | Kaynak kendi yönetilen veritabanının IP adresi. | |
| Source port | Kaynak kendi yönetilen veritabanının bağlantı noktası. | |
| Source account | Kaynak veritabanındaki hesap. REPLICATION CLIENT ve REPLICATION SLAVE izinlerine sahip olmalıdır. |
|
| Account password | Kaynak hesabının parolası. |
Gerekirse çoğaltmayı manuel olarak ayarlayın
İçe aktarma sırasında Auto replication building seçeneğini etkinleştirmediyseniz veya otomatik kurulum başarısız oldu ve kurtarılamadıysa, çoğaltma bağlantısını manuel olarak ayarlayın.
RDS örneğinde yetkili bir hesap oluşturun.
-
Kaynak kendi yönetilen veritabanında bir çoğaltma hesabı oluşturun ve gerekli izinleri verin:
-- Create a replication account. For production, restrict the allowed IP address instead of using '%'. -- Replace 'Test123!' with a strong password. CREATE USER 'replica'@'%' IDENTIFIED BY 'Test123!'; -- Grant replication permissions GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replica'@'%'; -- Apply the changes FLUSH PRIVILEGES; -
RDS örneğine yetkili hesapla giriş yapın ve aşağıdaki komutları çalıştırın: MySQL 5.7
-- Configure the replication source CHANGE MASTER TO MASTER_HOST='<source_IP>', MASTER_PORT='<source_port>', MASTER_USER='<replication_account>', MASTER_PASSWORD='<replication_account_password>', MASTER_AUTO_POSITION=1; -- Start replication START SLAVE; -- Check replication status SHOW SLAVE STATUS;MySQL 8,0
-- Configure the replication source CHANGE REPLICATION SOURCE TO SOURCE_HOST='<source_IP>', SOURCE_PORT='<source_port>', SOURCE_USER='<replication_account>', SOURCE_PASSWORD='<replication_account_password>', SOURCE_AUTO_POSITION=1; -- Start replication START REPLICA; -- Check replication status SHOW REPLICA STATUS;
Çoğaltma durumunu doğrulayın
RDS örneğinin Native Replication sayfasında çoğaltma durumunu kontrol edin. Durum Running olarak gösterildiğinde, çoğaltma bağlantısı etkin olur ve veriler senkronize edilir.
Yerel çoğaltmayı devre dışı bırakın
Uygulamanızı yeni ortama taşımaya hazır olduğunuzda veya çoğaltmaya artık ihtiyacınız kalmadığında, örneği tekrar okuma/yazma moduna geçirmek için yerel çoğaltmayı devre dışı bırakın.
RDS Instances sayfasına gidin, bir bölge seçin ve örnek ID'sine tıklayın.
Sol gezinme bölmesinde Native Replication öğesine tıklayın, ardından Disable seçeneğine tıklayın.
OK düğmesine tıklayın.
OK düğmesine tıkladıktan sonra, kaynak veritabanından gelen çoğaltma bağlantısı sonlandırılır. RDS örneği standart bir ApsaraDB RDS for MySQL örneğine döner ve salt okunur moddan okuma/yazma moduna geçerek yazma işlemlerine izin verir.
API referansı
| İşlem | API | Notlar |
|---|---|---|
| Yerel çoğaltma ile örnek oluşturma | CreateDBInstance | ExternalReplication parametresini ON olarak ayarlayın. Temel örnek yapılandırması ön koşulları karşılamalıdır. |
| Mevcut bir örnek için yerel çoğaltma bağlantısı kurma | ImportUserBackupFile | — |