วิธีการจัดกำหนดการ และทำการสำรองข้อมูลของฐานข้อมูล SQL Server ใน SQL Server Express รุ่นให้เป็นอัตโนมัติ

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2019698 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

รุ่น SQL Server Express ไม่มีวิธีการจัดกำหนดการงานหรือแผนการบำรุงรักษาเนื่องจากคอมโพเนนต์ของบริษัทตัวแทนของเซิร์ฟเวอร์ SQL จะไม่รวมอยู่ในรุ่นเหล่านี้ hence คุณจำเป็นต้องใช้วิธีที่แตกต่างกันไปยังฐานข้อมูลของคุณในรุ่นเหล่านี้ในการสำรองข้อมูล   

ในขณะนี้ผู้ใช้ SQL Server Express สามารถสำรองฐานข้อมูลของตนเองโดยใช้หนึ่งในสองวิธีต่อไปนี้:

ที่ใช้ SQL Server Management Studio Express ที่มีการติดตั้งกับ SQL Server Express ขั้นสูงบริการหรือ Toolkit Express ของเซิร์ฟเวอร์ SQLสำหรับข้อมูลเพิ่มเติมที่อ้างอิงถึง วิธี: ฐานกลับขึ้นเป็นข้อมูล (SQL Server Management Studio) หัวข้อใน SQL Server หนังสือออนไลน์

  • ใช้คำสั่งต่าง ๆ ของฐานข้อมูลการสำรองข้อมูลในสคริปต์ T SQL

    บทความนี้อธิบายถึงวิธีการใช้สคริปต์ T SQL ร่วมกับ Windows Task Scheduler เพื่อที่ทำให้การสำรองข้อมูลของฐานข้อมูล SQL Server Express ในกำหนดเวลาไว้คุณ

  • ข้อมูลเพิ่มเติม

    คุณจำเป็นต้องทำตามขั้นตอน 3 ต่อไปนี้ในการทำสำรองฐานข้อมูล SQL Server ของคุณโดยใช้ Windows Task Scheduler

    ขั้นตอนที่ 1: express Studio จัดการเซิร์ฟเวอร์ SQL ที่ใช้หรือ Sqlcmd สร้างกระบวนงานที่เก็บไว้ดังต่อไปนี้ในฐานข้อมูลหลักของคุณ: 

    / / ลิขสิทธิ์ ? Microsoft Corporationสงวนลิขสิทธิ์

    / / รหัสนี้ถูกนำออกใช้ภายใต้เงื่อนไขในการ

    / / สิทธิ์การใช้งาน Microsoft สาธารณะ (MS-PL, http://opensource.org/licenses/ms-pl.html )

    USE [หลัก
    GO 
    / ****** วัตถุ: StoredProcedure [dbo][sp_BackupDatabases ****** /
    SET ON ANSI_NULLS
    GO
    SET ON QUOTED_IDENTIFIER
    GO
    -- =============================================
    --ผู้เขียน: Microsoft
    --สร้างวัน: 2010-02-06
    --คำอธิบาย: ฐานข้อมูลที่สำรองข้อมูลสำหรับ SQLExpress
    --Parameter1: databaseName
    --Parameter2: backupType F =เต็ม D = differential, L =ล็อก
    --Parameter3: ตำแหน่งที่ตั้งแฟ้มการสำรองข้อมูล
    -- =============================================
    กระบวนการสร้าง [dbo] [sp_BackupDatabases]  
                @databaseName sysname = null,
                @backupType CHAR(1),
                @backupLocation nvarchar(200) 
    AS 
     
           SET 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
                      DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','AdventureWorks')
                      END
                ELSE IF @backupType='D'
                      BEGIN
                      DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                      END
                ELSE IF @backupType='L'
                      BEGIN
                      DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                      END
                ELSE
                      BEGIN
                      RETURN
                      END
               
                -- Declare variables
                DECLARE @BackupName varchar(100)
                DECLARE @BackupFile varchar(100)
                DECLARE @DBNAME varchar(300)
                DECLARE @sqlCommand NVARCHAR(1000) 
            DECLARE @dateTime NVARCHAR(20)
                DECLARE @Loop int                  
                           
                -- Loop through the databases one by one
                SELECT @Loop = min(ID) FROM @DBs
     
          WHILE @Loop IS NOT NULL
          BEGIN
     
    -- Database Names have to be in [dbname] formate since some have - or _ in their name
          SET @DBNAME = '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+']'
     
    -- Set the current date and time n yyyyhhmmss format
          SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') + '_' +  REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')  
     
    -- Create backup filename in path\filename.extension format for full,diff and log backups
          IF @backupType = 'F'
                SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK'
          ELSE IF @backupType = 'D'
                SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_DIFF_'+ @dateTime+ '.BAK'
          ELSE IF @backupType = 'L'
                SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_LOG_'+ @dateTime+ '.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 ID>@Loop
     
    END

    ขั้น ตอน ที่ 2: ใน ตัว แก้ไข ข้อ ความ สร้าง ชุด แฟ้ม ที่ ชื่อ sqlbackup.bat และ คัด ลอก ข้อ ความ จาก หนึ่ง ใน ตัว อย่าง ต่อ ไป นี้ ขึ้น อยู่ กับ สถานการณ์ ของ คุณ ลง ใน แฟ้ม นั้น:

    Example1:ฐาน ข้อมูล ทั้ง เต็ม สำเนา สำรอง ของ หมด ใน อิน สแตนซ์ ชื่อ เฉพาะ ของ SQLEXPRESS โดย ใช้ การ พิสูจน์ ตัว จริง ของ Windows

    / / sqlbackup.bat

    sqlcmd -S ได้ –E \EXPRESS -Q "EXEC sp_BackupDatabases @ backupLocation = 'D: \SQLBackups\ ', @ backupType = 'F'" 

    Example2: ฐาน ข้อมูล ทั้ง ส่วน ที่ แตก ต่าง สำเนา สำรอง ของ หมด ใน อิน สแตนซ์ ชื่อ เฉพาะ ของ SQLEXPRESS โดย ใช้ SQLLogin และ รหัส ผ่าน ของ

    / / sqlbackup.bat

    sqlcmd - U -P SQLLogin รหัส ผ่าน -S ได้ \SQLEXPRESS -Q "sp_BackupDatabases EXEC @ backupLocation = 'D:\SQLBackups', @ BackupType = 'D ’"

    หมาย เหตุ: น้อย SQLLogin The ควร มี บทบาท ของ ตัว ดำเนิน การ สำรอง ข้อมูล ใน SQL Server ได้


    Example3: ฐาน ข้อมูล ทั้ง บันทึก สำเนา สำรอง ของ หมด ใน อิน สแตนซ์ ชื่อ เฉพาะ ของ SQLEXPRESS โดย ใช้ การ พิสูจน์ ตัว จริง ของ Windows

    / / sqlbackup.bat

    sqlcmd -S ได้ \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L '"

    Example4:สำเนา สำรอง ทั้ง หมด ของ ฐาน ข้อมูล USERDB ใน อิน สแตนซ์ ชื่อ เฉพาะ ของ SQLEXPRESS โดย ใช้ การ พิสูจน์ ตัว จริง ของ Windows

    / / sqlbackup.bat

    sqlcmd -S ได้ \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ backupLocation = 'D: \SQLBackups\ ', @ databaseName = ’ USERDB ’, @ backupType = 'F'"

    ใน ทำนอง เดียว กัน คุณ สามารถ นำ differential และ บันทึก ข้อมูล สำรอง ของ USERDB โดย ฝึก ใน ‘ D ’ และ ‘ L ’ ตาม ลำดับ สำหรับ พารามิเตอร์ @ backupType ได้

    ขั้น ตอน ที่ 3:ตาราง เวลา งาน ที่ ใช้ Windows Task Scheduler เพื่อ ดำเนิน การ ชุด แฟ้ม ที่ สร้าง ใน ขั้น ตอน ที่ 2การ ทำ เช่น นี้ ใช้ ขั้น ตอน ต่อ ไป นี้:

    1. ใน คอมพิวเตอร์ ที่ รัน Microsoft SQL Server Express ให้ คลิ ก เริ่ม, ชี้ ไป ที่ โปรแกรม ทั้ง หมด, ชี้ ไป ที่ เบ็ดเตล็ด, ชี้ ไป ที่ เครื่อง มือ สำหรับ ระบบ แล้ว จึง คลิ ก Scheduled งาน ได้ 
    2. คลิ กสอง ครั้ง ที่ เพิ่ม การ จัด ตาราง งาน ได้ 
    3. ใน ตัว ช่วย การ จัด ตาราง งาน สร้าง ให้ คลิ ก ถัด ไป 
    4. คลิ ก เรียก ดู คลิ กแฟ้ม sqlbackup.bat ที่ คุณ สร้าง ไว้ ใน ขั้น ตอน ที่ 2 และ จาก นั้น คลิ ก เปิด 
    5. พิมพ์ ชื่อ ของ งาน SQLBACKUP แล้ว จึง คลิ ก ประจำ วัน ได้จาก นั้น คลิ ก ถัด ไป 
    6. ระบุ ข้อมูล สำหรับ ตาราง เวลา เรียก ใช้ งาน ที่ ได้เรา ขอ แนะ นำ ให้ คุณ เรียก ใช้ นี้ อย่าง น้อย หนึ่ง ครั้ง ทุก วันจาก นั้น คลิ ก ถัด ไป ได้
    7. เข้าในป้อนผู้ใช้ชื่อฟิลด์ และในป้อนในฟิลด์รหัสผ่าน พิมพ์ชื่อผู้ใช้และรหัสผ่าน จาก นั้น คลิ ก ถัด ไป โปรดหมายเหตุที่ว่า ผู้ใช้นี้ควรน้อยได้รับการกำหนดบทบาท BackupOperator ระดับ SQL Server หากคุณใช้ชุดงานอย่างใดอย่างหนึ่งแฟ้มในตัวอย่างที่ 1, 3 และ 4
    8. คลิกเสร็จสิ้น 
    9. ดำเนินการจัดตารางงานอย่างน้อยหนึ่งครั้งเพื่อให้แน่ใจว่า การสำรองข้อมูลที่ถูกสร้างเสร็จเรียบร้อยแล้ว

      หมายเหตุ: ปฏิบัติ SQLCMD โฟลเดอร์ที่อยู่โดยทั่วไปในตัวแปรเส้นทางสำหรับเซิร์ฟเวอร์หลังจากที่มีการติดตั้ง SQL Server แต่ในกรณีที่ตัวแปรเส้นทางไม่รายการโฟลเดอร์นี้ คุณสามารถค้นหาได้ภายใต้ \90\Tools\Binn <ตำแหน่งการติดตั้ง > (ตัวอย่างเช่น: Server\90\Tools\Binn SQL Files\Microsoft C:\Program)

      โปรดทราบต่อไปนี้เมื่อใช้วิธีการรับการบันทึกไว้ในบทความนี้:

      • บริการตัวกำหนดเวลางานของ windows ต้องใช้งานในเวลาเมื่อการจัดกำหนดการงานจะเรียกใช้ขอแนะนำให้ คุณตั้งค่าชนิดการเริ่มต้นสำหรับการบริการนี้เป็นข้อความอัตโนมัติซึ่งช่วยให้มั่นใจว่า บริการจะถูกเรียกใช้แม้แต่ในการเริ่มระบบคอมพิวเตอร์ใหม่
      • ไม่ควรมีเนื้อที่ว่างเพียงพอบนไดรฟ์ที่มีกำลังถูกเขียนที่การสำรองข้อมูลไปขอแนะนำว่า คุณล้างแฟ้มเก่าในโฟลเดอร์สำรองเป็นประจำเพื่อให้แน่ใจว่า คุณไม่ทำงานเกินจำนวนเนื้อที่ว่างบนดิสก์สคริปต์ไม่ประกอบด้วยตรรกะการล้างข้อมูลเก่าแฟ้ม

      การอ้างอิงเพิ่มเติม:

    Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

    คุณสมบัติ

    หมายเลขบทความ (Article ID): 2019698 - รีวิวครั้งสุดท้าย: 17 มกราคม 2554 - Revision: 2.0
    ใช้กับ
    • 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
    Keywords: 
    kbmt KB2019698 KbMtth
    แปลโดยคอมพิวเตอร์
    ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
    ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2019698

    ให้ข้อเสนอแนะ

     

    Contact us for more help

    Contact us for more help
    Connect with Answer Desk for expert help.
    Get more support from smallbusiness.support.microsoft.com