שליפה כדי לראות tablespace map

הנה שליפה קצרה שאני תמיד מחפש אותה במצבי “חרום” אבל בסוף מוצא את עצמי כותב אותה מחדש…

הבעיה: אני רוצה לפנות מקום פנוי ב-tablespace אבל ה-high water mark חסום על ידי איזשהו אובייקט (אני משתמש בסקריפט הזה לפינוי מקום ב-tablespace). בדרך כלל המחשבה הבאה שלי זה "נו? אז מה חוסם אותי עכשיו?".

הפתרון: השליפה הבאה. היא מביאה את ה- tablespace map מסודר לפי קבצים ומסמנת גם את הבלוקים התפוסים (ועל ידי מה) וגם את הבלוקים הפנויים.
המשך קריאה…

יועץ ה-recovery הכי נחמד שתפגשו אי פעם…

אחת הבעיות העיקריות שאני נתקל בהן אצל לקוחות שסובלים ממצבים שדורשים recovery היא העובדה שלא תמיד ברור להם (או בכלל) מה השלבים שצריך לבצע כדי לבצע את ה-recovery בצורה היעילה ביותר, הנוחה ביותר וזו שתיתן את הפתרון במינימום בעיות. מכוון ששחזור נעשה תחת לחץ במרבית המקרים אורקל הציגו בגרסה 11g יועץ (advisory) חדש בתוך ה-RMAN שיכול לעזור לנו לבוא ולפתור בעיות שדורשות שחזור – מרמת הבלוק ועד רמת קובץ ואפילו tablespace.

המשך קריאה…

טיפ: שליפה של השליפות הארוכות בשבוע האחרון (מתוך ה-AWR)

טיפ נחמד ושימושי – איך לשלוף מתוך הטבלאות של ה-AWR את השליפות הארוכות ביותר בשבוע האחרון.
השליפה שולפת את עשר השליפות בעלות הזמן המצטבר הגבוה ביותר. ניתן (וכדאי) לסנן את השליפה הזו עם Parsing Schema ספציפי כדי לקבל מידע שניתן לעבד אותו ולעבוד עליו כראוי:

המשך קריאה…

כמה מילים על bind peeking ואיך למחוק Execution Plan מה-Library Cache

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

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

אחד הדברים הקשים ביותר לכוונון בעיני זה שליפות שלפעמים עובדות מהר ולפעמים לא ובתת הקטגוריה הזו, שליפות שמתנהגות ככה אבל לכולן יש את אותו ה-SQL ID ואותו Execution Plan (באותה סביבה, כמובן). איך דבר כזה יכול לקרות? לדוגמה אם משתמשים ב-Bind Variables אז התוכנית של השליפה מתוכננת על ידי ה-Optimizer פעם אחת וכל השליפות שבאות אחריה עושות soft parse וחוסכות לעצמן את הצורך ב-parse מיותר.
כל זה טוב ויפה אבל איך האופטימייזר יודע להעריך כמויות רשומות ותוכנית יעילה? בגרסה 9i נוספה תכונה מעניינת: Bind Peeking. האופטימייזר שנתקל בשליפה עם bind variables בפעם הראשונה "מציץ" לתוך המשתנים האלה, רואה איזה ערכים יש שם ומשתמש בהם כדי לקבוע תוכנית פעולה לשליפה שלנו.

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

רגע, רגע, מה?!
המשך קריאה…

יצירת Data Guard באורקל 11 – הדרך המהירה (דמו משבוע אורקל 2011)

כמו שהבטחתי, הנה החלק הראשון בדמו של יצירת מערך Data Guard באורקל 11. אם יש למישהו הערות, אני אשמח לשמוע. בנוסף, אני מצרף את הקובץ של ה-demo שהשתמשנו בו בפועל ואין כמעט הסברים – כל ההסברים הנדרשים יהיו פה או במצגת.

הערה קטנה לפני שנתחיל – אנחנו נשתמש בשיטה שקיימת רק באורקל 11 וזה שכפול הסביבה on-line דרך RMAN מבלי לקחת גיבוי לקבצים קודם. ניתן להשתמש בשיטה הזו אם בסיס הנתונים קטן יחסית או אם הרשת בין השרתים מספיק חזקה כדי לבצע כזו פעולה של שכפול בסיס הנתונים. זו השיטה הפשוטה ביותר שאני מכיר להקים כזו סביבה והיא גם אחת המהירות שבהן. אם תהיה דרישה אני אעלה גם הסבר איך מקימים Data Guard בקונפיגורציות אחרות (לדוגמה לא דרך DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE או באורקל 10).

כמו שמוסבר במצגת, הקמת הסביבה מתחלקת לשישה שלבים:

  1. הכנת שרת ה-Primary.
  2. הכנת פרמטרים בבסיס הנתונים הראשי.
  3. קונפיגורציית רשת של אורקל בשני השרתים.
  4. העלאת בסיס הנתונים המשני בקוניפגורציה מינימלית.
  5. יצירת בסיס הנתונים המשני (on-line).
  6. הפעלת ה-Data Guard לגילגול Archive-ים.

המשך קריאה…

איך להריץ דוח AWR כשאין גישה למערכת ההפעלה בשרת

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

המשך קריאה…