שלום לכולם,
במאמר זה נלמד לבצע מיגרציה של 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:
- הורידו והתקינו את התוכנה על אחד השרתים שלכם ותוודאו כי לשרת יש גישה מלאה אל שרתי הSQL האחרים ושאין חסימות Firewall:
https://www.microsoft.com/en-us/download/details.aspx?id=53595
- פתחו את “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