نحوه پشتیبان گیری از یک بانک SQL در زمانهای معین و تنظیمی و به صورت اتوماتیک توسط Microsoft SQL Server Agent
نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

موضوع: نحوه پشتیبان گیری از یک بانک SQL در زمانهای معین و تنظیمی و به صورت اتوماتیک توسط Microsoft SQL Server Agent

  1. *Mohammad* آواتار ها
    *Mohammad*
    مدیر سابق
    May 2011
    63,336
    22,637
    تشکر شده : 91,444

    پیش فرض نحوه پشتیبان گیری از یک بانک SQL در زمانهای معین و تنظیمی و به صورت اتوماتیک توسط Microsoft SQL Server Agent

    مقدمه

    این یک مثال کاربردی در زبان #C برای پشتیبان گیری خودکار در زمانهای معین از یک بانک اطلاعاتی SQL بوسیله Microsoft SQL Server Agent می باشد. دراین مثال از کامپوننت SQL-Demo Dll استفاده شده است. این برنامه برروی کامپیوتری که SQL Server 2000 و همچنین VS2005 برروی آن نصب شده باشد اجرا می گردد. SQLDMO در زمان نصب SQL Server و یا SQL Client نصب می گردد. بعد از اجرای برنامه ابتدا در EditBox مربوطه نام سرور و نام کاربری و کلمه عبور را وارد نمایید وسپس لینک Connect را کلیک نمایید تا لیست بانکهای اطلاعات موجود به Combobox زیر آن اضافه شود حال یک بانک را انتخاب و سپس زمانهای پشتیبان گیری را از طریق کنترلهای مربوطه بر روی فرم بعد از تنظیمات و فشردن دکمه Craete Backup می توانید بصورت دستی جهت حصول از صحت عملکرد برنامه آن را کنترل کنید. جهت اینکار وارد SQL Server Enterprise شوید و سپس Manegement Option را انتخاب کنید در مرحله بعد SQL Server Agent را باز کنید درمرحله بعد پنجره Job را باز کنید.کنترل کنید که آیا ایتم Job تعریفی موجود می باشد یا خیر.سپس برروی Job که اخیراً ساخته شده است کلیک راست و سپس گزینه Start Job را کلیک نمایید و سپس که آیا در مسر ذکر شده فایلهای پشتیبان فایل Backup ساخته شده موجود می باشد یا خیر.
    اضافه نمودن Refrence مربوط به SQL Demo DLl به پروژه
    برای این کار می توانید در پنجره Solution Explorer کلیک راست و سپس گزینه Add Reference را کلیک و در پنجره باز شده گزینه Microsoft SQLDMO Object Library را انتخاب و OK نمایید. توابع و کدهای بکاررفته در این پروژه بشرح زیر می باشد.

    public void DisplayServerList(ComboBox cboListName)
    {
    try
    {
    SQLDMO.Application oSQLServerDMOApp = new SQLDMO.Application();
    Info.informationLayer info = new Info.informationLayer();

    SQLDMO.NameList oNameList;
    oNameList = oSQLServerDMOApp.ListAvailableSQLServers();
    for (int intIndex = 0; intIndex <= oNameList.Count - 1; intIndex++)
    {
    if (oNameList.Item(intIndex as object) != null)
    {
    cboListName.Items.Add(oNameList.Item(intIndex).ToS tring());
    }
    }
    if (cboListName.Items.Count > 0)
    cboListName.SelectedIndex = 0;
    else
    cboListName.Text = "(Local)";
    }
    catch
    {
    }
    }
    اتصال به سرور مورد نظر و استخراج بانکهای موجود درآن public void DisplayDatabases(ComboBox cboDatabase,Info.informationLayer info)
    {
    try
    {
    SQLDMO._SQLServer SQLServer = new SQLDMO.SQLServerClass();
    cboDatabase.Items.Clear();
    SQLServer.Connect(info.strServerName,info.strLogin Name,info.strPwd);
    foreach (SQLDMO.Database db in SQLServer.Databases)
    {
    if (db.Name != null)
    cboDatabase.Items.Add(db.Name);
    }
    cboDatabase.Sorted = true;
    if (cboDatabase.Items.Count == 0)cboDatabase.Text = "<No databases found>";
    }
    catch (Exception err)
    {
    info.ErrorMessageDataLayer = err.Message;
    }
    }

    نردبان این جهان ما و منیست
    عاقبت این
    نردبان افتادنیست
    لاجرم آن کس که بالاتر نشست
    استخوانش سخت تر خواهد شکست




    #1 ارسال شده در تاريخ 11th December 2011 در ساعت 12:14

  2. یک کاربر از این پست تشکر کرده است :


  3. *Mohammad* آواتار ها
    *Mohammad*
    مدیر سابق
    May 2011
    63,336
    22,637
    تشکر شده : 91,444

    پیش فرض

    ساختن Job در SQL Server Agent
    public void CreateJob_Sql(Info.informationLayer info)
    {
    try
    {
    SQLDMO._SQLServer SQLServer = new SQLDMO.SQLServerClass();
    SQLDMO.Job SQLJob = new SQLDMO.Job();
    SQLDMO.JobSchedule SQLSchedule = new SQLDMO.JobSchedule();

    SQLServer.Connect(info.strServerName, info.strLoginName, info.strPwd);

    switch (SQLServer.JobServer.Status)
    {
    case SQLDMO_SVCSTATUS_TYPE.SQLDMOSvc_Stopped:
    SQLServer.JobServer.Start();
    SQLServer.JobServer.AutoStart = true;
    break;
    }

    SQLJob.Name = info.strDatabaseName;
    SQLJob.Description = "Check and Backup" + info.strDatabaseName;

    SQLServer.JobServer.Jobs.Add(SQLJob);
    SQLJob.Category = "Database Maintenance";

    SQLDMO.JobStep aJobStep = new SQLDMO.JobStep();

    aJobStep.Name = "Step 2: Backup the Database";
    aJobStep.StepID = 1;

    aJobStep.DatabaseName = info.strDatabaseName;

    aJobStep.SubSystem = "TSQL";
    //------>>> If BackUp Folder is Not Found then create BackUp Folder.

    string DirectoryName = "D:\\BackUp";
    if (Directory.Exists(DirectoryName)==false)
    {
    System.IO.Directory.CreateDirectory(DirectoryName);
    }
    //------>>>
    string ***t;
    ***t="EXEC master.dbo.xp_sqlmaint '-S " +
    info.strServerName + " -U " + info.strLoginName +
    " -P " + info.strPwd + " -D " + info.strDatabaseName +
    " -CkDB -CkAl -CkCat -BkUpMedia DISK -BkUpDB D:\\Backup -BkExt
    BAK -DelBkUps 2weeks -BkUpOnlyIfClean -Rpt
    D:\\Backup\\BackDB_Checks.txt'";
    aJobStep.Command = ***t;
    aJobStep.OnSuccessAction =
    SQLDMO_JOBSTEPACTION_TYPE.SQLDMOJobStepAction_QuitWithSuccess;
    aJobStep.OnFailAction =
    SQLDMO_JOBSTEPACTION_TYPE.SQLDMOJobStepAction_QuitWithFailure;
    SQLJob.JobSteps.Add(aJobStep);
    SQLJob.ApplyToTargetServer(info.strServerName);
    aJobStep.DoAlter();
    SQLJob.Refresh();
    aJobStep.Refresh();
    }
    catch (Exception Err)
    {
    info.ErrorMessageDataLayer = Err.Message;
    }
    }

    نردبان این جهان ما و منیست
    عاقبت این
    نردبان افتادنیست
    لاجرم آن کس که بالاتر نشست
    استخوانش سخت تر خواهد شکست




    #2 ارسال شده در تاريخ 11th December 2011 در ساعت 12:14

  4. یک کاربر از این پست تشکر کرده است :


  5. *Mohammad* آواتار ها
    *Mohammad*
    مدیر سابق
    May 2011
    63,336
    22,637
    تشکر شده : 91,444

    پیش فرض

    ساخت زمانبندی Job درSQL Server Agent
    public void CreateShedule_Sql(Info.informationLayer info)
    {
    try
    {
    //it will take bkp every week 2 day
    SQLDMO.Job SQLJob = new SQLDMO.Job();

    SQLDMO._SQLServer SQLServer = new SQLDMO.SQLServerClass();
    SQLDMO.JobSchedule SQLSchedule = new SQLDMO.JobSchedule();

    SQLServer.Connect(info.strServerName, info.strLoginName, info.strPwd);
    SQLJob = SQLServer.JobServer.Jobs.Item(info.strDatabaseName );

    // create a new JobSchedule object
    SQLSchedule.Name = "Weekly Backup";
    SQLSchedule.Schedule.FrequencyType =
    SQLDMO.SQLDMO_FREQUENCY_TYPE.SQLDMOFreq_Weekly;
    SQLSchedule.Schedule.FrequencyInterval = 2;
    SQLSchedule.Schedule.FrequencyRecurrenceFactor = 2;

    // // set backup start date
    SQLSchedule.Schedule.ActiveStartDate = info.intStartDate;
    SQLSchedule.Schedule.ActiveStartTimeOfDay = info.intStartTime;
    //// this schedule has no end time or end date

    SQLSchedule.Schedule.ActiveEndDate = 99991231;
    SQLSchedule.Schedule.ActiveEndTimeOfDay = 235959;

    //// add the schedule to the Job
    SQLJob.BeginAlter();
    SQLJob.JobSchedules.Add(SQLSchedule);
    SQLJob.DoAlter();
    //SQLJob.JobSchedules.Refresh();
    info.ErrorMessageDataLayer = "New Sql Job [Databasename= " +
    info.strDatabaseName + " ]Sucessfully Created. ";
    }

    catch (Exception err)
    {
    info.ErrorMessageDataLayer = err.Message;
    }
    }

    نردبان این جهان ما و منیست
    عاقبت این
    نردبان افتادنیست
    لاجرم آن کس که بالاتر نشست
    استخوانش سخت تر خواهد شکست




    #3 ارسال شده در تاريخ 11th December 2011 در ساعت 12:15

  6. یک کاربر از این پست تشکر کرده است :


  7. tarenoco آواتار ها
    tarenoco
    کاربر سایت
    Jan 2014
    37
    0
    تشکر شده : 5

    پیش فرض

    سلام میشه کاری کرد که با همجین نرم افزاری از فایل های sql که در هاست هست استفاده کرد ؟
    یعنی تو زمان های تعیین شده از هاست backup بگیره
    #4 ارسال شده در تاريخ 27th January 2014 در ساعت 15:55

  8. rahim_moradi آواتار ها
    rahim_moradi
    کاربر سایت
    Nov 2016
    2
    0
    تشکر شده : 0

    پیش فرض

    آموزش بسیار عالی و کاملی بود ممنونم
    #5 ارسال شده در تاريخ 3rd November 2016 در ساعت 02:52

موضوعات مشابه

  1. دانلود ویدیو آموزش VTC.com Microsoft Server 2008 Server Administrator Exam 70-646 Tutorials
    توسط secret در انجمن Video Training (آموزشهای تصویری)
    پاسخ ها: 0
    آخرين نوشته: 26th June 2010, 23:52
  2. طریقه استفاده از Microsoft Agent در دلفی
    توسط Borna66_TAHA در انجمن Delphi دلفی
    پاسخ ها: 0
    آخرين نوشته: 13th March 2010, 20:22
  3. کتاب Microsoft sql Server 2008 Beginner Guide
    توسط Admin در انجمن کتاب های الکترونیک انگلیسی کامپیوتر
    پاسخ ها: 0
    آخرين نوشته: 21st March 2009, 03:16
  4. Microsoft ISA Server 2006 Unleashed
    توسط secret در انجمن کتاب های الکترونیک انگلیسی کامپیوتر
    پاسخ ها: 0
    آخرين نوشته: 12th January 2009, 10:51

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •