פוסטים

פיצ’ר חדש: עמודת Identity

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

עד גרסה 12, אם היינו רוצים עמודה שתקבל ערכים בצורה עצמאית (לדוגמה מספר רץ למספר הזמנה או משהו דומה) היינו צריכים לבוא וליישם את זה בעצמנו. היינו צריכים להגדיר sequence, היינו צריכים להגדיר trigger שידאג לטפל בטבלה או שהיינו מגדירים קוד חיצוני שיטפל בהכנסת ערכים לעמודה (פונקצית הכנסה לטבלה וכו’).

החלק מגרסה 12 נוסף פיצ’ר נחמד שמטפל בכל הדברים האלה בעצמו.

המשך קריאה…

פיצ’ר חדש: המרה של אינדקסים באורקל 12c

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

הבעיה עם הפעילות הייתה שהאינדקס החדש שרצינו ליצור הכיל את אותן עמודות של האינדקס הקודם. זה אמר שאם רצינו ליצור אינדקס נוסף, לא יכולנו – אורקל מניח (ובצדק) שאין משמעות לשני אינדקסים על אותן עמודות ובאותו סדר ולא מאפשר את זה (ORA-1408).

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

אז מה עושים?
המשך קריאה…

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

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

המשך קריאה…

תיקון חוסר סנכרון ב-data guard כאשר נוצר קובץ במקום לא סטנדרטי

כאשר מוסיפים Data file לסביבת primary של Dataguard יש להוסיף את הקובץ גם בסביבת ה-standby כדי שהסינכרון ימשיך לעבוד. ל-dataguard ישנה היכולת ליצור בעצמו את הקובץ שנוצר ב-primary גם בסביבות הגיבוי, אם הגדרנו לו מראש מעין טבלת תרגום ל-File system ב-primary ו-File system ב-standby. טבלת ההמרה הזו מתבצעת בפרמטר LOG_FILE_NAME_CONVERT.

הבעיה מתחילה כאשר יצרנו קובץ במקום “לא סטנדרטי” (כלומר שלא מוגדר ב-LOG_FILE_NAME_CONVERT) ואז סביבת ה-standby לא יודעת איפה ליצור את הקובץ ומפסיקה לעשות apply עד שנטפל בבעיה.

המשך קריאה…