13 Ocak 2017 Cuma
Kolay SQL Server ve dosya yedekleme mekanizması
Merhaba,
Uzun süredir üzerinde çalıştığınız projeniz bilgisayarınızdaki sorun yüzünden erişilemez mi oldu,
ah keşke yedeklemeye önem verseydim mi diyorsunuz.
İşte size herhangi bir program kurmadan kolayca oluşturabileceğiniz bir yedekleme mekanizması.
diyelim ki
proje dosyalarımız c:\projelerim klasöründe
ve veri tabanı olarakta MS SQL kullanıyoruz ve ProjeDB adında bir veritabanımız var.
yedeklerimizi Z:\yedeklerim isimli bir klasöre alacağız.
Z: diski bulut bir depolamadan veya varsa bir sunucu alanından bir yer olursa çok daha güzel olur. böylece bilgisayar
tamamen erişilemez olursa yedeklerimiz uzakta olmuş olur.
* şimdi biz önce veritabanı yedeğini c:\projelerim\_db_yedek isimli bir klasöre aldıracağız (bu yoksa oluşturun)
* sonra c:\projelerim klasörünün tüm içeriğini rar.exe ile şifleri olarak z:\yedeklerim klasörüne yazacağız.
eğer rar.exe (winrar kurulu ise sistemde winrar klasöründe bulunur.) kullanmak istemiyorsak,
diğer bir yöntem ise windows'un robocopy.exe programını kullanarak tüm c:\projelerimin içeriğini z:\yedeklerim'e
mirrorlayacağız. yedeklerimizin logunu c:\ klasörüne yazacağız.
1. yöntem : rar.exe kullanarak:
aşağıdaki metni bir text dosyaya kopyalayıp yedekle.bat olarak kaydedelim.
-hp parametresi h=hidden=dosyaların isimlerini gizle
p=password=şifre hemen yanında yazan 12345 ise rar dosyasına verdiğimiz şifre
Siz bunu istediğiniz şifreyle değiştirin.
-m5 parametresi en yüksek sıkıştırma seviyesinde sıkıştırması için
-x ler yanlarına konulan dosyaları wilcardları klasörleri rar dosyasına atmaz (exclude eder)
-----------------------------------------------------------------------------
@ECHO OFF
set tarih=%date: =%
set tarih=%tarih:.=_%
echo %tarih%
ECHO db yedekleniyor....
sqlcmd -E -S .\sqlexpress -q "exit(BACKUP DATABASE ProjeDB TO Disk='c:\projelerim\_db_yedek\ProjeDB.bak')"
ECHO dosyalar yedekleme lokasyonunda arşiv dosyasına (yedeklerim***.rar) yazılıyor...
C:\PROGRA~1\WinRAR\rar a -r -x*.bat -x*.exe -x*.mdf -x*.ldf -hp12345 -m5 Z:\yedeklerim\yedeklerim_%tarih%.rar C:\projelerim\*.*
ECHO Bitti.
-----------------------------------------------------------------------
2. yöntem : robocopy.exe kullanarak:
aşağıdaki metni bir text dosyaya kopyalayıp yedekle.bat olarak kaydedelim.
burada 2 kere robocopy çalıştırılma sebebi ilkinde klasör yapısı olduğu gibi karşıya boş dosyalar olarak
oluşturuluyor (parçalanma=defragmantasyonu engellemek için)
2nci robocopy ise kopyalama işlemini yapıyor.
--------------------------------------------------------
@ECHO OFF
set tarih=%date: =%
set tarih=%tarih:.=_%
echo %tarih%
ECHO db yedekleniyor....
sqlcmd -E -S .\sqlexpress -q "exit(BACKUP DATABASE ProjeDB TO Disk='c:\projelerim\_db_yedek\ProjeDB.bak')"
ECHO dosyalar yedek lokasyonuna kopyalanıyor...
robocopy.exe "c:\projelerim" "Z:\yedeklerim" /CREATE /E /DCOPY:T /NP /R:0 /COPY:DAT /LOG+:c:\yedekleme_log_%tarih%.txt /XF "*.exe" "*.mdf" "*.ldf"
robocopy.exe "c:\projelerim" "z:\yedeklerim" /MIR /DCOPY:T /NP /R:0 /COPY:DAT /LOG+:C:\yedekleme_log_%tarih%.txt /XF "*.exe" "*.mdf" "*.ldf"
ECHO Bitti.
-----------------------
komutlardaki sqlcm komutu komut satırında sql'e bağlanıp query çalıştırmak için kullanılmaktadır.
burada bağlı olan kullanıcı yetkisi ile trusted olarak eriştiği için -E komutu ile girdik.
yoksa -U ve -P parametreleri ile kullanıcı şifre belirtmek gerekiyordu.
ayrıca yedekleme query bloğunu exit() içine alarak işlemden sonra sqlcm'den çıkıp sıradaki robocopy komutuna gelebilsin
diye...
daha sonra windows Görev Zamanlayıcısına (Task Scheduler) bu yedekle.bat dosyasını belirli sürelerde çalıştırması için bir Görev ekleyebiliriz.
Kolay gelsin....
Bu blog kaydının yeni/güncellenmiş versiyonu için tıklayınız...
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder