Percona XtraBackup kullanarak ApsaraDB RDS for MySQL'den alınan fiziksel yedeği kendi yönettiğiniz bir MySQL veritabanına geri yükleyin.
Arka Plan
ApsaraDB RDS for MySQL, örnek yedeklerini kendi yönettiğiniz bir veritabanına geri yüklemeyi destekler. Fiziksel veya mantıksal yedekten geri yükleme gibi çeşitli veri kurtarma yöntemlerini kullanabilirsiniz. Veri kurtarma yöntemi seçimi hakkında daha fazla bilgi için bkz. MySQL veri kurtarma yöntemleri.
Bir örneğin yedekleme türünü ApsaraDB RDS konsolunda görüntüleyebilirsiniz. Sol gezinme bölmesinde Backup and Restoration > Base Backups > Data Backup yolunu izleyin.
Fiziksel yedek bulunmuyorsa öncelikle manuel bir yedek oluşturmanız gerekir. Talimatlar için bkz. Manuel yedekleme.
Senaryolar
RDS for MySQL örneğine uzun süre ihtiyacınız kalmadığında veya örnek silinmiş olsa bile fiziksel yedek dosyanız hala mevcutsa, bu yedeği kendi yönettiğiniz bir veritabanına geri yükleyebilirsiniz.
Ön Koşullar
-
RDS MySQL örneğiniz aşağıdaki gereksinimleri karşılamalıdır:
Ana sürüm: 8,0, 5,7, 5,6 veya 5,5
Sürüm: High-availability Edition
Depolama türü: Premium Local SSD'ler
NotBu bilgileri örneğinizin Basic Information sayfasında görüntüleyebilirsiniz.
Yalnızca yukarıdaki gereksinimleri karşılayan örnekler için fiziksel yedek dosyalarını indirebilirsiniz. Örneğiniz Basic Edition ise bu konudaki SSS bölümüne bakın.
-
RDS örneğinizdeki tablolar TDE ile şifrelenmemiş olmalıdır.
ÖnemliŞifreli tablolar geri yükleme hatalarına neden olabilir. Önce şifre çözme işlemi gerçekleştirin.
RDS konsolunda örneğin Data Security > TDE sayfasından TDE durumunu kontrol edebilirsiniz.
RAM kullanıcınızın yedek dosyalarını indirme iznine sahip olması gerekir. Talimatlar için bkz. Yedek dosyalarını indirmek için salt okunur izinlere sahip bir RAM kullanıcısını yetkilendirin.
Sınırlamalar
Fiziksel yedek dosyalarının geri yüklenmesi yalnızca yerel disk kullanan örnekler için desteklenir. Cloud disk kullanan bir örnek için anlık görüntü yedeğini geri yüklemek üzere bkz. RDS for MySQL anlık görüntüsünü kendi yönettiğiniz bir veritabanına geri yükleyin.
Bu işlem, yedek dosyasındaki tüm verileri geri yükler. Yalnızca belirli veritabanlarını veya tabloları geri yüklemek için bkz. RDS MySQL mantıksal yedeğini kendi yönettiğiniz bir veritabanına geri yükleyin.
Şu anda RDS for MySQL'den alınan fiziksel yedek dosyaları yalnızca Linux üzerinde çalışan kendi yönettiğiniz bir veritabanına geri yüklenebilir.
MySQL Group Replication (MGR) kümeleri için veri geri yükleme şu anda desteklenmemektedir.
Etkiler
RDS MySQL fiziksel yedeğini başka hizmetlerin de çalıştığı kendi yönettiğiniz bir veritabanına geri yüklerseniz bu hizmetler kullanılamaz hale gelir.
Bu geri yükleme yöntemi verileri yeni bir veritabanının veri dizinine geri yükler; kendi yönettiğiniz veritabanınızdaki orijinal veriler etkilenmez.
Nasıl Çalışır
Fiziksel bir yedeği geri yüklemek aşağıdaki adımları içerir:
Veritabanının tam fiziksel yedeğini alın.
Fiziksel yedek dosyasını yerel bir cihaza indirin ve
qpressaracıyla sıkıştırmayı açın.Sıkıştırması açılmış yedek dosyalarını kendi yönettiğiniz veritabanınızın veri dizinine geri yüklemek için
Percona XtraBackupkullanın.Veritabanını yeniden başlatın. Artık kendi yönettiğiniz veritabanınızda orijinal RDS MySQL verilerini görüntüleyebilirsiniz.
Notlar
Yedek indirme URL'si bir saat boyunca geçerlidir. URL'nin süresi dolarsa sayfayı yenileyerek yeni bir URL alın.
Yedek dosyasının içeriğini değiştirmeyin veya silmeyin. Aksi takdirde dosya bozulabilir ve geri yüklenemez hale gelebilir. Verileri değiştirmeniz gerekiyorsa önce yedeği kendi yönettiğiniz bir veritabanına geri yükleyin.
Ücretlendirme
Manuel yedekler oluşturuyorsanız yedek depolama kullanımınızı izleyin. Ücretsiz kotayı aşan yedek depolama alanı için yedekleme ücretleri tahakkuk eder.
-
Kendi yönettiğiniz veritabanınız şirket içi ortamdaysa yedek verilerini İnternet üzerinden indirirsiniz. İndirme trafiğiniz ücretsiz kotayı aşarsa İnternet trafiği ücretleri tahakkuk eder.
NotKendi yönettiğiniz veritabanınız, RDS örneğiyle aynı bölge ve VPC'de bulunan bir ECS örneğinde barındırılıyorsa dahili adres üzerinden yedek verilerini indirmek için trafik ücreti ödemezsiniz.
Başlamadan Önce
Ortam kurulumu
Araçlar
Adım 1: Yedek dosyasını indirin
RDS örnek listesine gidin, bir bölge seçin ve ardından hedef örneğin ID değerine tıklayın.
Sol gezinme bölmesinde Backup and Restoration öğesine tıklayın.
-
Base Backups > Data backup sekmesinde hedef fiziksel yedeği bulun ve Actions sütununda Download instance backup seçeneğine tıklayın.
Fiziksel yedek dosyası yoksa manuel bir yedek oluşturabilirsiniz. Daha fazla bilgi için bkz. Manuel yedekleme gerçekleştirin.
Advanced Download sayfasına yönlendirilirse RDS örneğiniz cloud disk örneğidir. Verileri geri yüklemek için bkz. ApsaraDB RDS for MySQL örneğinin anlık görüntü yedek dosyasından verileri kendi yönettiğiniz bir veritabanına geri yükleyin.
-
Download instance backup iletişim kutusunda ihtiyaca göre dahili URL'yi veya genel URL'yi kopyalayın.
ÖnemliDahili URL kullanırsanız yedek dosyasını yalnızca aynı bölge ve VPC'deki bir sunucudan indirebilirsiniz. Farklı bir bölgedeki veya klasik ağdaki bir sunucudan dosyayı indiremezsiniz.
Yedek dosyasını indirmek için genel URL kullanırsanız ücretsiz kotayı aşan İnternet trafiği için ücretlendirilirsiniz. Daha fazla bilgi için bkz. Ücretlendirme ayrıntıları.
Yedek indirme URL'si bir saat boyunca geçerlidir. Süresi dolarsa en son URL'yi almak için sayfayı yenileyin.
Yedek dosyasının içeriğini değiştirmeyin veya silmeyin. Aksi takdirde dosya hasar görebilir ve geri yüklenemez hale gelebilir. Değişiklik yapmanız gerekiyorsa önce verileri kendi yönettiğiniz veritabanına geri yükleyin.
-
Kendi yönettiğiniz MySQL veritabanını barındıran Linux sunucusuna giriş yapın ve fiziksel yedeği indirmek için aşağıdaki komutu çalıştırın.
wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qpNotYukarıdaki komutta
https://****.bak.rds.aliyuncs.com/****_xb.qp?****kısmını gerçek yedek indirme adresiyle değiştirin. Yedek dosyasını indirdikten sonra veri sızıntılarını önlemek için hemen kaydedin.-
Bu örnekte dosya adı olarak
test_xb.qpkullanılır. Özel bir dosya adı belirtebilirsiniz ancak dosya uzantısı indirme URL'sindeki uzantıyla eşleşmelidir.Şu anda RDS for MySQL yedekleri için indirme URL'leri
_xb.qpveya_qp.xbolmak üzere iki dosya uzantısı formatından birini kullanır. Hangi formatın kullanıldığını görmek için indirme bağlantısını kontrol edebilirsiniz. RDS for MySQL 5,5'in fiziksel yedek formatı
tar.gzşeklindedir.
İndirme SSS
Adım 2: Yedek dosyasının sıkıştırmasını açın
Dosya adı uzantısına göre yedek paketinin sıkıştırmasını açmak için uygun komutu seçin.
Percona XtraBackup ve qpress yüklemek için Ön Koşullar bölümüne bakın ve ardından aşağıdaki komutları çalıştırın.
Sıkıştırma Açma SSS
Adım 3: Verileri geri yükleyin
Veritabanını geri yüklemeden önce kendi yönettiğiniz veritabanı hizmetini durdurun.
mysql işlemlerini kontrol etmek için ps -ef | grep '[m]ysql' komutunu ve işlemi sonlandırmak için sudo kill -9 <PID> komutunu kullanabilirsiniz.
MySQL 8,0
-
Geri yüklemeye hazırlanın.
/u01/xtrabackup80/bin/xtrabackup --defaults-file=/var/mysql_bkdata/backup-my.cnf --prepare --target-dir=/var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-fileBir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.
RDS MySQL yedek dosyası
backup-my.cnfadlı bir yapılandırma dosyası içerir. Bu dosya yedek açma dizininde/var/mysql_bkdata/konumunda bulunur.
--prepare
XtraBackup aracı için hazırlama komutu.
--target-dir
Yedek açma dizini/var/mysql_bkdata/. -
Kendi yönettiğiniz veritabanınızın veri dizinini (datadir) değiştirin.
-
Veritabanı yapılandırma dosyasını düzenleyin.
sudo vim /etc/my.cnfVeritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.
-
Düzenleme moduna girmek için
ituşuna basın ve datadir parametresini/var/mysql_newdataolarak ayarlayın.datadir = /var/mysql_newdatamysql_newdatakendi yönettiğiniz veritabanı için oluşturduğunuz yeni veri dizinidir. Ön Koşullar bölümünde oluşturulmuştur. -
Yeni veri dizinine izinler verin.
chown -R mysql:mysql /var/mysql_newdata Düzenleme modundan çıkmak için
Esctuşuna basın ve kaydetmekten çıkmak için:wq!girin.
-
-
Verileri geri yükleyin.
sudo xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-file
Hedef veri geri yükleme yolunu kendi yönettiğiniz veritabanınınmy.cnfdosyasındaki veri dizini (datadir) ayarından alın.
--copy-back
XtraBackup aracı için geri yükleme komutu.
--target-dir
XtraBackup aracı verileri yedek açma dizininden/var/mysql_bkdata/kendi yönettiğiniz veritabanının veri dizinine geri yükler.
MySQL 5,7
-
Geri yüklemeye hazırlanın.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-fileBir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.
RDS MySQL yedek dosyası yedek açma dizininde bulunan
backup-my.cnfadlı bir yapılandırma dosyası içerir:/var/mysql_bkdata/.
--apply-logXtraBackup aracı için hazırlama komutu.
Komutun ardından yedek dosyalarının depolanacağı dizin, yani yedek açma dizini
/var/mysql_bkdata/gelir. -
Kendi yönettiğiniz veritabanı yapılandırma dosyası
my.cnfdosyasını değiştirin.-
Veritabanı yapılandırma dosyasını düzenleyin.
sudo vim /etc/my.cnfVeritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.
-
Düzenleme moduna girmek için
ituşuna basın ve datadir parametresini/var/mysql_newdataolarak değiştirin.datadir = /var/mysql_newdatamysql_newdatakendi yönettiğiniz veritabanı için oluşturulan yeni veri dizinidir. Hazırlıklar bölümünde oluşturulmuştur. -
my.cnfdosyasına aşağıdaki içeriği ekleyin.innodb_undo_tablespaces=2 innodb_undo_directory=/var/mysql_newdataÖnemliinnodb_undo_tablespaces parametresinin değeri
/var/mysql_bkdata/backup-my.cnfdosyasındaki değerle eşleşmelidir. Değeri sorgulamak içincat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespaceskomutunu çalıştırabilirsiniz. Düzenleme modundan çıkmak için
Esctuşuna basın ve kaydetmekten çıkmak için:wq!girin.
-
-
Verileri geri yükleyin.
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-file
Kendi yönettiğiniz veritabanınınmy.cnfdosyasından belirtilen veri dizini (datadir) olan veri geri yükleme hedef yolunu alın.
--copy-backXtraBackup aracı için geri yükleme komutu.
Bu komuttan sonra belirtilen dizin, XtraBackup aracının verileri kendi yönettiğiniz veritabanının veri dizinine geri yüklediği yedek açma dizinidir, örneğin
/var/mysql_bkdata/.
MySQL 5,6
-
Geri yüklemeye hazırlanın.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-fileBir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.
RDS MySQL yedek dosyası yedek açma dizininde bulunan
backup-my.cnfadlı bir yapılandırma dosyası içerir:/var/mysql_bkdata/.
--apply-logXtraBackup aracı için hazırlama komutu.
Bu komuttan sonra yedek dosyalarını depolayacağınız dizini belirtin: yedek açma dizini
/var/mysql_bkdata/. -
Kendi yönettiğiniz veritabanınızın veri dizinini (datadir) değiştirin.
-
Veritabanı yapılandırma dosyasını düzenleyin.
sudo vim /usr/my.cnfVeritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.
-
Düzenleme moduna girmek için
ituşuna basın ve datadir parametresini ekleyin.datadir = /var/mysql_newdatamysql_newdatakendi yönettiğiniz veritabanı için oluşturduğunuz yeni veri dizinidir. Hazırlıklar bölümünde oluşturulmuştur. Düzenleme modundan çıkmak için
Esctuşuna basın ve ardından kaydetmekten çıkmak için:wq!girin.
-
-
Verileri geri yükleyin.
sudo innobackupex --defaults-file=/usr/my.cnf --copy-back /var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-file
Kendi yönettiğiniz veritabanınınmy.cnfdosyasında veri dizini (datadir) parametresinden veri geri yükleme hedef yolunu alın.
--copy-backXtraBackup aracı için geri yükleme komutu.
Bu komut yedek dosyalarını içeren dizini, yani yedek açma dizinini
/var/mysql_bkdata/belirtir. XtraBackup aracı verileri bu dizinden kendi yönettiğiniz veritabanının veri dizinine geri yükler.
MySQL 5,5
-
Geri yüklemeye hazırlanın.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-fileBir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.
RDS MySQL yedek dosyası yedek açma dizininde bulunan
backup-my.cnfadlı bir yapılandırma dosyası içerir:/var/mysql_bkdata/.
--apply-logXtraBackup aracı için hazırlama komutu.
Komutun ardından yedek dosyalarının depolanacağı dizin, yani yedek açma dizini
/var/mysql_bkdata/gelir. -
Kendi yönettiğiniz veritabanı yapılandırma dosyası
my.cnfdosyasını değiştirin.-
Veritabanı yapılandırma dosyasını düzenleyin.
sudo vim /etc/my.cnfVeritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.
-
Düzenleme moduna girmek için
ituşuna basın ve datadir parametresini ekleyin.datadir = /var/mysql_newdatamysql_newdatakendi yönettiğiniz veritabanı için oluşturulan yeni veri dizinidir. Hazırlıklar bölümünde oluşturulmuştur. -
my.cnfdosyasına aşağıdaki içeriği ekleyin.innodb_log_file_size=1048576000Önemliinnodb_log_file_size parametresinin değeri
/var/mysql_bkdata/backup-my.cnfdosyasındaki değerle aynı olmalıdır. Değeri sorgulamak içincat /var/mysql_bkdata/backup-my.cnf | grep innodb_log_file_sizekomutunu kullanabilirsiniz. Düzenleme modundan çıkmak için
Esctuşuna basın ve kaydetmekten çıkmak için:wq!girin.
-
-
Verileri geri yükleyin.
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/Parametreler:
Parametre
Açıklama
--defaults-file
Hedef veri geri yükleme yolunu kendi yönettiğiniz veritabanınınmy.cnfdosyasındaki veri dizini (datadir) ayarından alın.
--copy-backXtraBackup aracı için geri yükleme komutu.
Bu komuttan sonra XtraBackup aracının verileri kendi yönettiğiniz veritabanının veri dizinine geri yüklediği yedek açma dizinini, örneğin
/var/mysql_bkdata/belirtin.
Geri Yükleme SSS
Adım 4: Veritabanını başlatın
MySQL 8,0 ve 5,7
-
(İsteğe bağlı) RDS for MySQL konsolunda lower_case_table_names değerini kontrol etmek için örnek parametrelerini görüntüleyin. Değer
1ise kendi yönettiğiniz veritabanınınmy.cnfyapılandırma dosyasını değiştirmeniz gerekir.-
Veritabanı yapılandırma dosyasını düzenleyin.
sudo vim /etc/my.cnfVeritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.
-
Düzenleme moduna girmek için
ituşuna basın ve aşağıdaki içeriği ekleyin.lower_case_table_names=1 Düzenleme modundan çıkmak için
Esctuşuna basın ve kaydetmekten çıkmak için:wq!girin.
-
-
Veri dizinine izinler verin.
sudo chown -R mysql:mysql /var/mysql_newdata -
MySQL işlemini başlatmak için aşağıdaki komutu çalıştırın.
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parametreler:
Parametre
Açıklama
--defaults-file
Kendi yönettiğiniz veritabanının yapılandırma dosyasının yolu. Bu konuda örnek olarak/etc/my.cnfkullanılır. Veritabanının yapılandırma dosyası yolunu onaylamak için Hazırlıklar bölümüne bakabilirsiniz.
--user
Veritabanını başlatan kullanıcı. Değer mysql olarak sabittir.
--datadir
Veritabanının kullandığı veri dizini bu örnekte/var/mysql_newdataşeklindedir. Veritabanınızın veri dizinini belirlemek için Ön Koşullar bölümüne bakabilirsiniz.
MySQL 5,6
-
(İsteğe bağlı) ApsaraDB RDS for MySQL konsolunda lower_case_table_names değerini kontrol etmek için örnek parametrelerini görüntüleyin. Değer
1ise kendi yönettiğiniz veritabanınınmy.cnfyapılandırma dosyasını değiştirmeniz gerekir.-
Veritabanı yapılandırma dosyasını düzenleyin.
sudo vim /usr/my.cnfVeritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.
-
Düzenleme moduna girmek için
ituşuna basın ve aşağıdaki içeriği ekleyin.lower_case_table_names=1 Düzenleme modundan çıkmak için
Esctuşuna basın ve kaydetmekten çıkmak için:wq!girin.
-
-
Veri dizinine izinler verin.
sudo chown -R mysql:mysql /var/mysql_newdata -
MySQL işlemini başlatmak için aşağıdaki komutu çalıştırın.
sudo mysqld --defaults-file=/usr/my.cnf --user=mysql --datadir=/var/mysql_newdata &
Parametre
Açıklama
--defaults-file
Kendi yönettiğiniz veritabanının yapılandırma dosyası yolu. Bu konuda örnek olarak/usr/my.cnfkullanılır. Yolu onaylamak için Ön Koşullar bölümüne bakın.
--user
Veritabanını başlatan kullanıcı. Değer mysql olarak sabittir.
--datadir
Veritabanı başlatma için kullanılan veri dizini. Bu konuda örnek olarak/var/mysql_newdatakullanılır. Veritabanının veri dizinini belirlemek için Ön Koşullar bölümüne bakabilirsiniz.
MySQL 5,5
-
Veri dizinine izinler verin.
sudo chown -R mysql:mysql /var/mysql_newdata -
MySQL işlemini başlatmak için aşağıdaki komutu çalıştırın.
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &
Parametre
Açıklama
--defaults-file
Kendi yönettiğiniz veritabanının yapılandırma dosyasının yolu. Bu konuda örnek olarak/etc/my.cnfkullanılır. Veritabanınız için yolu onaylamak için Hazırlıklar bölümüne bakın.
--user
Veritabanını başlatan kullanıcı. Değer mysql olarak sabittir.
--datadir
Veritabanını başlatmak için kullanılan veri dizini. Bu konuda örnek olarak/var/mysql_newdatakullanılır. Veritabanınızın veri dizinini onaylamak için Ön Koşullar bölümüne bakabilirsiniz.
Başlatma SSS
Adım 5: Bağlanın ve doğrulayın
-
MySQL veritabanında oturum açmak ve işlemin başarıyla başlatıldığını doğrulamak için aşağıdaki komutu çalıştırın.
mysql -u -pNotBu oturum açma komutu geri yüklemenin başarılı olduğunu doğrulamak için kullanılır. Yalnızca tablo verilerini görüntülemeniz gerekiyorsa hesabın sorgu izinlerine sahip olduğundan emin olun.
Hesabınızı veya parolanızı unutursanız MySQL işlemini başlatmak için komutu çalıştırırken
--skip-grant-tablesparametresini geçirin. İşlem başladıktan sonra izin kontrolünü atlar ve hesap veya parola olmadan veritabanında oturum açmanıza olanak tanır. Başarıyla oturum açtıktan sonra hesabınızı ve parolanızı sıfırlayabilirsiniz.
-
ApsaraDB RDS for MySQL örneğinden gelen veritabanlarının var olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın.
SHOW DATABASES;
Bağlantı ve Doğrulama SSS
Başvuru Kaynakları
RDS for MySQL örneğinden tüm verileri veya belirli veritabanlarını ve tabloları başka bir RDS örneğine geri yüklemek için bkz. Tam verileri geri yükleme veya Veritabanlarını ve tabloları geri yükleme.
Daha fazla veri geri yükleme yöntemi için bkz. Veri geri yükleme yöntemlerine genel bakış.