Announcement

Collapse
No announcement yet.

snapshot log / log Materialisierte View wird nicht gelehrt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • snapshot log / log Materialisierte View wird nicht gelehrt

    Hallo,

    hab mir ein snapshot log erstellt.

    Laut meines Oracle Buches muesste nach Aktualisierung des entsprechenden snapshots dieser snapshot log automatisch geleert werden.

    Wirds aber bei mir leider nicht (die Einträge bleiben drin). Kann mir jemand sagen warum?

    (benutzt wird der snapshot log aber schon, da sich die Aktualisierung von ca 20 Sekunden auf 2 Sekunden verkürzt hat.)

    Code:
    Snapshot auf der einen DB:
    create snapshot SS_XXX
    tablespace usr
    refresh force
    as
    select * from YYY@dbl_ZZZ
    
    
    Snapshot log auf der entfernten DB:
    create snapshot log on YYY
    tablespace usr
    
    
    Ausführung mittels 
    execute dbms_snapshot.refresh('SS_XXX')

  • #2
    Welche ORACLE-Version nutzt Du ? SNAPSHOT wird nur noch aus Kompatibilitätsgründen unterstützt.
    Ich habe es mal geprüft, so sollte es wie im Handbuch laufen:
    Code:
    --auf Ferndatenbank 
    CREATE MATERIALIZED VIEW LOG ON T1 WITH ROWID;
    
    --auf DB
    CREATE MATERIALIZED VIEW T1_MV REFRESH FORCE WITH ROWID AS SELECT * FROM T1@DL1;
    
    SELECT * FROM T1_MV;
    
    --auf Ferndatenbank 
    DELETE FROM T1;
    COMMIT;
    
    --Inhalt vom LOG auf Ferndatenbank
    SELECT * FROM MLOG$_T1;
    
    --oder auf DB
    SELECT * FROM MLOG$_T1@DL1;
    
    --auf DB
    SELECT * FROM T1_MV;
    
    EXECUTE DBMS_SNAPSHOT.REFRESH('T1_MV')
    --oder 
    EXECUTE DBMS_MVIEW.REFRESH('T1_MV', '?', '', TRUE, FALSE, 0,0,0, FALSE);
    
    SELECT * FROM T1_MV;
    
    --Inhalt vom LOG auf Ferndatenbank ist jetzt leer
    SELECT * FROM MLOG$_T1;
    Viel Erfolg!
    Zuletzt editiert von jum; 26.08.2008, 09:50.

    Comment


    • #3
      Hallo,

      erstmal danke
      hab ne 8.x Version.

      Habs jetzt auch mit Materialized view versucht (wie oben von Dir beschrieben)...Leider gleiches resultat... der Materialized view log wird nicht geleert...:-(???.

      Comment


      • #4
        @Alfons: Wird denn der MV aktualisiert?

        Comment


        • #5
          Hallo,

          ja, der MV wird aktualisiert?!....bin etwas ratlos...

          Comment


          • #6
            Kann es vielleicht daran liegen, dass ich von der entfernten DB (also der mit den Materialized views) keine DDL Operationen auf der Datenbank mit den Materialized view LOGs ausführen kann?

            Wenn ja, kann ich das irgendwie erlauben?

            danke

            Comment


            • #7
              DDL auf Remote DB dürfte (zumindest bis ORACLE 10) nicht möglich sein:
              Das gibt den ERROR:
              Code:
              ORA-02021: DDL operations are not allowed on a remote database
              Cause: An attempt was made to use a DDL operation on a remote database. For
              example, "CREATE TABLE tablename@remotedbname ...".
              Action: To alter the remote database structure, you must connect to the remote
              database with the appropriate privileges
              Als Umgehung kann auf der Remote Datenbank eine "passende" Prozedur geschrieben und diese dann per DBLINK aufgerufen werden.

              Allerdings kommt das kaum als Ursache für die nicht geleerten LOGs in frage...

              Comment

              Working...
              X