SSS-Wiki
Cevap:
Recovery Toolbox for SQL Server tarafından desteklenen verileri kaydetmenin iki yolu vardır:
- SQL scriptlerini sabit diskinize kaydedebilirsiniz, bunlar veritabanı nesneleri, tablolar vb. oluşturacak ve bu tablolara veri ekleyecektir.
- Ayrıca kullanıcıların tanımladığı veritabanlarında SQL dilinde yazılmış scriptleri de çalıştırabilirsiniz.
Lütfen, SQL betiklerinin aynı veritabanı dosyalarına dayanmalarına rağmen farklı olabileceğini unutmayın. Bu, hem ADO aracılığıyla doğrudan sunucu bağlantısı için yürütülen sorgularda hem de MS SQL Server ile birlikte gelen Sorgu Analizcisi ortamında gerçekleştirilen SQL sorgularında (":" kullanımı, Go komutu, vb.) sözdizimi özelliklerinden kaynaklanır. İlk yol daha güvenilirdir, peki ya ikinci yol daha kullanışlıdır.
Verileri betiklere dönüştürme ve diske kaydetme
1. Kaydedilen veri eşlemesi
Verileri diske kaydetmeyi seçtiyseniz, Recovery Toolbox for SQL Server, kaynak MDF dosyasının adını içeren bir alt dizin oluşturacaktır, bu alt dizin kullanıcı tanımlı dizinde oluşturulur ve tüm betikler oraya yerleştirilir. Tüm betikler kurala göre adlandırılır, adlar bir kelime ve bir rakamdan oluşur. Kelime betiğin rolünü, rakam ise numarasını belirtir. Birçok betik türü vardır, örneğin:
- Types*.sql - scriptler kullanıcılar tarafından tanımlanan veri tiplerini oluşturacaktır.
- Tables*.sql - scriptler tablolar oluşturacaktır.
- Indexes*.sql - betikler birincil anahtarlar ve dizinler oluşturacaktır.
- ForeignKeys*.sql - betikler yabancı anahtarlar oluşturacaktır.
- Procedure*.sql - scriptler saklı yordamlar oluşturacaktır.
- Function*.sql - scriptler kullanıcılar tarafından tanımlanan fonksiyonları yaratacaktır.
- View*.sql - betikler görünümler yaratacaktır.
- Triggers*.sql - betikler tetikleyiciler yaratacaktır.
- Data*.sql - betikler tablolara veri ekleyecektir.
Komut dizisi numarası herhangi bir yararlı veri içermez, komut dizisi yürütme dizisine veya başka herhangi bir bilgiye işaret etmez. Bu numaralar yalnızca verileri bölmek ve tek bir büyük dosya yerine çeşitli küçük belgelere kaydetmek için kullanılır. Kullanıcılar SQL komut dosyasıyla dosyanın maksimum boyutunu tanımlayabilir. Ayrıca, kullanıcılar Veri dosyalarının numaralandırılmasına dikkat etmelidir. Veri türündeki her dosyanın yalnızca bir tablo için veri içerebileceği unutulmamalıdır. Sıra numaralarına sahip dosyalar her tablo için tüm verileri içerir.
Not: Bazı dosyalarda numaralar eksikse bu, bazı tablolarda veri olmadığı anlamına gelir.
2. Komut dosyası yürütme sırası
Bu şekilde, komut dosyasının yürütülmesinin önerilen sırasını görebilirsiniz:

Komut dosyası yürütme sırası, mevcut veriler ve tablonun yapıları için mevcut kısıtlamalara bağlıdır. Lütfen bu faktörlere özellikle dikkat edin:
- İkincil bir anahtar oluşturmak istiyorsanız lütfen ilgili birincil anahtarı belirtin. Bu gerçek nedeniyle, bu işlemler bu sırayla başlatılması gereken farklı dosyalara kaydedilir.
- Dizinler ve ikincil anahtarlar oluşturulmadan önce program tabloları doldurur. Tanımlı ikincil anahtara sahip bir tablo doldurulurken, referans bütünlüğü denetimi yapıldığından zorunludur. İkincil anahtarlara sahip tablolar, karşılık gelen birincil anahtarlara sahip tablolardan önce doldurulduğunda bir hata oluşur. Ayrıca, bu yöntemin başka bir özelliği daha vardır. Kurtarılan veriler birincil anahtar, benzersiz dizinler vb. ile çakışırsa, bu durumda tablo yine de verilerle doldurulur, ancak kısıtlamalar oluşturulmaz (dizin, birincil anahtar vb.). Kullanıcılar başka bir davranışa ihtiyaç duyarsa, betik yürütme sırasını kendileri seçebilirler.
- Prosedürler, Fonksiyonlar, Görünümler ve Tetikleyiciler nesnesinin bir veritabanında oluşturulması bazı zorluklara sahiptir, çünkü bu nesnelerin karmaşık ve zorlu bağımlılıkları olabilir. Prosedürler diğer Prosedürlere, Görünümler Fonksiyonlara, Tetikleyiciler tüm nesnelere atıfta bulunabilir. Bu nedenle, bir program karmaşayı çözmeye yardımcı olamaz. Kullanıcılar tüm bağımlılıkları manuel olarak bulmalı ve SQL komut dosyalarını gereken sırayla başlatmalıdır. Başka bir olasılık, tüm hata mesajları kaybolana kadar bu gruptaki tüm komut dosyalarını birkaç kez yürütmektir.
3. Install.bat dosyasını yükleyin
Install.bat dosyası, tüm betikler için otomatik yürütmeyi sağlamak için oluşturulur. Bu dosya, daha önce araç tarafından kaydedilen tüm betikleri yürütür. Betik yürütme sırası, veritabanına uygulanırken olduğu gibi aynı olacaktır. Bu toplu iş dosyası, isqlw yardımcı programının yüklenmesini gerektirir, MS SQL Server istemci bölümünün bir parçasıdır. Lütfen komut satırında install.bat dosyası için Sunucu adı, Veritabanı adı, Kullanıcı adı ve Parola parametrelerini belirtin. Örneğin: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword
Dikkat:
- Parametreler bir boşlukla ayrılmalıdır. Bir parametrenin kendisi boşluk içeriyorsa, onu çift tırnak işaretiyle çevrelemelisiniz.
- Parametre dizisi değiştirilemez.
- Lütfen YENİ BOŞ veritabanına veri aktarın. Veri aktarımından önce veritabanında herhangi bir tablo, dizin, saklı prosedür vb. bulunmamalıdır.
- Eğer install.bat dosyası parametre olmadan çalıştırılacaksa, bu dosyanın nasıl başlatılacağına dair kısa bir kılavuz görebilirsiniz.
4. InstallTrusted.bat
Windows hesabınız üzerinden Microsoft SQL Server'a giriş yapmak istiyorsanız InstallTrusted.bat dosyasını kullanın. InstallTrusted.bat dosyasının iki parametresi vardır: Sunucu adı, Veritabanı adı.
Kullanım örneği: installtrusted.bat SQLServer SQLDatabase Windows hesabı üzerinden oturum açma hakkında ayrıntılı bilgi için buraya bakın: https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/principals-database-engine?view=sql-server-2017
Cevap:
Birkaç kaynak dosyadan MS SQL Server formatında bir veritabanını onarma
MS SQL Server biçimindeki bir veritabanı bir veya birkaç dosya içerir. Birkaç dosya türü vardır: ana veri dosyası (varsayılan *.mdf uzantısıyla), ikincil veri dosyası (varsayılan *.ndf uzantısıyla) ve bir işlem günlüğü dosyası (varsayılan *.ldf uzantısıyla). Recovery Toolbox for SQL Server ile verileri onarmak istiyorsanız, tüm ikincil veri dosyalarının ve ana veri dosyasının yolunu belirtmelisiniz. Bu, Open File iletişim kutusu ile yapılabilir.

Bozuk veritabanı ana veri dosyasını, ikincil veri dosyalarını ve işlem günlüğü dosyalarını içeriyorsa, *.mdf biçimindeki ana veri dosyasını ve *.ndf biçimindeki tüm ikincil veri dosyalarını seçmelisiniz (görmek fig. 2).

Cevap:
Recovery Toolbox for SQL Server, fidye yazılımı virüsleri tarafından şifrelenen Microsoft SQL Server veritabanı dosyalarının .MDF/.NDF dosyalarından bilgileri kısmen veya tamamen kurtarabilir.
Recovery Toolbox for SQL Server verileri şifre çözmez.
Genellikle bu durumlarda veri şifre çözme işlemi uygulanamaz.
Ancak, Recovery Toolbox for SQL Server, MDF dosyasının kısmen şifrelendiği durumlarda yararlı olabilir. Genellikle, virüsler büyük boyutları nedeniyle yalnızca dosyaların başlığını ve/veya başlangıcını şifreler. Bu durumlarda, yalnızca MDF dosyasının başlığı veya bir kısmı şifrelenmişse, Recovery Toolbox for SQL Server yardımcı olabilir. Program, dosyadaki tüm veri bloklarını ve toplanan veri yapısını analiz eder. Daha sonra, mümkünse orijinal veri yapısını ve verinin kendisini yeniden oluşturur.
Microsoft SQL Server MDF dosya yapısı
Bir Fidye Yazılımı Virüsü Saldırısı Sonrasında MDF Dosyasından Veri Kurtarmak Mümkün müdür?
Programı kullanarak verilerinizin %100'ünü veya bir kısmını kurtarabileceğinizin garantisi yoktur. Bu soruya kesin bir cevap almak için Recovery Toolbox for SQL Server'ın DEMO sürümünü indirmeniz, şifrelenmiş MDF dosyasını belirtmeniz ve dosyanın analizinin tamamlanmasını beklemeniz gerekir.
Programın DEMO versiyonunda .mdf dosyasının analizi tamamlandığında, dosyadan çıkarılabilecek verilerin tam bir önizlemesi kullanılabilir.
Not:Recovery Toolbox'ın müşteri destek departmanı, fidye yazılım programlarının genellikle büyük boyutu nedeniyle yalnızca veritabanı dosyasının başlığını şifrelediğini bildiriyor. Sonuç olarak, kaynak dosyadan neredeyse tüm veri yapısını ve neredeyse tüm bilgileri kurtarmak sıklıkla mümkün oluyor.
Betiklerinizi çalıştırdıktan sonra aşağıdaki hatayı görüyorsanız:
Server: Msg 242, Level 16, State 3, Line 1
[Microsoft][ODBC SQL Server Driver][SQL Server] Char veri türünün datetime veri türüne dönüştürülmesi, aralık dışı bir datetime değeriyle sonuçlandı.
Açıklama sonlandırıldı.
Cevap:
Bu, aşağıdakileri yaparak sunucu dil ayarlarınızı değiştirmeniz gerektiği anlamına gelir:
- Enterprise Manager'ı başlatın.
- Gerekli sunucuyu seçip bağlanın.
- Üzerine sağ fare tuşuyla tıklayıp Properties'i seçerek özellikler penceresini açın.
- Server Settings sekmesini açın.
- Default Language for user açılır listesinde English'yi seçin ve OK'a basın.
- SQL Server'ı durdurun. Bunu yapmak için, bağlam menüsünden Stop'u seçin ve onay penceresinde Are you sure you wish to stop SQL Server service? sorusuna Yes yanıtını verin.
- SQL Server'ı başlatın. Bunu yapmak için, bağlam menüsünden Start'ı seçin.
- Artık Recovery Toolbox for SQL Server tarafından sabit diskinize kaydedilen betikleri çalıştırabilirsiniz. Ayrıca programı veritabanı betikleri yürütme modunda da çalıştırabilirsiniz.
- Şimdi ayarları geri yüklemeniz gerekiyor. Bunu yapmak için, Enterprise Manager'da gerekli sunucunun özellikler penceresini açın.
- Default Language for user listesinde varsayılan dili seçin ve OK'a basın.
- SQL Server'ı durdurun. Bunu yapmak için, bağlam menüsünden Stop'u seçin ve onay penceresinde Are you sure you wish to stop SQL Server service? sorusuna Yes yanıtını verin.
- SQL Server'ı başlatın. Bunu yapmak için, bağlam menüsünden Start'ı seçin.
Betiklerinizi çalıştırdıktan sonra aşağıdaki hatayı görüyorsanız:
Server: Msg 242, Level 16, State 3, Line 1
[Microsoft][ODBC SQL Server Driver][SQL Server] Char veri türünün datetime veri türüne dönüştürülmesi, aralık dışı bir datetime değeriyle sonuçlandı.
Açıklama sonlandırıldı.
Cevap:
Bu, aşağıdakileri yaparak sunucu dil ayarlarınızı değiştirmeniz gerektiği anlamına gelir:
- Management Studio'yu başlatın.
- Gerekli sunucuyu seçin.
- Security\Logins bölümüne gidin.
- Veritabanını kullanacak kullanıcıyı seçin ve kullanıcının özellikler penceresini açın.
- Default Language for user açılır listesinde English'yi seçin ve OK'a basın.
- Artık Recovery Toolbox for SQL Server tarafından sabit diskinize kaydedilen betiği çalıştırabilirsiniz. Alternatif olarak, programı veritabanı betikleri yürütme modunda başlatabilirsiniz.
- Şimdi ayarları geri yüklemeniz gerekiyor. Bunu yapmak için, gerekli kullanıcı Management Studio'nun özellikler penceresini açın.
- Default Language for user listesinde varsayılan dili seçin ve OK'a basın.
- SQL Server Management Studio'yu başlatın
- Object Explorer'nde Databases'na sağ tıklayın
- Attach'ye tıklayın
- Add düğmesine tıklayın
- mdf dosyasını seçin ve Ok düğmesine tıklayın
- Ok düğmesine tıklayın
- İşlemin tamamlanmasını bekleyin.
Bu sorunu düzeltmek için şunları yapmalısınız:
- Verileri betik olarak kaydedin
- Komut satırından tüm gerekli parametrelerle install.bat dosyasını çalıştırın
- Hangi betiklerin başarıyla yürütülmediğini öğrenmek için yanıt dosyalarına (*????.sql.txt) bakın
- Hatalarla yürütülen betikleri Microsoft SQL Server'dan Query analyzer'a yükleyin ve orada yürütmeyi deneyin. Bir hata mesajı aldıktan sonra, hataya hangi komutun neden olduğunu tespit etmelisiniz. Bu komut değersiz veriler yazıyorsa, onu dosyadan kolayca kaldırabilirsiniz. Aksi takdirde, hatalarla yürütülen betiği ve Query analyzer'dan bir ekran görüntüsünü geliştiricilere göndermelisiniz. Ayrıca, daha sonra sorunu incelemeleri için kaynak *.mdf dosyasını geliştiricilere göndermeniz gerekebilir.
MSDB veritabanından yeni bir sunucuya veri tablolarını kopyalamak veya geri yüklemek, DTS Packages geri yüklemeye izin vermez çünkü bunlar, oluşturuldukları ve geçişten önce üzerinde kullanıldıkları sunucunun yürütme bağlamına iç bağlantılara sahiptir. DTS Paketlerini sunucular arasında kopyalamak için VB scripts kullanılmalıdır. Bu nedenle, Recovery Toolbox for SQL Server programı DTS Paketlerini geri yüklemek için uygun değildir.
isqlw.exe aracı, MS SQL Server paketinin bir bileşenidir. Her zaman Microsoft sitesinden MS SQL Server'ın en son sürümünü indirebilir ve gerekli bileşenleri bilgisayarınıza yükleyebilirsiniz. Microsoft sitesinden indirilen MS SQL Server'ın demo sürümü, bileşenleri EULA'da belirtilen süre içinde kullanmanıza olanak tanır.
Eğer uygun araçları Microsoft.com adresinde bulabilirseniz, o zaman Query Analyzer'ı web sitemizden indirip kurabilirsiniz. İndirme bağlantısı: https://recoverytoolbox-tr.com/download/isqlwInstall.exe
Büyük MS SQL Server veritabanlarını kurtarmak için çok fazla RAM gerekir. Programın geliştiricileri, büyük veritabanlarını yeterli boş fiziksel belleğe sahip bilgisayarlarda kurtarmanızı önerir. Program tarafından kullanılan fiziksel bellek, kurtardığınız dosyanın boyutunun 500'e bölünmesinden elde edilen miktardan ve programın çalışması için 20-100 MB'tan daha az olmamalıdır. Yani, 100 GB boyutunda bir .mdf dosyasını kurtarmaya çalışırsanız, bilgisayarda en az (100 GB / 500) + 120 MB = 320 MB boş fiziksel bellek olmalıdır.
- Birincil Anahtar alanındaki bir değer yanlışsa (örneğin, negatifse veya diğer tüm değerlerden birkaç düzine kat daha büyükse), kaynak verilerin ciddi şekilde hasar gördüğü ve tamamen kurtarılmasının imkansız olduğu anlamına gelir.
- Primary Key alanlarında yinelenen değerler görünüyorsa, bu programın veritabanında silinmesi için işaretlenmesi gereken verileri içeren sayfaları kurtardığı anlamına gelir (mdf, ndf dosyaları). Ancak aslında verilerin bulunduğu sayfanın silinmesi gerektiğine dair bir işaret yoktur. Ve bu nedenle program tüm sayfalardan veri kurtarır. Bu, aşırı miktarda kurtarılan veriyle sonuçlanır ve Recovery Toolbox for SQL Server geliştiricileri aşırı girdileri filtrelemek için ölçütler bulamamıştır. Bu durumda, veritabanı yöneticileri ve/veya yazılım geliştiricileri kurtarılan veritabanında silinmesi gereken aşırı girdiler hakkında nihai kararı verir.
Deneme ve kayıt arasında MDF'nizde ek bir şey olması mümkündür (başka bir yazılım veya başka bir şey tarafından kurtarıldı). Bunu, bu dosyaya karşı demo sürümünü başka bir bilgisayarda çalıştırarak kontrol edebilirsiniz.
Recovery Toolbox for SQL Server veritabanının kullanıldığı sunucu sürümünü otomatik olarak algılar. Bu nedenle, veritabanı MS SQL Server 2000'de kullanılmışsa, program isqlw aracını yeni veritabanına aktarmak için kaydedilen betiklere yazar. Veritabanı MS SQL Server 2005 veya daha yüksek bir sürümde kullanılmışsa, betiklerde sqlcmd aracı kullanılır. Orijinalinden farklı bir sürüme sahip bir sunucudaki veritabanına veri aktarmak istiyorsanız, ilgili sunucu için aracı kullanmalısınız:
- Isqlw - MS SQL Server 2000 için
- Sqlcmd - MS SQL Server 2005 ve üzeri için