Red Kit

WFN Üye
Konular
718
Mesajlar
718
Çözüm
0
Ticaret Puanı
0
Üyelik
25 Gün
Konum
Adana
Web Sitesi
Var
Alanı
Makale Yazarı
1/1
Konu sahibi
Bir tablonun yedeğini almak için önce kullandığınız veritabanı sistemini belirleyin. Hızlı bir işlem öncesi koruma için tabloyu SQL ile aynı veritabanında kopyalayabilirsiniz; sunucu veya veritabanı kaybına karşı ise tabloyu bir dosyaya dışa aktarıp ayrı bir yerde saklamanız gerekir. Komutlar MySQL, PostgreSQL ve SQL Server arasında farklıdır.

Tablonun hızlı bir kopyasını oluşturun​


Veritabanınıza sorgu çalıştırabildiğiniz araçla bağlanın ve doğru veritabanını seçin. Aşağıdaki varsayımsal örnekte kaynak tablo musteriler, yeni kopya ise musteriler_yedek adındadır. Hesabınızın kaynak tabloyu okuma ve yeni tablo oluşturma yetkisi olmalıdır. İsimleri kendi tablolarınıza göre değiştirin; yedek adı daha önce kullanılmamış olmalıdır.

MySQL veya PostgreSQL kullanıyorsanız sorgu penceresinde şu komutu çalıştırın:

SQL:
CREATE TABLE musteriler_yedek AS
SELECT * FROM musteriler;

SQL Server için bunun yerine şu söz dizimini kullanın:

SQL:
SELECT * INTO musteriler_yedek
FROM musteriler;

Komut yeni bir tablo oluşturur ve sorgunun seçtiği satırları içine koyar. Kaynak ve kopyadaki satır sayılarını karşılaştırmak için şu iki sorguyu çalıştırın:

SQL:
SELECT COUNT(*) AS kaynak_sayisi FROM musteriler;
SELECT COUNT(*) AS yedek_sayisi FROM musteriler_yedek;

Örneğin her iki sonuç da 100 ise kopyada aynı sayıda satır vardır; bu, bütün değerlerin veya tablo özelliklerinin aynı olduğunu tek başına kanıtlamaz. Kaynak tablo kopyalama sırasında değişmişse sayılar farklı da çıkabilir. Önemli kayıtları ve sütunları ayrıca karşılaştırın.

Bu yöntem tam bir tablo yedeğiyle eşdeğer değildir. Seçilen veriler kopyalansa da dizinler, kısıtlamalar ve tetikleyiciler gibi özellikler otomatik olarak eksiksiz taşınmaz. Ayrıca kopya aynı veritabanında bulunduğundan veritabanı veya sunucu kaybına karşı bağımsız koruma sağlamaz.

Bağımsız bir yedek dosyası alın​


Tablo yapısını ve verilerini dosyaya aktarmak için kullandığınız sistemin yedekleme aracını tercih edin. Aşağıdaki komutlar SQL sorgu penceresinde değil, araçların kurulu olduğu bilgisayarın terminalinde çalıştırılır.
SistemTabloya özel dosya için araç
MySQLmysqldump
PostgreSQLpg_dump
SQL ServerVeritabanı yedeği veya tabloyu dışa aktarma yöntemi
SQL Server’da yukarıdaki SELECT INTO komutu dosya oluşturmaz. Kullanılacak dışa aktarma veya geri yükleme yöntemi, gerekli tablo özelliklerine ve kullandığınız ortama göre seçilmelidir; veritabanı yedeği tek başına ayrı bir tablo dosyası değildir.

MySQL ile dışa aktarma​


Terminalde aşağıdaki örnekteki kullanıcı, veritabanı ve tablo adlarını değiştirip komutu çalıştırın. Parola istendiğinde girin; parolayı komut satırına açıkça yazmayın.

Kod:
mysqldump -u kullanici -p veritabani musteriler > musteriler_yedek.sql

Komut, tablo tanımını ve verilerini geçerli dizindeki dosyaya yazar. Sunucu başka bir makinedeyse bağlantı için uygun sunucu adı ve gerekirse port bilgisi de verilmelidir. Hata mesajı alırsanız bağlantı bilgilerini, okuma yetkilerini ve dosyanın yazılacağı dizinin izinlerini kontrol edin; oluşmuş bir dosyayı, komut hata verdiyse geçerli yedek saymayın.

Geri yüklemeyi önce ayrı bir test veritabanında deneyin. Test veritabanı önceden oluşturulmuş olmalıdır:

Kod:
mysql -u kullanici -p test_veritabani < musteriler_yedek.sql

Dosyayı üretim veritabanına doğrudan yüklemeyin. Dışa aktarılan SQL, aynı adlı tabloyu silip yeniden oluşturan ifadeler içerebilir. Testte tabloyu ve kayıtları kontrol ettikten sonra üretime dönüş yöntemini mevcut bağımlılıkları ve veri kaybı riskini dikkate alarak planlayın.

PostgreSQL ile dışa aktarma​


Aşağıdaki örnekte public şeması içindeki tablo, özel arşiv biçiminde dışa aktarılır. Kullanıcı, veritabanı, şema ve tablo adlarını kendi ortamınıza göre değiştirin:

Kod:
pg_dump -U kullanici -d veritabani -t public.musteriler -Fc -f musteriler_yedek.dump

Arşivi sınamak için önceden oluşturulmuş ayrı bir test veritabanına geri yükleyin:

Kod:
pg_restore -U kullanici -d test_veritabani --exit-on-error musteriler_yedek.dump

Hedefte gerekli şema ve bağımlılıklar bulunmalıdır. Tek tablo seçilerek alınan yedek, tablonun bağlı olduğu diğer nesneleri her zaman içermez; bu nedenle boş bir veritabanına yükleme başarısız olabilir. Hata mesajında adı geçen eksik şema veya nesneyi belirleyip test ortamında hazırlayın ya da kapsamı genişletilmiş bir yedek alın. Ardından yüklemeyi yeniden deneyin.

Yedeğin kullanılabilirliğini doğrulayın​


Dosyanın oluşması işlemin tamamlandığını gösterse de geri yüklenebilir olduğunu kanıtlamaz. Test veritabanında satır sayısını, birkaç önemli kaydı ve ihtiyaç duyduğunuz tablo özelliklerini kontrol edin. Test başarılıysa yedek dosyasını erişimi kısıtlı, kaynak sunucudan ayrı bir konuma kopyalayın. Veriler işlem sırasında değişiyorsa karşılaştırmayı yedeğin alındığı zaman aralığını dikkate alarak yorumlayın; tek tablo yedeğinin diğer tablolarla tutarlı bir geri dönüş sağlaması ayrıca değerlendirilmelidir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic