SQL Foreach ile Tüm DBlerin Backupını Almak – sp_MSforeachdb

Mehmet Güzel Hocamın da bloğunda yazmış olduğu undocumented stored procedure olan sp_MSforeachdb ile backup alma işlemini bende paylaşmak istedim.

master DBsi üstünde tanımlı olan bu procedure ile tüm DBlerin içinde dönebilir ve istediğiniz her işlemi tüm dblere aynı anda uygulayabilirsiniz. Ben şimdilik sadece kullanıcı veritabanlarının yedeğini almayı göstereceğim.
İlk önce procedureü ve parametrelerini inceleyelim;

EXEC sp_MSforeachdb @command1, @replacechar, @command2, @command3, @precommand, @postcommand

Parametrelerin açıklaması: (Şimdilik sadece ingilizce)

@command1: nvarchar(2000) field specifying the first command to run against each database. May not be blank.
@replacechar: nchar(1) field specifying the character in the command parameters to replace with the database name. Defaults to ?
@command2: nvarchar(2000) field specifying the 2nd command to run against each database
@command3: nvarchar(2000) field specifying the 3rd command to run against each database
@precommand: nvarchar(2000) field specifying a command to be run prior any commands against any database
@postcommand: nvarchar(2000) field specifying a command to be run after running all commands


Kullanım:
Tüm DBleri listelemek için;

EXEC sp_MSforeachdb 'PRINT ''Database: ?'''

Yedek almak için:

EXEC sp_msforeachdb 'IF db_id(''?'')>4 BACKUP DATABASE [?] to disk = ''c:\Backups\?.bak'' with init'

SQL Server 2008 ve sonrası için sıkıştırılmış yedek almak için COMPRESSION parametresinide ekleyebiliriz;

EXEC sp_msforeachdb 'IF db_id(''?'')>4 BACKUP DATABASE [?] to disk = ''c:\Backups\?.bak'' with init, compression'

Yedeği alacağınız klasör daha öncesinde oluşturulmuş olması gerekmekte. Aksi taktirde hata veriyor.

Saygılar.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s