השתמש בהנחיות הבאות כדי לתחזק או לפתור בעיות בקוביות של Essbase עם מחיצות מאוחדות.
נושא זה מניח ש-צור מחיצה מאוחדת ובדקת את המידע המפורט בנושאים הקודמים.
בעת תכנון קוביית מחיצה מאוחדת, פעל לפי הנחיות הבדיקה האלו אם היצירה נמשכת זמן רב מדי. הנחיות אלו יכולות להיות שימושיות לנקיטת גישה בשלבים לפתרון בעיות או לניטור ביצועים.
התחל את פרויקט המחיצה המאוחדת בסביבת בדיקות.
התחל עם מודלי קובייה שכוללים את המאפיינים הבאים:
אין רמות רבות
אין איברים משותפים או תכונות רבות
בעת יצירת מחיצה מאוחדת, תזמן פעולות לא מקוונות כאשר לא ניתן לבצע שאילתות כנגד המופע.
נתק בהדרגה מושבי עבודת משתמש פעילים של Essbase, באמצעות פקודות חסימה
של MaxL שנה יישום ו/או חסום חיבורים
(למניעת פעילות משתמש חדש), ולאחר מכן שנה מערכת התנתקות ממושב עבודה
ו/או בקשה להפסיק
(אם אתה צריך להפסיק מושבי עבודה פעילים שאין צורך להשלים). שים לב שMaxL אינו יכול להפסיק בקשות שעשויות לרוץ ב-Autonomous Data Warehouse. אם אתה חוסם פקודות ביישום, זכור לאפשר מחדש פקודות לאחר יצירת מחיצה מאוחדת.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
ל-9000.הערה :
אם תראה שגיאה כגון "שמירת המתווה נכשלה" בעת יצירת המחיצה המאוחדת, המתן לסיום מושבי העבודה ולאחר מכן רענן את הדפדפן. אם המחיצה המאוחדת נוצרה, אמת אותה ב-SQL Developer. אם היא אומתה ב-SQL Developer, המחיצה המאוחדת מוכנה לשימוש. אם היא לא אומתה ב-SQL Developer, יש לתקן את המודל ולכוונן את הזמן הקצוב כמתואר בשלב 3 לעיל.כאשר ל-Essbase יש מחיצה מאוחדת, שים לב בעת עריכת מתאר הקובייה. אם אתה מוסיף או משנה שם איברים, ודא ששינויי המטאדטה מיוצגים גם בטבלת העובדות ב-Autonomous Data Warehouse.
אם מתווה Essbase לא מסונכרן עם טבלת העובדות ב-Autonomous Data Warehouse, המחיצה המאוחדת תהפוך לבלתי תקפה או לא תפעל כראוי. כדי לתקן את זה, תצטרך להסיר את המחיצה המאוחדת, לבצע שינויים במתווה ובטבלת העובדות, ולאחר מכן ליצור מחדש את המחיצה המאוחדת.
אם מחיצה מאוחדת הופכת ללא תקפה, אתה עלול להיתקל בשגיאה שמתחילה ב-Essbase Error(1040235): אזהרה מרחוק ממחיצה מאוחדת
.
הסוגים הבאים של שינויי מתווה Essbase יגרמו למחיצה מאוחדת להפוך ללא תקפה:
הוספה, שינוי שמות או הסרה של ממדים
הוספה, שינוי שם או הסרה של איברים מאוחסנים בממד הציר
שינוי כל איבר ממאוחסן לדינמי
לסוגים אחרים של שינויי מתאר של Essbase שלא צוינו למעלה (לדוגמה, הוספה או שינוי שם של איבר שאינו ממד ציר), עליך לבצע את השינוי המתאים בשורת הנתונים המושפעות בטבלת העובדות. אחרת, ייתכן שהמחיצה המאוחדת לא תפעל כראוי.
אם אתה יודע מראש שמטאדטה של Essbase ישתנו, עדיף להסיר תחילה את המחיצה המאוחדת, לבצע את השינויים במתווה, לעדכן את טבלת העובדות ולאחר מכן ליצור מחדש את המחיצה המאוחדת.
עם זאת, אם המטאדטה של Essbase השתנו וגרמו למחיצה מאוחדת להיות לא תקפה, בצע את הפעולה הבאה:
הסר את המחיצה המאוחדת ואת החיבור המשויך אליה (אם לא נעשה בו שימוש אחר), כמתואר ב-הסר מחיצה מאוחדת.
מסכמת המשתמש של מחיצה מאוחדת במחסן נתונים אוטונומי, מחק את כל הטבלאות שנוצרו על-ידי Essbase ואובייקטים אחרים שהסרתם עם המחיצה המאוחדת נכשלה.
ודא ששינויי המתווה הושלמו בקוביית Essbase.
צור את טבלת העובדות שוב. ראה צור את טבלת העובדות.
צור מחדש את החיבור אל Autonomous Data Warehouse. זה עשוי להיות חיבור גלובלי (תחת סמל המקורות הראשי בממשק האינטרנט של Essbase), או שהוא עשוי להיות במקורות שהוגדרו רק בשביל היישום. בצע את ההוראות ב-צור חיבור למחיצות מאוחדות.
צור מחדש את המחיצה המאוחדת, כמתואר ב-צור מחיצה מאוחדת.
אם פרטי החיבור של Autonomous Data Warehouse שבהם Essbase משתמש בשביל מחיצה מאוחדת השתנו, יהיה עליך לשחרר וליצור מחדש את ה-מחיצה מאוחדת, ולמחוק אובייקטים וטבלאות מטאדטה משויכים מסכמת מסד הנתונים.
יהיה עליך להסיר וליצור מחדש את המחיצה המאוחדת אם אחד מהאירועים הבאים מתרחש לאחר יצירת המחיצה המאוחדת:
היצירה של Autonomous Data Warehouse משתנה
השם חיבור משתנה
ה-חיבור משתמש בארנק, ואתה עובר משם שירות אחד לאחר (כדי לבצע שינויים בביצועים או במקביליות)
עדכון מתווה משנה את מיפוי האיבר לטבלת העובדות, וגורם למחיצה מאוחדת להיות לא מסונכרנת. ראה אמצעי זהירות של מטאדטה בשביל קוביות מחיצה מאוחדות לפרטים.
אם אתה יודע מראש שפרטי החיבור ישתנו, עדיף להסיר את המחיצה המאוחדת לפני השינוי, וליצור אותה שוב לאחר מכן. עם זאת, אם החיבור השתנה וגרם להמחיצה המאוחדת להיות לא תקפה, בצע את הצעדים הבאים.
שחרר את המחיצה המאוחדת
הסר את המחיצה המאוחדת ואת החיבור המשויך אליה (אם לא נעשה בו שימוש אחר), כמתואר ב-הסר מחיצה מאוחדת.
מחק אובייקטים וטבלאות מטאדטה הקשורים למחיצה מאוחדת
מסכמת המשתמש של מחיצה מאוחדת במחסן נתונים אוטונומי, שחרר את כל הטבלאות שנוצרו על-ידי Essbase ואובייקטים אחרים שהסרתם עם המחיצה המאוחדת נכשלה.
ssh למארח Essbase Server בתור משתמש opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
שנה למשתמש oracle (ועבור לספריית הבית שלו).
sudo su - oracle
נווט אל ספריית היישומים.
cd /u01/data/essbase/app
באמצעות יישום Essbase ושם הקובייה, זהה את הקידומת הייחודית המשויכת לאובייקטי המחיצה המאוחדת ולמטאדטה שלך.
קבל את שם היישום (AppName). השם הוא רגיש לרישיות, אז קלוט את הרישיות המדויקות. בדוגמה זו, AppName = Sample.
ls
Sample
ספור את מספר התווים (appx) בשם היישום.
דוגמה: appx = 6.
נווט אל ספריית הקובייה וקבל את שם הקובייה (DbName). השם הוא רגיש לרישיות, אז קלוט את הרישיות המדויקות. בדוגמה זו, DbName = Basic.
cd /Sample
ls
Basic
ספור את מספר התווים (dby) בשם הקובייה.
דוגמה: dby = 5.
בנה את הקידומת בתור:
ESSAV_<appx><AppName>_<dby><DbName>_
דוגמה:
<Prefix> = ESSAV_6Sample_5Basic_
באמצעות SQL Developer או כלי אחר, התחבר אל Oracle Database כמשתמש של סכמת מסד הנתונים שאליה מחוברת המחיצה המאוחדת.
הרץ משפט SELECT כדי ליצור רשימה של אובייקטים המשויכים ליישום המחיצה המאוחדת שלך. אלו החפצים שתנקה בשלב הבא.
פורמט משפט SELECT הוא:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
דוגמה:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
הרץהליך PL/SQL מאוחסן שמנקה את כל התצוגות האנליטיות, החבילות, ההיררכיות, הטבלאות ואובייקטים אחרים המשויכים לקידומת.
דוגמה
החלף את ESSAV_6Sample_5Basic_
בקידומת שלך.
SET SERVEROUTPUT ON; declare prefix_str varchar2(70) := 'ESSAV_6Sample_5Basic_'; BEGIN FOR c IN ( SELECT ANALYTIC_VIEW_NAME FROM user_analytic_views WHERE ANALYTIC_VIEW_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP ANALYTIC VIEW "' || c.ANALYTIC_VIEW_NAME || '" '; DBMS_OUTPUT.PUT_LINE('ANALYTIC VIEW ' || c.ANALYTIC_VIEW_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct OBJECT_NAME FROM USER_PROCEDURES WHERE OBJECT_TYPE='PACKAGE' and OBJECT_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP PACKAGE "' || c.OBJECT_NAME || '" '; DBMS_OUTPUT.PUT_LINE('PACKAGE ' || c.OBJECT_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct HIER_NAME FROM USER_HIERARCHIES WHERE HIER_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP HIERARCHY "' || c.HIER_NAME || '" '; DBMS_OUTPUT.PUT_LINE('HIERARCHY ' || c.HIER_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct DIMENSION_NAME FROM USER_ATTRIBUTE_DIM_TABLES_AE WHERE DIMENSION_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP ATTRIBUTE DIMENSION "' || c.DIMENSION_NAME || '" '; DBMS_OUTPUT.PUT_LINE('ATTRIBUTE DIMENSION ' || c.DIMENSION_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP TABLE "' || c.TABLE_NAME || '" purge'; DBMS_OUTPUT.PUT_LINE('TABLE ' || c.TABLE_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct VIEW_NAME FROM USER_VIEWS WHERE VIEW_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP VIEW "' || c.VIEW_NAME || '" '; DBMS_OUTPUT.PUT_LINE('VIEW ' || c.VIEW_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct TYPE_NAME FROM USER_TYPES WHERE TYPE_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP TYPE "' || c.TYPE_NAME || '" FORCE'; DBMS_OUTPUT.PUT_LINE('TYPE ' || c.TYPE_NAME || ' dropped successfully.'); END LOOP; END; /
שחרר ועדכן טבלאות הקשורות למטאדטה. ראשית, עליך לקבל ערכים ל-ESSBASE_INSTANCE_UNIQUE_ID ו-OTL_ID.
ssh למארח Essbase Server בתור משתמש opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
שנה למשתמש oracle (ועבור לספריית הבית שלו).
sudo su - oracle
חפש את תהליך Essbase Agent.
ps -ef | grep ESSS | grep -v "grep"
הפקודה לעיל צריכה להחזיר רישום תהליך שמתחיל ב-oracle
ואחריו שני מזהי תהליך; לדוגמה,
oracle 10769 19563 ...
שקול את מזהה התהליך הראשון כ-<PID>
, שבו תשתמש בשלב הבא.
השתמש בפקודה מחרוזות כדי לקלוט את הערך של ESSBASE_INSTANCE_UNIQUE_ID.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
דוגמה:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
הפקודה לעיל צריכה להחזיר את הערך של ESSBASE_INSTANCE_UNIQUE_ID; לדוגמה,
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
באמצעות SQL Developer או כלי אחר, התחבר אל Oracle Database כמשתמש של סכמת מסד הנתונים שאליה מחוברת המחיצה המאוחדת.
הרץ משפט SELECT כדי לקבל את הערך של OTL_ID.
פורמט משפט SELECT הוא:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
דוגמה
החלף את ESSAV_6Sample_5Basic
ב-AppName שלך, והחלף את 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
ב-ESSBASE_INSTANCE_UNIQUE_ID שלך.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
השאילתה שלמעלה צריכה להחזיר את הערך של OTL_ID; לדוגמה,
62
הפעל פרוצדורת PL/SQL מאוחסנת כדי להוריד טבלאות הקשורות למטאדטה המשויכות ל-OTL_ID.
דוגמה
החלף את 62
ב-OTL_ID שלך.
SET SERVEROUTPUT ON; BEGIN FOR c IN ( SELECT distinct TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME like 'ESSAV_MTD_62_%' ) LOOP EXECUTE IMMEDIATE 'DROP TABLE "' || c.TABLE_NAME || '" purge'; DBMS_OUTPUT.PUT_LINE('TABLE ' || c.TABLE_NAME || ' dropped successfully.'); END LOOP; END; /
הרץ משפט UPDATE כדי להגדיר את טבלת ESSAV_OTL_MTD_VERSION לסטטוס לא פעיל.
דוגמה
החלף את ESSAV_6Sample_5Basic
ב-AppName שלך, והחלף את 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
ב-ESSBASE_INSTANCE_UNIQUE_ID שלך.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
צור מחדש את החיבור ואת המחיצה המאוחדת
צור מחדש את החיבור אל Autonomous Data Warehouse. זה עשוי להיות חיבור גלובלי (תחת סמל המקורות הראשי בממשק האינטרנט של Essbase), או שהוא עשוי להיות במקורות שהוגדרו רק בשביל היישום. בצע את ההוראות ב-חיבור. הקפד לבדוק ולשמור את החיבור.
צור מחדש את המחיצה המאוחדת, כמתואר ב-צור מחיצה מאוחדת.
אם אתה ממשיך לראות שגיאת חיבור כגון Essbase Error(1350012): ניסיון להתחבר ל-OCI נכשל
, בדוק את https://support.oracle.com/rs?type=doc&id=2925030.1.
מחיצות מאוחדות אינן מועברות עם יישומי Essbase. כשאתה מתכונן להעביר את היישום והקובייה שלך לשרת אחר או לעבור לגרסת Essbase אחרת, עליך למחוק את המחיצה המאוחדת וליצור אותה מחדש בסביבה החדשה.
כדי לגבות את קוביית המחיצה המאוחדת,
גבה את היישום, ללא הנתונים, אך כולל את כל שאר הדברים שלהם אתה עשוי להזדקק (כגון מאפייני תצורה, מסננים, משתנים, תסריטי חישוב וארטיפקטים אחרים). לשם כך, השתמש ב-יצוא LCM (או בעבודה ייצא LCM בממשק האינטרנט של Essbase).
גבה את טבלת העובדות. ראה גיבוי ושחזור מסד נתונים אוטונומי.
מחק את הגדרת המחיצה המאוחדת מהקובייה, תוך ביצוע השלבים ב-הסר מחיצה מאוחדת.
כדי לשחזר את קוביית המחיצה המאוחדת שלך מהגיבוי.
צור מחדש את היישום, באמצעות LcmImport: שחזור קובצי קובייה (או העבודה ייבא LCM בממשק האינטרנט של Essbase).
במידת הצורך, שחזר את טבלת העובדות בAutonomous Data Warehouse.
צור את החיבור מחדש אל Autonomous Data Warehouse. מומלץ להשתמש בשם חיבור חדש כדי להימנע מהיתקלות בשגיאות.
צור מחדש את המחיצה המאוחדת.