PDA

View Full Version : سوال: بکاپ گیری در زمان مشخص از دیتابیس



hackman
جمعه 03 خرداد 1392, 20:18 عصر
سلام .

چه جوری میتونم تو برنامم کدی بذارم که که مثلا هر شب ساعت 12 شب از دیتابیس بکاپ بگیره و ذخیره کنه

و این که هر موقع که کاربر خواست بکاپ ها رو از داخل برنامه open کنه و مشاهده کنه

tooraj_azizi_1035
جمعه 03 خرداد 1392, 20:31 عصر
نیازی نیست کدی بنویسید. من یه Job تو SQL Server ساختم که گرفتن بکاپ رو انجام میداد و با این کدها اجازه تغییر روز ها و ساعت رو به کاربر داده بودم.
کدهای پایین Job رو می سازند، شما باید Job ای که دستی ساختی رو بگیری و پارامترهاش رو ست کنی.

http://msdn.microsoft.com/en-us/library/ms162162.aspx

{
//Connect to the local, default instance of SQL Server.
Server srv = new Server();

//Define an Operator object variable by supplying the Agent (parent JobServer object) and the name in the constructor.
Operator op = new Operator(srv.JobServer, "Test_Operator");

//Set the Net send address.
op.NetSendAddress = "Network1_PC";

//Create the operator on the instance of SQL Server Agent.
op.Create();

//Define a Job object variable by supplying the Agent and the name arguments in the constructor and setting properties.
Job jb = new Job(srv.JobServer, "Test_Job");

//Specify which operator to inform and the completion action.
jb.OperatorToNetSend = "Test_Operator";
jb.NetSendLevel = CompletionAction.Always;

//Create the job on the instance of SQL Server Agent.
jb.Create();

//Define a JobStep object variable by supplying the parent job and name arguments in the constructor.
JobStep jbstp = new JobStep(jb, "Test_Job_Step");
jbstp.Command = "Test_StoredProc";
jbstp.OnSuccessAction = StepCompletionAction.QuitWithSuccess;
jbstp.OnFailAction = StepCompletionAction.QuitWithFailure;

//Create the job step on the instance of SQL Agent.
jbstp.Create();

//Define a JobSchedule object variable by supplying the parent job and name arguments in the constructor.

JobSchedule jbsch = new JobSchedule(jb, "Test_Job_Schedule");

//Set properties to define the schedule frequency, and duration.
jbsch.FrequencyTypes = FrequencyTypes.Daily;
jbsch.FrequencySubDayTypes = FrequencySubDayTypes.Minute;
jbsch.FrequencySubDayInterval = 30;
TimeSpan ts1 = new TimeSpan(9, 0, 0);
jbsch.ActiveStartTimeOfDay = ts1;

TimeSpan ts2 = new TimeSpan(17, 0, 0);
jbsch.ActiveEndTimeOfDay = ts2;
jbsch.FrequencyInterval = 1;

System.DateTime d = new System.DateTime(2003, 1, 1);
jbsch.ActiveStartDate = d;

//Create the job schedule on the instance of SQL Agent.
jbsch.Create();
}

fakhravari
جمعه 03 خرداد 1392, 22:19 عصر
سلام
در مورد این Job توضیح میدین.
کجا تعریف میشود؟

hackman
شنبه 04 خرداد 1392, 23:31 عصر
اصن متوجه نشدم چی گفتی ؟؟؟

بیشتر توضیح میدی ؟؟؟؟

fakhravari
یک شنبه 05 خرداد 1392, 11:23 صبح
من یه Job تو SQL Server ساختم که گرفتن بکاپ رو انجام میداد
این کدا کجا زدین؟

tooraj_azizi_1035
یک شنبه 05 خرداد 1392, 11:55 صبح
از این آدرس ویدئوی ساخت Backup Maintenance رو دانلود کن و ببین:Setting up a Maintenance Plan to Backup Databases (http://technet.microsoft.com/en-us/sqlserver/dd430301.aspx)

و در مورد کدها باید اسمبلی microsoft.sqlserver.management.smo رو به پروژه تون اضافه کنید و با کلاس Job به Jobای که دستی ساختید یک ارجاع ایجاد کنید و پارامترهاش رو ست کرده و در نهایت با متد Alter تغییرات رو در دیتابیس ست کنید.
http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.agent.aspx

negar.rafie
دوشنبه 06 خرداد 1392, 09:26 صبح
حالا اگر بانکی که با sql 2008 ساختیم و در سیستم کاربر به sql express اتچ کردیم برای بک اپ گیری در زمان مشخص چه کار کنبم؟