أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية جدولة وأتمتة النسخ الاحتياطي لقواعد بيانات SQL Server في SQL Server Express

هام: تمت ترجمة هذه المقالة باستخدام برامج مايكروسوفت للترجمة الآلية ومن المحتمل ان يتم تحريرها او تدقيقها بعد ذلك من خلال تكنولوجيا منصة مجموعات الترجمة(CTF) او من خلال مترجم بشري. تقدم لك شركة مايكروسوفت هذه المقالات المترجمة بشكل آلي او بالترجمة البشرية او بعد تحريرها وتدقيقها من قبل مجموعات الترجمة حتى تمكنكم من الوصول إلى جميع المقالات الموجودة في قواعد المعرفة لديها بلغات مختلفة. إلا أن المقالات المترجمة قد تحتوي على أخطاء في المفردات او بناء الجمل او النحو. وعليه، فإن شركة مايكروسوفت ليست مسؤولة عن اية أخطاء او عدم دقة في الترجمة او أية أضرار قد تحدث نتيجة أخطاء في ترجمة محتويات النص او استخدامه من قبل العملاء.

اضغط هنا لرابط المقالة باللغة الانجليزية2019698
الموجز

لا تقدم إصدارات SQL Server Express طريقة لجدولة المهام أو خطط الصيانة لأنه لا يتم تضمين مكون عميل SQL Server في هذه الإصدارات. ولذلك، يلزم اتباع نهج مختلف احتياطي قواعد البيانات عند استخدام هذه النسخ.   

حاليا المستخدمين SQL Server Express النسخ الاحتياطي لقواعد البيانات الخاصة بهم باستخدام أحد الأساليب التالية:

استخدام SQL Server إدارة Studio Express. يتم تثبيت هذا إلى جانب أدوات Express في SQL Server أو خدمة ملقم SQL Express متقدمة. لمزيد من المعلومات، انتقل إلى موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

إنشاء نسخة احتياطية كاملة من قاعدة بيانات (SQL Server)

  • استخدام برنامج نصي SQL للعمليات التي تستخدم مجموعة "النسخ الاحتياطي قاعدة بيانات" الأوامر. لمزيد من المعلومات، انتقل إلى موقع MSDN التالي على الويب:

    النسخ الاحتياطي (Transact SQL)

    توضح هذه المقالة كيفية استخدام برنامج نصي SQL للعمليات إلى جانب خدمة جدولة مهام Windows لأتمتة النسخ الاحتياطي لقواعد بيانات SQL Server Express في مواعيد محددة.

  • معلومات أخرى

    يجب عليك اتباع هذه الخطوات الثلاث لدعم قواعد بيانات SQL Server باستخدام برنامج جدولة المهام في Windows:

    الخطوة أ: استخدام SQL Server إدارة Studio Express أو Sqlcmd لإنشاء الإجراء التالي في قاعدة البيانات الرئيسية:

    حقوق النشر © شركة Microsoft.  جميع الحقوق محفوظة.

    هذه التعليمات البرمجية تحت الشروط

    //الترخيص العام ل Microsoft (MS رر،http://opensource.org/licenses/ms-pl.html.)

    استخدام [الرئيسي]
    GO 
    /* * * الكائن:StoredProcedure [dbo].[sp_BackupDatabases] */
    "تعيين ANSI_NULLS على"
    الانتقال
    تعيين ON QUOTED_IDENTIFIER
    الانتقال
    -= = =
    -الكاتب: Microsoft
    -تاريخ إنشاء: 2010-02-06
    -وصف: "قواعد بيانات النسخ الاحتياطي" ل SQLExpress
    -معلمة 1: اسم قاعدة البيانات
    -معلمة 2: باكوبتيبي و D = كامل، التفاضلي، L = = تسجيل
    -معلمة 3: موقع ملف النسخ الاحتياطي
    -= = =
    إنشاء الإجراء [dbo]. [sp_BackupDatabases]
    @databaseName sysname = null،
    @backupType CHAR(1)،
    @backupLocation nvarchar(200)
    مثل
    ؛ ومجموعة NOCOUNT ON 
               
               DECLARE @DBs TABLE
               (
                      ID int IDENTITY PRIMARY KEY,
                     DBNAME nvarchar(500)
               )
               
                -- Pick out only databases which are online in case ALL databases are chosen to be backed up
                -- If specific database is chosen to be backed up only pick that out from @DBs
               INSERT INTO @DBs (DBNAME)
               SELECT Name FROM master.sys.databases
               where state=0
               AND name=@DatabaseName
               OR @DatabaseName IS NULL
               ORDER BY Name
               
               -- Filter out databases which do not need to backed up
               IF @backupType='F'
                     BEGIN
                     @DBs حذف حيث DBNAME في ('بيانات'، 'Northwind' ''، 'AdventureWorks')
    نهاية
    @backupType "إلا إذا" = قد '
    بدء
    @DBs حذف حيث DBNAME في (' بيانات '،' Northwind '' '' الأساسية '،' AdventureWorks ')
    نهاية
    @backupType"إلا إذا"=' ل '
    بدء
    @DBs حذف حيث DBNAME في (' بيانات '،' Northwind '' '' الأساسية '،' AdventureWorks ')
    نهاية
    ELSE
    بدء
    العودة
    نهاية
    -تعريف متغيرات
    DECLARE @BackupName varchar(100)
    DECLARE @BackupFile varchar(100)
    DECLARE @DBNAME varchar(300)
    DECLARE @sqlCommand NVARCHAR(1000)
    DECLARE @dateTime NVARCHAR(20)
    int @ حلقة تعريف
    -التكرار الحلقي عبر قواعد البيانات كل على حدة
    @ الحلقة تحديد = @DBs من min(ID)
    أثناء @Loop IS NOT NULL
    بدء
    -" أسماء قواعد البيانات "يجب أن تكون في شكل [dbname] منذ لدى بعض-أو _ باسمها
         @DBNAME مجموعة = '[' +(SELECT DBNAME FROM @DBs WHERE ID = @Loop) + ']'
    -تعيين تنسيق ييييهمس ن التاريخ والوقت الحالي
    @dateTime مجموعة = استبدال (تحويل (VARCHAR، '_' + GETDATE(),101),'/','') +استبدال (تحويل (VARCHAR، GETDATE(),108),':','')
    -إنشاء اسم ملف النسخ الاحتياطي في تنسيق path\filename.extension للنسخ الاحتياطي الكامل والمقارنة وسجل
    @backupType إذا = 'و'
    @BackupFile مجموعة = @backupLocation + استبدال (استبدال (@DBNAME، '['، '')، ']'، '') @dateTime+ + '_FULL_' '.باك '
    @backupType"إلا إذا"=' ي '
    @BackupFile مجموعة = @backupLocation + استبدال (استبدال (@DBNAME،' ['، '')،'] '، '') @dateTime+ +' _DIFF_ ''.باك '
    @backupType ELSE IF' ل ' =
    @BackupFile مجموعة = @backupLocation + استبدال (استبدال (@DBNAME،' ['، '')،'] '، '') @dateTime+ +' _LOG_ ''.TRN'
     
    -- Provide the backup a name for storing in the media
         IF @backupType = 'F'
               SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' full backup for '+ @dateTime
         IF @backupType = 'D'
               SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' differential backup for '+ @dateTime
         IF @backupType = 'L'
               SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' log backup for '+ @dateTime
     
    -- Generate the dynamic SQL command to be executed
     
          IF @backupType = 'F' 
                     BEGIN
                  SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                     END
          IF @backupType = 'D'
                     BEGIN
                  SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                     END
          IF @backupType = 'L' 
                     BEGIN
                  SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                     END
     
    -- Execute the generated SQL command
          EXEC(@sqlCommand)
     
    -- Goto the next database
    SELECT @Loop = min(ID) FROM @DBs where معرف > @Loop
    النهائي

    الخطوة ب: في محرر نص، إنشاء ملف دفعي يسمى Sqlbackup.bat ثم قم بنسخ النص من أحد الأمثلة التالية إلى هذا الملف، اعتماداً على السيناريو الخاص بك:

    Example1:النسخ الاحتياطي الكاملكافة قواعد البيانات في مثيل مسمى المحلي SQLEXPRESS باستخدام مصادقة Windows

    Sqlbackup.bat

    sqlcmd-S. \EXPRESS-E-Q "EXEC sp_BackupDatabases @backupLocation = قد: \SQLBackups\'، @backupType = 'و'" 

    Example2:التفاضليكافة قواعد البيانات في مثيل مسمى المحلي SQLEXPRESS باستخدام كلمة المرور الخاصة به وسقلوجين

    Sqlbackup.bat

    sqlcmd-U سقلوجين-P كلمة المرور-S. \SQLEXPRESS-Q "EXEC sp_BackupDatabases@backupLocation =' D:\SQLBackups '، @BackupType =' ي '"

    ملاحظة: "سقلوجين" شولدهافي على الأقل دور "عامل تشغيل النسخ الاحتياطي" في SQL Server.


    سبيل المثال 3:النسخ الاحتياطيكافة قواعد البيانات في مثيل مسمى المحلية من SQLEXPRESS باستخدام مصادقة Windows لسجل

    Sqlbackup.bat

    sqlcmd-S. \SQLEXPRESS-E-Q "EXEC sp_BackupDatabases @backupLocation = قد: \SQLBackups\'، @backupType = 'ل'"

    مثال 4:عمليات نسخ احتياطي كاملة لقاعدة بيانات أوسيردب في مثيل مسمى المحلية من SQLEXPRESS باستخدام مصادقة Windows

    Sqlbackup.bat

    sqlcmd-S. \SQLEXPRESS-E-Q "EXEC sp_BackupDatabases @backupLocation = قد: \SQLBackups\'، @databaseName = 'أوسيردب'، @backupType = 'و'"

    وبالمثل، يمكنك جعل التفاضلي النسخ الاحتياطي لأوسيردب بلصق في أن 'للمعلمة@backupType ونسخة احتياطية سجل من أوسيردب بلصق' ل ' للمعلمة @backupType .

    الخطوة c:جدولة الوظيفة باستخدام برنامج جدولة المهام ل Windows بتنفيذ الملف الدفعي الذي قمت بإنشائه في الخطوة ب. للقيام بذلك، اتبع الخطوات التالية:

    1. على الكمبيوتر الذي يقوم بتشغيل SQL Server Express، انقر فوقابدأوأشر إلىكافة البرامج، أشر إلىالبرامج الملحقة، وأشر إلىأدوات النظام، وثم انقر فوق"المهام المجدولة". 
    2. انقر نقراً مزدوجاً فوقإضافة مهمة مجدولة. 
    3. في "معالج المهمة المجدولة"، انقر فوق "التالي". 
    4. انقر فوق استعراضوانقر فوق ملف الدفعات الذي قمت بإنشائه في الخطوة B ثم انقر فوقفتح. 
    5. اكتبسقلباكوب لاسم المهمة، انقر فوق يوميومن ثم انقر فوقالتالي. 
    6. تحديد معلومات لجدول لتشغيل المهمة. (نوصي بتشغيل هذه المهمة مرة واحدة على الأقل كل يوم.) ثم انقر فوقالتالي.
    7. في الحقلأدخل اسم المستخدم ، اكتب اسم مستخدم، ومن ثم اكتب كلمة مرور في حقلإدخال كلمة المرور .

      ملاحظة هذا المستخدم يجب على الأقل تعيين دور باكوبوبيراتور في مستوى SQL Server إذا كنت تستخدم أحد الملفات دفعة في المثال 1 أو 3 أو 4.
    8. انقر فوقالتالي، ومن ثم انقر فوق إنهاء. 
    9. تنفيذ المهمة المجدولة مرة واحدة على الأقل للتأكد من أنه يتم إنشاء النسخة الاحتياطية بنجاح.

      ملاحظةمجلد الملف التنفيذي SQLCMD يتم عموما في متغيرات المسار للخادم بعد تثبيت SQL Server، ولكن إذا لم يرد متغير مسار هذا المجلد، يمكنك العثور عليها تحت\90\Tools\Binn < موقع التثبيت > (على سبيل المثال: C:\Program مايكروسوفت SQL Server\90\Tools\Binn)-

      تكون على علم بما يلي عند استخدام الإجراء المذكور في هذه المقالة:

      • يجب تشغيل خدمة جدولة المهام في Windows في الوقت الذي يتم جدولة المهمة للتشغيل. نوصي بتعيين نوع بدء التشغيل لخدمة هذهالتلقائي. وهذا يجعل من تشغيل الخدمة حتى على إعادة تشغيل.
      • يجب أن يكون هناك الكثير من المساحة على محرك الأقراص الذي يتم كتابة النسخ الاحتياطية. نوصي بتنظيف الملفات القديمة الموجودة في مجلد النسخة الاحتياطية بشكل منتظم للتأكد من أنه لم تنفذ مساحة القرص. لا يحتوي البرنامج النصي على المنطق لتنظيف الملفات القديمة.

      مراجع إضافية

    تحذير: تمت ترجمة هذه المقالة تلقائيًا

    خصائص

    رقم الموضوع: 2019698 - آخر مراجعة: 06/23/2014 15:45:00 - المراجعة: 2.0

    Microsoft SQL Server 2014 Express, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services

    • kbmt KB2019698 KbMtar
    تعليقات
    y: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">;did=1&t=">>ipt>