גיבוי מסדי נתונים של SQL Server לקטגוריה של Cloud Storage

במדריך הזה מוסבר איך לגבות ישירות מסד נתונים של Microsoft SQL Server 2022 לקטגוריה של Cloud Storage, ולשחזר אותו בהמשך. התכונה המקורית של גיבוי SQL Server, שהושקה ב-SQL Server 2022, מציעה אסטרטגיה חלקה וחסכונית להתאוששות מאסון (DR) מבוססת-ענן ולהעברת נתונים.

התכונה המקורית של גיבוי SQL Server משתמשת בפקודות BACKUP TO URL ו-RESTORE FROM URL שתומכות באחסון אובייקטים שתואם ל-S3, כולל Cloud Storage. כך לא צריך יותר אחסון מקומי ביניים, תהליך הגיבוי פשוט יותר והתקורה התפעולית קטנה יותר.

המדריך הזה מיועד לאדמינים ולמהנדסים של מסדי נתונים.

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות כדי להשיג את היעד:

  • יצירת קטגוריה של Cloud Storage
  • הגדרת מחבר SQL Server
  • גיבוי מסד הנתונים
  • שחזור מסד הנתונים מהגיבוי

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.

לפני שמתחילים

  1. במדריך הזה תצטרכו פרויקט Google Cloud . אפשר ליצור פרויקט חדש או לבחור פרויקט שכבר יצרתם:

    1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

      תפקידים שנדרשים כדי לבחור או ליצור פרויקט

      • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
      • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים

      כניסה לדף לבחירת הפרויקט

    2. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

    3. במסוף Google Cloud , מפעילים את Cloud Shell.

      הפעלת Cloud Shell

  2. מוודאים ש-Microsoft SQL Server 2022 ואילך מותקן ופועל.

  3. מוודאים שלפרויקט בענן ב-Google Cloud ול-SQL Server יש את ההרשאות הנדרשות לביצוע משימות גיבוי ושחזור.

  4. חשוב לוודא שלמשתמש או לחשבון השירות שמשויכים למפתחות הגישה יש הרשאות ליצור אובייקטים ולצפות בהם בקטגוריית Cloud Storage.

  5. מוודאים שלחשבון המשתמש ב-SQL Server שמשמש לביצוע הגיבוי יש הרשאות לגיבוי מסד נתונים ולגיבוי יומן.

יצירת קטגוריה של Cloud Storage

אפשר ליצור קטגוריה של Cloud Storage באמצעות מסוף Google Cloud או באמצעות הפקודה gcloud storage.

כדי ליצור קטגוריה של Cloud Storage באמצעות הפקודה gcloud storage, מבצעים את השלבים הבאים.

  1. בוחרים את הפרויקט Google Cloud .

    gcloud config set project PROJECT_ID
    
  2. יוצרים את הקטגוריה. כדי ליצור את הקטגוריה, מריצים את הפקודה gcloud storage buckets create באופן הבא.

      gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

  • BUCKET_NAME: עם שם ייחודי לקטגוריה.
  • BUCKET_LOCATION: עם המיקום של הקטגוריה.

הגדרת יכולת פעולה הדדית עם S3 ויצירת מפתח גישה

כדי לאפשר ל-SQL Server לתקשר עם Cloud Storage באמצעות פרוטוקול S3, צריך להפעיל את יכולת הפעולה ההדדית וליצור מפתח גישה באמצעות השלבים הבאים:

  1. נכנסים להגדרות Cloud Storage במסוף Google Cloud .

    מעבר להגדרות של Cloud Storage

  2. בוחרים בכרטיסייה Interoperability.

  3. בקטע מפתחות גישה לחשבון המשתמש, לוחצים על יצירת מפתח.

    מפתחות גישה לדלי

  4. שומרים את מפתח הגישה והסוד שנוצרו באופן מאובטח. תצטרכו אותם בשלב הבא.

בסביבות ייצור, מומלץ להשתמש במפתח HMAC (קוד אימות הודעות המבוסס על גיבוב) של חשבון שירות כדי לשפר את האבטחה והניהול.

הוספת פרטי כניסה ל-SQL Server

כדי לאפשר ל-SQL Server לבצע אימות מול הקטגוריה שלכם ב-Cloud Storage, אתם צריכים ליצור אובייקט של פרטי כניסה ב-SQL Server כדי לאחסן את מפתח הגישה והסוד של Cloud Storage. כדי לעשות את זה, מריצים את פקודת T-SQL הבאה ב-SQL Server Management Studio ‏ (SSMS).

CREATE CREDENTIAL CREDENTIAL_NAME
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'ACCESS_KEY:SECRET';

מחליפים את מה שכתוב בשדות הבאים:

  • CREDENTIAL_NAME: עם שם לפרטי הכניסה.
  • ACCESS_KEY: עם מפתח הגישה שיצרתם בקטע הקודם.
  • SECRET: עם הסוד שיצרתם בקטע הקודם.

ההגדרה IDENTITY = 'S3 Access Key' חשובה מאוד כי היא מציינת ל-SQL Server להשתמש במחבר S3 החדש. הסוד צריך להיות בפורמט של מפתח הגישה, ואחריו נקודתיים ואז המפתח הסודי.

דוגמה:

CREATE CREDENTIAL sql_backup_credentials
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';

גיבוי הנתונים ב-Cloud Storage

אחרי שמוסיפים את פרטי הכניסה, אפשר לגבות את מסד הנתונים ישירות לקטגוריה של Cloud Storage באמצעות הפקודה BACKUP DATABASE עם האפשרות TO URL. מוסיפים לכתובת ה-URL את הקידומת s3://storage.googleapis.com כדי להשתמש ב-S3 Connector, כמו בדוגמה הבאה.

BACKUP DATABASE DATABASE_NAME
TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

מחליפים את מה שכתוב בשדות הבאים:

  • CREDENTIAL_NAME השם של פרטי הכניסה שיצרתם בשלב 3. לדוגמה — sql_backup_credentials.
  • BUCKET_NAME השם של הקטגוריה שיצרתם בשלב 1.
  • FOLDER_NAME שם התיקייה שבה רוצים לשמור את קובץ הגיבוי.
  • BACKUP_FILE_NAME שם קובץ הגיבוי.

התיאורים של פרמטרי הגיבוי שמשמשים בפקודה הם:

  • FORMAT: מחליף את קובצי הגיבוי הקיימים ויוצר קבוצת מדיה חדשה.
  • STATS: מדווח על התקדמות הגיבוי.
  • COMPRESSION: דוחס את הגיבוי, מה שיכול להקטין את גודל הקובץ ולקצר את זמן ההעלאה.
  • MAXTRANSFERSIZE: מומלץ כדי למנוע שגיאות קלט/פלט בקובצי גיבוי גדולים.

מידע נוסף זמין במאמר בנושא גיבוי של SQL Server לכתובת URL לאחסון אובייקטים שתואם ל-S3.

במסדי נתונים גדולים מאוד, אפשר לפצל את הגיבוי לכמה קבצים באופן הבא.

BACKUP DATABASE DATABASE_NAME
TO
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak',
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak'
    -- ... more files
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

שחזור הנתונים מ-Cloud Storage

אפשר לשחזר את מסד הנתונים ישירות מקובץ גיבוי ששמור ב-Cloud Storage באמצעות הפקודה RESTORE DATABASE באופן הבא.

RESTORE DATABASE DATABASE_NAME
FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME';

מחליפים את מה שכתוב בשדות הבאים:

  • CREDENTIAL_NAME השם של פרטי הכניסה שיצרתם בשלב 3. לדוגמה — sql_backup_credentials.
  • BUCKET_NAME השם של הקטגוריה שיצרתם בשלב 1.
  • FOLDER_NAME שם התיקייה שבה רוצים לשמור את קובץ הגיבוי.
  • BACKUP_FILE_NAME שם קובץ הגיבוי.

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה:

מחיקת הפרויקט

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

המאמרים הבאים

  • כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.