Geçiş sırasında kendi yönetimindeki MySQL örneğinizin çevrimdışı kalmasına izin veriyorsanız bu yöntemi kullanın. Percona XtraBackup ile tam bir fiziksel yedekleme alın, bunu Object Storage Service (OSS) üzerine aktarın ve yeni bir RDS örneği oluşturmak için ApsaraDB RDS konsolu üzerinden içe aktarın.
Veritabanınızın çevrimdışı kalması mümkün değilse minimum kesinti süresiyle geçiş yapmak için Data Transmission Service (DTS) hizmetini kullanın.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Geçiş gereksinimlerini karşılayan kendi yönetiminde bir MySQL örneği. Tam liste için Sınırlamalar bölümüne bakın.
Hedef RDS örneğinizle aynı bölgede bulunan bir OSS paketi. Paket oluşturmanız gerekirse Paket oluşturma konusuna bakın.
Kendi yönetimindeki MySQL örneğinin çalıştığı ana bilgisayarda Go ve Unzip yüklü olmalıdır.
Sınırlamalar
İlerlemeden önce aşağıdaki kısıtlamaları gözden geçirin:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Geçirilmeyen nesneleri belirleme
Geçişten sonra yeniden oluşturmanız gereken saklı yordamları ve işlevleri listelemek için kaynak örneğinizde aşağıdaki sorguyu çalıştırın:
SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
FROM information_schema.routines
WHERE ROUTINE_SCHEMA NOT IN ('sys', 'information_schema', 'performance_schema', 'mysql');
Ayrıca devam etmeden önce kullanıcı hesaplarını ve saat dilimi ayarlarını kaydedin.
Nasıl çalışır
Kendi yönetimindeki MySQL örneğinin çalıştığı ana bilgisayara Percona XtraBackup yükleyin.
Uyumluluk denetimi sağlayan
backup_helperve OSS'e yükleme yapanoss_streamaraçlarını içeren MySQL Backup Helper'ı yükleyin.Bir uyumluluk denetimi çalıştırın, tam yedekleme alın ve doğrudan OSS'e aktarın. Ardından yeni bir RDS örneği oluşturmak için yedek dosyasını ApsaraDB RDS konsolu üzerinden içe aktarın.
Bu kılavuzdaki ortam CentOS Linux V8.3.2011 çalıştıran bir Elastic Compute Service (ECS) örneği kullanır. Ubuntu'ya özgü adımlar için Ek 1: Ubuntu Üzerine Percona XtraBackup Yükleme ve Ek 2: Ubuntu Üzerine Go ve Unzip Yükleme bölümlerine bakın.
Adım 1: Percona XtraBackup Yükleyin
Adım 2: MySQL Backup Helper Yükleyin
MySQL Backup Helper iki araç sağlar: backup_helper örneğinizin geçişi destekleyip desteklemediğini denetler ve oss_stream yedeği doğrudan OSS'e aktarır.
Bağımlılıkları yükleme (CentOS)
sudo yum install -y go
sudo yum install -y unzip
Ubuntu için Ek 2 bölümüne bakın.
MySQL Backup Helper Derleme
-
Kaynak kodunu indirin:
wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip -
Paketi açın:
unzip master.zip -
backup_helperderleyin:cd mysql-backup-helper-master go build -a -o backup_helper main.go -
oss_streamderleyin:cd oss_stream go build -a -o oss_stream oss_stream.go
Adım 3: Yedekleme alma ve geçiş yapma
3,1 Geçiş uyumluluğunu denetleme
Kaynak örneğin geçişi desteklediğini doğrulamak için backup_helper çalıştırın:
cd ~/mysql-backup-helper-master && ./backup_helper \
-host <host-ip> \
-port <port> \
-user <username> \
--password <password>
Yer tutucuları gerçek değerlerinizle değiştirin:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Denetim başarılı olursa sonraki adıma geçin.
3,2 Yedekleme alma ve OSS'e yükleme
Percona XtraBackup, tam komut satırını (parolalar dahil) yedek içindeki xtrabackup_info dosyasına yazar. Yükleme tamamlandıktan sonra bu dosyanın hassas kimlik bilgilerini ifşa etmediğinden emin olun.
Yedeklemeyi başlatın ve doğrudan OSS paketinize aktarın. MySQL sürümünüz için uygun komutu seçin.
MySQL 5.7
MySQL 5.7 — innobackupex kullanır:
innobackupex --backup \
--host=<host-ip> \
--port=<port> \
--user=<username> \
--password=<password> \
--stream=xbstream \
--compress <temp-dir> | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId <AccessKey-ID> \
-accessKeySecret <AccessKey-secret> \
-bucketName <bucket-name> \
-endpoint <OSS-endpoint> \
-objectName <backup-file-name>
Örnek:
innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
--stream=xbstream --compress /root/mysql/data | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId LTAI**************** \
-accessKeySecret ****** \
-bucketName test \
-endpoint oss-ap-southeast-1.aliyuncs.com \
-objectName backup_qp.xb
MySQL 8.0
MySQL 8.0 — xtrabackup kullanır:
xtrabackup --backup \
--host=<host-ip> \
--port=<port> \
--user=<username> \
--password=<password> \
--stream=xbstream \
--compress <temp-dir> | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId <AccessKey-ID> \
-accessKeySecret <AccessKey-secret> \
-bucketName <bucket-name> \
-endpoint <OSS-endpoint> \
-objectName <backup-file-name>
Örnek:
xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
--stream=xbstream --compress /root/mysql/data | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId LTAI**************** \
-accessKeySecret ******** \
-bucketName test \
-endpoint oss-ap-southeast-1.aliyuncs.com \
-objectName backup_qp.xb
Yer tutucuları gerçek değerlerinizle değiştirin:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Büyük veritabanları için oturum bağlantısı kesilirse kesintileri önlemek amacıyla komutu nohup ile çalıştırın. MySQL 5.7: MySQL 8.0:
nohup sh -c 'innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream --compress /root/mysql/data | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI**************** -accessKeySecret ****** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
--stream=xbstream --compress /root/mysql/data | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId LTAI**************** -accessKeySecret ****** \
-bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
Yedekleme tamamlandığında terminalde completed OK ! mesajı görüntülenir.
Dosyanın başarıyla yüklendiğini onaylamak için OSS konsolunda oturum açın. Yükleme başarısız olduysa yedekleme komutunu tekrar çalıştırın.
OSS geçici olarak kullanılamıyorsa yedeği önce yerel bir dosyaya kaydedin ve daha sonra yükleyin. Bkz. Ek 3: Yerel yedekleme alma ve OSS'e yükleme.
3,3 Yedeği ApsaraDB RDS konsolunda içe aktarma
ApsaraDB RDS konsolunda oturum açın. Üst gezinme çubuğundan hedef RDS örneğinizin bulunduğu bölgeyi seçin. Sol gezinme bölmesinde Backups öğesine tıklayın.
User Backups sekmesinde Import Backup öğesine tıklayın.
-
Import Guide sihirbazında talimatları okuyun ve 3. Import Data adımına ulaşana kadar Next öğesine tıklayın.
Sihirbazdaki 1. Back Up Source Database ve 2. Upload Backup Files to OSS adımları bu kılavuzdaki 3.1 ve 3.2 Adımlarına karşılık gelir.
-
3. Import Data adımında aşağıdaki parametreleri yapılandırın ve OK öğesine tıklayın.
ApsaraDB RDS'nin OSS'e erişimine yetki verilmediyse bu adımın altındaki Authorize öğesine tıklayın. Görüntülenen sayfada Confirm Authorization Policy öğesine tıklayın.
Parametre
Açıklama
MySQL version
5.7/8.0 otomatik olarak görüntülenir. Hem MySQL 5.7 hem de MySQL 8.0 desteklenir.
Region
Yedek dosyasını depolayan OSS paketinin bölgesi. Hedef RDS örneğinin bölgesiyle eşleşmelidir.
OSS Bucket
Yedek dosyasını içeren OSS paketi. Ayrıntılar için Nesne yükleme konusuna bakın.
OSS file name
OSS paketindeki yedek nesnesi. Bulanık ve tam eşleşmeyi destekler. Dosya_QP.XBbiçiminde olmalı veyaTAR.GZolarak sıkıştırılmış olmalıdır.
Note
Yedek dosyasını tanımlamaya yardımcı olacak isteğe bağlı bir açıklama.
Zone
OSS paketinin bulunduğu alan. Bir alan seçmek ApsaraDB RDS'nin saniyeler içinde anlık görüntü oluşturmasını sağlayarak içe aktarma süresini azaltır. Yeni RDS örneği bu alanda oluşturulur.
Storage Capacity
Yedek dosyası için gereken depolama alanı. Geçerli değerler: 20–6000 GB. Varsayılan olarak yedek dosyası boyutunun 3 katıdır (minimum 20 GB). -
User Backups sekmesinde doğrulama görevinin Status durumunun Verifying değerinden Completed değerine değişmesini bekleyin.
ÖnemliDoğrulama süresi değişkenlik gösterir. Yedekleme sırasında yüksek yazma etkinliğine veya büyük işlemlere sahip örneklerin doğrulanması daha uzun sürebilir.
Yedek dosyasını bulun ve Actions sütununda Restore öğesine tıklayın.
-
Aşağıdaki parametreleri yapılandırın ve Next: Instance Configuration öğesine tıklayın.
Parametre
Açıklama
Zone of Primary Node
Birincil RDS örneği için alan. Yedek dosyasını içe aktarırken bir alan seçmediyseniz görüntülenir.
Storage TypeESSD PL1: Performans düzeyi 1 Enterprise SSD. Standard SSD: Standart elastik blok depolama cihazı. Ayrıntılar için Depolama türleri konusuna bakın.
Instance TypeGeneral-purpose (Entry-level): Özel olarak ayrılmış bellek ve G/Ç ile paylaşılan CPU ve depolama. Tam liste için Birincil ApsaraDB RDS örnek türleri konusuna bakın.
Storage Capacity
Veri dosyaları, sistem dosyaları, günlük dosyaları ve işlem dosyaları için sağlanan depolama alanı. 5 GB'lık artışlarla ayarlanabilir. -
Aşağıdaki parametreleri yapılandırın ve Next: Confirm Order öğesine tıklayın.
Parametre
Açıklama
Network TypeVPC seçeneğini seçin. Sanal özel cloud (VPC) daha yüksek güvenlik ve daha iyi performans sağlar. VPC ve vSwitch of Primary Node yapılandırmalarını da yapmanız gerekir. RDS örneği ve bağlanmak istediğiniz herhangi bir ECS örneği aynı VPC'de bulunmalıdır.
Parameter Template
Sistem veya özel bir parametre şablonu. Bkz. Parametre şablonlarını kullanma.
Time Zone
RDS örneği için saat dilimi.
Table Name Case Sensitivity
Kaynak örnekteki tablo adları büyük/küçük harfe duyarlıysa tutarlılığı korumak için Case-sensitive seçeneğini işaretleyin. -
Parameters bölümündeki örnek yapılandırmasını onaylayın, Purchase Plan seçeneğini ayarlayın, Hizmet Şartlarını kabul edin ve Pay Now öğesine tıklayın.
ApsaraDB RDS örneği oluşturmak 1–5 dakika sürer.
Sonraki adımlar
Yedek saklama süresini yapılandırma
Varsayılan olarak içe aktarılan yedek dosyası 3 gün boyunca saklanır. Saklama süresini gereksinimlerinize göre ayarlayın.
ApsaraDB RDS konsolunda oturum açın. Bir bölge seçin ve sol gezinme bölmesinde Backups öğesine tıklayın.
Yedek dosyasını bulun. Expiration Time sütununda Set Retention Period öğesine tıklayın.
Açılır listeden bir saklama süresi seçin veya Custom Retention Period seçeneğini işaretleyip bir değer girin.
OK öğesine tıklayın.
Son kullanma tarihi 2099'u aşarsa Permanent olarak görüntülenir.
Yedek dosyasına etiket ekleme
ApsaraDB RDS konsolunda oturum açın. Bir bölge seçin ve Backups öğesine tıklayın.
Yedek dosyasını bulun. Tags sütununda +Add öğesine tıklayın.
-
İletişim kutusunda Create a label öğesine tıklayın, Key ve Value alanlarını doldurun, etiketi oluşturmak için alanların yanındaki OK öğesine tıklayın ve ardından sağ alt köşedeki OK öğesine tıklayın.
Mevcut bir etiketi kullanmak için Select the label açılır listesinden seçin.
Bir etiketi güncellemek için üzerine gelin ve edit öğesine tıklayın. İpucunda 3. adımı tekrarlayın.
Artımlı kurtarma için günlük verilerini denetleme
Yedekleme sırasında kaynak örnekte veri değişiklikleri olduysa yedek dosyası artımlı kurtarma için günlük bilgileri içerir.
ApsaraDB RDS konsolunda oturum açın. Bir bölge seçin ve Backups öğesine tıklayın.
Yedek dosyasını bulun ve Actions sütununda View Details öğesine tıklayın.
-
Görüntülenen iletiyi inceleyerek günlük verilerini kontrol edin:
Master_Log_File: Artımlı verileri içeren ilk günlük dosyası.
Master_Log_Position: İlgili dosyadaki artımlı verileri içeren ilk günlük girişi.
Yedek doğrulama kayıtları için varsayılan saklama süresi 7 gündür. Geçişten sonra artımlı verileri kaynak örnektenden hedef RDS örneğine en kısa sürede çoğaltın.
Yedek dosyasını silme
Yedek dosyasına artık ihtiyacınız yoksa depolama maliyetlerini azaltmak için dosyayı silin.
ApsaraDB RDS konsolunda oturum açın. Bir bölge seçin ve Backups öğesine tıklayın.
Yedek dosyasını bulun ve Actions sütununda Delete öğesine tıklayın.
Onay iletişim kutusunda OK öğesine tıklayın.
RDS örneğinizi yükseltme
Geçişten sonra yeni RDS örneğinizde aşağıdaki işlemleri yapabilirsiniz:
User Backups sekmesindeki diğer işlemler
Sütunları filtreleme: Sütunları göstermek veya gizlemek için sağ üst köşedeki
simgesine tıklayın. Sütunları gizli liste (sol) ile görüntülenen liste (sağ) arasında taşımak için
ve
simgelerini kullanın. OK öğesine tıklayın.Örnek listesini dışa aktarma: Yedekleme bilgilerini CSV dosyası olarak dışa aktarmak için
simgesine tıklayın.Yenileme: User Backups sekmesini yenilemek için
simgesine tıklayın.
Ek 1: Ubuntu Üzerine Percona XtraBackup Yükleme
Ek 2: Ubuntu Üzerine Go ve Unzip Yükleme
Ek 3: Yerel yedekleme alma ve OSS'e yükleme
Yedeklemeyi çalıştırdığınız sırada OSS geçici olarak kullanılamıyorsa bu yaklaşımı kullanın.
Adım 1: Yerel bir dosyaya yedekleme
MySQL sürümünüz için uygun komutu seçin.
MySQL 5.7:
innobackupex --backup \
--host=<host-ip> --port=<port> \
--user=<username> --password=<password> \
--stream=xbstream --compress <temp-dir> \
> /<backup-dir>/<backup-file-name>_qp.xb
Örnek:
innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
--stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb
MySQL 8.0:
xtrabackup --backup \
--host=<host-ip> --port=<port> \
--user=<username> --password=<password> \
--stream=xbstream --compress <temp-dir> \
> /<backup-dir>/<backup-file-name>_qp.xb
Örnek:
xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
--stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb
Adım 2: Yerel dosyayı OSS'e yükleme
OSS kullanılabilir duruma geldiğinde oss_stream kullanarak yükleyin:
cat /<backup-dir>/<backup-file-name>_qp.xb | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId LTAI**************** \
-accessKeySecret ******** \
-bucketName test \
-endpoint oss-ap-southeast-1.aliyuncs.com \
-objectName backup_qp.xb
Örnek:
cat /root/backup_qp.xb | \
./mysql-backup-helper-master/oss_stream/oss_stream \
-accessKeyId ******** \
-accessKeySecret LTAI**************** \
-bucketName test \
-endpoint oss-ap-southeast-1.aliyuncs.com \
-objectName backup_qp.xb