Veritabanını çevrimdışına almadan günlük dosyasını taşıma


14

Ben veritabanı çevrimdışı almadan yeni bir bölüme bir veritabanı günlük dosyasını taşımak gerekiyor.

Bunu yapmanın normal yolu DB'yi ayırmak, günlük dosyasını taşımak ve sonra db'yi yeniden bağlamak olacaktır.

Bunu veritabanının kendisini çevrimdışına almadan yapmak mümkün mü ve eğer öyleyse nasıl?


Yanıtlar:


16

Bunu çevrimiçi bir veritabanı ile yapmanın bir yolu yoktur.

Bir veritabanı dosyasını ( ALTER DATABASE ... MODIFY FILE) taşıdığınızda , aşağıdaki iletiyi bile alabilirsiniz:

"YourFile" dosyası sistem kataloğunda değiştirildi. Yeni yol , veritabanı bir sonraki başlatıldığında kullanılacaktır .


Bunu yapmanın normal yolu DB'yi ayırmak, günlük dosyasını taşımak ve sonra db'yi yeniden bağlamak olacaktır.

Bu "normal" ya da kabul ettiğim gibi değil. Veritabanı dosyalarını taşımak için aşağıdakileri yaparım:

  1. Dosyaların konumunu değiştirmek için bir ALTER DATABASE komutu çalıştırın
  2. Veritabanını çevrimdışına alma
  3. Dosya (lar) ı fiziksel olarak adım 1'de belirtilen yeni konuma taşıyın
  4. Veritabanını çevrimiçi duruma getirin

TechNet: Kullanıcı Veritabanlarını Taşı üzerindeki bu referansa bakın


3

TechNet Move Kullanıcı Veritabanları Thomas Thomas'ın cevabından alınan referansa göre , dosyaları tüm SQL Server örneğini durdurmadan taşımak istiyorsanız ("Planlanan Yer Değiştirme Prosedürü" nü izleyerek), sıra şu şekilde olmalıdır:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

Önce ÇEVRİMDIŞI not edin; daha sonra dosyaları taşıyın ve SQL Server'a yeni konum (lar) ı anlatın.

Tüm SQL Server örneğini kaldırmanız gerekiyorsa ("Zamanlanmış Disk Bakımı için Yer Değiştirme" yordamına bakın), ilk olarak dosya konumlarını değiştirmek en iyisidir, böylece örnek yeniden başlatıldığında dosyaları bulmada sorun olmaz yeni yerlerde.


1

Bu eski bir soru olduğunu biliyorum ama sadece yeni bir konuma (daha sonra orijinal yerine DB tarafından kullanılır) ikinci bir günlük dosyası ekleyemezsiniz sonra orijinal küçültmek / kaldırmak?

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.