Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
1021
Tıklama
0
Öne Çıkarma
LDF dosyası olmadan MDF dosyasını SQL'e nası attach edebiliriz?
S
9 yıl
Er
Konu Sahibi

Merhaba Arkadaşlar,
SQL'i yedek alırken LDF dosyasını yedek almamışız. Ve bu sebeple LDF'siz SQL'e iliştiremiyoruz. SQL 2014 Enterprince kullanıyoruz. LDF dosyası olmadan bu dosyaya nasıl erişebiliriz.

SQL Server 2005 kullanıyorsanız;

1. Yöntem:

Management Console’dan database attach ederken alt kısımdan log dosyasının kaydını silebilirsiniz.
SQL Server otomatik olarak yeni bir transaction log yaratacaktır. Ancak son yaptığınız değişiklikler kaybolacaktır.
Aynı işlemi transact sql ile
EXEC sp_attach_single_file_db @dbname = ‘sql_test’, @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\data\sql_test.mdf'
komutu ile de yapabilirsiniz.

2. Yöntem:

Attach etmeye çalıştığınız db ile aynı özelliklere (isim, dizin, büyüklük vs.) sahip bir db yaratınız.
SQL Server servisini kapatınız.
Attach etmeye çalıştığınız mdf dosyasını yeni oluşturduğunuz mdf ile değiştiriniz.
SQL Server servisini yeniden açtığınızda, veritabanını kurtarmaya çalışacak ve suspect mode’a düşecektir.
ALTER DATABASE sql_test SET EMERGENCY komutunu çalıştırarak, database’i emergency mode’una geçiriniz.
ALTER DATABASE sql_test SET SINGLE_USER komutunu çalıştırarak, db’yi single user mode’a geçiriniz.
DBCC CHECKDB (sql_test, REPAIR_ALLOW_DATA_LOSS) komutunu çalıştırarak transaction log’unu yeniden oluşturabilirsiniz.
İşlem başarılı sonuçlandıysa ALTER DATABASE sql_test SET MULTI_USER komutunu çalıştırarak, db’yi normal işlem yapılabilir
hale getirebilirsiniz.
SQL Server 2000 kullanıyorsanız;

1. Yöntem:

EXEC sp_attach_single_file_db @dbname = 'sql_test’, @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\data\sql_test.mdf’ komutunu çalıştırmanız.

2. Yöntem:

Attach etmeye çalıştığınız db ile aynı özelliklere (isim, dizin, büyüklük vs.) sahip bir db yaratınız.
SQL Server servisini kapatınız.
Attach etmeye çalıştığınız mdf dosyasını yeni oluşturduğunuz mdf ile değiştiriniz.
SQL Server servisini yeniden açtığınızda, veritabanını kurtarmaya çalışacak ve suspect mode’a düşecektir.
Suspect durumundaki veritabanınızı emergency mode’una geçirmelisiniz. Bunun için sırayla aşağıdaki komutları giriniz.
USE Master
GO
EXEC sp_configure 'allow updates’, 1
RECONFIGURE WITH OVERRIDE
GO

SELECT dbid, name, status FROM sysdatabases WHERE name = 'sql_test’
BEGIN TRAN
UPDATE sysdatabases SET status = 32768 WHERE name = 'sql_test’
COMMIT TRAN

DBCC CHECKDB (sql_test, REPAIR_ALLOW_DATA_LOSS) komutunu çalıştırarak transaction log’unu yeniden oluşturabilirsiniz.


Bunlar bir işe yaramadı.

Dosya kurtarma yazılımı ile denediğimizde de script olarak veriyor ve veriler eksik geliyor. DB'nin büyüklüğü 67GB bu sebeple kurtarma scriptleri de memory hatası verdiriyor.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



S
9 yıl
Er
Konu Sahibi

K
9 yıl
Yarbay

Veritabanını aldığınızda, kullanımdamıydı?





< Bu mesaj bu kişi tarafından değiştirildi KillForYou! -- 28 Mart 2016; 22:11:06 >

< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.