Updating tables in logical standby database

Dear DBAs,
Is it possible to update non replicated tables in the logical standby database, but have the same schema name?
"Alter session disable guard" works only for the current session, in fact i want it for all connected users whithout stopping the standby apply ?

hi,
Let's say in the primary database i have 10 tables, and using the RMAN i have created a Ph. standby database and then converted to a logical.
so now i have the same schema and the same tables in these servers.
the fact of using logical stdby is to be able to make DML transactions.
so the issue is that from the 10 tables i need 9 tables to be replicated and the last one will not be replicated, so the application connected to the log. stdby will use only this table to update the user record(login date, logout date...bla bla bla).
the problem is that when the user will connect to the database the application will insert a record like "insert into SCHEMANAME.tablename....."
the problem is that the schema name is added into the insert statement.
Thank you in advance

Similar Messages

  • Creating new tables in Logical Standby database

    Hi
    I have a requirement to create new tables in logical standby database. These tables will not be present on primary database. Is it possible to do this ?
    I have a new schema already created which has the privilege to CREATE new table.
    I have stopped the logical standby apply.
    When I am now trying to create a new table but it is failing with error : insufficient privileges.
    When I am trying to run below statement on new schema it is also failing with error of insufficient privileges.
    alter session disable dataguard;
    Please help.

    user8819121 wrote:
    Thanks Mahir,
    I was able to create the table after logging in as sysdba.
    But I need my user on that table to execute DML statements. My user has privileges to insert,delete and update any table.
    I tried the following statements to disable the guard but it is sill not working
    ALTER DATABASE GUARD STANDBY.
    Do I need to skip the tables created using dbms_logstdby package to not making it part of SQL Apply ? I guess not since the table is not in primary database.
    Amit
    You can skip only on primary, your created schema on Standby is not in primary.
    Then you must change Status of data guard to NONE. NONE is means is not any security on your data.
    In Guard status NONE can change all schema data.
    Please check link: http://docs.oracle.com/cd/E11882_01/server.112/e10700/manage_ls.htm#CHDGFGHG
    Following tests on user created before guard status is change from ALL to STANDBY.
    C:\Users\Administrator>sqlplus / as sysdba
    SQL> conn test/test
    Connected.
    SQL> select table_name from user_tables;
    TABLE_NAME
    T
    SQL> insert into t values(22);
    insert into t values(22)
    ERROR at line 1:
    ORA-16224: Database Guard is enabled
    SQL> conn / as sysdba
    Connected.
    SQL> select guard_Status from  v$database;
    GUARD_S
    ALL
    SQL> alter  database guard standby;
    Database altered.
    SQL> conn test/test
    Connected.
    SQL> insert into t values(1);
    insert into t values(1)
    ERROR at line 1:
    ORA-16224: Database Guard is enabled
    SQL> conn / as sysdba
    Connected.
    SQL> select guard_Status from  v$database;
    GUARD_S
    STANDBY
    SQL> alter  database guard none;
    Database altered.
    SQL> select guard_Status from  v$database;
    GUARD_S
    NONE
    SQL> conn test/test
    Connected.
    SQL> insert into t values(1);
    1 row created.
    SQL> commit;
    Commit complete.And Now I want share with you new tests :)
    Now user creating when after guard status change
    SQL> drop  user test cascade;
    User dropped.
    SQL> select guard_status from v$database;
    GUARD_S
    STANDBY
    SQL> create user test identified by test;
    User created.
    SQL> grant create session,  resource, create table to test;
    Grant succeeded.
    SQL> conn test/test
    Connected.
    SQL> create table t (n number);
    Table created.
    SQL> insert into t values(1);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL>It means when guard status is ALL then all of user created guarding.
    When you changed status to STANDBY then Logical Standby guard only primary schema and created schema before change.
    NONE is not guard any schema. it means you can delete standby schema data too.
    Regards
    Mahir M. Quluzade
    Edited by: Mahir M. Quluzade on Apr 19, 2013 4:07 PM

  • Create table on Logical Standby Database

    Dear DBAs,
    here is my situation;
    1. My primary database (where the tables' owner is "ICC" having a DBA) is used for insert/update transactions.
    2. The logical stdby DB (dataguard structure with MAX availability) is used to generate reports, after updating some tables owned by the same user "ICC". note that these tables are excluded from the replication.
    3. The developers might need to create this kind of tables to generate another kind of reports.
    The issue is that when the standby apply is enabled or disabled, the user ICC is not able to create a new table, it gives ORA-01031: insufficient privileges. note that it's not practical to ask the DBA to disable the "APPLY" at any table creation.
    Do you have an idea about how to resolve.
    My database is 10gR2 path.10.2.0.4.0 on Windows 2003
    Thank you in advance

    If you stop applying log on the logical standby you can easily create a table over there. See oracle docs. The following list shows >how to re-create a table and restart SQL Apply on that table:
    >
    Stop SQL Apply:
    SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
    Ensure no operations are being skipped for the table in question by querying the DBA_LOGSTDBY_SKIP view:
    SQL> SELECT * FROM DBA_LOGSTDBY_SKIP;
    ERROR STATEMENT_OPT OWNER NAME PROC
    N SCHEMA_DDL HR EMPLOYEES
    N DML HR EMPLOYEES
    N SCHEMA_DDL OE TEST_ORDER
    N DML OE TEST_ORDER
    Because you already have skip rules associated with the table that you want to re-create on the logical standby >database, you must first delete those rules. You can accomplish that by calling the DBMS_LOGSTDBY.UNSKIP >procedure. For example:
    SQL> EXECUTE DBMS_LOGSTDBY.UNSKIP(stmt => 'DML', -
    schema_name => 'HR', - object_name => 'EMPLOYEES');SQL> EXECUTE DBMS_LOGSTDBY.UNSKIP(stmt >=> 'SCHEMA_DDL', -
    schema_name => 'HR', - object_name => 'EMPLOYEES');
    Re-create the table HR.EMPLOYEES with all its data in the logical standby database by using the >DBMS_LOGSTDBY.INSTANTIATE_TABLE procedure. For example:
    SQL> EXECUTE DBMS_LOGSTDBY.INSTANTIATE_TABLE(shema_name => 'HR', -
    object-_name => 'EMPLOYEES', -
    dblink => 'BOSTON');
    Start SQL Apply:
    SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;Regards.

  • Inserts/Updates on replicated tables Logical Standby Database ??

    Hello all,
    We have a Logical standby database on 10.2.0.5. Can you please suggest if there is a way we can do data inserts/updates on replicated tables ?
    Can this be done by doing a alter database guard none; or alter session disable|enable guard; ?? Even if it completes succesfully , will this have any effect on replication later ?

    Hello all,
    We have a Logical standby database on 10.2.0.5. Can you please suggest if there is a way we can do data inserts/updates on replicated tables ?
    Can this be done by doing a alter database guard none; or alter session disable|enable guard; ?? Even if it completes succesfully , will this have any effect on replication later ?

  • Logical Standby databases

    Hi,
    When we say "Logical Standby Databases are logically identical to primary databases although the physical organization and structure of the data can be different." what does it exactly means?
    Does it mean that in logical standby tablespace name, schema name, table name, column names etc can be different and still has the same data as primary?
    Does it mean that we can exclude indexes and constraints as present in primary?
    Only the data should match with primary word by word, value by value?
    I am asking this as i have never worked in a logical standby database but i seriously want to know.
    Please answer.
    Regards,
    SID

    Physical standby differs from logical standby:
    Physical standby schema matches exactly the source database.
    Archived redo logs and FTP'ed directly to the standby database which is always running in "recover" mode. Upon arrival, the archived redo logs are applied directly to the standby database.
    Logical standby is different from physical standby:
    Logical standby database does not have to match the schema structure of the source database.
    Logical standby uses LogMiner techniques to transform the archived redo logs into native DML statements (insert, update, delete). This DML is transported and applied to the standby database.
    Logical standby tables can be open for SQL queries (read only), and all other standby tables can be open for updates.
    Logical standby database can have additional materialized views and indexes added for faster performance.
    Installing Physical standbys offers these benefits:
    An identical physical copy of the primary database
    Disaster recovery and high availability
    High Data protection
    Reduction in primary database workload
    Performance Faster
    Installing Logical standbys offer:
    Simultaneous use for reporting, summations and queries
    Efficient use of standby hardware resources
    Reduction in primary database workload
    Some limitations on the use of certain datatypes

  • Create an Object in Logical standby database in Oracle 10G

    Hi,
    I have logical standby database in oracle 10g R2 for reporting purpose.Now i want to create procedure in logical standby which is use to create new temp table in logical standby and contained data generated from select operation on existing table.
    Can i create a new user in logical standby database,add new tablespace in logical standby which can insert,update and delete data in standby database base table?
    kindly provide me the steps to implement all this.What will be effect if i set guard_Status in v$database is NONE in logical standby?
    Thanks,
    Shital Patel

    Hi Shital,
    Guard_status protects the data from being changed.
    ALL- By default it is not possible for a non-privileged user to modify data on a data guard SQL apply database. This is because the database guard is automatically set to ALL.
    With this level of security, only SYS user can modify the data.
    STANDBY- When you set this level of security, users are able to modify data that is not maintained by the Logical apply engine.
    NONE permits any users to access the standby database as long as they have correct privileges. This is the normal security for all data in the database.
    You can change the guard status value from ALL to NONE in order to allow non-privileged users to modify data and Yes you can create user and extra tablespace in logical standby database..this is what the one of advantage of using Logical standby database.
    SQL> ALTER DATABASE GUARD NONE;
    Thanks

  • Steps to rollback when Logical Standby Database creation fails

    Hi,
    In case while creating a logical standby database it fails. What steps should be done on primary to rollback the earlier steps. Because while creating logical standby we do certain tasks on primary e.g.
    1) create supplemental logging.
    2) update init file.
    Regards,
    Tushar

    Hi,
    Thanks for the mail. Should I drop the supplemental logging using
    "Alter database DROP Supplemental Log data;".
    or if we need to disable, how can we do so?
    Rest is ok. Anyways I would not be using force logging.
    Droping of additional tablespace created to keep logminer tables on primary.
    Removing of log_archive_dest_2 information from primary init.
    I think the above should do.
    Regards,
    Tushar

  • ORA-01403: no data found on LOGICAL STANDBY database

    Hi ,
    Logical Standby issue :
    Oracle 10.2.0.2 enterprise edition .
    M Working on LOGICAL Standby since 1 yrs but still i havent got this ......................................
    I m getting countinuously no data foud errror on logical standby database .
    I found the table causing the proble(db_logstdby_events) and skipped that table and instanciated table using bwlow package:
    exec dbms_logstdby.instantiate_table (.......................................
    but when i start apply process on logical standby it again give no data found for new table :
    Even i tried to instantiate the table using EXPORT/IMPORT during down time but the same facing same problem .
    As much as i known abt the error that is :
    table1
    id
    10
    20
    30
    Now if sql apply process on logical standby tries to performe the update transaction(for example) as belows
    update table1 set id=100 where id=50;
    above query will not be completed cos it will never find the values 50 which is not in table .Thts why this error comming ..
    Now my worry is ... no users dare to change/make such changes on Logical standby .So if there is no changes in tables then sqll apply should get all the values to be needded for an update ......
    watingggg guyssss/......

    Troubleshooting ORA-1403 errors with Flashback Transaction
    In the event that the SQL Apply engine errors out with an ORA-1403, it may be possible to utilize flashback transaction on the standby database to reconstruct the missing data. This is reliant upon the undo_retention parameter specified on the standby database instance.
    ORA-1403: No Data Found
    Under normal circumstances the ORA-1403 error should not be seen in a Logical Standby environment. The error occurs when data in a SQL Apply managed table is modified directly on the standby database, and then the same data is modified on the primary database.
    When the modified data is updated on the primary database and received by the SQL Apply engine, the SQL Apply engine verifies the original version of the data is present on the standby database before updating the record. When this verification fails, an ORA-1403: No Data Found error is thrown by Oracle Data Guard: SQL Apply.
    The initial error
    When the SQL Apply engine verification fails, the error thrown by the SQL Apply engine is reported in the alert log of the logical standby database as well as a record being inserted into the DBA_LOGSTDBY_EVENTS view. The information in the alert log is truncated, while the error is reported in it's entirety in the database view.
    LOGSTDBY stmt: update "SCOTT"."MASTER"
    set
    "NAME" = 'john'
    where
    "PK" = 1 and
    "NAME" = 'andrew' and
    ROWID = 'AAAAAAAAEAAAAAPAAA'
    LOGSTDBY status: ORA-01403: no data found
    LOGSTDBY PID 1006, oracle@staco03 (P004)
    LOGSTDBY XID 0x0006.00e.00000417, Thread 1, RBA 0x02dd.00002221.10
    The Investigation
    The first step is to analyze the historical data of the table that threw the error. This can be achieved using the VERSIONS clause of the SELECT statement.
    SQL> select versions_xid
    , versions_startscn
    , versions_endscn
    , versions_operation
    , pk
    , name
    from scott.master
    versions between scn minvalue and maxvalue
    where pk = 1
    order by nvl(versions_startscn,0);
    VERSIONS_XID VERSIONS_STARTSCN VERSIONS_ENDSCN V PK NAME
    03001900EE070000 3492279 3492290 I 1 andrew
    02000D00E4070000 3492290 D 1 andrew
    Depending upon the amount of undo retention that the database is configured to retain (undo_retention) and the activity on the table, the information returned might be extensive and the versions between syntax might need to be changed to restrict the amount of information returned.
    From the information returned, it can be seen that the record was first inserted at scn 3492279 and then was deleted at scn 3492290 as part of transaction ID 02000D00E4070000. Using the transaction ID, the database should be queried to find the scope of the transaction. This is achieved by querying the flashback_transaction_query view.
    SQL> select operation
    , undo_sql
    from flashback_transaction_query
    where xid = hextoraw('02000D00E4070000');
    OPERATION UNDO_SQL
    DELETE insert into "SCOTT"."MASTER"("PK","NAME") values
    ('1','andrew');
    BEGIN
    Note that there is always one row returned representing the start of the transaction. In this transaction, only one row was deleted in the master table. The undo_sql column when executed will restore the original data into the table.
    SQL> insert into "SCOTT"."MASTER"("PK","NAME") values ('1','andrew');
    SQL> commit;
    The SQL Apply engine may now be restarted and the transaction will be applied to the standby database.
    SQL> alter database start logical standby apply;

  • Asynchronous CDC on a Logical Standby database (10gR2)

    Hi,
    Question:
    Is it possible to setup Asynchronous CDC on a Logical Standby database (10gR2)?
    Background:
    In our Oracle Data Warehouse environment where we need to provide up-to-the-second "operational" reporting against a Logical Standby database (10gR2 Data Guard) as the production application database owners do not permit direct reporting against the Primary database (10gR2); we also have a Data Warehouse database (10gR2) that requires more sophisticated/summary reporting which is updated at less regular intervals from the Logical Standby database.
    The complication is that although the Logical Standby database will serve the purpose of a 'syncronized' version of the Primary database by giving us a current-state view of the data, we require more detailed change data capture on certain tables to audit change history between the points we extract data for the Data Warehouse.
    The DBAs do not want to set-up Asynchronous CDC on the Primary database, so is it possible to setup Asynchronous CDC on a Logical Standby database?
    Anyone done it before?
    Any issues?
    Any alternatives?
    Any help would be much appreciated.
    Thanks

    As far as I know it is but it would be easier, and more robust, to just create a second logical standby and feed them both from the primary.
    Logical Data Guard and Streams are essentially just two implementations of the same technology written by the same team of developers.

  • Asynchronous CDC on a Logical Standby Database

    Hi,
    Question:
    Is it possible to setup Asynchronous CDC on a Logical Standby database (10gR2)?
    Background:
    In our Oracle Data Warehouse environment where we need to provide up-to-the-second "operational" reporting against a Logical Standby database (10gR2 Data Guard) as the production application database owners do not permit direct reporting against the Primary database (10gR2); we also have a Data Warehouse database (10gR2) that requires more sophisticated/summary reporting which is updated at less regular intervals from the Logical Standby database.
    The complication is that although the Logical Standby database will serve the purpose of a 'syncronized' version of the Primary database by giving us a current-state view of the data, we require more detailed change data capture on certain tables to audit change history between the points we extract data for the Data Warehouse.
    The DBAs do not want to set-up Asynchronous CDC on the Primary database, so is it possible to setup Asynchronous CDC on a Logical Standby database?
    Anyone done it before?
    Any issues?
    Any alternatives?
    Any help would be much appreciated.
    Thanks
    Tim

    Autolog CDC could be one possible solution. It uses a feature of the downstream capture.
    See details from the following link
    http://search.oracle.com/search/search?default=true&keyword=change+data+capture&start=1&nodeid=&fid=&showSimilarDoc=true&group=Oracle+Technology+Network

  • Creating a new schema in a Logical Standby Database

    Hi All,
    I am experimenting with logical standby databases for the purpose of reporting, and have not been able to create a new schema in the logical standby database - one of the key features of logical standbys.
    I have setup primary and logical standby databases, and they seem to be running just fine - changes are moved from the primary to the standby and queries on the standby seem to run ok.
    However, If I try to create a new schema on the logical standby, that does not exist on the primary, I get "ORA-01031: insufficient privileges" errors when I try to create new objects.
    Show below are the steps I have taken to create the new schema on the logical standby. Any help would be greatly appreciated.
    SYS@UATDR> connect / as sysdba
    Connected.
    SYS@UATDR>
    SYS@UATDR> select name, log_mode, database_role, guard_status, force_logging, flashback_on, db_unique_name
    2 from v$database
    3 /
    NAME LOG_MODE DATABASE_ROLE GUARD_S FOR FLASHBACK_ON DB_UNIQUE_NAME
    UATDR ARCHIVELOG LOGICAL STANDBY ALL YES YES UATDR
    SYS@UATDR>
    SYS@UATDR> create tablespace ts_new
    2 /
    Tablespace created.
    SYS@UATDR>
    SYS@UATDR> create user new
    2 identified by new
    3 default tablespace ts_new
    4 temporary tablespace temp
    5 quota unlimited on ts_new
    6 /
    User created.
    SYS@UATDR>
    SYS@UATDR> grant connect, resource to new
    2 /
    Grant succeeded.
    SYS@UATDR> grant unlimited tablespace, create table, create any table to new
    2 /
    Grant succeeded.
    SYS@UATDR>
    SYS@UATDR> -- show privs given to new
    SYS@UATDR> select * from dba_sys_privs where grantee='NEW'
    2 /
    GRANTEE PRIVILEGE ADM
    NEW CREATE ANY TABLE NO
    NEW CREATE TABLE NO
    NEW UNLIMITED TABLESPACE NO
    SYS@UATDR>
    SYS@UATDR> -- create objects in schema
    SYS@UATDR> connect new/new
    Connected.
    NEW@UATDR>
    NEW@UATDR> -- prove ability to create tables
    NEW@UATDR> create table new
    2 (col1 number not null)
    3 tablespace ts_new
    4 /
    create table new
    ERROR at line 1:
    ORA-01031: insufficient privileges
    NEW@UATDR>
    NEW@UATDR>

    HI Daniel,
    I appreciate your quick response.
    My choice of name may not have been ideal, however changing new to another name - like gav - does not solve the problem.
    SYS@UATDR> connect / as sysdba
    Connected.
    SYS@UATDR>
    SYS@UATDR> select name, log_mode, database_role, guard_status, force_logging, flashback_on, db_unique_name
    2 from v$database
    3 /
    NAME LOG_MODE DATABASE_ROLE GUARD_S FOR FLASHBACK_ON DB_UNIQUE_NAME
    UATDR ARCHIVELOG LOGICAL STANDBY ALL YES YES UATDR
    SYS@UATDR>
    SYS@UATDR> create tablespace ts_gav
    2 /
    Tablespace created.
    SYS@UATDR>
    SYS@UATDR> create user gav
    2 identified by gav
    3 default tablespace ts_gav
    4 temporary tablespace temp
    5 quota unlimited on ts_gav
    6 /
    User created.
    SYS@UATDR>
    SYS@UATDR> grant connect, resource to gav
    2 /
    Grant succeeded.
    SYS@UATDR> grant unlimited tablespace, create table, create any table to gav
    2 /
    Grant succeeded.
    SYS@UATDR>
    SYS@UATDR> -- show privs given to gav
    SYS@UATDR> select * from dba_sys_privs where grantee='GAV'
    2 /
    GRANTEE PRIVILEGE ADM
    GAV CREATE TABLE NO
    GAV CREATE ANY TABLE NO
    GAV UNLIMITED TABLESPACE NO
    SYS@UATDR>
    SYS@UATDR> -- create objects in schema
    SYS@UATDR> connect gav/gav
    Connected.
    GAV@UATDR>
    GAV@UATDR> -- prove ability to create tables
    GAV@UATDR> create table gav
    2 (col1 number not null)
    3 tablespace ts_gav
    4 /
    create table gav
    ERROR at line 1:
    ORA-01031: insufficient privileges
    GAV@UATDR>

  • Logical Standby Database and XMLDB

    I couldn't find a proper group to post this message and thought I would try here.
    I want to set up a Logical Standby Database for our production database server 9.2.0.4.0 with XMLDB. I am having problem with some system tables that were created when I registered some XML schemas.
    These tables are in the standby database but Oracle complains the object does not exist.
    Any idea?

    >
    The "may be" is because I have tested flashback of a physical standby to before resetlogs, but not a logical standby.
    >
    A physical standby keeps the DBID of the primary - a logical standby does not. That is exactly the problem that restricts the reconversion into physical from logical, and you did not encounter that problem.
    >
    I haven't used "keep identity" but from what I read it relates to "convert to physical" not "flashback database".
    >
    Exactly. And that is what the OP wants to do: convert to physical (from logical).
    You mentioned that this might be possible with flashback.
    Problem: During the conversion from physical to logical, the DBID gets changed unless you specify (in 11g) KEEP IDENTITY. This would make it possible to reconvert into phyiscal from logical.
    In short: If there is no solution for the changed DBID of the logical standby in order to flashback it into physical as you suggested, then it is not possible .
    When I saw your first answer, I thought that you might have a solution in mind in order to solve that obvious problem. Sorry for having bothered you.
    Kind regards
    Uwe
    http://uhesse.wordpress.com

  • Logical Standby Database with 10g+ASM on both sides??

    Hi out there,
    is there a known way to establish a logical standby database on 10g, if both
    sides are running with an ASM setup?
    I've tried to create one out of a physical standby database (which is set up
    and running w/o any problems), like a book suggested me to do.
    The procedure was:
    1. switch on supplemental logging
    2. prepare initiation parameters (for archive logging etc.) on both sides for
    logical stb.
    3. shut down the phyiscal standby
    4. alter database create logical standby controlfile as '<path>'; on the
    primary, transfer the controlfile to the standby db. Here I had to use RMAN
    to copy the controlfile into the ASM System, and modify the initfile/spfile
    in order to use the controlfile. No problem so far.
    5. mount the standby database, alter database recover managed standby database
    disconnect; -> At this point, the alert log complained about non-available
    datafiles.
    6. alter database activate standby database; --> fails ("needs recovery") due
    to last point.
    The trouble is, the controlfile created at point 4 cointains wrong paths to
    the datafiles. Since I can not have the same disk group name on the standby
    system, and since ASM renames the stored datafiles by its own, the complaints
    of point 5 are comprehensible, but nevertheless annoying.
    I tried to backup a controlfile to trace and change the paths, but at after
    mounting the standby with this controlfile and proceeding at point 5, the
    system says "<path> is not a standby controlfile"
    Is there a different way of creating a "Logical Standby Database with 10g+ASM
    on both sides"? Metalink said nothing about LogStby and ASM.
    Best regards and thanks in advance,
    Martin

    I'm not sure if this will work but try:
    1. create trace control file (you did it)
    2. change paths (you did it)
    3. recrate control file (you did it)
    ... there was error occured during mount before
    so mount database (not as standby)
    4. create standby control file (from recreated control file)
    5. shutdown instance, replace control file with new standby control file or replace the control filename in parameter file.
    6. mount as standby
    What happend?
    Update: Tested on my side and it has worked fine... How about you?
    Message was edited by:
    Ivan Kartik

  • MV Logs not getting purged in a Logical Standby Database

    We are trying to replicate a few tables in a logical standby database to another database. Both the source ( The Logical Standby) and the target database are in Oracle 11g R1.
    The materialized views are refreshed using FAST REFRESH.
    The Materialized View Logs created on the source ( the Logical Standby Database) are not getting purged when the MV in the target database is refreshed.
    We checked the entries in the following Tables: SYS.SNAP$, SYS.SLOG$, SYS.MLOG$
    When a materialized view is created on the target database, a record is not inserted into the SYS.SLOG$ table and it seems like that's why the MV Logs are not getting purged.
    Why are we using a Logical Standby Database instead of the Primary ? Because, the load on the Primary Database is too much and the machine doesn't have enough resources to support MV based replication. The CPU usage is 95% all the time. The appplication owner won't allow us to go against the Primary database.
    Do we have to do anything different in terms of Configuration/Privileges etc. because we are using a Logical Standby Database as a source ?
    Thanks in Advance.

    We have a 11g RAC database in solaris OS where there is huge gap in archive log apply.
    Thread Last Sequence Received Last Sequence Applied Difference
    1 132581 129916 2665
    2 108253 106229 2024
    3 107452 104975 2477
    The MRP0 process seems not to be working also.Almost 7000+ archives lag in standby if compared with primary database.
    i suggest you to go with Incremental rollforward backups to make it SYNC, use this below link for step by step procedure.
    http://www.oracle-ckpt.com/rman-incremental-backups-to-roll-forward-a-physical-standby-database-2/
    Here questions.
    1) Whether those archives are transported & just not applied?
    2) Is in production do you have archives or backup of archives?
    3) What you have found errors in alert log file?
    post
    SQL> select severity,message,error_code,timestamp from v$dataguard_status where dest_id=2;
    4) What errors in primary database alert log file?
    Also post
    select     ds.dest_id id
    ,     ad.status
    ,     ds.database_mode db_mode
    ,     ad.archiver type
    ,     ds.recovery_mode
    ,     ds.protection_mode
    ,     ds.standby_logfile_count "SRLs"
    ,     ds.standby_logfile_active active
    ,     ds.archived_seq#
    from     v$archive_dest_status     ds
    ,     v$archive_dest          ad
    where     ds.dest_id = ad.dest_id
    and     ad.status != 'INACTIVE'
    order by
         ds.dest_id
    /Also check errors from standby database.

  • Materialized View Logs in a logical standby database

    I am trying to create materialized views based on a few tables in a logical standby database.
    The target database (11g R2) where the MVs will be created is a stand-alone database.
    The DB where the base tables reside is a logical standby database (11g R2).
    The requirement is to do a "FAST REFRESH" of the Materialized Views.
    My questions are :
    1. Can I create MV logs in the logical standby DB?
    2. If the answer to question no. 1 is "Yes", do I need to do anything different or configure the logical standby DB in a specific manner in order to create MV logs. From what I understand, the objects in the logical standby database are in a locked state. Is that going to be a problem ?
    Any other information that might be relevant is greatly appreciated.
    Thanks in advance.

    HI Daniel,
    I appreciate your quick response.
    My choice of name may not have been ideal, however changing new to another name - like gav - does not solve the problem.
    SYS@UATDR> connect / as sysdba
    Connected.
    SYS@UATDR>
    SYS@UATDR> select name, log_mode, database_role, guard_status, force_logging, flashback_on, db_unique_name
    2 from v$database
    3 /
    NAME LOG_MODE DATABASE_ROLE GUARD_S FOR FLASHBACK_ON DB_UNIQUE_NAME
    UATDR ARCHIVELOG LOGICAL STANDBY ALL YES YES UATDR
    SYS@UATDR>
    SYS@UATDR> create tablespace ts_gav
    2 /
    Tablespace created.
    SYS@UATDR>
    SYS@UATDR> create user gav
    2 identified by gav
    3 default tablespace ts_gav
    4 temporary tablespace temp
    5 quota unlimited on ts_gav
    6 /
    User created.
    SYS@UATDR>
    SYS@UATDR> grant connect, resource to gav
    2 /
    Grant succeeded.
    SYS@UATDR> grant unlimited tablespace, create table, create any table to gav
    2 /
    Grant succeeded.
    SYS@UATDR>
    SYS@UATDR> -- show privs given to gav
    SYS@UATDR> select * from dba_sys_privs where grantee='GAV'
    2 /
    GRANTEE PRIVILEGE ADM
    GAV CREATE TABLE NO
    GAV CREATE ANY TABLE NO
    GAV UNLIMITED TABLESPACE NO
    SYS@UATDR>
    SYS@UATDR> -- create objects in schema
    SYS@UATDR> connect gav/gav
    Connected.
    GAV@UATDR>
    GAV@UATDR> -- prove ability to create tables
    GAV@UATDR> create table gav
    2 (col1 number not null)
    3 tablespace ts_gav
    4 /
    create table gav
    ERROR at line 1:
    ORA-01031: insufficient privileges
    GAV@UATDR>

Maybe you are looking for