במדריך הזה מוסבר איך לגבות ישירות מסד נתונים של 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 . אפשר ליצור פרויקט חדש או לבחור פרויקט שכבר יצרתם:
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
מוודאים ש-Microsoft SQL Server 2022 ואילך מותקן ופועל.
מוודאים שלפרויקט ב-Google Cloud ול-SQL Server יש את ההרשאות הנדרשות לביצוע משימות גיבוי ושחזור.
חשוב לוודא שלמשתמש או לחשבון השירות שמשויכים למפתחות הגישה יש הרשאות ליצור אובייקטים ולצפות בהם בקטגוריה של Cloud Storage.
מוודאים שלחשבון המשתמש ב-SQL Server שמשמש לביצוע הגיבוי יש הרשאות לגיבוי מסד נתונים ולגיבוי יומן.
בוחרים את הפרויקט Google Cloud .
gcloud config set project PROJECT_ID
יוצרים את הקטגוריה. כדי ליצור את הקטגוריה, מריצים את הפקודה
gcloud storage buckets createבאופן הבא.gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: עם שם ייחודי לקטגוריה. -
BUCKET_LOCATION: עם המיקום של הקטגוריה. נכנסים להגדרות של Cloud Storage במסוף Google Cloud .
בוחרים בכרטיסייה Interoperability.
בקטע Access keys for your user account (מפתחות גישה לחשבון המשתמש), לוחצים על Create a key (יצירת מפתח).

שומרים את מפתח הגישה והסוד שנוצרו באופן מאובטח. תצטרכו אותם בשלב הבא.
-
CREDENTIAL_NAME: עם שם לפרטי הכניסה. -
ACCESS_KEY: עם מפתח הגישה שיצרתם בקטע הקודם. -
SECRET: עם הסוד שיצרתם בקטע הקודם. -
CREDENTIAL_NAMEהשם של פרטי הכניסה שיצרתם בשלב 3. לדוגמה —sql_backup_credentials. -
BUCKET_NAMEהשם של הקטגוריה שיצרתם בשלב 1. -
FOLDER_NAMEשם התיקייה שבה רוצים לשמור את קובץ הגיבוי. BACKUP_FILE_NAMEשם קובץ הגיבוי.-
FORMAT: מחליף את קובצי הגיבוי הקיימים ויוצר קבוצת מדיה חדשה. -
STATS: מדווח על התקדמות הגיבוי. -
COMPRESSION: דוחס את הגיבוי, מה שיכול להקטין את גודל הקובץ ולקצר את זמן ההעלאה. -
MAXTRANSFERSIZE: מומלץ כדי למנוע שגיאות קלט/פלט בקובצי גיבוי גדולים. - In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.
יצירת קטגוריה של Cloud Storage
אפשר ליצור קטגוריה של Cloud Storage באמצעות מסוף Google Cloud או באמצעות הפקודה
gcloud storage.כדי ליצור קטגוריה של Cloud Storage באמצעות הפקודה
gcloud storage, מבצעים את השלבים הבאים.הגדרת יכולת פעולה הדדית של S3 ויצירת מפתח גישה
כדי לאפשר ל-SQL Server לתקשר עם Cloud Storage באמצעות פרוטוקול S3, צריך להפעיל את יכולת הפעולה ההדדית וליצור מפתח גישה באמצעות השלבים הבאים:
בסביבות ייצור, מומלץ להשתמש במפתח של קוד אימות הודעות (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';מחליפים את מה שכתוב בשדות הבאים:
ההגדרה
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;מחליפים את מה שכתוב בשדות הבאים:
התיאורים של פרמטרי הגיבוי שמשמשים בפקודה הם:
מידע נוסף זמין במאמר בנושא גיבוי של 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';מחליפים את מה שכתוב בשדות הבאים:
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה:
מחיקת הפרויקט
המאמרים הבאים
-