פוסטים שנכתבו על ידי זהר אלקיים

דרוש שרגא…

אז כולם מדברים על זה שחפר מרמזור התקבל להיות DBA. העניין הוא שרק DBA אמיתי מבין כמה זה מדוייק ומצחיק…

דרך אגב – הפרופיל שבמודעה – RAC, גריד קונטרול ו-Data Guard, יתרון לניסיון בטיונינג – זה בדיוק הפרופיל של DBA-ים שאני מחפש היום… אז אם מישהו מכיר מישהו שהוא יותר שרגא מאשר חפר אני אשמח לשמוע… 🙂

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

איך מוצאים באיזה Oracle Home עלה ה-Database?

מדי פעם אני מוצא את עצמי תוהה באיזה Oracle Home עלה ה-Database. הדבר קורה בעיקר בסביבות שיש בהן כמה Home-ים (לפעמים באותם גרסאות) ואני לא מצליח להתחבר מקומית לבסיס הנתונים (לדוגמה כ-sysdba).

לצורך כך ישנן כמה שליפות ופרוצדורות שיכולות לסייע.
הראשונה היא הפרוצדורה dbms_System.get_env:

SQL> var OracleHome varchar2(100);
SQL> EXEC dbms_system.get_env('ORACLE_HOME', :OracleHome);

PL/SQL procedure successfully completed.

SQL> PRINT OracleHome

ORACLEHOME
--------------------------------------------------------------------------------
C:\Oracle\product\11.2.0\dbhome_1

שליפה אחרת שניתן להשתמש בה היא השליפה הבאה.
בסביבת חלונות:

SQL> SELECT SUBSTR(FILE_SPEC, 1, INSTR(FILE_SPEC, '', -1, 2) -1)
  2  FROM DBA_LIBRARIES
  3  WHERE LIBRARY_NAME = 'DBMS_SUMADV_LIB';

SUBSTR(FILE_SPEC,1,INSTR(FILE_SPEC,'',-1,2)-1)
--------------------------------------------------------------------------------
C:\Oracle\product\11.2.0\dbhome_1

בסביבת unix/linux:

SQL> SELECT SUBSTR(FILE_SPEC, 1, INSTR(FILE_SPEC, '/', -1, 2) -1)
  2  FROM DBA_LIBRARIES
  3  WHERE LIBRARY_NAME = 'DBMS_SUMADV_LIB'
  4  /

SUBSTR(FILE_SPEC,1,INSTR(FILE_SPEC,'/',-1,2)-1)
--------------------------------------------------------------------------------
/app01/oracle/product/11.2.0/dbhome_1

שימוש ב-Append ו-redo logs

הייתי היום בכנס ilOUG שיוחד לנושאי Data Warehouse ומכוון שהנושא קרוב לליבי (עדיין, כמעט שלוש וחצי שנים ב-DWH של פרטנר) הלכתי לשמוע מה יש בנושא ונהנתי מאוד.

במהלך ההרצאה האחרונה הסבירו החבר'ה מאורקל על שיטות טעינה למחסני נתונים. במהלך ההרצאה התפתחה שיחה קצרה ביני ובין עמיאל דיוויס בנושא מתי יש להינט Append משמעות והאם זה עוזר רק בסביבה של Archive log mode או לא. הוא הפנה אותי לבלוג שלו אז אני מפרגן ולהלן לינק למה שהוא כתב בנושא כבר לפני שנתיים. אם הגעתם עד כאן ולא הבנתם כלום, אולי הגיע הזמן להסביר קצת במה מדובר.
המשך קריאה…

Oracle Database Firewall

במאי 2010 רכשה אורקל חברה בשם Secerno. על פניו לא משהו מלהיב במיוחד – אורקל רוכשת כל שנה לפחות כמה חברות: בצורה כזו "קיבלנו" לדוגמה את GoldenGate, ה"באזז וורד" החם של שנה שעברה. חברת Secerno הייתה חברה שייצרה מוצר אבטחת מידע שאני מאמין שיקבל תשומת לב רבה בשנה הקרובה. המוצר נקרא Oracle Database Firewall .

אז במה בעצם מדובר? מדובר במוצר שיושב לפני בסיס הנתונים ובודק את השליפות שמגיעות אליו. הוא מאפשר למנהלי המערכת להגדיר סטים של חוקים שימנעו גישה לא מורשית לנתונים או פגיעה בהם. מוצר כזה יכול, לדוגמה, להחליף בקונסטלציות מסויימות מנגנונים של VPD, להחליף מנגנוני ניטור של שליפות מבסיס הנתונים ולחסום בצורה קלה יחסית התקפות של SQL injection מבלי להזדקק לשינוי באפליקציה.
המשך קריאה…

מה זה?! לאן נעלמת?!

שלום לכולם,

אז אני יודע שהבטחתי שאני לא אעלם ואמשיך לכתוב בבלוג פוסטים טכנולוגיים אבל מסתבר שלהיות מנהל במשרה מלאה זה הרבה יותר עבודה ממה שחשבתי… 🙂

אני עדיין מבטיח לא להעלם ומזמין אותכם להמתין לכמה פוסטים מאוד מעניינים שמתבשלים אצלי – לדוגמה על המוצר החדש שאורקל קנו לאחרונה (למעשה הם קנו את כל החברה): Oracle Database Firewall. זה מוצר שמסתמן אצלי כאחד המוצרים המעניינים ביותר שניתקל בהם בשנת 2011 בתחום האבטחה – במיוחד זו של בסיסי נתונים. אני נחשף גם לאחרונה גם לפרוייקטים של GoldenGate ואני מקווה לכתוב על זה כמה מילים כשאני ארגיש יותר בטוח בעצמי בנושא.

אתמול הייתי בכנס מרתק בחברת EMC בנושא פתרונות שהם מציעים למערכות מבוססות אורקל. דיברו שם בין היתר על החשיבות של מחזור חיי המידע (ILM), וירטואליזציה של מכונות database ופתרון לשיפור ביצועים שנקרא ה-FAST – Fully Automated Storage Tiering בו מכונת הסטורג' מזיזה את המידע בין דיסקים מהירים (SSD לדוגמה) ודיסקים איטיים יותר כדי להשיג ביצועים טובים יותר. אני אכתוב על שלושת הנושאים עוד בעתיד – הדברים שרשמתי לעצמי כנראה לא היו מספיקים כדי להרים פוסטים שלם בנושא ולכן אני ממתין לקבל את המצגות של הכנס כדי להיות מדוייק ככל האפשר.

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

כרגיל, אם יש שאלות, הערות, הארות או בקשות – אני אשמח לשמוע.

נ"ב
אני לא רוצה כל כך לעשות מהבלוג לוח דרושים אבל… אני מחפש להוסיף לתחום שלי כמה יועצים חדשים של אורקל ואו SQL Server. אם יש מישהו שמעוניין אני אשמח לקבל קורות חיים ל- zoharel at glasshouse.com.

יצירת קובץ CSV מתוך PL/SQL

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

השיטה שתוארה בפוסט הקודם היא שיטה מעולה כל עוד לא מנסים לשרשר יותר מדי שדות ואז אורך הרשומה הופך להיות מגבלה רצינית. בשיטה הקודמת שירשור ערכים שעובר גודל מסויים (לא בדקתי מהי, נדמה לי שזה 4000 – המגבלה של פונקציות SQL באופן כללי) נכשל עם הודעת שגיאה: ORA-01489: result of string concatenation is too long.

כדי לפתור את הבעיה הזו כתבתי סקריפט שמייצר קוד PL/SQL. אם נריץ את הקוד שהסקריפט הזה מייצר אז יודפסו למסך השורות של קובץ ה-CSV.

המשך קריאה…