روش SQL Server Full Backup
روش SQL Server Full Backup
انواع گرفتن نسخه پشتیبان
در این فصل به معرفی روش های Backup گیری SQL Server و کلیات آنها خواهیم پرداخت. بصورت کلی در SQL Server ما می توانیم هشت روش مختلف Backup گیری داشته باشیم که به بررسی آنها می پردازیم.
برگرفته از کتاب آموزش گام به گام SQL Server 2019 جناب آقای مهندس غلامحسین عبادی / انتشارات فارسیران
SQL Server Full Backup
معمول ترین روش Backup گیری از SQL Server روش Full یا Complete می باشد به این روش Database Backup هم گفته می شود. با این روش شما براحتی می توانید اطلاعات خود را Recover یا بازیابی کنید. این روش سادهترین روش بازیابی اطلاعات می باشد زیرا تمامی اطلاعات به یکباره بازیابی می شوند.
به بعضی از اصطلاحات Backup توجه فرمایید
اصطلاح Backupset
به خروجی دستور Backup شما (هر نوع Backup، که می تواند Full Backup ویا differential Backup و یا Log Backup باشد) اصطلاحا Backupset گفته می شود. لازم به ذکر است که شما می توانید در یک فایل بک آپ چند Backupset از چند دیتابیس مختلف را داشته باشید.
مثال :
Backup Database INVDB TO Disk= ‘C:\Temp\BackupDB.bak’
Backup Database SaleDB TO Disk= ‘C:\Temp\BackupDB.bak’
همانطور که در دو مثال فوق می بینید در فایل BackupDB.bak در واقع دو Backupset را کنار هم قرار داده ایم.
حال اگر بخواهیم اطلاعات Backupset های داخل این فایل را مشاهده نماییم می توانیم از دستور زیر استفاده نماییم.
Restore Headeronly from Disk=’C:\Temp\BackupDB.bak’
و چنانچه خواستید اطلاعات Backupset اول داخل این فایل را مشاهده نمایید از دستور زیر استفاده کنید :
Restore Headeronly from Disk=’C:\Temp\BackupDB.bak’ with file=1
تذکر : برای دیدن فایل داخل یک Backupset (منظور دیدن فایل mdf و فایل ldf) می توانیم از دستور زیر استفاده نماییم.
Restore FileListonly from Disk=’C:\Temp\BackupDB.bak’
مثال برای Backupset
مثال : قطعه کدی بنویسید که یک نسخه پشتیبان (Backup) از دیتابیس BOM به صورت Full تهیه نماید.
BACKUP DATABASE BOM
TO DISK=’E: \Databases\BOM_Full.bak’ with format
تذکر : در کد فوق دستور format باعث می شود که نسخه پشتیبان فعلی بر روی نسخه پشتیبان قبلی قرار گیرد.
تذکر : هنگام Backup گیری حتما آن را بصورت فشرده Backup بگیرید. هم سرعت Backup گیری شما بالا می رود و هم حجم نسخه Backup شما کاهش می یابد.
مثال : قطعه کدی بنویسید که یک نسخه پشتیبان به صورت Full و فشرده شده از بانک شما تهیه نماید.
در کد زیر دستور Stats باعث نمایش درصد پیشرفت کار به صورت 10درصد می شود و همچنین دستور Compression باعث فشرده شدن نسخه پشتیبان ما می شود.
BACKUP DATABASE BOM TO DISK=’ E: \Databases\BOM.bak’
WITH STATS=10, FORMAT, COMPRESSION
تذکر : زمانی که از دستور Compression استفاده می کنید، سرعت بک آپ گیری شما تقریبا 6 برابر کاهش می یابد.
اصطلاح Mediaset :
به محل نوشتن داده های مربوط به Backupset اصطلاحا Mediaset می گویند، که می تواند Network Disk و یا Tape و یا Local Disk باشد.
اصطلاح Media Family :
ما می توانیم اطلاعات مربوط به یک Backup را در چندین فایل ذخیره کنیم. حتی می تواینم هر فایل را در یک Media ذخیره کنیم. به عبارتی میتوانیم یک Backupset را به چند قسمت تقسیم کنیم.
تذکر مهم : زمانی که شما هنگام بک آپ گیری از تکنیک media family استفاده می نمایید، بهترین Performance این است که تعداد فایلهای بک آپ شما مساوی تعداد فایلهای Data دیتابیس شما باشند.
مثال : قطعه کدی بنویسید که یک نسخه پشتیبان از بانک BOM به صورت فول در چند درایور را ایجاد کند.
BACKUP DATABASE BOM TO
DISK = ‘C: \ BOM_1.BAK’,
DISK = ‘D:\ BOM_2.BAK’,
DISK = ‘E: \ BOM_3.BAK’
قرار دادن رمز بر روی نسخه پشتیبان
برای قرار دادن رمز بر روی نسخه پشتیبان باید از دستور Password استفاده نماییم. به یک مثال که در زیر آمده است، توجه فرمایید.
BACKUP DATABASE BOM
TO DISK = ‘C: \BOM.BAK’
WITH PASSWORD = ‘Q!W@E#R$’
تذکر مهم : شما می توانید لاگ عملیات Backup را در دیتابیس MSDB و جداول مختلف از جمله جداول Backupset و جدول Backupfile مشاهده نمایید.
Select * from msdb.dbo.backupset
در جدول backupset به شما نشان داده می شود که از کدام دیتابیس ها و در چه تاریخی بک آپ گرفته شده است. حتی اطلاعات مربوط به Restore را نیز به شما نشان می دهد.
دیدگاهتان را بنویسید