SQL सर्वर 2008 7Zip डेटाबेस बैकअप
संदर्भ
मुझे हाल ही में साइट से डेटाबेस बैकअप को एफ़टीपी कॉपी करने की आवश्यकता के बारे में पता चला, जबकि आप स्पष्ट रूप से मानक बैकअप फ़ाइलों के साथ ऐसा कर सकते हैं, बड़ी फ़ाइलों में काफी समय लगेगा, इसलिए हमने डेटा को और संपीड़ित करने के लिए एक उपकरण के रूप में 7 ज़िप को देखा, जैसा कि डेटाबेस हमेशा ऑन-लाइन होता है, और अंतर्निहित संपीड़न प्रदर्शन पर काफी प्रभाव डालता है।
7 ज़िप को xp_cmdshell उपयोगिता के माध्यम से चलाया जाएगा जो कि डिफ़ॉल्ट रूप से अक्षम है। इसे सेट करने के लिए, निम्न कमांड का उपयोग sp_configure के माध्यम से करें। यह स्निपेट माइक्रोसॉफ्ट साइट से लिया गया था।
SQL
-- To allow advanced options to be changed.EXEC sp_configure 'show advanced options', 1;GO-- To update the currently configured value for advanced options.RECONFIGURE;GO-- To enable the feature.EXEC sp_configure 'xp_cmdshell', 1;GO-- To update the currently configured value for this feature.RECONFIGURE;
क्या ये सहायक था?
SQL
CREATE PROC dbo.DatabaseBackup(@Database NVARCHAR(100),@Folder NVARCHAR(100),@DatabaseRAR BIT)AS BEGINIF RIGHT(@Folder,1)<>'\' SET @Folder=@Folder+'\'DECLARE @Source VARCHAR(1000)=@Folder+@Database+'.bak'DECLARE @Destin VARCHAR(1000)=@Folder+@Database+'.rar'DECLARE @Command VARCHAR(1000),@CommandDel VARCHAR(1000)
DECLARE @BackupScript NVARCHAR(1000)='BACKUP DATABASE '+@Database+' TO DISK=N'''+@Source+'''WITH NOFORMAT, INIT, NAME =N'''+@Database+'_Backup'', SKIP, NOREWIND, NOUNLOAD, STATS= 10;'EXEC (@BackupScript)
IF @DatabaseRAR=1 BEGIN SET @CommandDel = N'del '+@Destin+'' SET @Command = N'"C:\Program Files\7-Zip\7z.exe" a '+@Destin+' '+@Source+' ' PRINT @Command EXEC xp_cmdshell @CommandDel EXEC xp_cmdshell @CommandENDENDGOEXEC DatabaseBackup 'db','C:\\',1
क्या ये सहायक था?
जब सेट किया जाता है, तो 20GB डेटाबेस बैकअप में 7 मिनट लगते हैं, और फिर ज़िप करने में केवल एक घंटे से अधिक का समय लगता है। यदि संभव हो, तो आप डिस्क आईओ विवाद से बचने के लिए इसे एक अलग सर्वर पर या अपने डेटाबेस से अलग ड्राइव पर करना चाहेंगे।
यहाँ एक डेटाबेस पर बैकअप संपीड़न दर का एक स्क्रीनशॉट है, जहाँ आप देख सकते हैं कि .rar फ़ाइल संपीड़ित बैकअप के आकार का लगभग एक तिहाई है, और संपीड़ित बैकअप असम्पीडित के आधे से अधिक आकार का है।
एफ़टीपी वर्तमान में अलग से किया जाता है, लेकिन आने वाले समय में मैं एफ़टीपी में इस कोड का निर्माण करूँगा...