Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Restore an RDS MySQL physical backup to a self-managed database

Son Güncelleme:Oct 13, 2026

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.

Not

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

    Not
    • Bu 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

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:

  1. Veritabanının tam fiziksel yedeğini alın.

  2. Fiziksel yedek dosyasını yerel bir cihaza indirin ve qpress aracıyla sıkıştırmayı açın.

  3. 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 XtraBackup kullanın.

  4. 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.

    Not

    Kendi 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

  1. Bu konudaki komutlar CentOS 7.9 64-bit içindir. Farklı bir Linux dağıtımı kullanıyorsanız komutları buna göre uyarlayın.

  2. Kendi yönettiğiniz bir MySQL veritabanı dağıtın. Ana motor sürümü RDS MySQL örneğinizinkiyle aynı olmalıdır. Örneğin her ikisi de MySQL 8,0 olabilir.

    Kendi yönettiğiniz MySQL veritabanının ana motor sürümünü kontrol etmek için aşağıdaki komutu çalıştırın:

    mysql --version
  3. Kendi yönettiğiniz MySQL veritabanının yapılandırma dosyası yolunu bulun.

    Bu konuda aşağıdaki örnek yollar kullanılır:

    • MySQL 8,0 ve 5,7 için yol /etc/my.cnf şeklindedir.

    • MySQL 5,6 için yol /usr/my.cnf şeklindedir.

    • MySQL 5,5 için echo "[mysqld]" | sudo tee /etc/my.cnf komutunu çalıştırarak dosyayı oluşturun.

    Kendi yönettiğiniz MySQL veritabanının yapılandırma dosyası yolunu bulmak için aşağıdaki komutu çalıştırın.

    sudo find / -name my.cnf
    Not

    Komut farklı bir yol döndürürse sonraki komutlarda bu yolu kullanın.

  4. Sıkıştırması açılmış yedek dosyalarını depolamak için mysql_bkdata gibi bir yedek açma dizini oluşturun.

    Yedek açma dizinini oluşturmak için aşağıdaki komutları çalıştırın:

    sudo mkdir /var/mysql_bkdata
    sudo chown -R $USER:$USER /var/mysql_bkdata
    Not

    $USER:$USER parametresi, geçerli kullanıcıyı ve kullanıcı grubunu almak için bir ortam değişkeni kullanır. Değiştirmeniz gerekmez.

  5. mysql_newdata gibi bir veri dizini oluşturun. Bu dizin, veritabanının başlangıçta kullandığı geri yüklenmiş yedek dosyalarını depolar.

    Veri dizinini oluşturmak için aşağıdaki komutları çalıştırın:

    sudo mkdir /var/mysql_newdata
    sudo chown -R $USER:$USER /var/mysql_newdata
    Not

    Yukarıdaki komuttaki $USER:$USER parametresi, geçerli kullanıcıyı ve kullanıcı grubunu almak için bir ortam değişkeni kullanır. Değiştirmeniz gerekmez.

Araçlar

  1. Percona XtraBackup yedekleme ve geri yükleme aracını yükleyin.

    MySQL 8,0

    MySQL 8,0 örneği için ana bilgisayar ortamınıza uygun XtraBackup aracının doğru sürümünü indirin, sunucunuza yükleyin ve ardından yükleyin. Dosyayı bir ECS örneğine yüklemeniz gerekiyorsa bkz. Dosya yükleme veya indirme.

    Önemli

    RDS MySQL 8,0, açık kaynaklı Percona XtraBackup sürümüyle uyumluluk sorunlarına neden olabilecek yeni redo log türleri tanıtır. Bu nedenle aşağıdaki tablodan RDS tarafından sağlanan XtraBackup aracını indirmeniz gerekir.

    Ana bilgisayar ortamı

    İndirme

    Kurulum komutu

    Not

    Bu örnekte aracın /Xtrabackup8.0 dizininde olduğu varsayılır. Komutu gerçek indirme konumunuza göre ayarlayın.

    Linux 6 (x86_64)

    RDS XtraBackup 8.0 aracı indirme

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios6.x86_64

    Linux 7 (x86_64)

    RDS XtraBackup 8.0 aracı indirme

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm

    Linux 7 (ARM AArch64)

    RDS XtraBackup 8.0 aracı indirme

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.aarch64.rpm

    Linux 8 (ARM AArch64)

    RDS XtraBackup 8.0 aracı indirme

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.al8.aarch64.rpm
    Not

    Kurulumdan sonra Percona XtraBackup yürütülebilir dosyası /u01/xtrabackup80/bin dizininde bulunur. Varsayılan olarak bu dizin yolu Linux'taki PATH ortam değişkenine eklenmez.

    Percona XtraBackup komutlarını herhangi bir dizinden çalıştırmak için aşağıdaki yöntemlerden birini kullanabilirsiniz:

    • Percona XtraBackup komutunu çalıştırırken tam yolu belirtin. Bu konuda birkaç komutta bu yöntem kullanılır. Örnek: /u01/xtrabackup80/bin/xtrabackup --xxxxxx.

    • /u01/xtrabackup80/bin dizinini PATH ortam değişkenine manuel olarak ekleyin.

    MySQL 5,7, 5,6 veya 5,5

    MySQL 5,7, 5,6 veya 5,5 örnekleri için Percona XtraBackup 2.4 indirin ve yükleyin.

    Bu konuda örnek olarak Percona XtraBackup 2.4.28 kullanılır. Kurulum komutları aşağıdaki gibidir:

    wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
    sudo yum localinstall -y percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
  2. qpress sıkıştırma açma aracını yükleyin.

    ## Download the qpress tar package.
    wget "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230406/flxd/qpress-11-linux-x64.tar"
    
    ## Extract the downloaded tar package.
    tar -xvf qpress-11-linux-x64.tar
    
    ## Grant execute permissions to the qpress file.
    sudo chmod 775 qpress
    
    ## Copy the qpress file to /usr/bin to make it globally accessible.
    sudo cp qpress /usr/bin

Adım 1: Yedek dosyasını indirin

  1. RDS örnek listesine gidin, bir bölge seçin ve ardından hedef örneğin ID değerine tıklayın.

  2. Sol gezinme bölmesinde Backup and Restoration öğesine tıklayın.

  3. Base Backups > Data backup sekmesinde hedef fiziksel yedeği bulun ve Actions sütununda Download instance backup seçeneğine tıklayın.

  4. Download instance backup iletişim kutusunda ihtiyaca göre dahili URL'yi veya genel URL'yi kopyalayın.

    Önemli
    • Dahili 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.

  5. 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.qp
    Not
    • Yukarı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.qp kullanı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.qp veya _qp.xb olmak ü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

  • S: Bir veri dosyasını indirirken neden hata oluşur?

    C: wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qp komutunu kullanırken programın adresi doğru tanımlamasına ve hataları önlemeye yardımcı olmak için indirme adresini tek tırnak içine (') alın.

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.

Önemli

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.

xbstream paketi (_xb.qp uzantısı)

Aşağıdaki sıkıştırma açma komutunu çalıştırırken test_xb.qp yerine yedek dosyanızın adını ve /var/mysql_bkdata/ yerine oluşturduğunuz yedek açma yolunu yazın.

### MySQL 8.0
qpress -do  test_xb.qp | /u01/xtrabackup80/bin/xbstream -x -v -C /var/mysql_bkdata/

### MySQL 5.5/5.6/5.7
qpress -do  test_xb.qp | xbstream -x -v -C /var/mysql_bkdata/

xbstream paketi (_qp.xb uzantısı)

Aşağıdaki sıkıştırma açma komutunu yürütürken test_qp.xb yerine yedek dosyanızın adını ve /var/mysql_bkdata/ yerine oluşturduğunuz sıkıştırma açma yolunu yazın.

## Step 1: Unpack the file
cat test_qp.xb | xbstream -x -v -C /var/mysql_bkdata/

## Step 2: Decompress the file
### MySQL 5.5/5.6/5.7
innobackupex --decompress --remove-original /var/mysql_bkdata/

### MySQL 8.0
/u01/xtrabackup80/bin/xtrabackup --decompress --remove-original --target-dir=/var/mysql_bkdata/

tar paketi (.tar.gz uzantısı)

Aşağıdaki sıkıştırma açma komutunu çalıştırırken test.tar.gz yerine yedek dosya adınızı ve /var/mysql_bkdata/ yerine oluşturduğunuz yedek açma yolunu yazın.

tar -izxvf test.tar.gz -C /var/mysql_bkdata/

xbstream paketi (.xb.gz uzantısı)

Aşağıdaki sıkıştırma açma komutunu çalıştırırken test.xb.gz yerine yedek dosyanızın adını ve /var/mysql_bkdata/ yerine oluşturduğunuz sıkıştırma açma yolunu yazın.

### MySQL 8.0
gzip -d -c test.xb.gz | /u01/xtrabackup80/bin/xbstream -x -v -C /var/mysql_bkdata/

### MySQL 5.5/5.6/5.7
gzip -d -c test.xb.gz | xbstream -x -v -C /var/mysql_bkdata/

Sıkıştırma Açma SSS

  • S: İndirilen bir yedek dosyasının sıkıştırmasını açarken hata oluşursa ne yapmalıyım?

    C: Hatayı gidermek için aşağıdaki öğeleri kontrol edin:

    İndirilen dosyanın fiziksel yedek dosyası olduğunu doğrulayın.

    Kaydedilen sıkıştırılmış dosyanın doğru dosya adı sonekine sahip olduğunu doğrulayın (sonek, URL'deki gibi xb.qp, .tar.gz, .xb.gz veya _qp.xb olmalıdır).

    Dosya formatı için doğru sıkıştırma açma komutunu kullanın.

    Yaygın hatalar:

    • Sıkıştırma açma komutunu çalıştırırken sh: qpress: command not found hatası bildirilir.

      Çözüm: qpress aracının kendi yönettiğiniz veritabanı sunucusunda yüklü olduğundan emin olmak için Ön Koşullar bölümüne bakın.

    • _qp.xb uzantılı xbstream paketinin sıkıştırmasını açarken innobackupex not found hatası oluşur.

      Çözüm: Percona XtraBackup'ın kendi yönettiğiniz veritabanı sunucusunda yüklü olduğundan emin olmak için Ön Koşullar bölümüne bakın.

    • _qp.xb sonekli xbstream paketi dosyasını cat komutuyla paketinden çıkarırken can't change to dir to xx( errorcode:no such file or directory) hatası bildirilir.

      Çözüm: Bu hata yanlış dosya adı veya yolu anlamına gelir. Komutunuzdaki dosya adı ve yolunu doğrulayın.

Adım 3: Verileri geri yükleyin

Önemli

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

  1. 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-file

    Bir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.

    RDS MySQL yedek dosyası backup-my.cnf adlı 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/.

  2. Kendi yönettiğiniz veritabanınızın veri dizinini (datadir) değiştirin.

    1. Veritabanı yapılandırma dosyasını düzenleyin.

      sudo vim /etc/my.cnf

      Veritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.

    2. Düzenleme moduna girmek için i tuşuna basın ve datadir parametresini /var/mysql_newdata olarak ayarlayın.

      datadir = /var/mysql_newdata

      mysql_newdata kendi yönettiğiniz veritabanı için oluşturduğunuz yeni veri dizinidir. Ön Koşullar bölümünde oluşturulmuştur.

    3. Yeni veri dizinine izinler verin.

      chown -R mysql:mysql /var/mysql_newdata 
    4. Düzenleme modundan çıkmak için Esc tuşuna basın ve kaydetmekten çıkmak için :wq! girin.

  3. 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ın my.cnf dosyası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

  1. 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-file

    Bir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.

    RDS MySQL yedek dosyası yedek açma dizininde bulunan backup-my.cnf adlı bir yapılandırma dosyası içerir: /var/mysql_bkdata/.


    --apply-log

    XtraBackup aracı için hazırlama komutu.

    Komutun ardından yedek dosyalarının depolanacağı dizin, yani yedek açma dizini /var/mysql_bkdata/ gelir.

  2. Kendi yönettiğiniz veritabanı yapılandırma dosyası my.cnf dosyasını değiştirin.

    1. Veritabanı yapılandırma dosyasını düzenleyin.

      sudo vim /etc/my.cnf

      Veritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.

    2. Düzenleme moduna girmek için i tuşuna basın ve datadir parametresini /var/mysql_newdata olarak değiştirin.

      datadir = /var/mysql_newdata

      mysql_newdata kendi yönettiğiniz veritabanı için oluşturulan yeni veri dizinidir. Hazırlıklar bölümünde oluşturulmuştur.

    3. my.cnf dosyasına aşağıdaki içeriği ekleyin.

      innodb_undo_tablespaces=2
      innodb_undo_directory=/var/mysql_newdata
      Önemli

      innodb_undo_tablespaces parametresinin değeri /var/mysql_bkdata/backup-my.cnf dosyasındaki değerle eşleşmelidir. Değeri sorgulamak için cat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespaces komutunu çalıştırabilirsiniz.

    4. Düzenleme modundan çıkmak için Esc tuşuna basın ve kaydetmekten çıkmak için :wq! girin.

  3. 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ın my.cnf dosyasından belirtilen veri dizini (datadir) olan veri geri yükleme hedef yolunu alın.


    --copy-back

    XtraBackup 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

  1. 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-file

    Bir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.

    RDS MySQL yedek dosyası yedek açma dizininde bulunan backup-my.cnf adlı bir yapılandırma dosyası içerir: /var/mysql_bkdata/.


    --apply-log

    XtraBackup aracı için hazırlama komutu.

    Bu komuttan sonra yedek dosyalarını depolayacağınız dizini belirtin: yedek açma dizini /var/mysql_bkdata/.

  2. Kendi yönettiğiniz veritabanınızın veri dizinini (datadir) değiştirin.

    1. Veritabanı yapılandırma dosyasını düzenleyin.

      sudo vim /usr/my.cnf

      Veritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.

    2. Düzenleme moduna girmek için i tuşuna basın ve datadir parametresini ekleyin.

      datadir = /var/mysql_newdata

      mysql_newdata kendi yönettiğiniz veritabanı için oluşturduğunuz yeni veri dizinidir. Hazırlıklar bölümünde oluşturulmuştur.

    3. Düzenleme modundan çıkmak için Esc tuşuna basın ve ardından kaydetmekten çıkmak için :wq! girin.

  3. 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ın my.cnf dosyasında veri dizini (datadir) parametresinden veri geri yükleme hedef yolunu alın.


    --copy-back

    XtraBackup 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

  1. 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-file

    Bir yapılandırma dosyasından varsayılan MySQL seçeneklerini ayarlar.

    RDS MySQL yedek dosyası yedek açma dizininde bulunan backup-my.cnf adlı bir yapılandırma dosyası içerir: /var/mysql_bkdata/.


    --apply-log

    XtraBackup aracı için hazırlama komutu.

    Komutun ardından yedek dosyalarının depolanacağı dizin, yani yedek açma dizini /var/mysql_bkdata/ gelir.

  2. Kendi yönettiğiniz veritabanı yapılandırma dosyası my.cnf dosyasını değiştirin.

    1. Veritabanı yapılandırma dosyasını düzenleyin.

      sudo vim /etc/my.cnf

      Veritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.

    2. Düzenleme moduna girmek için i tuşuna basın ve datadir parametresini ekleyin.

      datadir = /var/mysql_newdata

      mysql_newdata kendi yönettiğiniz veritabanı için oluşturulan yeni veri dizinidir. Hazırlıklar bölümünde oluşturulmuştur.

    3. my.cnf dosyasına aşağıdaki içeriği ekleyin.

      innodb_log_file_size=1048576000
      Önemli

      innodb_log_file_size parametresinin değeri /var/mysql_bkdata/backup-my.cnf dosyasındaki değerle aynı olmalıdır. Değeri sorgulamak için cat /var/mysql_bkdata/backup-my.cnf | grep innodb_log_file_size komutunu kullanabilirsiniz.

    4. Düzenleme modundan çıkmak için Esc tuşuna basın ve kaydetmekten çıkmak için :wq! girin.

  3. 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ın my.cnf dosyasındaki veri dizini (datadir) ayarından alın.


    --copy-back

    XtraBackup 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

  • S: Sistem xtrabackup: Unknown error 3613 hatasını döndürüyor. Bunu nasıl çözebilirim?

    C: Percona XtraBackup'ı en son sürüme güncelleyin ve tekrar deneyin.

  • S: Sistem Original data directory /var/mysql_newdata is not empty! hatasını döndürüyor. Ne yapmalıyım?

    C: Klasördeki dosyaları temizlemek için sudo rm -rf /var/mysql_newdata/* komutunu kullanın ve ardından geri yükleme işlemini yeniden deneyin.

  • S: Sistem InnodDB: Encryption information in datafile: ./xxx.ibd can't be decrypted, please check if a keyring plugin is loaded and initialized successfully. hatasını döndürüyor. Ne yapmalıyım?

    Örneğinizde TDE'nin etkin olup olmadığını kontrol edin:

    • TDE etkinse şifreli tabloları kontrol edin. Ön Koşullar bölümünde açıklandığı gibi şifreli tabloları Şeffaf Veri Şifrelemesi (TDE) Yapılandırma talimatlarını izleyerek şifresini çözün ve ardından bu konudaki talimatları izleyerek verileri geri yükleyin.

    • TDE etkin değilse Ön Koşullar bölümünde açıklandığı gibi doğru Percona XtraBackup sürümünün yüklü olduğundan emin olun.

  • S: İndirilen bir yedek dosyası TDE ile şifrelenmiş veriler içeriyor ve bu durum veri geri yüklemenin başarısız olmasına neden oluyor. Çözüm nedir?

    C: İndirilen şifreli yedek dosyasından veri geri yükleyemezsiniz. RDS örneğindeki şifreli tablolar geri yükleme hatalarına neden olur. Ön Koşullar bölümünde açıklandığı gibi tabloları Şeffaf Veri Şifrelemesi (TDE) Yapılandırma talimatlarını izleyerek şifresini çözün, yeni bir yedek oluşturun ve ardından verileri tekrar geri yükleyin.

  • S: Geri yükleme sırasında oluşan innobackupex: File 'undo001' not found (Errcode: 2 - No Such file or directory) hatasını nasıl çözerim?

    C: Undo dosyası, veritabanı sürümleri arasında değişen bir sistem dosyasıdır. Kendi yönettiğiniz veritabanının sürümüyle ApsaraDB RDS for MySQL veritabanının sürümünün aynı olup olmadığını kontrol edin.

Adım 4: Veritabanını başlatın

MySQL 8,0 ve 5,7

  1. (İ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 1 ise kendi yönettiğiniz veritabanının my.cnf yapılandırma dosyasını değiştirmeniz gerekir.

    1. Veritabanı yapılandırma dosyasını düzenleyin.

      sudo vim /etc/my.cnf

      Veritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.

    2. Düzenleme moduna girmek için i tuşuna basın ve aşağıdaki içeriği ekleyin.

      lower_case_table_names=1
    3. Düzenleme modundan çıkmak için Esc tuşuna basın ve kaydetmekten çıkmak için :wq! girin.

  2. Veri dizinine izinler verin.

    sudo chown -R mysql:mysql /var/mysql_newdata
  3. 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.cnf kullanı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

  1. (İ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 1 ise kendi yönettiğiniz veritabanının my.cnf yapılandırma dosyasını değiştirmeniz gerekir.

    1. Veritabanı yapılandırma dosyasını düzenleyin.

      sudo vim /usr/my.cnf

      Veritabanı yapılandırma dosyasının yolunu bulmak için Ön Koşullar bölümüne bakın.

    2. Düzenleme moduna girmek için i tuşuna basın ve aşağıdaki içeriği ekleyin.

      lower_case_table_names=1
    3. Düzenleme modundan çıkmak için Esc tuşuna basın ve kaydetmekten çıkmak için :wq! girin.

  2. Veri dizinine izinler verin.

    sudo chown -R mysql:mysql /var/mysql_newdata
  3. 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.cnf kullanı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_newdata kullanılır. Veritabanının veri dizinini belirlemek için Ön Koşullar bölümüne bakabilirsiniz.

MySQL 5,5

  1. Veri dizinine izinler verin.

    sudo chown -R mysql:mysql /var/mysql_newdata
  2. 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.cnf kullanı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_newdata kullanılır. Veritabanınızın veri dizinini onaylamak için Ön Koşullar bölümüne bakabilirsiniz.

Başlatma SSS

  • S: Ubuntu işletim sisteminde mysqld: [ERROR] Failed to open required defaults file: /etc/my.cnf hatasına ne sebep olur ve nasıl çözülür?

    C: Bu hata Ubuntu güvenlik programı AppArmor'dan kaynaklanır. AppArmor ayarlarını değiştirmek için apt install -y apparmor-utils ve aa-complain /usr/sbin/mysqld komutlarını kullanın.

  • S: Geri yükleme tamamlandıktan sonra kendi yönettiğiniz bir veritabanı başlatılamıyorsa veya kullanım sırasında error 1105 Unknown error ile karşılaşırsanız ne yapmalısınız?

    C: Veritabanı depolama motorunu değiştirmek için aşağıdaki SQL deyimlerini çalıştırın:

    USE mysql;
    ALTER TABLE proc engine=myisam;
    ALTER TABLE event engine=myisam;
    ALTER TABLE func engine=myisam;
    Not

    ERROR 1067 (42000): Invalid default value for 'modified' hatasını alırsanız önce SET SQL_MODE='ALLOW_INVALID_DATES'; deyimini yürütün.

  • S: Veritabanı geri yüklendikten sonra root parolası nedir?

    C: Root parolasını alma yöntemi sürüme göre değişir:

    • Örneğiniz MySQL 5,7 veya 8,0 çalıştırıyorsa root parolası kendi yönettiğiniz veritabanınızın root parolasıyla aynıdır.

    • Örneğiniz MySQL 5,5 veya 5,6 çalıştırıyorsa veritabanını kullanabilmeniz için root parolasını sıfırlamanız gerekir. Daha fazla bilgi için resmi belgelere bakın.

  • S: Başlatma sırasında InnodDB: Assertion failure in thread 140xxx in file page0zip.ic xxx hatası oluşuyor. Bunu nasıl çözebilirim?

    C: Bu hata yetersiz disk alanından kaynaklanıyor olabilir. Kendi yönettiğiniz veritabanı sunucunuzun diskini genişletmeyi deneyin ve ardından tekrar deneyin.

  • S: Başlatma sırasında oluşan [ERROR] Failed to open the relay log xxx, [ERROR] Slave: Failed to initialize the master info xxx veya [ERROR] Failed to create or recover replication info repositories. hatalarını nasıl çözerim?

    C: Bu hatalar RDS örneğinin yüksek kullanılabilirlik (HA) için yapılandırılmasından ancak yerel kendi yönettiğiniz veritabanının birincil ve ikincil düğümler kullanmamasından kaynaklanır. Bu hatalar başlatmayı etkilemediğinden güvenle göz ardı edebilirsiniz.

  • S: Başlatma sırasında oluşan [ERROR] Data Dictionary initialization failed hatasını nasıl çözebilirim?

    C: Bu hata uyumsuz işletim sisteminden kaynaklanıyor olabilir. ApsaraDB RDS'nin temel işletim sistemi Linux'tur. Veritabanını geri yüklemek için Linux tabanlı bir işletim sistemi kullanmanız önerilir; farklı bir işletim sistemi kullanmak sürüm uyumluluk sorunlarına neden olabilir.

  • S: sudo systemctl start mysqld komutu yerel MySQL hizmetini başlatamadı. Ne yapmalıyım?

    C: Bu durum Linux'ta SELinux'un Enforcing modunda olmasından kaynaklanıyor olabilir. SELinux'un mevcut durumunu kontrol etmek için getenforce komutunu çalıştırabilirsiniz.

    • Bu bir geliştirme veya test ortamıysa SELinux modunu Permissive moduna değiştirmenizi öneririz. Ardından sudo systemctl start mysqld kullanarak MySQL'i başlatmayı deneyin.

    • Üretim ortamları için SELinux günlüklerini kontrol ederek başlatma hatasının özel nedenini belirlemenizi ve ardından bu bilgilere dayanarak SELinux ilkesini düzeltmenizi öneririz.

Adım 5: Bağlanın ve doğrulayın

  1. 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 -p
    Not
    • Bu 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-tables parametresini 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.

  2. 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

  • S: Geri yüklemeden sonra verilerimdeki zaman değerleri neden yerel saatle tutarsız ve bunu nasıl düzeltebilirim?

    C: Kendi yönettiğiniz veritabanının saat dilimi RDS örneğinkinden farklıysa kendi yönettiğiniz veritabanının time_zone parametresini RDS örneğiyle eşleşecek şekilde değiştirmeniz gerekir. RDS örneğinin time_zone parametresi system olarak ayarlanmışsa RDS örneğinin bulunduğu bölgeyi kontrol edin ve kendi yönettiğiniz veritabanının time_zone parametresini o bölgenin saat dilimine ayarlayın.

  • S: Kendi yönettiğiniz bir veritabanına bağlanırken Access denied for user 'XXX' hatasını alıyorum. Bunu nasıl çözebilirim?

    C: Orijinal ApsaraDB RDS for MySQL örneğinden doğru hesabı ve parolayı kullandığınızı doğrulayın.

  • S: Kendi yönettiğiniz veritabanına bağlanırken parolamı unuttum. Ne yapmalıyım?

    C: Hesabınızı veya parolanızı unutursanız MySQL işlemini --skip-grant-tables parametresiyle başlatın. Bu eylem başlatma sırasında izin kontrollerini atlayarak hesap veya parola olmadan veritabanında oturum açmanıza olanak tanır. --skip-grant-tables parametresini kullanmanın bir güvenlik riski olduğunu lütfen unutmayın. Oturum açtıktan hemen sonra hesabınızı ve parolanızı değiştirmelisiniz.

  • S: Kendi yönettiğiniz veritabanına bağlandıktan sonra yalnızca sistem veritabanlarını veya bazı veritabanlarını görebiliyorum. Bununla nasıl başa çıkabilirim?

    C: Veritabanını yeniden başlatın ve ardından veritabanlarını görüntülemek için orijinal RDS örneğinden root hesabı veya yüksek ayrıcalıklı bir hesap kullanarak bağlanın.

Başvuru Kaynakları

SSS

İndirilen RDS for MySQL yedeğini başka bir RDS for MySQL örneğine geri yükleyebilir miyim?

Hayır, bu işlem doğrudan desteklenmez. Verileri başka bir örneğe geri yüklemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

Belirli bir zaman aralığındaki verileri kendi yönettiğim bir veritabanına nasıl geri yükleyebilirim?

Konsoldan belirtilen zaman aralığı için günlük yedeğini indirebilir ve kendi yönettiğiniz veritabanına geri yükleyebilirsiniz. Daha fazla bilgi için bkz. Yedekleri indirme ve Belirli bir zamana noktasında kurtarma.

RDS for MySQL örneğinden kendi yönettiğim bir veritabanına verileri nasıl yedeklerim?

RDS Basic Edition örneğinden verileri nasıl geri yükler veya geçiririm?

RDS Basic Edition örnekleri yalnızca anlık görüntü yedeklerini destekler. Aşağıdaki yöntemlerden birini kullanabilirsiniz:

Birden çok RDS for MySQL örneğinden alınan fiziksel yedekleri tek bir kendi yönettiğim veritabanına geri yükleyebilir miyim?

Hayır, bu desteklenmez. Her fiziksel yedeği ayrı bir kendi yönettiğiniz veritabanına geri yüklemeniz gerekir. Verileri geri yükledikten sonra verileri birleştirmek için DTS veya mysqldump kullanabilirsiniz. Daha fazla bilgi için bkz. DTS kullanarak kendi yönettiğiniz MySQL veritabanını RDS for MySQL örneğine geçirme veya mysqldump kullanarak MySQL verilerini geçirme.

Kaynak örnekte ayrıcalıklı bir hesap oluşturursam fiziksel yedeği kendi yönettiğim bir veritabanına geri yükledikten sonra ayrıcalıklarını korur mu?

Evet. Yedek hesap izinlerini korur ve geri yükleme işlemi bunları değiştirmez.