PostgreSQL/MySQL Veritabanı Yedeklemesi Bulut Depolama Alanına | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

PostgreSQL/MySQL Veritabanı Yedeklemesi Bulut Depolama Alanına

Giriş

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

Bu kılavuzda, PostgreSQL ve MySQL veritabanlarının nasıl yedekleneceği, rsync veya scp kullanılarak uzak bir Linux sunucusunda yedeklerin nasıl depolanacağı ve rclone kullanılarak bulut depolama alanına nasıl yükleneceği açıklanmaktadır.

PostgreSQL Yedekleme

PostgreSQL, veritabanının tam bir kopyasını SQL dosyası olarak oluşturmanıza olanak tanıyan standart pg_dump yardımcı programını sunar.

Yedek 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 geçerli tarihi ekler

Yer kazanmak 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 yardımcı programını kullanın.

Tek bir veritabanının yedeklenmesi örneği:

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

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

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'in CloudBox'ı, birden fazla bağlantı protokolünü (rsync, scp, SSH üzerinden rsync, WebDAV dahil) destekleyen bir bulut depolama çözümüdür. CloudBox'ın kullanım kolaylığı, veri yükleme, yönetme ve geri alma işlemlerini önemli ölçüde basitleştirir.

Bunu, veritabanı yedeklerinizi depolamak için uzak bir konum olarak kullanabilirsiniz. Aşağıda kurulum ayrıntıları ve komut dosyası örnekleri yer almaktadır.

Adım 1. CloudBox'a Erişim Sağlama

Web sitemizden ( introserv.com) mevcut CloudBox planlarından birini sipariş edin.

Ödeme yapıldıktan sonra hizmet birkaç dakika içinde kullanıma hazır hale gelir. Hizmet etkinleştirildikten sonra bağlantı bilgilerinizi 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 (önerilir):

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

Burada:

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

Otomatik işlem için SSH anahtarlarını kurmanız tavsiye edilir:

  1. Bir açık anahtar oluşturun:

    ssh-keygen -t rsa

  2. Oluşturulan açık 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.

Bundan sonra, rsync şifre sorulmadan çalışacaktır; bu, cron işleri için kullanışlıdır.

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'u kullanmak istiyorsanız, aşağıdaki şekilde yapılandırın:

  1. rclone'u yükleyin:

    sudo apt install rclone

  2. Yapılandırmaya başlayın:

    rclone config

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

  • n — yeni bir uzak
  • adını oluşturmak için, örneğin cloudbox
  • depolama türü — sftp veya ssh'yi seçin
  • sunucu adresini box#####.introserv.cloud biçiminde, kullanıcı adını box##### biçiminde, bağlantı noktasını (bu durumda SSH bağlantı noktası — varsayılan 22) ve dizin yolunu
  • yetkilendirme işlemini gerçekleştirin (gerekirse)

Bağlantıyı test edin:

rclone ls cloudbox:/path_to_cloudbackups/

Yedekleme verilerini kopyalayın:

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

Yerel olarak bulunmayan dosyaların silinmesiyle senkronize edin:

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

Gerekirse — aktarımdan önce dosyaları şifreleyin:

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

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

Örneğin, /usr/local/bin/db_backup_cloudbox.sh komut dosyasını 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 # Upload to CloudBox rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # Upload to CloudBox (rclone option, uncomment if used) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # Remove backups older than 7 days find /backup/ -type f -mtime +7 -delete

Ardından bir cron işi ekleyin (örnekte, komut dosyası her gün saat 02:00'da çalışır):

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

Önemli hususlar:

  • CloudBox bağlantısının istikrarlı olduğundan ve bant genişliğinin yeterli olduğundan emin olun.
  • İzlemeyi ayarlayın: dosyaların gerçekten kopyalandığını doğrulayın.
  • CloudBox yedeklemelerinden geri yüklemeyi düzenli olarak test edin.
  • Gizli veriler kullanıyorsanız, yedekleri şifrelemeyi düşünün.

SSH aracılığıyla Uzak bir Linux Sunucusuna Kopyalama

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

rsync kullanımı (yalnızca değişiklikleri kopyaladığı için önerilir):

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 etki alanı adı
  • /remote_backups/ — yedeklemelerin depolanacağı yol

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

# Generate SSH keys: ssh-keygen -t rsa # Copy key to remote server: ssh-copy-id [email protected]

Bundan sonra, rsync şifre sorulmadan çalışacaktır; bu, cron işleri için kullanışlıdır.

rsync'e alternatif — scp kullanımı:

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

rclone aracılığıyla Bulut Depolama Alanına Kopyalama

Yedeklemeleri bulutta (Google Drive, Dropbox, Amazon S3 vb.) depolamanız gerekiyorsa, çeşitli bulut hizmetleriyle verileri senkronize etmek 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:

  • Yeni bir bağlantı oluşturmak için n'yi seçin
  • Bir ad girin, örneğin " remote"
  • Depolama türünü seçin (örneğin s3, drive, dropbox)
  • Erişim anahtarlarını girin veya tarayıcı üzerinden yetkilendirin

Bağlantıyı kontrol edin:

rclone ls remote:path

Yedeklemeleri buluta yükleme örneği:

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

Senkronizasyon komutu (yerel olarak bulunmayan dosyaları siler):

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

Yüklemeden önce dosyaları şifreleyebilirsiniz:

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

Güvenlik ve Kontrol

  • Yedeklemeleri en az iki yerde saklayın — yerel ve uzaktan.
  • Yedeklemelerin başarıyla oluşturulduğunu ve yüklendiğini düzenli olarak kontrol edin.
  • Ayda en az bir kez test geri yüklemesi yapın.
  • Genel bulut hizmetleri kullanıyorsanız, hassas veriler içeren dosyaları şifreleyin:

    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.

Yedeklemeden 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 ancak son derece önemli bir işlemdir. En güvenilir altyapı bile sizi insan hatasından veya teknik arızalardan koruyamaz. En iyi strateji, en az bir harici sunucuda ve bulutta depolanan düzenli otomatik yedeklemeler ve periyodik kurtarma testleridir.

pg_dump, mysqldump, rsync, rclone ve cron araçlarını bir arada kullanarak, ücretli üçüncü taraf yazılımlar olmadan güvenilir ve tamamen otomatik bir yedekleme sistemi kurabilirsiniz. Bu yaklaşım, uygulaması kolaydır ve tüm Linux sistemleri için 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