خوش آموز اولین و تنها سایت آموزشی %100 رایگان ایران با 5448 آموزش متنی، تصویری و ویدئویی

بک آپ گیری از همه دیتابیس ها در SQL Server با Batch file

بک آپ گیری از همه دیتابیس ها در SQL Server با Batch file

کد مطلب : 4389 PDF

ما در پست قبلی نحوه Backup گیری از دیتابیس ها SQL Server را با استفاده از دستورات خط فرمان پوشش دادیم و دید که چگونه با استفاده از آن دستورات، به سادگی موفق به تهیه Backup و همچنین Restore کردن دیتابیس در SQL شدیم. شما با استفاده از maintenance plan در SQL Server می توانید در یک plan از همه دیتابیس ها بک آپ بگیرید.

دوره آموزش رایگان ریاضی پایه و جبر

اما ما در این پست می خواهیم با استفاده از Batch File از همه دیتابیس های Attach شده در یک instance از SQL Server را یکجا بک آپ بگیریم. فقط اگر دیتابیسی از SQL حذف و یا اضافه گردید باید این اسکریپت را بروز کنید. هر بار بک آپ، به حجم فایل قبلی اضافه خواهد شد و بک آپ فایل جدیدی ایجاد نخواهد شد.

Backup و Restore دیتابیس در SQL Server با دستورات Command Prompt
آموزش بک آپ گیری خودکار از SQL Server

لطفا برنامه Notepad را اجرا کرده و اسکریپت زیر را در آن وارد کنید:

@ECHO OFF
SETLOCAL
REM Get date in format YYYY-MM-DD (assumes the locale is the United States)
FOR /F “tokens=1,2,3,4 delims=/ ” %%A IN (‘Date /T’) DO SET NowDate=%%D-%%B-%%C
REM Build a list of databases to backup
SET DBList=%SystemDrive%SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘master’,’model’,’msdb’,’tempdb’)” > “%DBList%”
REM Backup each database, prepending the date to the filename
FOR /F “tokens=*” %%I IN (%DBList%) DO (
ECHO Backing up database: %%I
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%%I] TO Disk=’D:Backup%NowDate%_%%I.bak'”
ECHO.
)
REM Clean up the temp file
IF EXIST “%DBList%” DEL /F /Q “%DBList%”
ENDLOCAL

سپس آن را با نام و در مسیر دلخواه تان ذخیره کنید و فقط باید پسوند فایل bat باشد.

آموزش ایجاد Batch File در ویندوز

فرض کنید تا ریخ 1/13/2009 است و آنکه 3 دیتابیس با نام های MyDB، AnotherDB، DB Name with Spaces دارید.این اسکریپت، سه فایل بک آپ در مکان بک آپ گیری ذخیره می کند.

• 2009-01-13_AnotherDB.bak
• 2009-01-13_DB Name with Spaces.bak
• 2009-01-13_MyDB.bak


Customizing and Running the Batch Script


در مورد دستور فوق باید موارد زیر را در نظر داشته باشید:
اگر location در ویندوزتان کشور ایالات متحده آمریکا تنظیم نشده باشد، ممکن است دستور Date /T، تاریخ در فرمت Tue 01/13/2009 بازنگرداند. اگر این مورد باشد، متغیر NowDate فرمت دلخواه را تولید نخواهد کرد و باید تنظیم شود.
MyServer را تغییر دهید تا نام SQL Server خودتان را در آن وارد کنید.
دیتابیس هایی مثل ‘master’, ‘model’, ‘msdb’ and ‘tempdb’ را حتما می دانید که همراه با خود SQL Server نصب می شوند. اگر از آنها بک آپ نمی خواهید، به جای اینها نام دیتابیس های مورد نظر خودتان را جایگزین کنید.
D:Backup در اسکریپت بالا، مکان ذخیره سازی بک آپ فایل ها است، می توانید مسیر دلخواه خودتان را جایگزین کنید.
کافیست روی این Batch file ایجاد شده کلیک راست کرده و بصورت Run as administrator، آن را اجرا کنید یا از طریق Task Scheduler ویندوز، در زمان های مقرر بصورت خودکار این Batch file را اجرا کنید.







دیدگاه ها(0)

دیدگاه خود را ثبت کنید: