PostgreSQL ve MySQL Veritabanı Yedekleme ve Geri Yükleme | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

PostgreSQL ve MySQL Veritabanı Yedekleme ve Geri Yükleme

Yedekleme, veri güvenliğini sağlayan ana prosedürlerden biridir. Güvenilir barındırma hizmetleri olsa bile, uygulama hataları, yanlış güncellemeler veya yanlışlıkla veri silme durumları meydana gelebilir.

Bu kılavuzda, standart komut satırı araçları — pg_dump ve mysqldump kullanarak PostgreSQL ve MySQL veritabanlarının nasıl yedeklenip geri yükleneceğini göstereceğiz.

1. PostgreSQL Yedekleme

1.1. pg_dump nedir

pg_dump, mantıksal bir veritabanı yedeği oluşturmak için standart bir PostgreSQL aracıdır. Hem yapıyı (DDL) hem de verileri (DML) daha sonra geri yükleme için kullanılabilecek bir metin SQL dosyasına kaydeder.

1.2. Komut sözdizimi

pg_dump -U <kullanıcı> -h <sunucu> -p <port> -d <veritabanı> -F p -f <dosya_yolu.sql>

1.3. Yedekleme örneği

pg_dump -U myuser -h localhost -d mydatabase -F p -f /backups/mydatabase_$(date +%F).sql

Parametre açıklaması:

  • -U myuser — PostgreSQL kullanıcı adı;
  • -h localhost — sunucu adresi (IP belirtilebilir);
  • -d mydatabase — veritabanı adı;
  • -F p — çıktı formatı (düz — normal SQL);
  • -f — yedeğin kaydedileceği dosya yolu;
  • $(date +%F) — dosya adına mevcut tarihi ekler (ör. 2025-11-03).

1.4. Sıkıştırılmış yedekleme

Dosya boyutunu azaltmak için gzip sıkıştırması kullanabilirsiniz:

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

2. PostgreSQL Veritabanını Geri Yükleme

2.1. psql kullanarak

Bir metin yedeğinden veritabanını geri yüklemek için:

psql -U myuser -d mydatabase -f /backups/mydatabase_2025-11-03.sql

Eğer yedek sıkıştırılmışsa:

gunzip -c /backups/mydatabase_2025-11-03.sql.gz | psql -U myuser -d mydatabase

2.2. Veritabanı yoksa

Önce yeni bir veritabanı oluşturun:

createdb -U myuser newdatabase

psql -U myuser -d newdatabase -f /backups/mydatabase_2025-11-03.sql

3. MySQL Yedekleme

3.1. mysqldump nedir

mysqldump, MySQL dökümleri oluşturmak için standart bir araçtır. Tabloları yeniden oluşturmak ve verileri eklemek için gereken SQL komutlarını kaydeder.

3.2. Komut sözdizimi

mysqldump -u <kullanıcı> -p -h <sunucu> <veritabanı> > <dosya_yolu.sql>

3.3. Yedekleme örneği

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

Parametre açıklaması:

  • -u myuser — MySQL kullanıcı adı;
  • -p — parola istemi;
  • mydatabase — veritabanı adı;
  • > — çıktıyı bir dosyaya yönlendirir.

3.4. Sıkıştırılmış döküm

mysqldump -u myuser -p mydatabase | gzip > /backups/mydatabase_$(date +%F).sql.gz

4. MySQL Veritabanını Geri Yükleme

4.1. SQL dosyasından geri yükleme

mysql -u myuser -p mydatabase < /backups/mydatabase_2025-11-03.sql

4.2. Veritabanı yoksa

Geri yüklemeden önce yeni bir veritabanı oluşturun:

mysql -u myuser -p -e "CREATE DATABASE newdatabase;"

mysql -u myuser -p newdatabase < /backups/mydatabase_2025-11-03.sql

4.3. Sıkıştırılmış dökümden geri yükleme

gunzip -c /backups/mydatabase_2025-11-03.sql.gz | mysql -u myuser -p mydatabase

5. Otomasyon ve Güvenlik Önerileri

5.1. Cron ile Otomatik Yedekleme

Manuel müdahale olmadan düzenli yedekleme işlemleri için cron kullanarak otomasyon kurun.

Temel cron kurulumu:

# Cron düzenleyicisini aç crontab -e

Örneğin bir satır ekleyin:

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

Bu komut, scripti her gün saat 2:00'de çalıştıracaktır.

Gelişmiş bir yaklaşım için bir script oluşturun. /usr/local/bin/db_backup.sh oluşturun:

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL yedekleme pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL yedekleme mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # 7 günden eski yedekleri sil find /backup/ -type f -mtime +7 -delete

Scripti çalıştırılabilir yapın:

chmod +x /usr/local/bin/db_backup.sh

Ve cron'a ekleyin:

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

5.2. Güvenlik ve Depolama En İyi Uygulamaları

  • Sunucu dışı depolama: yedekleri bulut depolama (AWS S3, Google Cloud) veya harici sürücülerde saklayın.
  • Erişim kontrolü: /backups klasörüne erişimi kısıtlayın, çünkü dosyalar gizli veriler içerebilir.

chmod 700 /backup

chmod 600 /backup/*.sql.gz

  • Bütünlük doğrulaması: yedekleme işlevselliğini doğrulamak için aylık test geri yüklemeleri yapın.
  • Gizlilik: yedek dosyaları veritabanı içeriğini içerir — bunları gizli bilgi olarak ele alın.

Sonuç

pg_dump ve mysqldump kullanmak, PostgreSQL ve MySQL veritabanlarını yedeklemenin kolay, güvenilir ve evrensel bir yoludur. Bu araçlar, hem manuel yedeklemeler hem de minimum çabayla otomatikleştirilmiş işlemler için uygundur.

Düzenli yedeklemeler, projenizin istikrarı ve veri güvenliği için anahtardır.

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