Batch Script เพื่อสำรองฐานข้อมูลเซิร์ฟเวอร์ SQL ทั้งหมดของคุณ
เราได้กล่าวถึงวิธีการสำรองฐานข้อมูล SQL Server จากบรรทัดคำสั่งแล้วถ้าคุณต้องการสำรองฐานข้อมูลทั้งหมดในครั้งเดียวล่ะ คุณสามารถสร้างชุดสคริปต์ที่รันคำสั่งสำรองข้อมูลสำหรับแต่ละฐานข้อมูล แต่สคริปต์นี้จะต้องมีการปรับปรุงทุกครั้งที่มีการเพิ่มหรือลบฐานข้อมูล นอกจากนี้การสำรองฐานข้อมูลทั้งหมดจะถูกผนวกเข้ากับไฟล์เดียวซึ่งจะเพิ่มขึ้นตามขนาดของการสำรองข้อมูลใหม่ทุกครั้งที่เรียกใช้ แต่ในความเป็นจริง“ ตั้งค่าและลืมมัน” เราจะสร้างชุดสคริปต์ที่จะปรับให้เข้ากับ SQL Server ของคุณเมื่อฐานข้อมูลใหม่ถูกเพิ่มและลบออก.
เพื่อให้ตรงประเด็นนี่คือสคริปต์สำรอง:
@ECHO OFF
SETLOCALREM รับวันที่ในรูปแบบ YYYY-MM-DD (ถือว่าสถานที่คือสหรัฐอเมริกา)
FOR / F“ โทเค็น = 1,2,3,4 delims = /” %% A IN ('วันที่ / T') ตั้งวันนี้วันที่ = %% D - %% B - %% CREM สร้างรายการฐานข้อมูลเพื่อสำรองข้อมูล
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
การปรับแต่งและเรียกใช้สคริปต์ชุดงาน
แน่นอนคุณจะต้องปรับแต่งสคริปต์ให้เข้ากับสภาพแวดล้อมของคุณดังนั้นนี่คือสิ่งที่คุณต้องทำ:
- หากสถานที่ตั้งเครื่องของคุณไม่ได้ตั้งค่าเป็นสหรัฐอเมริกาคำสั่ง 'วันที่ / T' อาจไม่ส่งคืนวันที่ในรูปแบบ“ วันที่ 01/13/2009” หากเป็นกรณีนี้ตัวแปร NowDate จะไม่สร้างรูปแบบที่ต้องการและควรปรับเปลี่ยน (1 สถานที่)
- เปลี่ยน 'MyServer' เป็นชื่อของ SQL Server ของคุณ (เพิ่มชื่ออินสแตนซ์ถ้ามี) (2 แห่ง)
- ฐานข้อมูลชื่อ 'master', 'model', 'msdb' และ 'tempdb' เป็นฐานข้อมูลที่มาพร้อมกับ SQL Server คุณสามารถเพิ่มชื่อฐานข้อมูลเพิ่มเติมลงในรายการนี้หากคุณไม่ต้องการให้สำรองข้อมูล (1 สถานที่)
- เปลี่ยนตำแหน่งสำรองจาก 'D: Backup' เป็นตำแหน่งที่คุณต้องการจัดเก็บไฟล์สำรองฐานข้อมูล.
เมื่อคุณปรับแต่งชุดสคริปต์แล้วให้กำหนดเวลาให้ทำงานผ่าน Windows Task Scheduler ในฐานะผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบและคุณพร้อม.