پیشتر در این مقاله در مورد اینکه sql server چیست و نحوه نصب sql server روی سرورهای مجازی صحبت کردیم، در این مقاله قصد داریم در مورد بکاپگیری و ریستور دیتابیس sql server صحبت کنیم.
گاهی اوقات در بکاپ گیری از دیتابیس ممکن است بعضی از جداول در بکاپ موجود نباشند که این همیشه یک معضل بزرگ برای کاربران و برنامه نویسان است. ما در این آموزش، قصد داریم روشهای مختلف بکاپگیری را از طریق کنترل پلسک، نرم افزار SQL Server Management Studio و از طریق ایجاد اسکریپت قدم به قدم توضیح دهیم.
فرآیند بکاپگیری بسیار مهم است زیرا بکاپگیری و ریستور دیتابیس یکی از مهمترین وظایف روزمره مدیر بانک اطلاعاتی است.
مواردی که در آموزش بکاپگیری دیتابیس با روش های مختلف از داخل SQL Server و پلسک بررسی خواهیم کرد به ترتیب:
- بکاپگیری و ریستور دیتابیس از طریق کنترل پنل پلسک
- بکاپگیری و ریستور دیتابیس از طریق نرم افزار Sql Server Management Studio
- بکاپگیری دیتابیس sql server از طریق Generate Script
بکاپگیری و ریستور دیتابیس از طریق کنترل پنل پلسک
ابتدا وارد هاست ویندوز خود شوید و روی گزینهی Database کلیک کنید
در این بخش نام دیتابیس خود را مشاهده میکنید، جهت خروجی گرفتن یا تهیه بکاپ از دیتابیس، بر روی گزینهی Export Dump کلیک کنید.
پنجرهی کوچکی با نام Export Dump باز میشود، در ابتدا مشخص کنید که فایل بکاپ در کدام قسمت هاست ذخیره گردد و در صورتی که تیک گزینهی Automatically download dump after creation را بزنید، پس از گرفتن export از دیتابیس، یک فایل zip بصورت اتوماتیک دانلود میکند.
با زدن Ok عملیات بکاپ گیری آغاز و در قسمت پایین صفحه پنجرهی سیاه رنگ کوچکی که گویای مراحل بکاپ گیری است را مشاهده مینمایید. بعنوان مثال در عکس زیر بکاپ در مرحلهی Prepairing هست
پس از اتمام روند بکاپگیری پیغام The dump of database name is ready. You can Download it. را مشاهده مینمایید. اگر در مرحلهی قبل تیک گزینهی Automatically download dump after creation را زده باشید، بکاپ بصورت اتوماتیک دانلود میشود ولی اگر این تیکت را نزده باشید، با کلیک روی Downlod میتوانید بکاپ را بصورت یک فایل zip دانلود نمایید.
پس از دانلود بکاپ، آن را Extract کنید و فایل بکاپ را Rename کرده و پسوند bak. را به انتهای آن اضافه نمایید، سپس جهت ریستور، مانند تصویر زیر، روی گزینهی import dump کلیک کنید
روی دکمهی choose file کلیک و مسیر فایل بکاپ را باز کنید.
سپس فایل بکاپ را انتخاب و روی Ok کلیک میکنیم
پس از import و restore، پیغام سبزرنگ The dump database name was imported. را مشاهده میفرمایید که نشاندهندهی با ریستور موفقیت آمیز بکاپ است.
بکاپ گیری و ریستور از طریق نرم افزار Sql Server Management Studio
SQL Server Management Studio (SSMS) نرم افزاری است که نخستین بار با Microsoft SQL Server 2005 ارائه شد که برای کانفیگ و مدیریت کلیه پارامترها در Microsoft Sql Server استفاده میشود. این نرم افزار جایگزین Enterprise Manager در SQL 2000 یا قبل از آن است. این ابزار شامل Editor اسکریپت و ابزارهای گرافیکی است که با اشیاء و ویژگی های سرور کار می کنند.
مایکروسافت این نرم افزار را از ورژن 11 ارائه کرد و بر اساس پوسته Visual Studio 2010 ساخت. ورژنهای 18 و بعد از آن را نیز بر اساس Visual Studio 2017 Isolated Shell ساخت. در ژوئن سال 2015، این شرکت تصمیم خود را برای انتشار ورژنهای آینده SSMS به طور مستقل از نسخههای موتور سوکت پایگاه داده SQL Server اعلام کرد. آخرین ورژن SSMS تا این لحظه 18.4 در نوامبر 2019 است.
بکاپگیری از طریق SSMS
جهت بکاپگیری از طریق نرم افزار sql server management studio، ابتدا به نرم افزار لاگین کرده (با یوزرنیم و پسورد Sql Server وارد شوید) و دیتابیس مورد نظرمان را انتخاب میکنیم.
روی دیتابیس راست کلیک کنید و از منوی Task گزینهی Backup را انتخاب کنید.
در پنجرهی زیر موارد پیشفرض را تغییر نمیدهیم، دقّت داشته باشید که Backup Type بر روی Full باشد، در قسمت وسط صفحه در بخش Destination روی گزینهی Add کلیک کنید.
پنجرهی کوچک Select Backup Destination باز میشود، جهت تنظیم مسیر فایل بکاپ روی دکمهی … کلیک کنید.
پنجرهی Locate Database files، درایوهای سیستمتان یا سرورتان را مشاهده میکنید، مسیر مورد نظرتان را انتخاب و در پایین پنجره در فیلد files of type، گزینهی bak. را انتخاب و در بخش File name، نامی که قصد داریم به بکاپ دیتابیس اختصاص دهیم را درج میکنیم و حتماً bak. را در انتهای نام فایل بکاپ درج میکنیم.
در این مرحله، مسیر و نامی را که در مرحله قبل برای بکاپ دیتابیس sql server اختصاص دادیم، مشاهده میکنیم و روی Ok کلیک میکنیم.
اکنون در بخش Destination مسیر و نامی که برای بکاپ دیتابیس sql server تعریف کرده بودیم را مشاهده میکنیم، روی Ok کلیک کنید
ریستور بکاپ دیتابیس از طریق SSMS
جهت ریستور بکاپ روی دیتابیس که قبلاً تهیه نمودهاید، دیتابیس مد نظر را که قصد ریستور یک بکاپ sql server روی آن دارید، انتخاب نمایید. (در اینجا نام دیتابیس sql server ما، maralhost_db میباشد)
روی دیتابیس راست کلیک کنید و از منوی Task گزینهی Restore و از زیر منو، گزینهی Database را انتخاب نمایید.
پنجرهی Restore Database برای شما باز میشود، در بخش Source گزینهی Device را انتخاب و سپس روی دکمهی … کلیک کنید
پنجرهی Select Backup Device باز میشود، در بخش Backup Media روی گزینهی Add کلیک کنید
سپس در پنجرهی Locate Backup File، از مسیری که فایل بکاپ در آن قرار دارد،فایل بکاپ را انتخاب و روی Ok کلیک نمایید.
مجدد به پنجرهی Select Backup Device باز میگردیم، روی Ok کلیک میکنیم
اکنون روی گزینهی Options کلیک کنید، تیکت دو گزینهی Overwrite the existing database و Restrict access to restore database را بزنید و در وسط صفحه، در بخش Tail-Log backup، گزینهی Take tail-log backup before restore را غیر فعّال نمایید
سپس روی Ok کلیک کنید، مطابق با تصویر زیر مشاهده میکنید که ریستور در حال انجام (in progress) است.
پس از اتمام ریستور مطابق با تصویر زیر با پیغام Database database name restored successfully. مواجه میشویم که به معنی ریستور شدن موفق بکاپ دیتابیس sql server میباشد.
بکاپ گیری دیتابیس sql server از طریق Generate Script
جهت تهیه اسکریپت ابتدا به Sql server management studio لاگین و دیتابیسی که قصد داریم از آن Script تهیه کنیم را انتخاب میکنیم، در اینجا نام دیتابیس مورد نظر ما، admin_db است. روی دیتابیس راست کلیک و از زیر منو، گزینهی Tasks، گزینهی Generate Scripts را انتخاب میکنیم.
پنجرهی Generate and publish scripts برای شما باز میشود، روی Next کلیک کنید.
در این مرحله صبر کنید تا Database information لود شود و سپس روی Next کلیک کنید.
در مرحلهی Select the database objects to script گزینهی Script entire database and all database objects را انتخاب و روی next کلیک کنید.
به مرحلهی Specify how scripts should be saved or published میرسیم، در بخش Output type، گزینهی Save scripts to a specific location را انتخاب و در وسط صفحه، گزینهی Save to file را انتخاب نمایید، در بخش File name مسیر و نام فایل اسکریپت را تعیین و در بخش save as گزینهی Unicode text را انتخاب نموده و روی next کلیک کنید.
در مرحلهی بعد، Review your selection میتوانید خلاصهای از انتخابها در مراحل قبل را مشاهده بفرمایید. روی next کلیک کنید.
مطابق با تصویر زیر روند خروجی گرفتن از دیتابیس sql server آغاز شده است.
پس از گذشت چند دقیقه، script از دیتابیس Sql server تهیه میشود، روی finish کلیک کنید.
جهت ریستور script تهیه شده از دیتابیس Sql server روی دیتابیس دیگر، ابتدا فایل اسکریپت را با یک نرم افزار editor متن مانند ++ Note Pad باز کنید، کلیدهای ctrl+F را فشار دهید تا پنجرهی find and replace برای شما باز شود، سپس تب replace را باز کنید، در فیلد find what نام دیتابیسی که از آن script تهیه کردید را درج کنید و در فیلد Replace with، نام دیتابیسی که قصد دارید این اسکریپت روی آن ریستور شود را درج نمایید
حال وارد نرم افزار sql server management studio شوید، دیتابیسی که قصد دارید بکاپ روی آن ریستور گردد را انتخاب کنید و روی آن راست کلیک کنید و گزینهی New Query را انتخاب نمایید.
وقتی صفحهی Query باز شد، کلیهی کُدهای درون فایل Script را کپی کنید و در قسمت Query نرم افزار sql server management studio، کُدها را paste کنید، سپس از نوار بالای صفحه، روی گزینهی Execute کلیک کنید
مطابق با تصویر زیر، Query اجرا و در انتها پیغام successfull را روی صفحه نمایش خواهید دید.