Case: In order to reduce the burden of the core database, we use the logical standby technology to separate the influence of physical reading on the core database. However, a report application has used a large number of intermediate tables in the report, usually the basic data is stored in the middle table, and then the report read the middle table to show. The best way to completely solve the problem is to compute the process forward, that is, when the application inserts the basic data the data which the report needs to insert the operation data, or at least is close to the report data, otherwise solves by the intermediate table and so on, also cannot solve the temporary operation to bring the enormous IO cost. But the application side is forced by the manpower and time limit obviously does not dare to do the thorough optimization in the short term, then only then the DBA surgery, the logical standby initiates writes the function, namely writes the data with the new table. Obviously this adds to the later maintainability of the logical standby, but our DBA would rather sacrifice some personal time than to ease the pressure on the main library.
Implementation method: To maximize maintainability, avoid confusion with the main library, we adopt completely independent user, table space, table
1. New User
2. New Table Space
3. New Table
Important: Modifying parameters
1 Stop logical Applyalter database stop logical standby apply;
2 Define the table to skip (tables that can be unsynchronized)
exec dbms_logstdby.skip (' schema_ddl ', ' TEST ', ' TEST1 ', NULL);
exec dbms_logstdby.skip (' DML ', ' TEST ', ' TEST1 ', NULL);
3 Start logical Applyalter database start logical standby apply immediate;
ALTER DATABASE guard standby;