Veritabanı Yedekleme: PostgreSQL, MySQL, rsync, rclone, CloudBox | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Veritabanı Yedekleme: PostgreSQL, MySQL, rsync, rclone, CloudBox

Veritabanı yedekleme, web siteleri ve uygulamaların güvenliğini ve güvenilirliğini sağlamak için en önemli prosedürlerden biridir. Veri kaybı birçok nedenden dolayı meydana gelebilir: sunucu arızası, yönetici hatası, güncelleme sorunları, kötü amaçlı yazılımlar veya basitçe insan hatası. Düzenli yedeklemeler, projenizi veri kaybı olmadan hızlı bir şekilde geri yüklemenizi sağlar.

Bu kılavuz, PostgreSQL ve MySQL veritabanlarını nasıl yedekleyeceğinizi, yedekleri rsync veya scp kullanarak uzak bir Linux sunucusunda nasıl depolayacağınızı ve rclone kullanarak bulut depolamaya nasıl yükleyeceğinizi açıklar.

PostgreSQL Yedekleme

PostgreSQL, bir SQL dosyası olarak tam bir veritabanı kopyası oluşturmanıza olanak tanıyan standart pg_dump aracını sağlar.

Yedekleme oluşturma örneği:

pg_dump -U myuser -h localhost mydatabase > /backup/mydatabase_$(date +%F).sql

Parametrelerin açıklaması:

  • -U myuser — veritabanı kullanıcı adı;
  • -h localhost — sunucu adresi (yerel ise atlanabilir);
  • mydatabase — veritabanı adı;
  • /backup/... — hedef yol;
  • $(date +%F) — dosya adına mevcut tarihi ekler.

Alan tasarrufu sağlamak için yedeği hemen sıkıştırın:

pg_dump -U myuser mydatabase | gzip > /backup/mydatabase_$(date +%F).sql.gz

Sunucudaki tüm veritabanlarını yedeklemek için:

pg_dumpall -U myuser | gzip > /backup/postgres_all_$(date +%F).sql.gz

MySQL Yedekleme

MySQL ve MariaDB için mysqldump aracını kullanın.

Tek bir veritabanı yedekleme örneği:

mysqldump -u myuser -p mydatabase > /backup/mydatabase_$(date +%F).sql

Bu komutu çalıştırdığınızda, sistem kullanıcı şifresini isteyecektir.

Tüm veritabanlarını yedeklemek için:

mysqldump -u myuser -p --all-databases | gzip > /backup/mysql_all_$(date +%F).sql.gz

Saklı yordamlar ve tetikleyicileri dahil etmek için --routines --triggers seçeneklerini ekleyin.

CloudBox'a Yedekleme

INTROSERV'den CloudBox, birden fazla bağlantı protokolünü destekleyen (rsync, scp, SSH üzerinden rsync, WebDAV dahil) bir bulut depolama çözümüdür. CloudBox'un kullanım kolaylığı, veri yükleme, yönetme ve geri alma görevlerini önemli ölçüde basitleştirir.

Veritabanı yedeklerinizi depolamak için uzak bir konum olarak kullanabilirsiniz. Aşağıda kurulum detayları ve script örnekleri bulunmaktadır.

Adım 1. CloudBox'a Erişim Alma

Web sitemizden mevcut CloudBox planlarından birini sipariş edin — https://introserv.com/solutions/cloudbox/

Ödeme sonrası, hizmet birkaç dakika içinde kullanılabilir hale gelir. Hizmet aktivasyonundan sonra bağlantı detaylarını alacaksınız:

  • sunucu adresi (box$$$$$.introserv.cloud)
  • kullanıcı adı (box$$$$$) ve şifre

Adım 2. rsync veya scp Kullanarak Bağlantı ve Senkronizasyon

rsync kullanarak (önerilen):

rsync -avz -e "ssh -p 22" /backup/ user@cloudbox-server:/path_to_cloudbackups/

Burada:

  • user — CloudBox kullanıcı adı;
  • cloudbox-server — bağlantı adresi;
  • /path_to_cloudbackups/ — CloudBox üzerindeki yol.

Otomatik çalışma için SSH anahtarlarını ayarlamak önerilir.

1) Bir genel anahtar oluşturun:

ssh-keygen -t rsa

2) Oluşturulan genel anahtar dosyasının içeriğini, örneğin /root/.ssh/id_rsa.pub panoya kopyalayın.

3) "Profil" bölümüne gidin (sağ üstteki kullanıcı simgesinin üzerine gelin), anahtar içeriğini "Genel anahtarlar" alanına ekleyin ve ayarları kaydedin.

CloudBox profil ayarları
CloudBox genel anahtarlar alanı

Bundan sonra, rsync şifre istemleri olmadan çalışacaktır, bu da cron işleri için uygundur.

Alternatif — scp:

scp /backup/mysql_mydatabase.sql.gz user@cloudbox-server:/path_to_cloudbackups/

Adım 3. rclone Kullanarak Bağlantı ve Senkronizasyon

CloudBox ile etkileşim için rclone kullanmak istiyorsanız, aşağıdaki gibi yapılandırın.

1) rclone'u yükleyin:

sudo apt install rclone

2) Yapılandırmayı başlatın:

rclone config

Kurulum sırasında şunları seçin:

  • n — yeni bir uzak oluşturmak için;
  • isim, örneğin cloudbox;
  • depolama türü — sftp veya ssh seçin;
  • sunucu adresini box$$$$$.introserv.cloud formatında, kullanıcı adını box$$$$$ formatında, portu (SSH — varsayılan 22), dizin yolunu girin;
  • yetkilendirme yapın (gerekirse).

Bağlantıyı test edin:

rclone ls cloudbox:/path_to_cloudbackups/

Yedek veri kopyalayın:

rclone copy /backup/ cloudbox:/db-backups/ --progress

Yerel olarak eksik dosyaların silinmesiyle senkronize edin:

rclone sync /backup/ cloudbox:/db-backups/ --progress

Gerekirse — transfer öncesi dosyaları şifreleyin:

rclone copy /backup/ cloudbox:/db-backups/ --progress --crypt

Adım 4. CloudBox ile Otomasyon Script Örneği

/usr/local/bin/db_backup_cloudbox.sh scriptini oluşturun:

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # CloudBox'a Yükleme rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # CloudBox'a Yükleme (rclone seçeneği, kullanılıyorsa yorumdan çıkarın) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # 7 günden eski yedekleri kaldır find /backup/ -type f -mtime +7 -delete

Daha sonra bir cron işi ekleyin (script her gün saat 2:00'de çalışır):

0 2 * * * /usr/local/bin/db_backup_cloudbox.sh

Önemli hususlar:

  • CloudBox'a bağlantının kararlı olduğundan ve bant genişliğinin yeterli olduğundan emin olun.
  • İzleme ayarlayın: dosyaların gerçekten kopyalandığını doğrulayın.
  • CloudBox yedeklerinden periyodik olarak geri yükleme testi yapın.
  • Gizli veriler kullanıyorsanız — yedekleri şifrelemeyi düşünün.

SSH Üzerinden Uzak Linux Sunucusuna Kopyalama

Yedekleri sadece yerel olarak değil, başka bir sunucuda da depolamak istiyorsanız, rsync veya scp kullanın.

rsync kullanarak (önerilen, çünkü sadece değişiklikleri kopyalar):

rsync -avz -e "ssh -p 22" /backup/ [email protected]:/remote_backups/

Parametre açıklaması:

  • user — uzak sunucudaki kullanıcı adı;
  • remote.server — uzak sunucunun IP adresi veya alan adı;
  • /remote_backups/ — yedeklerin depolanacağı yol.

Şifre girmeden çalışmak için SSH anahtarlarını yapılandırın.

SSH anahtarları oluşturun:

ssh-keygen -t rsa

Anahtarı uzak sunucuya kopyalayın:

ssh-copy-id [email protected]

Bundan sonra, rsync şifre istemleri olmadan çalışacaktır, bu da cron işleri için uygundur.

Alternatif — scp kullanarak:

scp /backup/mysql_mydb.sql.gz [email protected]:/remote_backups/

rclone ile Bulut Depolamaya Kopyalama

Yedekleri bulutta (Google Drive, Dropbox, Amazon S3, vb.) depolamanız gerekiyorsa, çeşitli bulut hizmetleriyle veri senkronizasyonu için evrensel bir araç olan rclone'u kullanın.

Kurulum:

sudo apt install rclone

Yapılandırma:

rclone config

Etkileşimli kurulum adımlarını izleyin:

  1. Yeni bir bağlantı oluşturmak için n seçin;
  2. Bir isim girin, örneğin remote;
  3. Depolama türünü seçin (örneğin s3, drive, dropbox);
  4. Erişim anahtarlarını girin veya tarayıcı üzerinden yetkilendirin.

Bağlantıyı kontrol edin:

rclone ls remote:path

Yedekleri buluta yükleme örneği:

rclone copy /backup/ remote:db-backups/ --progress

Senkronizasyon komutu (yerel olarak eksik dosyaları kaldırır):

rclone sync /backup/ remote:db-backups/ --progress

Ayrıca yüklemeden önce dosyaları şifreleyebilirsiniz:

rclone copy /backup/ remote:db-backups/ --progress --crypt

Güvenlik ve Kontrol

  • Yedekleri en az iki konumda saklayın — yerel ve uzak.
  • Yedeklerin başarıyla oluşturulduğunu ve yüklendiğini düzenli olarak kontrol edin.
  • En az ayda bir kez test geri yüklemeleri yapın.
  • Hassas veriler içeren dosyaları şifreleyin, eğer kamuya açık bulutlar kullanıyorsanız:

gpg -c /backup/mysql_mydatabase.sql.gz

  • /backup için uygun dosya izinlerini sağlayın ve veritabanı kimlik bilgilerinizi güvence altına alın.

Yedekten Geri Yükleme

PostgreSQL:

gunzip < backup.sql.gz | psql -U myuser -d mydatabase

MySQL:

gunzip < backup.sql.gz | mysql -u myuser -p mydatabase

Sonuç

PostgreSQL ve MySQL veritabanlarını yedeklemek basit ama kritik öneme sahip bir prosedürdür. En güvenilir altyapı bile sizi insan hatası veya teknik arızalardan koruyamaz. En iyi strateji, en az bir dış sunucuda ve bulutta saklanan düzenli otomatik yedeklemeler ve periyodik geri yükleme testleridir.

pg_dump, mysqldump, rsync, rclone ve cron kombinasyonunu kullanarak, herhangi bir ücretli üçüncü taraf yazılımı olmadan güvenilir, tamamen otomatik bir yedekleme sistemi oluşturabilirsiniz. Bu yaklaşım, tüm Linux sistemleri için kolayca uygulanabilir ve uygundur.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA