/ / Batch Script เพื่อสำรองฐานข้อมูลเซิร์ฟเวอร์ SQL ทั้งหมดของคุณ

Batch Script เพื่อสำรองฐานข้อมูลเซิร์ฟเวอร์ SQL ทั้งหมดของคุณ

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

เพื่อให้ตรงประเด็นนี่คือสคริปต์สำรอง:

@ECHO OFF
SETLOCAL

REM รับวันที่ในรูปแบบ YYYY-MM-DD (ถือว่าสถานที่คือสหรัฐอเมริกา)
สำหรับ / F“ โทเค็น = 1,2,3,4 delims = /” %% A IN (‘วันที่ / T’) ตั้งค่าทันทีวันที่ = %% D - %% B - %% C

REM สร้างรายการฐานข้อมูลเพื่อสำรองข้อมูล
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q“ ตั้ง NoCount ON; เลือกชื่อจาก master.dbo.sys ฐานข้อมูลที่ [ชื่อ] ไม่อยู่ใน ("ต้นแบบ", "โมเดล", "msdb", "tempdb") ">"% DBList% "

REM ทำการสำรองข้อมูลแต่ละฐานข้อมูลโดยเตรียมวันที่ให้เป็นชื่อไฟล์
FOR / F“ tokens = *” %% I IN (% DBList%) ทำ (
ECHO การสำรองฐานข้อมูล: %% I
SqlCmd -E -S MyServer -Q“ แบ็กอัพฐานข้อมูล [%% I] ไปยังดิสก์ = ’D: สำรองข้อมูล% ตอนนี้วันที่% _ %% I.bak'”
ECHO
)

REM ทำความสะอาดไฟล์ชั่วคราว
หากมี“% DBList%” DEL / F / Q“% DBList%”

ENDLOCAL

สมมติว่าวันที่ 1/13/2009 และคุณมี 3 ฐานข้อมูลชื่อ 'MyDB', 'AnotherDB' และ 'ชื่อฐานข้อมูลด้วย Spaces' สคริปต์จะสร้างไฟล์ 3 ไฟล์ในตำแหน่งสำรองที่ระบุไว้:

  • 2009-01-13_AnotherDB.bak
  • 2009-01-13_DB ชื่อที่มี Spaces.bak
  • 2009-01-13_MyDB.bak

การปรับแต่งและเรียกใช้สคริปต์ชุดงาน

แน่นอนคุณจะต้องปรับแต่งสคริปต์ให้เข้ากับสภาพแวดล้อมของคุณดังนั้นนี่คือสิ่งที่คุณต้องทำ:

  • หากสถานที่ตั้งเครื่องของคุณไม่ได้ตั้งค่าเป็นสหรัฐอเมริกาคำสั่ง ‘Date / T’ อาจไม่ส่งคืนวันที่ในรูปแบบ“ วันที่ 01/13/2009” หากเป็นกรณีนี้ตัวแปร NowDate จะไม่สร้างรูปแบบที่ต้องการและควรปรับเปลี่ยน (1 สถานที่)
  • เปลี่ยน 'MyServer' เป็นชื่อของ SQL Server ของคุณ (เพิ่มชื่ออินสแตนซ์ถ้ามี) (2 แห่ง)
  • ฐานข้อมูลชื่อ ‘master’, model ’,‘ msdb ’และ‘tempdb’ เป็นฐานข้อมูลที่มาพร้อมกับ SQL Server คุณสามารถเพิ่มชื่อฐานข้อมูลเพิ่มเติมลงในรายการนี้หากคุณไม่ต้องการให้สำรองข้อมูล (1 สถานที่)
  • เปลี่ยนตำแหน่งสำรองจาก "D: สำรอง" เป็นตำแหน่งที่คุณต้องการจัดเก็บไฟล์สำรองฐานข้อมูล

เมื่อคุณปรับแต่งชุดสคริปต์แล้วให้กำหนดเวลาให้ทำงานผ่าน Windows Task Scheduler ในฐานะผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบและคุณพร้อม