תזמון משימות ב-SQL Databases ב-Azure

יום רביעי, אוקטובר 4, 2017

בניגוד ל-VM שיש להם – כמו לכל שרת – agent, ג’ובים, וכו’; ב-SQL Databases (או Paas) זה קצת יותר מורכב.כרגע, Azure מציע אוסף של כלים, פתרונות וטכנולוגיות; שלא תמיד מסונכרנים בינהם, ולכן אין פתרון אחד, ומה שיש כיום זה לא מה שיהיה מחר.בכל מקרה: פתרון אפשרי, נכון לעכשיו. Automation Accounts – נכנסים לזה מהתפריט הראשי בפורטל. אם יש כבר חשבונות – ניתן להשתמש באחד מהם, ואם לא – יוצרים חדש. Credentials – יש ליצור credential מתאים לדטבייס איתו רוצים לעבוד (אופצייה מתחת ל-Automation Account): שם משתמש, וסיסמה. בקוד עצמו, בהמשך, נעשה שימוש ב-credential, ולא נציין באופן גלוי שם וסיסמה....
אין תגובות

External Data Source: תחליף ל-Linked Server ב-Azure

יום שני, ספטמבר 11, 2017

לפני יותר משנה כתבתי פוסט על פנייה בין דטבייסים שונים ב-Azure. והראיתי כיצד ניתן ליצור External Tables, כלומר – קישור לטבלאות בדטבייס אחר ב-Azure. לא כמו Linked Server שמאפשר לגשת לכל מה שיש בשרת (בכפוף להרשאות), External Tables הוא לטבלה בודדת. מי שרוצה יותר מזה, יכול להיעזר באותה תשתית (Master Key + Database Scoped Credential) כדי ליצור  External Data Source, שהוא המקבילה ל-Linked Server בעולם ה-Azure, כשמדובר באובייקט ברמת הדטבייס. קודם כל ניצור באופן חד פעמי Master Key Encryption (אם יש- אי אפשר ואין צורך באחד נוסף): --Drop Master Key;If Not Exists (Select * From...

Sync ב-SQL Azure: רפליקציה בין דטבייסים

יום שבת, ספטמבר 2, 2017

אופציית Sync מהווה תחליף נוח לרפליקציה בין דטבייסים ב-Azure: יש מספר מגבלות, אבל השימוש פשוט וקל. המצרכים: שני דטבייסים, ובאחד מהם טבלה עם Primary Key (בלי זה אי אפשר).המקור נקרא Hub והיעד Member, נעים מאוד! ניצור Sync Group חדש, כולל טבלה לסינכרון: שם – בסגנון חופשי.מרווח מינימלי לסנכרון – 5 דקות. לכאורה יש אופציה למרווח בשניות, אבל אי אפשר לכתוב פחות מ-300 שניות.. זה החסרון העיקרי של הכלי, בעיקר למי שרוצה רפליקציה מעודכנת קרוב לזמן האמיתי.במקרה של קונפליקט בין טבלת המקור להעתק – המקור (Hub) מכריע. כנראה שסעיף זה נועד ל-B Directional Sync (בהמשך).כעת צריך להמתין עד...
אין תגובות

סקריפט לשדרוג טבלאות ל-Clusterd ColumnStore Index

יום רביעי, פברואר 1, 2017

תחום ה-ColumnStore עבר כמה וכמה שינויים מאז שהוצג לראשונה בגרסת 2012.כיום, בגרסת 2016, ניתן ליצור כבר Clusterd ColumnStore Index שזו טבלה הבנוייה כ-ColumnStore, ולא רק טבלה סטנדארטית שיש לה בנוסף אינדקס ColumnStore; והרבה מהמגבלות שצויינו בפוסט שלי מאז – הוסרו.כדאי לציין שהמונח Clusterd ColumnStore Index קצת מטעה, כי בניגוד ל-Clustered Index “רגיל” (RowStore) – הוא אינו ממויין פיזית; ולכן ראוי היה לקרוא לו ColumnStore Heap, אלא ששם זה לא נשמע כל כך טוב.. אני מצרף בזאת סקריפט לשדרוג טבלאות ל-Clustered ColumnStore Index (מחולל את פקודות ה-TSQL הרלוונטיות): טבלאות שיש להן כבר Clustered Index “רגיל” (RowStore) יכולות להשתדרג בשלב...

Linked Servers – מקרים מיוחדים

יום שלישי, ינואר 31, 2017

ברוב במקרים, כשיוצרים Linked Server הולכים בדרך הישר: קישור לשרת ב-Dommain שלנו אליו אנחנו פונים ב-Linked Server ששמו כשם השרת, ויוצרים אותו בקלילות בעזרת ה-Wizard ב-SSMS.לעיתים יש מקרים מיוחדים, ואז צריך להתחיל לעבוד עם פרוצדורות המערכת ולהסתבך קצת (אני מדבר רק על עצמי..). לפני כשנה וחצי הצגתי את הקוד ליצירת Linked Server ל-SQL Azure, אך אחזור על כך לידיעת המאזינים שהצטרפו זה עתה: Exec master.dbo.sp_addlinkedserver @server=N'MyLinkedServer', ...
אין תגובות

תזמון משימות ב-SQL Azure בעזרת Azure Function

יום חמישי, ינואר 26, 2017

(תודה מראש לפיני קרישר על העזרה והמידע המועיל) אחת הבעיות המעט משעשעות שהיו ל-Azure בתחילת דרכו הייתה שלא ניתן היה להשתמש בו ללא שרת On Premise שאיפשר את כל מה ש-Azure לא.למשל: כיצד עובדים מול Azure? הרי לא מדובר בהתקנה שכוללת כלי Client כמו ה-SSMS.. צריך היה איזו התקנה – זמנית או מוזלת או לא חוקית כדי שיהיה ממשק עבודה. נכון שהפורטל הישן איפשר פעם הרצה של פקודות SQL, אך האפשרות הזו נוטרלה משיקולים השמורים למיקרוסופט, וכל מה שנשאר אלו אתרים בלתי תלויים (למשל- SkyVia). ההגינות מחייבת לציין שה-SSMS הוא בחינם כיום ולכן אין בעייה להוריד ולהתקין, אבל אני...
תגיות: , , ,
אין תגובות

אופציית Geo-Replication ב-Azure

יום שני, נובמבר 23, 2015

בכל כמה ימים חל איזה שינוי ב-Azure, מתווספות אופציות חדשות, והשמחה רבה.הפוסט הזה מתאר את המצב נכון לעכשיו, ולא ירחק היום והוא יהיה לא אקטואלי; אז כדאי למהר בטרם נאחר.. המצרכים: אנחנו מחוברים ל-Azure, וכבר יש לנו שני שרתים- במערב אירופה ובצפון אירופה (מדובר ב-Paas ולא בשרתים וירטואליים!).בשרת שבצפון אירופה יש SQL Database בשם Test2 שניצור לו רפליקה במערב אירופה: אבוי: אנחנו ב-tier נחות ויש לשדרג את הדטבייס לגרסה יותר מהודרת כדי שנוכל לרפלק: אנחנו נסתפק במינימום ההכרחי – S0, ונמתין שהשדרוג יסתיים: ונמתין שהשדרוג יסתיים: ולוחצים להמשך: נקבל את המלצת המערכת ונבחר במערב...
אין תגובות

Linked Server to SQL Azure

יום רביעי, אוגוסט 19, 2015

יש כמה דגשים ביצירת Linked Server ל-SQL Database ב-Azure (המכונה במקומנו PAAS).ראשית, הסינטקס ליצירת ה-Linked Server: Use master;Go Exec master.dbo.sp_addlinkedserver @server = N'MyLinkedServer', @srvproduct=N'', @provider=N'sqlncli', @datasrc=N'SQLAzureServer.database.windows.net', @catalog=N'MyDB';Exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MyLinkedServer',@useself=N'False',@locallogin=NULL,@rmtuser=N'MyLogin',@rmtpassword='MyPassword';Go MyLinkedServer – השם של האובייקט שניצורSQLAzureServer.database.windows.net – שם השרת (תמיד SQL Database יהיה משוייך לשרת)MyDB – שם הדטבייס, ובניגוד למקובל – כאן חובה לציינו.MyLogin – שם ה-Login ב-Azure.MyPassword – הסיסמה ב-Azure. השימוש ב-Linked Server: השימוש הוא כמקובל, יש לציין כמובן את שם הדטבייס בפנייה, וניתן לפנות רק לזה שצויין בהגדרת ה-Linked Server. כלומר- זהו Linked Server לדטבייס ספציפי ולא לכל הדטבייסים בשרת.
אין תגובות

Truncate Table With Partitions

יום חמישי, מרץ 26, 2015

ניתן כעת לבצע פעולות Truncate על פרטישנים (partitions) ספציפיים בטבלה מפורטשת, בשלב זה רק בגרסת SQL Azure V12.מה? מי? מו? מה: עד לפני מספר חודשים היינו רגילים שמיקרוסופט מוציאה גרסת SQL Server חדשה אחת לכמה שנים עם שלל חידושים טכנולוגיים ושלל כנסי השקה כדי לחשוף אותם ולקדם את המכירות; ואילו גרסת SQL Azure השתרכה מאחור עם יכולת מופחתות, מנסה לא לפתוח פער גדול מדי מגרסאות On Prem.לפני מספר חודשים מיקרוסופט הוציאה את גרסת V12 של Azure שסגרה חלק גדול מהפערים ברמת ה-TSQL מגרסת 2014, וכעת החידושים מועלים תחילה אליה, ורק בהמשך לגרסאות On Prem העתידיות.גרסת V12 עצמה תיעלם עם...
אין תגובות

Alter Table OnLine

יום שני, מרץ 2, 2015

עוד חידוש ב-V12 של Azure: היכולת לשנות טבלה OnLine מבלי לנעול אותה למשתמשים, בערך כמו אופציות דומות ביצירה או בתחזוקה של אינדקסים.לרוב נשתדל לעשות פעולות כאלו בלילה ובשעות בהן אין משתמשים, אך במערכות שפועלות מסביב לשעון – זה בלתי אפשרי. נכון- נשתדל לתזמן את זה למועדים בהם הפעילות נמוכה יחסית, אך עדיין- איננו רוצים לנעול את הטבלאות למשך כל זמן הפעילות, בעיקר בטבלאות גדולות בהן זה יכול להימשך דקות ארוכות. נתחיל מהבעייה. ניצור טבלת Clustered Index: Select 1 N, *Into T_msFrom sys.messages; Alter...
תגיות: , ,
אין תגובות