İkinci Log Dosyasını Silmek – Empty file by migrating the data to other files in the same filegroup

Bu makale bir önceki makale yapmış olduğumuz ikinci bir log dosyası oluşturduktan sonra ilk log dosyasında sorun giderilip, tekrardan eski yapımıza geçmek için  sonradan oluşturulan ikinci log dosyamızdaki veriler ilk log dosyamızın üzerine yazılıp daha sonra ikinci log dosyamızı silme işlemini ele alacağız.Neden ikinci bir log dosyası oluşturmamız gerektiğini ikinci bir log dosyası oluşturmak konulu makalemde belirtmiştim. Bu yapıyı sağlayacak olan shrink işleminde 3. Kısımda bulunan Empty file by migrating the data to other files in the same filegroup  yöntemi olmuş olacak. Şimdi uygulamalı bir şekilde oluşturmuş olduğum ikinci log dosyasını ilk log dosyası üzerine atalım. İkinci log dosyasında shrink işlemi yaparak boş alanları işletim sistemini iade ediyorum. Log dosyasının boşalması için shrink işleminden önce bir log backup alıyorum. Log backup aldıktan sonra veritabanının üzerine sağ tıklayıp Task>Shrink>Files sekmesine geliyorum. Gelen ekranda file type kısmında log seçtikten sonra file name kısmında shrink yapacağımız ikinci log dosyamızı seçiyorum. Shrink action bölümünde  Empty file […]

İkinci Log Dosyasını Silmek – Empty file by migrating the data to other files in the same filegroup

Bu makale bir önceki makale yapmış olduğumuz ikinci bir log dosyası oluşturduktan sonra ilk log dosyasında sorun giderilip, tekrardan eski yapımıza geçmek için  sonradan oluşturulan ikinci log dosyamızdaki veriler ilk log dosyamızın üzerine yazılıp daha sonra ikinci log dosyamızı silme işlemini ele alacağız.Neden ikinci bir log dosyası oluşturmamız gerektiğini ikinci bir log dosyası oluşturmak konulu makalemde belirtmiştim. Bu yapıyı sağlayacak olan shrink işleminde 3. Kısımda bulunan Empty file by migrating the data to other files in the same filegroup  yöntemi olmuş olacak.

Şimdi uygulamalı bir şekilde oluşturmuş olduğum ikinci log dosyasını ilk log dosyası üzerine atalım.

İkinci log dosyasında shrink işlemi yaparak boş alanları işletim sistemini iade ediyorum. Log dosyasının boşalması için shrink işleminden önce bir log backup alıyorum.

Log backup aldıktan sonra veritabanının üzerine sağ tıklayıp Task>Shrink>Files sekmesine geliyorum.

Gelen ekranda file type kısmında log seçtikten sonra file name kısmında shrink yapacağımız ikinci log dosyamızı seçiyorum. Shrink action bölümünde  Empty file by migrating the data to other files in the same filegroup seçeneğini seçiyoruz. Bu şekilde log dosyamızın içindeki verilerin diğer log dosyasına aktarılmasını sağlamış oluyoruz.

Shrink action kısmından da, Empty file by migrating the data to other files in the same filegroup seçeneğini seçiyoruz. Bu şekilde log dosyamızın içindeki verilerin diğer log dosyasına aktarılmasını sağlamış oluyoruz.

Yukarıdaki arayüzün script’ini  alıyoruz. Silme işlemiyle aynı anda yapmamız gerekiyor log dosyasına herhangi bir veri yazılmasın.

 

USE [TEST2]
GO
DBCC SHRINKFILE (N'TEST2_log2 ' , EMPTYFILE)
GO

Yukarıdaki çıktıyı aldıktan sonra ilgili database üzerine sağ tıklayıp properties ekranından  ilgili log dosyasının silme işlemi için create script’ini alıyorum. Remove deyip sildikten sonra üst tarafta bulunan script kısmına tıklıyorum. Script’ini bu şekilde alıyoruz.

use [master];
GO
USE [TEST2]
GO
ALTER DATABASE [TEST2]  REMOVE FILE [TEST2_log2 ]
GO

Hem shrink işlemi için aldığımız kodu hem de ikinci log dosyasını silme script’ini alt alta alıyorum.

USE [TEST2]
GO
DBCC SHRINKFILE (N'TEST2_log2 ' , EMPTYFILE)
GO
use [master];
GO
USE [TEST2]
GO
ALTER DATABASE [TEST2]  REMOVE FILE [TEST2_log2 ]
GO

Komutu çalıştırdıktan sonra ilk log dosyamın enable autogrowth değerini aktif ediyorum.

Bu işlemleri yaptıktan sonra veritabanı altında silmemize rağmen ikinci log uzantısı görülmeye devam edecektir. Belli süre sonra tek log dosyasının olduğunu göreceksiniz.

Artık veritabanımız ilk log dosyasından büyümeye devam etmiş oluyor. Veritabanı altında gereksiz yere oluşan log yığınından kurtulmuş oluyoruz.

Benzer Yazılar

İkinci Bir Log Dosyası Oluşturma

SQL Server 3 saat önce

Bu makalede ikinci bir log dosya oluşturma işlemini ele almış olacağım. Karşılaşmış olduğum bir sorun üzerine bu makaleyi yazma gereği duydum. Yazım 2 makaleden oluşmaktadır. Bir gün bir veritabanımızın ldf dosyasının boyutu maksimum sınır olan 2 TB olmuştu böyle bir sorunu çözmek için ikinci bir log dosyası oluşturmuştuk. Neden oluşturduğumuz bu makaleden sonraki makalenin konusu olmuş olacak. Çünkü ikinci bir log dosyası oluşturmak mantıklı değil neden diye soracaksanız bir veritabanında sadece bir log dosyası aktif olabilir. Kısacası ya ldf dosyamız dolmuştur veya ldf dosyamızın olduğu diskte yer olmadığından başka bir disk altında büyütülür. Başka bir disk altında büyütmek tek sunucu üzerinde çalışan databaseler için geçerlidir. AlwaysOn gibi high availability çözümlerinde farklı bir disk altında olması sistemin çalışmamasına sebep olacaktır. Herhangi bir database altında  birden fazla log dosyası olduğunda  sql server sadece bir log dosyasına yazar demiştik. Bu yazma işlemi için hangi log dosyasının autogrowth değeri açıksa veritabanı altında gelen logları […]

DDM(Dynamic Data Masking)

T-SQL 2 hafta önce

Veri yönetiminde karşılaşılan zorluklardan biri, hassas bilgilerin korunmasını sağlarken bu bilgilerin kullanımını sürdürmektir. Dynamic Data Masking (DDM), bu dengenin sağlanmasına yardımcı olarak, veri tabanlarındaki hassas verileri gizleyip, yetkili kullanıcıların yalnızca gerekli bilgileri görmesini mümkün kılar. Dynamic Data Masking’de default, email, ve partial olmak üzere üç adet parametre bulunmaktadır. default: Bu yöntem ile yapacağınız veri maskeleme işlemlerinde kolonun veri tipine göre maskeleme işlemi yapar. Metinsel kolonlarda veri maskelemeyi ‘xxx’ değeri ile yapar. Sayısal kolonlarda veri maskelemeyi tek byte’lık 0 değeri ile yapar. Tarihsel kolonlarda veri maskelemeyi ‘01.01.1700 00:00:00.0000000’ değeri ile yapar. email: E-Mail maskeleme işlemininde bu yöntemi kullanırız. Sadece ilk harfini alarak geri kalanını “XXX@XXXX.com” şeklinde şifreler. Örneğin;FXXX@XXXX.com partial: Veriyi istediğiniz formatta maskeleyebileceğiniz fonksiyondur.Kullanımına Örnek vermek gerekirse; partial(2,A,2) fonksiyonuyla maskelenmiş bir kolonda verilerin baştan iki karakteri ve sondan iki karakterini gösterecek kalan karakterlerini A harfiyle maskeleyecektir. random:Veriyi belirlemiş olduğunuz değerler arasında rastgele değerlerle maskeler. Numaric  alanlarda kullanılır. Örnek vermek gerekirse; random(10,20) fonksiyonuyla kolona gelen […]

ULAŞILAMAYAN DİSKTEKİ DATABASE FİLE KURTARMA

SQL Server 3 hafta önce

Bu makalede Sql Server ’da diskine ulaşılamayan bir veri tabanının files taşıma adımlarından bahsedeceğim. Diyelim ki database files konumlandırmış olduğumuz disklerden bir tanesi offline durumuna geçtiğini gördünüz ve diskin durumu hakkında net bilgi edinememektesiniz. Diskin içerisinde bulunan verileri kurtarmak istiyorsunuz ama disk offline durumda olduğundan dolayı içine erişim sağlayamıyorsunuz bu gibi durumda benim kullanmış olduğum bir yöntemi sizinle paylaşmak istiyorum, Robocopy. Şimdi bir örnek üzerinden adım adım neler yapabileceğimize bakalım. Öncelikle database files konumlandırını tespit ediyoruz; SELECT name as FileLogicalName, physical_name as FileLocation FROM sys.master_files WHERE database_id =DB_ID(N’MuratTest’) Görsel – 1   Database files konumlandırını tespit ettikten sonra offline durumuna getirerek ilgili files konumlarını değiştireceğiz. 1) Öncelikle database offline state çekiyoruz. use master GO ALTER DATABASE [MuratTest] SET OFFLINE WITH ROLLBACK IMMEDIATE 2) Database file taşıma işlemlerini gerçekleştiriyoruz, Command Prompt Rus aas administrator ile çalıştırılır; robocopy D:\Data3\Data D:\Data4\Data /mir /mt:60 /r:2 /w:5 /np /ts /bytes /xd >>D:\Data3\log1.txt Görsel – 2 […]

0 Yorum

Yorum Yaz

Rastgele