Backup Mirroring (Backup Family)
Backup يك دیتابیس بعنوان مهمترين و قابل اتكاترين شيي براي بازيابي اطلاعات يك پايكاه داده مي باشد لذا در امر Backup گيري از دیتابیس بايستي طوري عمل شود تا با حداقل خطا بتوان دیتابیس را بازسازي كنيم. يكي از راه هاي رسيدن به اين مهم استفاده از Mirrored Media Set مي باشد. مفهوم آن بصورت زير است:
Media Family 1 , Medial Family 2 بعنوان Backup Media و همانطور كه در شكل مي بينيد 4 عدد Tape بعنوان Backup Media وجود دارد.
Mirror 2 يك كپي مشابه از Mirror 1 مي باشد. به عبارت ديگر زمانيكه از دیتابیس يك Backup و Mirror آن تهيه مي شود. 2 Backup بصورت مستقل توليد مي كند و براي Restore آنها هر كدام بصورت مستقل از هم قابل Restore شدن مي باشند.
Mirror مي تواند روي Disk , Tape گرفته شود. در زمان Backup / Restore وجود Mirror الزامی نمي باشد .
براي اين كار مي توان بصورت زير عمل كرد :
Backup Database MyDB
To Disk = 'c:\sss.bak'
mirror to disk = 'c:\ssss.bak'
with format
روش Backup گيري با URL
در بسياري از مواقع لازم مي شود تا Backup را روي Backup Media خارج از سیستم Server گرفته شود. از اين رو ضرورت وجود امكان تهيه Backup روي يك Media در شبكه لازم مي شود. براي استفاده از اين امكان بايستي نكاتي را در نظر بگيريم كه به شرح زير مي باشد :
- Startup Account مربوط به سرويس SQL Server را با Administrator Domain و در صورت Workgroup با كاربر Administrator كامپيوتر مبدا تنظيم شده باشد.
- در كامپيوتر مقصد Folder با مجوز Write براي كاربري كه Service را Start كرده است ، ايجاد شود.
- در قسمت معرفي مسير Backup گيري از عبارات ComputerName\ShaeredFolder\...) URL) استفاده شود.
Partial Backup
در SQL Server 2005 نوعي جديد از Backup گيري ايجاد شده است كه با كمك آن مي توان شبيه به يك Full Backup از اشياي زير Backup تهيه مي كند:
- تمامي Data ها در Primary File Group
- تمامي اطلاعات در Read – Write File Group
- تمامي اطلاعات از فايلهاي Read – Only
نكته :
يك Partial Backup از دیتابیس Read-only فقط از گروه Backup ، Primary تهيه مي كند.
اين نوع Backup در Backup گيري از دیتابیس در مدل Simple بيشتر مورد استفاده قرار مي گيرد هر چند كه در ساير مدل ها نيز اين امكان وجود دارد.
Backup گيري با دستور T-SQL
BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [ ,...n ]
[ [ MIRROR TO < backup_device > [ ,...n ] ] [ ...next-mirror ] ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] { CHECKSUM | NO_CHECKSUM } ]
[ [ , ] { STOP_ON_ERROR | CONTINUE_AFTER_ERROR } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] { Init | NOINIT } ]
]
مثلا:
BACKUP DATABASE MyDB
TO DISK='c:\MyFolder\BackupDB.bak
برخي از كارها را نمي توان با كمك ابزار گرافيكي Backup گيري انجام داد و بايستي با استفاده از دستورات اين كارها را انجام داد. اين كارها در مجموعه Switch هاي دستور مي با شد كه در اينجا تعدادي از Switch هاي مهم را مورد بررسي قرار مي دهيم :
CHECKSUM | NO_CHECKSUM
CheckSum برای Backup محاسبه شود یا نه.( در زمان Restore کردن ، در نظر گرفتن CheckSum اختیاری است.)
STOP_ON_ERROR | CONTINUE_AFTER_ERROR
در زمان Backup گيري چنانچه Error رخ دهد بايستي كار Backup گيري ادامه داشته باشد و يا متوقف شود.
DIFFERENTIAL
انجام Backup روش deferential با اين Switch امكان پذير است.
{PASSWORD = {password
مي توان براي Backup گرفته شده Password قرار داد و در زمان Restore با ارائه Password دیتابیس بازيابي شود.
INIT | NOINIT
Init امكان Overwrite كردن روي دیتابیس موجود را فراهم مي آورد و NOINIT عمل عكس را انجام مي دهد.
ادامه دارد ...