גיבוי מסדי נתונים של 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    2. Verify that billing is enabled for your Google Cloud project.

    3. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

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

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

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

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

    8. יצירת קטגוריה של 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. בקטע Access keys for your user account (מפתחות גישה לחשבון המשתמש), לוחצים על Create a key (יצירת מפתח).

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

      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, כמו בדוגמה הבאה.

      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. In the Google Cloud console, go to the Manage resources page.

        Go to Manage resources

      2. In the project list, select the project that you want to delete, and then click Delete.
      3. In the dialog, type the project ID, and then click Shut down to delete the project.

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

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