Yalnızca LDF dosyası olan bir veritabanını geri yükle


2

Her şeyden önce, herhangi bir yedeğe sahip olmanın ne kadar aptalca olduğunu biliyorum. Yardım edemem, ama çözmek için denemek zorundayım.

Veritabanının oluşturulmasından bu yana tüm işlemleri içeren bir SQL Server 2000 veritabanından bir işlem günlüğü (LDF) dosyası var. Hiçbir kesme yapılmamıştır. MDF dosyası gitti. Muhtemelen bazı disk arızası nedeniyle. Yedek yok. Orijinal veritabanından değil, işlem günlüğünden değil.

İşlem günlüğünü yeni bir temiz veritabanına bağlamayı denedim. Ancak (elbette) başarısız oldu çünkü SQL Server her iki dosyanın kimliğini de kontrol ediyor. İşlem günlüğünü okuyabilen bir yazılım okudum. ApexSQL bunu yapıyor gibi görünüyor. Deneme sürümünü yüklemeye çalıştım ama programı başlatmaya çalışırken garip hatalar veriyor.

Birisi benim için bir çözüm biliyor mu? Üçüncü taraf yazılımı içerebilir, ancak temiz bir SQL Server çözümü tercih ediyorum.


mdf dosyası olmadan bir ldf dosyasına nasıl geldiğine merak ediyorum. Bildiğim kadarıyla, şanstan oldukça iyisin. Bunu çözdüyseniz, bize nasıl yapacağınızı bildirin!
DForck42

Yanıtlar:


0

Peki, MDF nasıl gitti? Veri sürücüsü bozuldu veya bozuldu mu?

Üçüncü taraf bir araç kullanmanın dışında, fazla seçeneğiniz yok.

Yapabileceğim tek şey LDF'yi sahte bir veritabanına bağlamak ve ardından günlük yedeğinin kuyruğunu almak. Ama o zaman bile, sana hiçbir şey almaz.

İşte temel işlem:

create database MyDatabase
go

-- run a full backup, this can be disgarded

alter database MyDatabase
set offline
go

-- go delete the mdf and ldf

alter database MyDatabase 
set online
go

backup log MyDatabase
to disk = 'C:\SQL Backups\MyDatabase-tail.trn'
with no_truncate
go

Artık LDF dosyanızın bir LOG yedeği var, ancak onunla ne yapabileceğinizden emin değilim.

Belki de bir yedekleme dosyasını okumanızı sağlayan bir ürün ararsınız ...

İyi şanslar!


0

Mümkün değil. Ldf, belirli işlem numaralarıyla birlikte değişmiştir.

Yepyeni bir veritabanı oluştursanız bile, tam olarak orijinal ile aynı, yeni veritabanındaki işlem numaraları ldf dosyasının işlem numaralarıyla ilgili olmayacak.

Sadece bir mdf dosyasıyla geri yüklemek mümkündür. İlgili StackOverflow post

Create database dbname 
    On 
    (   
    Filename= 'path where you copied files'   
    )
    For attach; 

Yapabileceklerini iddia eden bazı araçlar ve danışmanlık firmaları var, Muhtemelen verilerinizin bir kısmını ya da tümünü bile kurtarabilirler. Ancak, standart araçlar ve deneyimlerle yapılamaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.