Sistem Veritabanlarını Rebuild Etmek

Sistem veritabanlarında oluşan problemler nedeniyle bazen rebuild etmek gerekir.(Başınıza hiç gelmeyebilir fakat her dba bu işin nasıl yapılacağını bilmelidir) Rebuild işlemi sistem veritabanlarını sıfırlayarak sistemin temiz bir şekilde açılmasını sağlar. Ama rebuild işlemi sistem veritabanlarının içindeki bütün verileri de sıfırlayacağından, öncelikle sistem veritabanlarının sağlıklı son backup’larının elinizde olduğundan emin olmanız gerekir. Eğer elinizde backup olmadan sistem veritabanlarını rebuild ederseniz bütün loginleriniz, joblarınız gider. Ve instance üzerindeki veritabanlarınızı instance’ı açtığınızda göremezsiniz. Instance’ını yeni kurulmuş bir instance gibi olur. Fakat veritabanı dosyalarını attach etme yöntemiyle bu yeni instance’a ekleyebilirsiniz. “ Veritabanı file(dosya)’larının disklerini değiştirmek ” isimli makalemde veritabanı dosyalarınızı nasıl attach edeceğinizi bulabilirsiniz.

Aşağıda rebuild öncesi ve sonrası yapılması gerekenleri ve rebuild işleminin etkilerini maddeler halinde anlattım;

SELECT  
SERVERPROPERTY('ProductVersion ') AS ProductVersion,  
SERVERPROPERTY('ProductLevel') AS ProductLevel,  
SERVERPROPERTY('ResourceVersion') AS ResourceVersion,  
SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,  
SERVERPROPERTY('Collation') AS Collation; 

SELECT name, physical_name AS current_file_location  
FROM sys.master_files  
WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb')); 
SELECT * FROM sys.configurations;

Peki sistem veritabanları nasıl rebuild edilir?

Öncelikle sunucu üzerinde sql server kurulum dosyası olmalıdır. Daha sonra cmd komut satırını admin olarak çalıştırmalısınız.

Daha sonra cmd komut satırından aşağıdaki gibi cd komutunu kullanarak sql server kurulum dosyasının olduğu path’e geliyoruz.

Daha sonra aşağıdaki script’i çalıştırmalısınız. Aşağıdaki script’i yeni kurulum yaptığınız bir instance’ta server collation’ı değiştirmek için de kullanabilirsiniz.

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME= rebuildedilecekinstanceadı /SQLSYSADMINACCOUNTS= sysadminhakkındasahipbirkullanıcı /SAPWD=’ sysadminhakkındasahipkullanıcınınparolası ‘ /SQLCOLLATION= servercollationadı

Rebuild işlemi bittikten sonra instance’ı açtığınızda sanki yeni bir kurulum yapmış gibi boş bir instance bulacaksınız. Bu aşamadan sonra, master, model ve msdb veritabanlarını teker teker restore edeceksiniz ya da bu makalede anlattığımız konfigurasyon ayarlarını teker teker yeniden set edeceksiniz.

Master veritabanının restore işlemlerini yapmak için;

Master Veritabanını Restore Etmek ” isimli makalelerimi okumanızı tavsiye ederim. Ayrıca msdb ve model veritabanlarınızı da restore etmelisiniz.

Msdb ve model veritabanının restore işlemlerini normal veritabanı restore işlemi gibi yapabilirsiniz. Ekstra bir ayar yoktur. Sadece msdb veritabanını restore edebilmeniz için SQL Server Configuration Manager’dan SQL Server Agent Servisini durdurmalısınız.

Msdb ve model sistem veritabanlarının script’lerini aşağıda bulabilirsiniz.

Model için;

RESTORE DATABASE model FROM DISK = 'C:\MSSQL\model2subat.bak' WITH REPLACE;

Msdb için;

RESTORE DATABASE msdb FROM DISK = 'C:\MSSQL\msdb2subat.bak' WITH REPLACE;

Eğer elinizde model ve msdb veritabanlarının backup’ları yoksa, sql server servisini durdurduktan sonra rebuild öncesi kopyaladığınız dosyaları mevcut msdb ve model veritabanı dosyalarının üzerinde yapıştırırsanız servisi tekrar açtığınızda job’larınızı görebilirsiniz. Ama en sağlıklı yöntemin backup’tan dönmek olduğunu belirtmek isterim.

Loading