שלום לכולם,
במאמר זה נלמד לבצע מיגרציה של Microsoft SQL Databases בין שרתי On-Prem בעזרת הכלי של מיקרוסופט: “Data Migration Assistant” שאת השימוש בתוכנה נבצע לפי ה-Best Practices של Microsoft.
במידה ואינכם מכירים את הכלי “Data Migration Assistant“, כתבתי מאמר בנושא המציג את יכולותיו של הכלי.

את המאמר תוכלו למצוא בלינק הבא:
https://israel-it.co.il/overview-of-data-migration-assistant/


המלצות לפני תחילת תהליך המיגרציה:

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

התקנת התוכנה Data Migration Assistant:


  • פתחו את “Microsoft Data Migration Assistant”.

הרצת סימולציה “Assessment” לפני מיגרציה תתבצע באופן הבא:

  • כעת נריץ סימולציה לבדיקת תאימות בין הגרסאות של שרתי ה-SQL, בכדי שנוכל לדעת מה תהיה ההשפעה ה-Databases לאחר המיגרציה.
  • לחצו על הסימן של ה +(New) –> תחת “Project type” סמנו את “Assessment–> העניקו שם לפרוייקט –> מלאו את שאר הפרמטרים לפי צורכי הארגון שלכם –> לחצו על “Create”.
  • בחרו את הגרסה היעד של שרת ה-SQL אשר אליו אתם מתכוונים לבצע את מיגרציה ולחצו “Next”.
  • ב- “Server Name” הקלידו את שם השרת של ה-SQL (הישן) שממנו אתם רוצים לבצע מיגרציה.
    בחרו את שיטת ה-Authentication שדרכה ניתן להתחבר אל שרת ה-SQL, במידה ויש לכם שרת CA בארגון המנפיק תעודות לכל השרתים אנא וודאו שה-Check Boxes של “encrypt connection” ו- “Trust server certificate” אכן מסומנים ב-“V” ולחצו על “Connect”.
  • כעת בחרו את ה-Database אשר אתם רוצים לבצע עליו את הסימולציה(ניתן גם לסמן את כולם).
  • בכדי להתחיל את התהליך לחצו על “Start Assessment”.
  • לאחר שהסימולציה הסתיימה, תוכלו לראות אלו אובייקטים עלולים להפגע כתוצאה מהמיגרציה וגם תקבלו המלצות מ-Microsoft כיצד להתמודד עם תקלות העתידיות. (ממליץ להתייעץ עם איש DBA במידה ויש כזה בארגון)
  • בנוסף ניתן לבצע ייצוא לדוח ע”י לחיצה על “Export report”.
  • במידה והצלחתם להתגבר על התקלות העתידיות, ניתן לעבור לשלב המיגרציה.


ביצוע המיגרציה תתבצע באופן הבא:

  • פתחו את “Microsoft Data Migration Assistant
  • לחצו על הסימן של ה +(New) -> תחת “Project type” סמנו את “Migration-> העניקו שם לפרוייקט -> מלאו את שאר הפרמטרים לפי צורכי הארגון שלכם -> לחצו על “Create”.

מכיוון שאני מבצע מיגרציה בין שרתי On-Prem, הגדרתי גם ב-Source Server וגם ב-Target Server את האפשרות “SQL Server”. יש גם אופציה לבצע את המיגרציה ל-AZURE.
אנא וודאו להגדיר את ה-Authentication type המתאים לכל שרת, במקרה שלי בחרתי ב-“Windows Authentication” מכיוון שלמשתמש שאני מחובר איתו יש הרשאות ניהול על שני שרתי ה-SQL.

  • ב- “Server Name” הקלידו את שם השרת של הSQL הישן (Source) והשרת SQL החדש (Target).
  • בחרו את שיטת ה-Authentication שדרכה ניתן להתחבר אל שרת ה-SQL, במידה ויש לכם שרת CA בארגון המנפיק תעודות לכל השרתים אנא וודאו שה-Check Boxes של “encrypt connection” ו- “Trust server certificate” אכן מסומנים ב-“V” ולחצו על “Connect”.
  • מצד שמאל הגדירו את ה-Databases שאתם רוצים לבצע להם מיגרציה ומצד ימין הגדירו “Shared location” אשר ניתן לגשת אליו משני שרתי ה-SQL לצורך פעולות של גיבוי ה-Databases.

    ישנה אפשרות לבחור נתיב שונה של “Shared location” ברמת ה-Database ע”י סימון של Database מסויים והגדרת הנתיב תחת הסעיף:“Share location options”.
    בנוסף לכך ניתן גם להגדיר “Shared location” שונה לשרת ה-SQL הייעודי ע”י סימון ה-Check Box:
    Copy the database backups to different location that the target server can read and restore from

    Specify the location to restore data files on target server – הגדירו את הנתיב שבו יאוחסנו ה-Databases לאחר המיגרציה אל השרת החדש.(ניתן להגדיר לכל Database נתיב שונה)
    Specify the location to restore log files on target server – הגדירו את הנתיב שבו יאוחסנו הלוגים של ה-Databases לאחר המיגרציה אל השרת החדש.(ניתן להגדיר לכל Database נתיב שונה)

  • לאחר שהגדרתם את “Shared location” לחצו על “Next”.
  • בחרו אלו הרשאות Logins אתם רוצים להעביר מהשרת ה-SQL הישן אל שרת ה-SQL החדש (לא להעביר את ההרשאות של ה-Administrator המקומי של השרת הישן!).
    ולסיום לחצו על “Start Migration”.
  • שימו לב: לאחר סיום המיגרציה הגישה ל-Database שמאוחסן בשרת SQL הישן תחסם לכל האפליקציות אשר היו מחוברות אליו.

    כך נראת תוצאה תקינה:

  • התחברו אל שרת האפליקציה שלכם ותפנו אותו לכתוב אל ה-Database המאוחסן בשרת ה-SQL החדש.
  • התחברו אל שרת ה-SQL הישן לחצו קליק ימני על אחד מה-Databases שביצעתם לו מיגרציה–> Detach <– Task

סמנו ב-V את 2 ה- Check boxes הבאים:
Drop Connections
Update Statistics

ולחצו “OK”.

  • במידה וקיבלתי הודעת שגיאה וה-Database הפך ל-Offline, תשנו את הסטטוס של ה-Database ל-Online ובצעו לו שוב “Detach”.

This Article Was Written By Matan Sigavker

Leave a Reply

Your email address will not be published. Required fields are marked *