Birleşik Bölüm Küpünün Bakımını Yapma ve Sorunlarını Giderme

Birleşik bölümler ile Essbase küplerinin bakımını yapmak veya sorunlarını gidermek için aşağıdaki yönergeleri kullanın.

Bu konu, birleşik bir bölüm oluşturduğunuzu ve önceki konularda detaylı olarak verilen bilgileri gözden geçirdiğinizi varsayar.

Birleşik Bölüm Küplerini Modelleme ve Test Etme

Birleşik bölüm küpü tasarlarken oluşturma işlemi çok uzun sürüyorsa bu test etme yönergelerini uygulayın. Bu yönergeler, sorunları gidermek veya performansı izlemek için aşamalı bir yaklaşım benimsemek açısından yararlı olabilir.

  • Birleşik bölüm projesini bir test ortamında başlatın.

  • Aşağıdaki ayırıcı niteliklere sahip küp modelleriyle başlayın:

    • çok fazla düzeyi olmayan

    • çok fazla paylaşılan üye veya özniteliğe sahip olmayan

  1. Birleşik bir bölüm oluşturulurken an için sorgulara izin verilmediğinde çevrim dışı işlemleri çizelgeleyin.

  2. Etkin Essbase kullanıcı oturumlarının bağlantısını, MaxL uygulamada değişiklik yap disable commands ve/veya disable connects'i kullanarak kademeli olarak kesin (yeni kullanıcı etkinliğini önlemek için). Ardından sistemde değişiklik yap logout session ve/veya kill request (tamamlanması gerekmeyen etkin oturumları sonlandırmanız gerekiyorsa) uygulayın. MaxL'in, Kendi Kendini Yöneten Veri Ambarı'nda çalışmakta olan hiçbir isteği sonlandıramayacağını unutmayın. Uygulamadaki komutları devre dışı bırakırsanız birleşik bölümü oluşturduktan sonra komutları yeniden etkinleştirmeyi unutmayın.

  3. Zaman aşımı ayarlaması gerçekleştirin:
    • Müşteri ağında HTTPS proxy - müşteri ağ zaman aşımlarını düzeltme
    • Yük dengeleyicisi - Yük dengeleyicisi zaman aşımını 1260 saniye olarak yükseltin (21 dakika)
    • HTTPD zaman aşımlarını 21 dakika olarak yükseltin.
      /etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
      /etc/httpd/conf.d/00_base.conf:Timeout 1260
    • APS/JAPI zaman aşımı:
      • Essbase web arayüzündeki Konsol sayfasında, Konfigürasyon'u seçin ve olap.server.netSocketTimeOut değerini not edin. 200 ms değeri, bu nitelikler için her 5 sayısının 1 saniyelik bekleme süresi olması anlamına gelir.
      • APS/JAPI zaman aşımı sınırını 30 dakika olarak ayarlamak üzere olap.server.netRetryCount değerini 9000'e ayarlayın.
  4. Birleşik bölümde Oluşturma eylemini gerçekleştirin.
  5. Zaman aşımı düzeltmelerini adım 3'te geri alın.
  6. uygulamada değişiklik yap etkinleştirme komutları ve/veya bağlantılar (bunlar daha önce devre dışı bırakıldıysa) kullanarak kullanıcıların sisteme geri dönmesini sağlayın.
  7. Birleşik bir bölüme sahip bir Essbase küpündeki raporlarda birleşik bölümlere ilişkin sorguların beklenen yürütülme sürelerinden fazla olması için QRYGOVEXECTIME ayarlayın. QRYGOVEXECTIME'ın, Kendi Kendini Yöneten Veri Ambarı'nda çalışmakta olan hiçbir isteği sonlandıramayacağını unutmayın.
  8. Geliştirme ortamı test ve ayarlama işlemleri tamamlandıktan sonra birleşik bölümü bir üretim ortamına eklemek üzere yukarıdaki 1 - 7 adımlarını kullanın.

Not:

Birleşik bölüm oluşturulurken "Ana hat kaydedilemedi" mesajı görürseniz oturumun tamamlanmasını bekleyin, ardından tarayıcıyı yenileyin. Birleşik bölüm oluşturulmuşsa SQL Developer'da doğrulayın. SQL Developer'da doğrulanırsa birleşik bölüm kullanıma hazırdır. SQL Geliştirici'de doğrulanmazsa modelin düzeltilmesi gerekir ve adım 3'te belirtildiği gibi zaman aşımı ayarlama gereklidir.

Birleşik Bölüm Küpleri için Meta Veri Önlemleri

Essbase'in birleşik bölümü varsa küp ana hattını düzenlerken dikkatli olun. Üye ekler veya yeniden adlandırırsanız meta veri değişikliklerinin Kendi Kendini Yöneten Veri Ambarı'ndaki bilgi tablosunda da temsil edildiğinden emin olun.

Essbase ana hattı Kendi Kendini Yöneten Veri Ambarı'ndaki bilgi tablosuyla senkronize olmazsa birleşik bölüm geçersiz hale gelir veya düzgün çalışmaz. Bunu düzeltmek için birleşik bölümü kaldırmanız, ana hatta ve bilgi tablosunda değişiklikler yapmanız ve ardından birleşik bölümü yeniden oluşturmanız gerekir.

Birleşik bölüm geçersiz hale gelirse Essbase Error(1040235): Remote warning from federated partition ile başlayan bir hatayla karşılaşabilirsiniz.

Aşağıdaki tipte Essbase ana hat değişiklikleri, birleşik bölümün geçersiz olmasına neden olur:

  • Boyut ekleme, yeniden adlandırma veya kaldırma

  • Özet boyutunda depolanan üyeleri ekleme, yeniden adlandırma veya kaldırma

  • Herhangi bir üyeyi depolanandan dinamik olarak değiştirme

Yukarıda belirtilmeyen diğer tip Essbase ana hat değişiklikleri için (örneğin, özet olmayan boyut üyesinin eklenmesi veya yeniden adlandırılması), bilgi tablosunda etkilenen veri satırında ilgili değişikliği yapmalısınız. Aksi halde birleşik bölüm düzgün çalışmayabilir.

Essbase ana hat meta verilerinin değişeceğini önceden biliyorsanız önce birleşik bölümü kaldırmak, ana hat değişikliklerini yapmak, bilgi tablosunu güncellemek ve ardından birleşik bölümü yeniden oluşturmak daha iyi bir uygulamadır.

Ancak Essbase meta verileri değiştiyse ve birleşik bölümün geçersiz olmasına neden olduysa aşağıdaki eylemi gerçekleştirin:

  1. Birleşik Bölümü Kaldırma bölümünde açıklandığı gibi, birleşik bölümü ve onunla ilişkili bağlantıyı (başka şekilde kullanılmıyorsa) kaldırın.

    Kendi Kendini Yöneten Veri Ambarı'ndaki birleşik bölüm kullanıcı şemasından, birleşik bölüm ile kaldırılamayan tüm Essbase tarafından oluşturulmuş tabloları ve diğer nesneleri manuel olarak silin.

  2. Ana hat değişikliklerinin Essbase küpünde tamamlandığından emin olun.

  3. Bilgi tablosunu yeniden oluşturun. Bkz. Bilgi Tablosunu oluşturma.

  4. Kendi Kendini Yöneten Veri Ambarı'na yeniden bağlantı oluşturun. Bu; global bir bağlantı (Essbase web arayüzündeki ana Kaynaklar simgesinin altında) olabilir veya yalnızca uygulama için tanımlanmış Kaynaklar kısmında yer alabilir. Birleşik Bölümler İçin Bağlantı Oluşturma bölümündeki talimatları uygulayın.

  5. Birleşik Bölüm Oluşturma bölümünde açıklandığı gibi birleşik bölümü yeniden oluşturun.

Veritabanı Bağlantı Detayları Değişirse Ne Yapılmalı?

Essbase'in birleşik bölüm için kullandığı Kendi Kendini Yöneten Veri Ambarı bağlantı detayları değiştiyse birleşik bölümü bırakıp yeniden oluşturmanız ve veritabanı şemasından ilişkili nesneleri ve meta veri tablolarını temizlemeniz gerekir.

Birleşik bölüm oluşturulduktan sonra aşağıdaki olaylardan herhangi biri meydana gelirse birleşik bölümü kaldırıp yeniden oluşturmanız gerekir:

  • Kendi Kendini Yöneten Veri Ambarı bağlantı noktası değişiklikleri

  • bağlantı ad değişiklikleri

  • bağlantı bir anahtar cüzdanı kullanır ve siz bir hizmet adından diğerine geçiş yaparsınız (performans veya eşzamanlılık değişiklikleri yapmak için)

  • Ana hat güncellemesi, üye eşlemesini bilgi tablosuna göre değiştirerek birleşik bölümün senkronize olmamasına neden olur. Detaylar için bkz. Birleştirilmiş Bölüm Küpleri için Meta Veri Önlemleri.

Bağlantı detaylarının değişeceğini önceden biliyorsanız değişiklik gerçekleşmeden birleşik bölümü kaldırmak ve daha sonra yeniden oluşturmak daha iyi bir uygulamadır. Ancak bağlantı değiştiyse ve birleşik bölümün geçersiz olmasına neden olduysa aşağıdaki adımları izleyin.

Birleşik Bölümü Bırakma

Birleşik Bölümü Kaldırma bölümünde açıklandığı gibi, birleşik bölümü ve onunla ilişkili bağlantıyı (başka şekilde kullanılmıyorsa) kaldırın.

Birleşik Bölüm İlgili Nesnelerini ve Meta Veri Tablolarını Temizleme

Kendi Kendini Yöneten Veri Ambarı'ndaki birleşik bölüm kullanıcı şemasından, birleşik bölüm ile kaldırılamayan ve Essbase tarafından oluşturulmuş tüm tabloları ve diğer nesneleri silin.

  1. Essbase Sunucusu ana bilgisayarına opc kullanıcısı olarak Güvenli Bağlantı (ssh) ile.

                      ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                   
  2. Oracle kullanıcısına geçin (ve kullanıcının ana dizinine gidin).

                      sudo su - oracle
                   
  3. Uygulamalar dizinine gidin.

                      cd /u01/data/essbase/app
                   
  4. Essbase uygulamasını ve küp adını kullanarak birleşik bölüm nesneleriniz ve meta verilerinizle ilişkili benzersiz ön eki tanımlayın.

    1. Uygulama adını alın (AppName). Ad büyük/küçük harfe duyarlı olduğundan büyük/küçük harf durumuna dikkat edin. Bu örnekte, AppName = Sample.

      ls
      Sample
    2. Uygulama adındaki karakter sayısını (appx) sayın.

      Örneğin: appx = 6.

    3. Küp dizinine gidin ve küp adını (DbName) alın. Ad büyük/küçük harfe duyarlı olduğundan büyük/küçük harf durumuna dikkat edin. Bu örnekte, DbName = Basic.

      cd /Sample
      ls
      Basic
    4. Küp adındaki karakter sayısını (dby) sayın.

      Örneğin: dby = 5.

    5. Prefix'i şu şekilde oluşturun:

      ESSAV_<appx><AppName>_<dby><DbName>_

      Örnek:

      <Prefix> = ESSAV_6Sample_5Basic_
  5. SQL Developer veya başka bir araç kullanarak Birleşik Bölümün bağlı olduğu şemanın kullanıcısı olarak Oracle Veritabanı'na bağlanın.

  6. Birleşik bölüm uygulamanızla ilişkili nesnelerin listesini oluşturmak için bir SELECT komutu çalıştırın. Bunlar bir sonraki adımda temizleyeceğiniz nesnelerdir.

    SELECT komutunun formatı:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';

    Örnek:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
  7. Prefix ile ilişkili tüm analitik görünümleri, paketleri, hiyerarşileri, tabloları ve diğer nesneleri temizleyen bir depolanan PL/SQL prosedürü çalıştırın.

    Örnek

    ESSAV_6Sample_5Basic_ öğesini Prefix ile değiştirin.

    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;
    /
    
  8. İlişkili meta veriyle ilgili tabloları bırakın ve güncelleyin. Önce ESSBASE_INSTANCE_UNIQUE_ID ve OTL_ID değerlerini almalısınız.

    1. Essbase Sunucusu ana bilgisayarına opc kullanıcısı olarak Güvenli Bağlantı (ssh) ile.

                              ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                           
    2. Oracle kullanıcısına geçin (ve kullanıcının ana dizinine gidin).

                              sudo su - oracle
                           
    3. Essbase Aracısı işlemini arayın.

                              ps -ef | grep ESSS | grep -v "grep"
                           

      Yukarıdaki komut, oracle ile başlayan ve ardından iki işlem tanımlayıcısıyla devam eden bir işlem listesi döndürmelidir; örneğin,

      oracle   10769  19563 ...

      İlk işlem tanımlayıcısının, bir sonraki adımda kullanacağınız <PID> olduğunu varsayalım.

    4. Strings komutunu kullanarak ESSBASE_INSTANCE_UNIQUE_ID değerini yakalayın.

      strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID

      Örnek:

                              strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
                           

      Yukarıdaki komut ESSBASE_INSTANCE_UNIQUE_ID değerini döndürmelidir; örneğin,

      ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
    5. SQL Developer veya başka bir araç kullanarak Birleşik Bölümün bağlı olduğu şemanın kullanıcısı olarak Oracle Veritabanı'na bağlanın.

    6. OTL_ID değerini almak için bir SELECT komutu çalıştırın.

      SELECT komutunun formatı:

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';

      Örnek

      ESSAV_6Sample_5Basic öğesini AppName ile değiştirin ve 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs' öğesini ESSBASE_INSTANCE_UNIQUE_ID ile değiştirin.

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
    7. Yukarıdaki sorgu OTL_ID değerini döndürmelidir; örneğin,

      62
    8. OTL_ID ile ilişkili meta veriyle ilgili tabloları bırakmak için depolanmış bir PL/SQL prosedürü çalıştırın.

      Örnek

      62 öğesini OTL_ID ile değiştirin.

      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;
      /
      
    9. ESSAV_OTL_MTD_VERSION tablosunu etkin değil durumuna ayarlamak için bir UPDATE komutu çalıştırın.

      Örnek

      ESSAV_6Sample_5Basic öğesini AppName ile değiştirin ve EWRnHFlQteCEzWUhF7P3TPKunf3bYs öğesini ESSBASE_INSTANCE_UNIQUE_ID ile değiştirin.

      UPDATE "ESSAV_OTL_MTD_VERSION" SET  "OTL_STATUS" = 'INACTIVE'  where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
      commit;

Bağlantıyı ve Birleşik Bölümü Yeniden Oluşturma

  1. Kendi Kendini Yöneten Veri Ambarı'na yeniden bağlantı oluşturun. Bu; global bir bağlantı (Essbase web arayüzündeki ana Kaynaklar simgesinin altında) olabilir veya yalnızca uygulama için tanımlanmış Kaynaklar kısmında yer alabilir. bağlantı bölümündeki talimatları uygulayın. Bağlantıyı Test edip Kaydettiğinizden emin olun.

  2. Birleşik Bölüm Oluşturma bölümünde açıklandığı gibi birleşik bölümü yeniden oluşturun.

  3. Essbase Error(1350012): Attempt to connect to OCI failed gibi bir bağlantı hatası görmeye devam ederseniz, https://support.oracle.com/rs?type=doc&id=2925030.1 öğesini kontrol edin.

Birleşik Bölüm Uygulamasını Yedekleme ve Geri Yükleme

Birleşik bölümlerin geçişi Essbase uygulamalarıyla yapılmaz. Uygulamanızı ve küpünüzü başka bir sunucuya taşımaya veya başka bir Essbase sürümüne geçirmeye hazırlanırken birleşik bölümü silmeniz ve yeni ortamda yeniden oluşturmanız gerekir.

Birleşik bölüm küpünüzü yedeklemek için

  1. Uygulamayı veriler olmadan, ancak ihtiyaç duyabileceğiniz her şeyi (konfigürasyon özellikleri, filtreler, değişkenler, hesaplama komut listeleri ve diğer oluşumlar gibi) dahil ederek yedekleyin. Bunu yapmak için Yaşam Döngüsü Yönetimi dışa aktarma (veya Essbase web arayüzündeki Yaşam Döngüsü Yönetimi'ni Dışa Aktarma işini) kullanın.

  2. Bilgi tablosunu yedekleyin. Bkz. Kendi Kendini Yöneten Veritabanını Yedekleme ve Geri Yükleme.

  3. Birleşik Bölümü Kaldırma bölümündeki adımları izleyerek birleşik bölüm tanımını küpten silin.

Birleşik bölüm küpünüzü yedekten geri yüklemek için,

  1. LcmImport: Küp Dosyalarını Geri Yükleme (veya Essbase web arayüzündeki Yaşam Döngüsü Yönetimi'ni İçe Aktarma işini) kullanarak uygulamayı yeniden oluşturun.

  2. Gerekirse Kendi Kendini Yöneten Veri Ambarı'ndaki bilgi tablosunu geri yükleyin.

  3. Kendi Kendini Yöneten Veri Ambarı Bağlantıyı yeniden oluşturma. Hatalarla karşılaşmamak için yeni bir bağlantı adı kullanmanız önerilir.

  4. Birleşik bölümde Yeniden oluştur:eylemini gerçekleştirin.