Büyük Boyutlu .SQL dosyalarını MySQL’e Aktarma

Çoğu zaman, büyük ölçekli bir veritabanını (örneğin 15 GB boyutunda bir SQL dosyası) yerel geliştirme ortamımıza (XAMPP/MariaDB) taşımaya çalıştığımızda büyük sorunlarla karşılaşırız. Özellikle dosya bir de farklı bir veritabanı sisteminden, örneğin PostgreSQL‘den geliyorsa, ERROR 1064 gibi sözdizimi hataları kaçınılmaz olur.

Bu sorunun kesin çözümü, dosyanın içeriğini manuel olarak düzenlemek yerine, DBeaver gibi güçlü bir araç kullanarak veriyi doğrudan kaynaktan hedefe kopyalamaktır.

İşte 15 GB boyutundaki PostgreSQL dosyasını XAMPP’a nasıl başarılı bir şekilde taşıdığımızın adımları.


1. Neden PhpMyAdmin Çalışmaz?

Büyük SQL dosyalarını PhpMyAdmin’e yükleyememenizin iki temel nedeni vardır:

  1. PHP Limitleri: XAMPP üzerinde çalışan PHP’nin dosya boyutu (upload_max_filesize) ve zaman aşımı (max_execution_time) limitleri, 15 GB’lık bir yüklemeye izin vermeyecek kadar düşüktür.
  2. SQL Diyalekti Sorunu: Dosya PostgreSQL’den alındığı için, OWNER TO postgres veya SET client_encoding gibi MariaDB’nin tanımadığı PostgreSQL’e özgü komutlar içerir. Bu komutlar yüklemeyi durdurur.

2. DBeaver Çözümünün Temeli

DBeaver, bu PostgreSQL dosyasındaki komutları çalıştırmaya çalışmak yerine, sadece veriyi ve tablo yapısını okur ve bunu hedef MariaDB veritabanının anlayacağı şekilde dönüştürerek yazar.

İşlem, dosyayı önce kendi doğal ortamına (PostgreSQL) yükleyip, ardından DBeaver ile oradan XAMPP’a kopyalamak şeklinde ilerledi.

Adım 1: PostgreSQL Ortamına Yükleme

İlk olarak 15 GB’lık dosyayı çalışır bir PostgreSQL sunucusuna yükledik. Bu işlem, PostgreSQL’in kendi komut satırı aracı olan psql ile yapıldı.

  • PostgreSQL’de boş bir veritabanı oluşturuldu.
  • Komut satırında (terminalde) psql aracı kullanılarak dosya sorunsuz bir şekilde yüklendi:Bashpsql -U [Postgres Kullanıcı Adı] -d [Veritabanı Adı] -f C:\data_dump.sql

Adım 2: DBeaver Bağlantıları Kurma

Veriler PostgreSQL’e yüklendikten sonra, DBeaver programı açıldı ve iki ayrı bağlantı kuruldu:

  1. Kaynak Bağlantı: Yeni yükleme yapılan PostgreSQL veritabanına.
  2. Hedef Bağlantı: XAMPP üzerinde çalışan MariaDB‘ye (localhost:3306) ve daha önce oluşturulan boş hedef veritabanına.

Adım 3: Veri Aktarımı (Migration)

Asıl sihirli kısım burada gerçekleşti:

  1. DBeaver’da PostgreSQL bağlantısı altındaki tüm tablolar seçildi.
  2. Sağ tıklanarak Veri Aktarımı (Data Transfer) seçeneği başlatıldı.
  3. Hedef olarak MariaDB bağlantısı seçildi.
  4. DBeaver, PostgreSQL’deki tabloları okurken veri tiplerini ve tablo yapısını otomatik olarak MariaDB’ye uyarladı ve veriyi kopyalamaya başladı.

Bu süreç, dosyanın büyüklüğüne bağlı olarak uzun sürse de, manuel düzenleme hatalarına düşmeden 15 GB’lık verinin tamamını XAMPP ortamımıza başarıyla taşımamızı sağladı.

Büyük veritabanı geçişleri için DBeaver gibi çok yönlü bir araç kullanmak, en güvenilir ve en pratik yöntemdir.

Translate »