Filegroup’u Read Only Yapmak

Filegroup ile ilgili detaylı bilgi almak için “Veritabanı Oluşturmak Deyip Geçmeyin!” isimli makalemi okumanızı tavsiye ederim. Özellikle büyük ve partition yapılmış veritabanlarında filegroup’ları read only mode’a çekme ihtiyacı duyarız. “Partition Oluşturmak” isimli makalemde nasıl partition oluşturacağınızı görebilirsiniz.

 

Veritabanı üzerinde sağ tıklayarak properties diyoruz ve filegroups sekmesine gelip aşağıdaki gibi istediğimiz filegroup’u read-only mode’a alıyoruz.

 

Eğer veritabanı üzerinde aktif session varsa aşağıdaki gibi hata alırsınız.

 

 

Bu hatayı almamak için yaptığımız değişikliğin script’ini yukardaki ekran görüntüsünde Script yazan yere tıklayarak alıyoruz ve script’in başına ve sonuna aşağıdaki gibi eklemeler yaparak tekrar çalıştırıyoruz.

 

 

USE [Test]
GO
ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
declare @readonly bit
SELECT @readonly=convert(bit, (status & 0x08)) FROM sysfilegroups WHERE groupname=N'READONLYFILEGROUP'
if(@readonly=0)
ALTER DATABASE [Test] MODIFY FILEGROUP [READONLYFILEGROUP] READONLY
GO
USE [master]
GO
declare @readonly bit
SELECT @readonly=convert(bit, (status & 0x08)) FROM sysfilegroups WHERE groupname=N'READONLYFILEGROUP'
if(@readonly=0)
ALTER DATABASE [Test] MODIFY FILEGROUP [READONLYFILEGROUP] READONLY
GO
ALTER DATABASE Test SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO

Loading

Leave Your Comment