SQL Server AlwaysOn Veritabanı Manuel Taşıma Konusunda İzlenecek Yol

Bu makalede AlwaysOn yapısında olan veritabanının replica sunucusunda disk boyutunun yetmemesi, diskin yanlış formatlanması veya disk yolunun replica sunucularda farklı olması sonucu secondary sunucuda  veritabanının mdf dosyasının başka disk altına taşınması işlemini yapıp veritabanını ayağa kaldırmış olacağız.

Aşağıdaki komut ile veritabanınların hangi disk altında konumlandığını görmüş olacağız.

USE master;
SELECT
  name 'Logical Name',
  physical_name 'File Location'
FROM sys.master_files;

Aşağıdaki komut ile veritabanın hangi disk altında çalıştığı görülebilir.

SELECT name, physical_name AS NewLocation, state_desc AS OnlineStatus
FROM sys.master_files 
WHERE database_id = DB_ID(N'AdventureWorks2014') 
GO

Aşağıdaki komut ile veritabanının fiziksel olarak meta data bilgisi görülmektedir.

Hangi veritabanıyla ilgili detaylı bir bilgiye ulaşmak istiyorsak aşağıdaki komut kullanılır. Aşağıdaki uzantı primary sunucusunda olan veritabanın disk uzantısını görmekteyiz.

sp_helpdb ‘AdventureWorks2014’

Veritabanı dosyalarını değiştirmek için aşağıdaki yol izlenmektedir.

1-Primary ve Secondary sunucuda failover modu automatik’den manuel moda alınır.

2-Primary sunucuda taşıyacağımız veri tabanların log alması durdurulur.

3-Secondary sunucuda alwayonda bulunun ilgili veri tabanı data aktarımı durdurulur.(Suspend moda alınır)

4- Secondary sunucuda Alwayson’da bulunan veri tabanı çıkarılır(Remove) ve Restoring moda düştüğü görülür.

5- Secondary sunucuda alter database komutu verilerek alter database modify komudu çalıştırılır.

6- Secondary sunucuda sqlserver servis hesabı durdurulur. Sebebi veritabanını taşımak için.

7- MDf’ler taşımak istediğimiz alana kopyala yapıştır ile taşınır.

8- Sql server service hesabı tekrardan start edilir.

9- Secondary sunucuda ilgili veri tabanları Alwayson’a dahil edilir.

10-Primary’de log alma tekrar başlatılır.

11-İki sunucu arasında veri farkı olmadığı görüldüğü an failover mod otomatik yapılır.

Yukarıdaki işlerden en önemli olan kısım veritabanı altında bulunan data file dosya uzantılarından mdf file olan uzantısının meta data dosyasından değişmesi gerekmektedir. Yoksa restoring modda olan veritabanı  meta data bilgileri ile farklı diske taşınan data file’lar aynı uzantıda olmadığı için hata vermektedir.

Secondary sunucusunda veritabanı dosyalarının olduğu disk yolunu görelim.

Aşağıdaki komut ile secondary sunucusunda restoring modda olan veritabanının mdf disk uzantısı değişmektedir.(NAME bölümünde data file logical name kısmında ne yazıyorsa o yazılır.)

ALTER DATABASE AdventureWorks2014  
    MODIFY FILE (NAME = AdventureWorks2014_Data,  
                  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.TEST\MSSQL\DATA\AdventureWorks2014_Data.mdf'); 

GO

Master veritabanının altında mdf file disk uzantısının değiştiğini görmekteyiz.

Servis kapatılır.

İlgili mdf dosyası  yukarıda modify yaptığımız yeni disk uzantısına taşınır.

Servis Start edilir. SSMS arayüzünde Join to Availability Group.. denilir.

ALTER AVAILABILITY GROUP AGLSQL ADD DATABASE [AdventureWorks2014]

Veritabanımızın mdf data file uzantısı değişmiş ve AlwaysOn yapımızda başarılı bir şekilde çalışmıştır.

Not: ldf dosyasının taşınması için veritabanının Detach-Attach edilmesi gerekmektedir.

Bu makalede SQL Server Always On Veritabanı Dosyalarını  Manuel Taşıma Konusunda İzlenecek Yol konusuna değinmiş olduk. Başka bir makalede görüşmek dileğiyle..

Kadir gecesi, bin aydan daha hayırlıdır. Kadir Suresi, 3. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir