50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

نوشتن اسکریپت تغییر نام فایل بکاپ SQL سرور

سلام دوستان؛ وقتتون بخیر.سناریویی رو در نظر بگیرین که Sql server به صورت زمانبندی شده هر ساعت یک پشتیبان از DATA مورد نظر گرفته و آنرا مثلا با نام backup ذخیره می کند. در هر ساعتی که این پشتیبان توسط Sql گرفته می شود، پشتیبان قبلی طبیعتاً بخاطر همنام بودن از بین می رود.

حال امکانش هست که اسکریپتی بنویسیم که با هر بار اجرا شدن، یک عدد به انتهای فایل اضافه کند تا آن فایل قبلی از بین نرود؟ میخوام اون رو در Scheduled Tasks طوری تنظیم کنم که هر ساعت و بعد از گرفتن فایل پشتیبان توسط Sql وارد کار شده و نام فایل قبلی را تغییر داده و یا به انتهای آن یک عدد یا ساعتی را اضافه کند.برای روشن تر شدن سناریو به این مراحل دقت کنید:

1- فایل پشتیبان در ابتدای هر ساعت توسط Sql آماده می شود. به نام backup. بعنوان مثال در ساعت 9 بامداد.

2- اسکریپت مورد نظر بصورت ساعتی و نیم ساعت پس از مرحله 1 وارد مدار می شود. بعنوان مثال در ساعت 9:30 بامداد.

هر دو چرخه فوق هر ساعت تکرار می شوند.

با تشکر

پرسیده شده در 1393/11/12 توسط

2 پاسخ

3

سلام، میتونی نام فایل رو بر اساس زمانی که backup گرفته شده تایین کنی، مثال:

declare @dbPath nvarchar(255)
set @dbPath = N'e:\itpro_backups\'+(SELECT REPLACE(REPLACE(GETDATE(),':','-'),' ','-'))
BACKUP DATABASE [ITPro] TO  DISK = @dbPath
پاسخ در 1393/11/12 توسط
1

در تکمیل صحبت های جناب مهندس اگه بکاپ گرفتن شما دستوری و با کوئری انجام میشه میتونی دستور زیر رو به کوئریت اضافه کنی: <sql>

GETDATE()

<sql>

که در این صورت حتی ثانیه هم ثبت شده و امکان تکراری بودن نام های بکاپ وجود نخواهد داشت.

و اگه هم با خود Management studio اومدی و Job تعریف کردی که دیگه مشکلی نیست و برای اسم دیتابیس ثانیه ها هم اضافه می شوند.

پاسخ در 1393/11/14 توسط

پاسخ شما