הכנת קובצי הגיבוי

בדף הזה מוסבר איך ליצור את קובצי הגיבוי שנדרשים כדי להעביר את מסדי הנתונים של SQL Server בניהול עצמי או ב-Amazon RDS ל-Cloud SQL ל-SQL Server, כולל החלקים הבאים:

דרישות ומגבלות

הדרישות והמגבלות הבאות חלות על קובצי הגיבוי שבהם אתם משתמשים להעברה:

  • כל קובצי הגיבוי צריכים להיות בעלי שמות שתואמים למוסכמות מתן השמות שלהם.

  • הגודל המקסימלי של קובצי הגיבוי הוא 5TB.

  • אם גודל מסד הנתונים גדול מ-5TB, אתם יכולים לפצל את קובצי הגיבוי המלאים או הגיבוי הדיפרנציאלי לקבצים קטנים יותר. הגודל המקסימלי של כל פס הוא 5TB.

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

  • ‫Database Migration Service לא מעביר את מסד הנתונים master של SQL Server.

  • אי אפשר להשתמש במודל השחזור הפשוט במכונה של שרת ה-SQL במקור. למידע נוסף על מודלים של שחזור, קראו את המאמר Recovery Models (SQL Server)‎ במסמכי התיעוד של Microsoft.

מוסכמות למתן שמות

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

מוסכמות למתן שמות לקובצי גיבוי של מכונות SQL Server מקומיות

שמות קובצי גיבוי מלא

המוסכמה למתן שמות לקובצי גיבוי מלאים תלויה בשאלה אם אתם משתמשים בקובץ גיבוי יחיד או מחלקים אותו לכמה פסים. בשני התרחישים, ב-Database Migration Service צריך לכלול חותמת זמן של ראשית זמן יוניקס (מבוטאת כחותמת זמן של Unix בשניות) שמייצגת את הזמן המשוער שבו ביצעתם את הגיבוי המלא.

  • אם הגיבוי המלא הוא קובץ יחיד, שם הקובץ צריך להיות בפורמט db_name.epoch.bak, כאשר:

    • ‫db_name הוא השם של מסד הנתונים
    • ‫epoch הוא חותמת זמן של Unix בשניות
    • ‫.bak היא סיומת הקובץ

    דוגמאות לפורמטים תקינים:

    • my-business-database.1712649600.bak
    • my-other-database.1712649600.bak
  • אם אתם מחלקים את הגיבוי המלא לפסים נפרדים, כל פס יכול להשתמש בכל שם שתבחרו, אבל צריך להעלות אותם לתיקייה ב-Cloud Storage שהשם שלה הוא חותמת זמן של Unix בשניות:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- 1712649600/
    |  |  |  |- mystripe-full_backup_file.bak
    |  |  |  |- otherStripefull-bkp.bak
    |  |- diff/
    |  |  |- ...
    |  |- log/
    |  |  |- ...
    |- my-other-database/
    |  |- full/
    |  |  |- 1715250742/
    |  |  |  |- cool-stripe-file.bak
    |  |  |  |- secondStripeFile.bak
    |  |- diff/
    |  |  |- ...
    |  |- log/
    |  |  |- ...
    

שמות קובצי הגיבוי הדיפרנציאלי

המוסכמה למתן שמות לקובצי גיבוי דיפרנציאליים תלויה בשאלה אם אתם משתמשים בקובץ גיבוי אחד או מחלקים אותו לכמה פסים. בשני התרחישים, ב-Database Migration Service צריך לכלול חותמת זמן של ראשית זמן (מבוטאת כחותמת זמן של Unix בשניות) שמייצגת את הזמן המשוער שבו ביצעתם את הגיבוי הדיפרנציאלי.

  • אם הגיבוי הדיפרנציאלי הוא קובץ יחיד, שם הקובץ צריך להיות בפורמט db_name.epoch.ext, כאשר:

    • ‫db_name הוא השם של מסד הנתונים
    • ‫epoch הוא חותמת זמן של Unix בשניות
    • ‫.ext היא סיומת הקובץ. קובצי גיבוי דיפרנציאלי יכולים להשתמש בסיומות הבאות: .bak, ‏ .dif, ‏ .diff.

    דוגמאות לפורמטים תקינים:

    • my-business-database.1731159833.bak
    • my-other-database.1731159833.dif
  • אם אתם מחלקים את הגיבוי הדיפרנציאלי לפסים נפרדים, כל פס יכול להשתמש בכל שם שתבחרו, אבל צריך להעלות אותם לתיקיית Cloud Storage שהשם שלה הוא חותמת זמן של Unix בשניות:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- ...
    |  |- diff/
    |  |  |- 1731159833/
    |  |  |  |- mydiffstripe-diff_backup_file.dif
    |  |  |  |- mySeconddiffstripe-diff_backup_file.bak
    |  |- log/
    |  |  |- ...
    |- my-other-database/
    |  |- full/
    |  |  |- ...
    |  |- diff/
    |  |  |- 1731159833/
    |  |  |  |- firstDiffStripe.bak
    |  |  |  |- other_diff_stripe.diff
    |  |- log/
    |  |  |- ...
    

שמות קובצי יומן הטרנזקציות

שמות הקבצים של יומן הטרנזקציות צריכים להיות בפורמט db_name.epoch.trn, כאשר:

  • ‫db_name הוא השם של מסד הנתונים.
  • ‫epoch הוא חותמת זמן של Unix בשניות
  • ‫.trn היא סיומת הקובץ

דוגמאות לפורמטים תקינים:

  • my-business-database.1712649600.trn
  • my-other-database.1712649600.trn

מוסכמות למתן שמות לקובצי גיבוי ב-Amazon RDS

שמות קובצי גיבוי מלא

המוסכמה למתן שמות לקובצי גיבוי מלאים תלויה בשאלה אם אתם משתמשים בקובץ גיבוי יחיד או מחלקים אותו לכמה פסים. בשני התרחישים, ב-Database Migration Service צריך לכלול חותמת זמן של ראשית זמן יוניקס (מבוטאת כחותמת זמן של Unix בשניות) שמייצגת את הזמן המשוער שבו ביצעתם את הגיבוי המלא.

  • אם הגיבוי המלא הוא קובץ יחיד, שם הקובץ צריך להיות בפורמט db_id.family_guid.rds_backup_seq_id.epoch.bak, כאשר:

    • ‫db_id הוא המזהה של מסד הנתונים הפנימי של Amazon RDS
    • ‫family_guid הוא המזהה הייחודי של מסד הנתונים המקורי ב-Amazon RDS בזמן היצירה
    • ‫rds_backup_seq_id הוא המזהה שמשמש את Amazon RDS באופן פנימי כדי לשמור על מספר סידורי לכל קובץ גיבוי של יומן עסקאות
    • ‫epoch הוא חותמת זמן של Unix בשניות
    • ‫.bak היא סיומת הקובץ

    דוגמאות לפורמטים תקינים:

    • 3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1712649600.bak
    • 1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1712649600.bak
  • אם אתם מחלקים את הגיבוי המלא לפסים נפרדים, כל פס יכול להשתמש בכל שם שתבחרו, אבל צריך להעלות אותם לתיקייה ב-Cloud Storage שהשם שלה הוא חותמת זמן של Unix בשניות:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- 1712649600/
    |  |  |  |- mystripe-full_backup_file.bak
    |  |  |  |- otherStripefull-bkp.bak
    |  |- diff/
    |  |  |- ...
    |  |- log/
    |  |  |- ...
    |- my-other-database/
    |  |- full/
    |  |  |- 1715250742/
    |  |  |  |- cool-stripe-file.bak
    |  |  |  |- secondStripeFile.bak
    |  |- log/
    |  |  |- ...
    

שמות קובצי הגיבוי הדיפרנציאלי

המוסכמה למתן שמות לקובצי גיבוי דיפרנציאליים תלויה בשאלה אם אתם משתמשים בקובץ גיבוי אחד או מחלקים אותו לכמה פסים. בשני התרחישים, ב-Database Migration Service צריך לכלול חותמת זמן של ראשית זמן יוניקס (מבוטאת כחותמת זמן של Unix בשניות) שמייצגת את הזמן המשוער שבו ביצעתם את הגיבוי הדיפרנציאלי.

  • אם הגיבוי הדיפרנציאלי הוא קובץ יחיד, שם הקובץ צריך להיות בפורמט db_id.family_guid.rds_backup_seq_id.epoch.ext, כאשר:

    • ‫db_id הוא המזהה של מסד הנתונים הפנימי של Amazon RDS
    • ‫family_guid הוא המזהה הייחודי של מסד הנתונים המקורי ב-Amazon RDS בזמן היצירה
    • ‫rds_backup_seq_id הוא המזהה שמשמש את Amazon RDS באופן פנימי כדי לשמור על מספר סידורי לכל קובץ גיבוי של יומן עסקאות
    • ‫epoch הוא חותמת זמן של Unix בשניות
    • ‫.bak היא סיומת הקובץ. קובצי גיבוי דיפרנציאלי יכולים להשתמש בסיומות הבאות: .bak, ‏ .dif, ‏ .diff.

    דוגמאות לפורמטים תקינים:

    • 3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1731159833.bak
    • 1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1731159833.dif
  • אם אתם מחלקים את הגיבוי המלא לרצועות נפרדות, כל רצועה יכולה להשתמש בכל שם שתבחרו, אבל צריך להעלות אותן לתיקייה ב-Cloud Storage שהשם שלה הוא חותמת זמן של Unix בשניות:

    Cloud Storage bucket root/
    |- my-business-database/
    |  |- full/
    |  |  |- ...
    |  |- diff/
    |  |  |- 1731159833/
    |  |  |  |- mydiffstripe-diff_backup_file.dif
    |  |  |  |- mySeconddiffstripe-diff_backup_file.bak
    |  |- log/
    |  |  |- ...
    |- my-other-database/
    |  |- full/
    |  |  |- ...
    |  |- diff/
    |  |  |- 1731159833/
    |  |  |  |- firstDiffStripe.bak
    |  |  |  |- other_diff_stripe.diff
    |  |- log/
    |  |  |- ...
    

שמות של קובצי יומן טרנזקציות

ב-Amazon RDS, קובצי הגיבוי של יומן העסקאות נוצרים באופן אוטומטי והם כוללים את כל המזהים הנדרשים של מסד הנתונים. שמות ברירת המחדל האלה כוללים את חותמת הזמן של התקופה, והם נתמכים באופן מלא ב-Database Migration Service. אתם יכולים להעלות את הקבצים האלה ישירות לתיקיית /log/.

מבצעים גיבוי מלא של המכונה המקורית

קובץ הגיבוי המלא של מסד הנתונים נדרש לשלב הטעינה הראשונית של משימת ההעברה. אם אתם רוצים להצפין את הגיבויים, חשוב לשמור את מפתח ההצפנה כדי שתוכלו להעלות אותו ל-Cloud Storage בהמשך, כשתצרו את משימת ההעברה. איך משתמשים בגיבויים מוצפנים

גיבוי מלא של מכונות SQL Server מקומיות

אתם יכולים לגבות באופן מלא את המכונה של SQL Server המקומית באמצעות T-SQL או SQL Server Management Studio ‏ (SSMS). איך לעשות את זה?

  1. צריך לעמוד בדרישות הבאות:
    • שמות קובצי הגיבוי עומדים בדרישות בנושא מתן שמות .
    • מסדי הנתונים של המקור לא משתמשים במודל השחזור simple. למידע נוסף, קראו את המאמר Recovery Models (SQL Server)‎ במסמכי התיעוד של מיקרוסופט.
    • אם גודל מסד הנתונים עולה על 5TB, צריך לחלק את הגיבוי המלא לפסים נפרדים. הגודל המקסימלי של כל פס הוא 5TB. מידע נוסף זמין במאמר Backup devices in a striped media set.
  2. מבצעים גיבוי מלא של מכונת המקור. למידע נוסף, קראו את המאמר Quickstart: Backup and restore a SQL Server database with SSMS במסמכי התיעוד של מיקרוסופט. אתם יכולים גם לבדוק את הפקודות לדוגמה הבאות:

    דוגמה לפקודת T-SQL לקובץ גיבוי מלא אחד

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

    declare @DATABASE varchar(1000);
    SELECT @DATABASE = 'AdventureWorks2022';
    
    declare @unixTimestamp varchar(1000);
    SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    
    DECLARE @BackupPath NVARCHAR(2000);
    SET @BackupPath = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '.bak';
    
    DECLARE @SQL NVARCHAR(MAX);
    SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] TO DISK = N''' + @BackupPath + '''';
    EXEC sp_executesql @SQL;
    GO

    דוגמה לפקודת T-SQL לקובצי גיבוי מלאים עם חלוקה לפסים

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

    declare @DATABASE varchar(1000);
    SELECT @DATABASE = 'AdventureWorks2022';
    
    declare @unixTimestamp varchar(1000);
    SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    
    DECLARE @BackupPath1 NVARCHAR(2000);
    DECLARE @BackupPath2 NVARCHAR(2000);
    DECLARE @BackupPath3 NVARCHAR(2000);
    
    SET @BackupPath1 = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe1.bak';
    SET @BackupPath2 = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe2.bak';
    SET @BackupPath3 = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe3.bak';
    
    DECLARE @SQL NVARCHAR(MAX);
    SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] '
               + 'TO DISK = N''' + @BackupPath1 + ''', '
               + 'DISK = N''' + @BackupPath2 + ''', '
               + 'DISK = N''' + @BackupPath3 + ''' '
               + 'WITH FORMAT, '
               + 'MEDIANAME = N''AdventureWorksStripedSet0'', '
               + 'MEDIADESCRIPTION = N''Striped media set for ' + @DATABASE + ' database''';
    EXEC sp_executesql @SQL;
    GO
  3. מעלים את קובץ הגיבוי לקטגוריה של Cloud Storage. יצירה והגדרה של קטגוריה ב-Cloud Storage

גיבוי מלא של Amazon RDS

כדי לבצע גיבוי מלא של מקור Amazon RDS, פועלים לפי השלבים הבאים:

  1. צריך לעמוד בדרישות הבאות:
  2. מגדירים את יכולת הגיבוי המובנית. מידע נוסף זמין במאמר הגדרה של גיבוי ושחזור מקוריים במסמכי התיעוד של Amazon RDS.
  3. מבצעים גיבוי מלא של מכונת המקור. אם גודל מסד הנתונים עולה על 5TB, הקפידו לחלק את הגיבוי המלא לפסים נפרדים באמצעות הפרמטר @number_of_files. הגודל המקסימלי של כל פס הוא 5TB. אפשר לקרוא מידע נוסף במאמר Backing up a database במסמכי התיעוד של Amazon RDS.

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

    שאילתה לדוגמה לביצוע גיבוי מלא ב-Amazon RDS

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

    declare @DATABASE varchar(1000);
    declare @S3Bucket varchar(1000);
    declare @unixTimestamp varchar(30);
    declare @fileName varchar(1000);
    
    SELECT @S3Bucket = 'dms-sqlserver-exports';
    SELECT @DATABASE = 'AdventureWorks2022';
    
    SELECT @unixTimestamp=CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    SELECT @fileName = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/full/' + @DATABASE + '.' + @unixTimestamp + '/' + CAST(database_id AS VARCHAR(10)) + '.' + CAST(family_guid AS VARCHAR(50)) + '.*.' + @unixTimestamp) FROM master.sys.database_recovery_status WHERE DB_NAME(database_id)=@DATABASE;
    
    exec msdb.dbo.rds_backup_database
      @source_db_name=@DATABASE,
      @s3_arn_to_backup_to=@fileName,
      @overwrite_s3_backup_file=1,
      @type='FULL',
      @number_of_files=1;
  4. מעלים את קובץ הגיבוי לקטגוריה של Cloud Storage. יצירה והגדרה של קטגוריה ב-Cloud Storage

מבצעים גיבוי דיפרנציאלי של מכונת המקור

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

גיבוי דיפרנציאלי של מכונות SQL Server מקומיות

אתם יכולים לבצע גיבוי דיפרנציאלי של מכונה מקומית של SQL Server באמצעות T-SQL או SQL Server Management Studio ‏ (SSMS). איך לעשות את זה?

  1. צריך לעמוד בדרישות הבאות:
    • שמות קובצי הגיבוי עומדים בדרישות בנושא מתן שמות .
    • מסדי הנתונים של המקור לא משתמשים במודל השחזור simple. למידע נוסף, קראו את המאמר Recovery Models (SQL Server)‎ במסמכי התיעוד של מיקרוסופט.
    • אם גודל מסד הנתונים גדול מ-5TB, צריך לחלק את הגיבוי הדיפרנציאלי לפסים נפרדים. הגודל המקסימלי של כל פס הוא 5TB. מידע נוסף זמין במאמר Backup devices in a striped media set.
  2. מבצעים גיבוי דיפרנציאלי של מכונת המקור. למידע נוסף, קראו את המאמר Create a Differential Database Backup במסמכי התיעוד של מיקרוסופט. אתם יכולים גם לבדוק את הפקודות לדוגמה הבאות:

    דוגמה לפקודת T-SQL לקובץ גיבוי דיפרנציאלי יחיד

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

    declare @DATABASE varchar(1000);
    SELECT @DATABASE = 'AdventureWorks2022';
    
    declare @unixTimestamp varchar(1000);
    SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    
    DECLARE @BackupPath NVARCHAR(2000);
    SET @BackupPath = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '.bak';
    
    DECLARE @SQL NVARCHAR(MAX);
    SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] TO DISK = N''' + @BackupPath + ''' WITH DIFFERENTIAL';
    EXEC sp_executesql @SQL;
    GO

    דוגמה לפקודת T-SQL לקובצי גיבוי דיפרנציאליים מפוצלים

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

    declare @DATABASE varchar(1000);
    SELECT @DATABASE = 'AdventureWorks2022';
    
    declare @unixTimestamp varchar(1000);
    SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    
    DECLARE @BackupPath1 NVARCHAR(2000);
    DECLARE @BackupPath2 NVARCHAR(2000);
    DECLARE @BackupPath3 NVARCHAR(2000);
    
    SET @BackupPath1 = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe1.bak';
    SET @BackupPath2 = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe2.bak';
    SET @BackupPath3 = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe3.bak';
    
    DECLARE @SQL NVARCHAR(MAX);
    SET @SQL = 'BACKUP DATABASE [' + @DATABASE + '] '
               + 'TO DISK = N''' + @BackupPath1 + ''', '
               + 'DISK = N''' + @BackupPath2 + ''', '
               + 'DISK = N''' + @BackupPath3 + ''' '
               + 'WITH DIFFERENTIAL, FORMAT, '
               + 'MEDIANAME = N''AdventureWorksStripedSet0'', '
               + 'MEDIADESCRIPTION = N''Striped differential media set for ' + @DATABASE + ' database''';
    EXEC sp_executesql @SQL;
    GO
  3. מעלים את קובץ הגיבוי לקטגוריה של Cloud Storage. יצירה והגדרה של קטגוריה ב-Cloud Storage

גיבוי דיפרנציאלי ל-Amazon RDS

כדי לבצע גיבוי דיפרנציאלי של מקור Amazon RDS:

  1. צריך לעמוד בדרישות הבאות:
  2. מגדירים את יכולת הגיבוי המובנית. מידע נוסף זמין במאמר הגדרה של גיבוי ושחזור מקוריים במסמכי התיעוד של Amazon RDS.
  3. מבצעים גיבוי דיפרנציאלי של מכונת המקור. משתמשים בפרוצדורה המאוחסנת rds_backup_database עם הפרמטר type שמוגדר ל-DIFFERENTIAL.

    אם גודל מסד הנתונים עולה על 5TB, הקפידו לחלק את הגיבוי המלא לפסים נפרדים באמצעות הפרמטר @number_of_files. הגודל המקסימלי של כל פס הוא 5TB.

    למידע נוסף, קראו את המאמר Backing up a database במסמכי התיעוד של Amazon RDS. אפשר גם לבדוק את פקודת הדוגמה הבאה:

    שאילתה לדוגמה לביצוע גיבוי דיפרנציאלי ב-Amazon RDS

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

    declare @DATABASE varchar(1000);
    declare @S3Bucket varchar(1000);
    declare @unixTimestamp varchar(30);
    declare @fileName varchar(1000);
    
    SELECT @S3Bucket = 'dms-sqlserver-exports';
    SELECT @DATABASE = 'AdventureWorks2022';
    
    SELECT @unixTimestamp=CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    SELECT @fileName = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/full/' + @DATABASE + '.' + @unixTimestamp + '/' + CAST(database_id AS VARCHAR(10)) + '.' + CAST(family_guid AS VARCHAR(50)) + '.*.' + @unixTimestamp) FROM master.sys.database_recovery_status WHERE DB_NAME(database_id)=@DATABASE;
    
    exec msdb.dbo.rds_backup_database
      @source_db_name=@DATABASE,
      @s3_arn_to_backup_to=@fileName,
      @overwrite_s3_backup_file=1,
      @type='DIFFERENTIAL',
      @number_of_files=1;
  4. מעלים את קובץ הגיבוי לקטגוריה של Cloud Storage. יצירה והגדרה של קטגוריה ב-Cloud Storage

גיבוי של יומני עסקאות

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

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

גיבוי של יומן טרנזקציות במכונות מקומיות של SQL Server

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

  1. צריך לעמוד בדרישות הבאות:
  2. מייצאים את קובצי יומן הטרנזקציות ממסדי הנתונים של SQL Server במקור. למידע נוסף על גיבוי של יומן טרנזקציות במסמכי התיעוד של Microsoft. אפשר גם לבדוק את הפקודה לדוגמה הבאה:

    פקודת T-SQL לדוגמה לייצוא קובצי יומן של טרנזקציות לדיסק מקומי

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

    declare @DATABASE varchar(1000);
    SELECT @DATABASE = 'AdventureWorks2022';
    declare @unixTimestamp varchar(1000);
    SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50));
    
    DECLARE @BackupPath NVARCHAR(2000);
    SET @BackupPath = 'X:\SQLServerBackups\log\' + @DATABASE + '.' + @unixTimestamp + '.trn';
    
    DECLARE @SQL NVARCHAR(MAX);
    SET @SQL = 'BACKUP LOG [' + @DATABASE + '] TO DISK = N''' + @BackupPath + '''';
    EXEC sp_executesql @SQL;
    GO
  3. מעלים את קובצי הגיבוי של יומן העסקאות ל קטגוריה של Cloud Storage שיצרתם בשביל ההעברה.

גיבוי של יומן הטרנזקציות ב-Amazon RDS

גיבויים של יומני טרנזקציות נוצרים באופן אוטומטי אם הגיבויים האוטומטיים מופעלים במכונה של Amazon RDS. הפעלת גיבויים אוטומטיים במשאבי העזרה של Amazon RDS.

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

  1. מאפשרים גישה לקובצי יומן העסקאות במכונה של Amazon RDS. למידע נוסף, קראו את המאמר Access to transaction log backups with RDS for SQL Server. אפשר גם לבדוק את הפקודה לדוגמה הבאה:

    דוגמה לקריאה לפרוצדורה מאוחסנת כדי לאפשר גישה ליומן העסקאות ב-Amazon RDS

    declare @DATABASE varchar(1000);
    declare @S3Bucket varchar(1000);
    declare @targetS3Arn varchar(1000);

    SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @targetS3Arn = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/log/');

    USE @DATABASE; exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn=@targetS3Arn;

  2. מעתיקים את קובצי הגיבוי של יומן העסקאות מקטגוריית S3 אל הקטגוריה של Cloud Storage שיצרתם בשביל ההעברה.