
Restoring SQL Server System Databases
לא בכל יום מזדמן לנו (אם בכלל), לבצע פעולת שחזור לקבצי System Databases. לכן, רואה לנכון לשתף אתכם בחוויה זו אשר כללה מספר הפתעות בדרך.. אז לאחרונה נתקלתי במשימה מאתגרת – Restore System Databases ! הסיבה לכך - אחד ממערכי הווירטואליזציה של אחד מלקוחותיי הותקף על ידי וירוס רציני והשבית את הישויות הבאות: שרת ה-Host. שרתים וירטואליים אחרים אשר מותקנים על גבי ה-Host, ביניהם שרת SQL. גיבויי ה-Snapshots של המכונות נפגעו (מזל שגיבויי ה-DBs היו זמינים ממקור אחסון אחר). תחילה, הכין עבו

Moving Always On DBs without Restarting SQL
Recently we had to move a database involved in Always On without restarting the SQL. The architecture is SQL 2016 with always on, 4 nodes: 2 synchronous 2 asynchronous. 3 are on premise, 1 in Azure VM. As the servers have multiple Always on groups the customer wanted to reduce the number of failovers, so SQL restart was not an option on all nodes. Note: This only works on for a database that has been the primary within the always on. If you do not failover and make a secondar

T-SQL Challenge (June 2017)
לא מזמן התבקשתי לכתוב קוד שיחזיר "מה הייתה כמות המשתמשים המקסימלית במהלך יום אתמול" וזאת כדי לוודא שהלקוח לא חורג ממכסת הרישיונות. למרבה הצער אין בדיקה און-ליין. כל המידע הרלוונטי קיים בטבלת Audit שאוגרת המון פעילויות במערכת. בשלב ראשון חילצתי מתוכה וריכזתי את כל פעולות הכניסה והיציאה של כל המשתמשים מכל התחנות. לצורך ההפשטה נניח שקיבלנו טבלה שמנטרת את הכניסות והיציאות של כל משתמש מתחנה מסוימת במבנה הבא: **** הורד את הקוד מכאן **** CREATE TABLE LoginEnter(
[ID] INT NOT NU

SQL Server Licensing: Core based and CALs
This week I got a phone call from a customer who asked me to come and take a look at their SQL Server. They had a CPU performance issue with one of their servers. The server is SQL Server 2012 Enterprise edition. One of the checks that I did was to check how many CPUs the server has, and how many CPUs the SQL Server is configured to work with. I run this script - The output - SQL Server detected 2 sockets with 12 cores per socket and 12 logical processors per socket, 24 total

Rename a SQL Server instance
This week we do a change in our QA environment. The architecture were looks like this – Node1 – SQL Server 2014 Enterprise Node2 – SQL Server 2014 Enterprise Both of the nodes in Windows Server Failover Clustering (WSFC) On the database-level we had high availability with AlwaysOn availability groups, the QA and the developers connected by listener. This week we decided, that we do not need 2 nodes for this environment, and are feeling just fine with only single server. So, t

View Advanced System Information on a Remote Computer
ניתן להשיג את הקוד המלא כאן השבוע ביקרתי אצל לקוח, שהתלונן שבסביבת הSharepoint המשתמשים מרגישים איטיות. הסביבה שעליה יושב השרת(ים) הינה סביבת SQL Cluster וגרסת SQL Server 2008 Ent. הסביבה הינה וירטואלית. – VMware. כלומר, מספר מכונות יושבות על אותה הפלטפורמה- ESX (השרת הפיסי aka הברזלים) בפועל VM יכול לשרת על אותו ESX(הברזל עצמו) או אחר באותה פלטפורמה – תלוי הגדרות. בחזרה ללקוח, 2 המכונות שישבו תחת SQL Cluster. Node1 – ישב על ESX שמכיל CPU ב 2.0Ghz Node2 – ישב על ESX שמכיל CP

Redis vs. SQL Server (MOT)
כבר זמן מה שאני מעוניין ללמוד על Redis, מבחינתי הדרך הטובה ביותר ללמוד על זה היא למצוא קשר ישיר למה שאני עושה היום ביום יום. תחילה, מהו Redis – Redis הינו מסד נתונים שעובד כ In – Memory בתצורת Key-Value. המנוע הינו Open- Source מאוד נפוץ ששוקל כ700KB בלבד. ניתן להשתמש כמסד נתונים לכל דבר או כשגבת caching – שימוש עיקרי אצל חברות לטובת Session-State. ההתקנה של Redis פשוטה מאד (הגרסא הרשמית מבוססות מערכות Linux. אך, קיימת גם גרסה על Windows Redis-on-Windows-Getting-Started ) על

Opserver - Stack Exchange's Monitoring System
לפני זמן מה צפיתי Webinar שהעביר ברנט PASS SUMMIT 2013. Why is SQL Server slow right now, לצערי ההקלטה אינו זמינה לציבור הרחב. אך, הרעיון הוא שברנט מציג שם תוכנת ניטור בסיסית(ללא התראות, אבל יכולה לשמש כתוספת נחמדה למסך הנוסף על הקיר) שהקימו החברה של Stack Exchange, ושיחררו אותה לחופשי כOpen Source. ניתן להורד מכאן - https://github.com/opserver/Opserver ניתן לצפות בהרחבה על שיטת העבודה שלהם כאן – Keep It Simple, Make It Fast: The SQL Server Strategy at Stack Overflow הפעם, הפ

Upgrading Always On Availability Group Replica Instances
השבוע שלי התחיל בהקמת קלסטר לשרת ייצור והוספת Node נוסף בכדי להקים Always On בין 2 השרתים - SQL Server 2012 Enterprise. התקנתי את הNode החדש ומראש, גלגלתי את ההתקנות האחרנות שייצאו לMicrosoft. כאשר סיימתי עם ההתקנות ולאחר מספר אתחולים, השרת היה עם SQL Server 2012 - Service Pack 3 – Cumulative Update 7. הקמתי Always On בין השרתים, ביצעתי בדיקות והכל עבר תקין. המטרה החדשה הייתה לעדכן את הNode הראשון אשר היה שרת מסוג SQL Server 2012 - Service Pack 1, תחילה פעלתי לפי הכתוב – Befo

Is using CLR to parser strings will always be a good solution
אחת לזמן מה, בדרך כלל מידיי חודש, אנו שולחים בחברה אתגר טכנולוגי לכל צוות הSQL Server בנאיה. אני רוצה לשתף אתכם באתגר שעלה בחודש נובמבר 2016 ע"י עדי כהן. מדוע אני חושב שהאתגר הזה ראוי לשיתוף הקהל הרחב? מכיוון, שלהפתעתי הוא נגד את החשיבה הראשונית שאיתה הלכתי בתחילת האתגר, אני מאמין שכך גם לגבי המחשבה של אחרים. האתגר שהוצג - צריך לכתוב פרוצדורה, שמקבלת string בתור פרמטר. הstring יכול להיות מורכב מאותיות וסימנים (למשל #,$,! וכד') וכמובן מספרים. אפשר להניח שהאותיות יהיו אותיות