דף הבית » איך ל » אצווה סקריפט גיבוי כל מסדי הנתונים של SQL Server שלך

    אצווה סקריפט גיבוי כל מסדי הנתונים של SQL Server שלך

    יש לנו כבר מכוסה כיצד גיבוי מסד נתונים SQL Server משורת הפקודה, אז מה אם אתה רוצה גיבוי כל מסדי הנתונים שלך בבת אחת? אתה יכול ליצור סקריפט אצווה אשר מפעילה את הפקודה גיבוי עבור כל מסד נתונים, אבל זה סקריפט צריך להיות מעודכן בכל פעם מסד נתונים נוסף או מוסר. בנוסף, הגיבויים של מסד הנתונים יצורפו כולם לקובץ אחד שיגדל לפי גודל הגיבוי החדש בכל פעם שהוא מופעל. במקום זאת, ב "להגדיר את זה ולשכוח את זה" אופנה, אנו ניצור סקריפט אצווה אשר יתאים ל- SQL Server שלך כמו מסדי נתונים חדשים מתווספים ומוסרים.

    כדי להגיע ישר לעניין, זהו סקריפט הגיבוי:

    @ OFFO OFF
    סטלוקל

    REM תאריך תאריך בפורמט YYYY-MM-DD (מניח שהמקום הוא ארה"ב)
    עבור / F "אסימונים = 1,2,3,4 delims = /" %% A IN ("תאריך / T") הגדר כעת NowDate = %% D - %% B - %% C

    REM בניית רשימה של מסדי נתונים לגיבוי
    הגדר DBList =% SystemDrive% SQLDBList.txt
    SqlCmd -E -S MyServer -h-1 -W-Q "הגדרת NoCount ON; SELECT שם מתוך master.dbo.sysDatabases WHERE [שם] לא IN ('master', 'model', 'msdb', 'tempdb') ">"% DBList% "

    REM גיבוי כל מסד נתונים, prepending את התאריך שם הקובץ
    עבור / F "אסימונים = *"% אני IN (% DBList%) DO (
    ECHO גיבוי מסד הנתונים: %% I
    SqlCmd -E -S MyServer -Q "DACKABASE BACKUP [%% I] ל- Disk =" D: Backup% NowDate% _ %% I.bak ""
    ECHO.
    )

    REM לנקות את קובץ זמני
    אם קיים "% dblist%" DEL / F / Q "% DBList%"

    אנדלוקל

    בהנחה שהתאריך הוא 1/13/2009 ויש לך 3 מסדי נתונים בשם 'MyDB', 'AnotherDB' ו- 'שם DB עם רווחים', התסריט ינפיק 3 קבצים במיקום הגיבוי שצוין:

    • 2009-01-13_AnotherDB.bak
    • 2009-01-13_DB שם עם Spaces.bak
    • 2009-01-13_MyDB.bak

    התאמה אישית והפעלת סקריפט אצווה

    כמובן, אתה רוצה להתאים את התסריט לסביבה שלך אז הנה מה שאתה צריך לעשות:

    • אם האזור של המכשיר שלך אינו מוגדר לארה"ב, הפקודה 'תאריך / T' לא תחזיר את התאריך בפורמט "01/01/2009/2009". אם זהו מקרה, המשתנה NowDate לא יפיק את הפורמט הרצוי ויש לכוונו. (1 מקום)
    • שינוי 'MyServer' כדי להיות שם של SQL Server שלך (הוסף את שם המופע אם רלוונטי). (2 מקומות)
    • מסדי הנתונים הנקראים 'master', 'model', 'msdb' ו- 'tempdb' הם מסדי נתונים המשלוחים עם SQL Server. ניתן להוסיף שמות מסד נתונים נוספים לרשימה זו אם אינך רוצה שהם יגובו. (1 מקום)
    • שנה את מיקום הגיבוי מ- 'D: Backup' למיקום שבו ברצונך לשמור את קבצי הגיבוי של מסד הנתונים.

    לאחר שתתאים אישית את התסריט אצווה, לתזמן אותו לרוץ באמצעות Windows Task Scheduler כמשתמש עם זכויות מנהל ואתה מוכן.