Boa tarde Portilho,
Recentemente a empresa adquiriu o Sap Replication e o mesmo utiliza o LogMiner.
Gostaria de saber se ativação do LogMiner a nível de tabela prejudica a performance da base de dados Oracle 12 rack
Foi ativado nas principais tabelas do sistema e estas sofrem muitas operações dmls.
Minha preocupação é quando temos um cenário critico onde estamos com pico de CPU e esse "log complementar" não vai enfileiras mais processos e onerar ainda mais a base e podendo até derrubar as instancias?
Outro ponto esse log gera um consumo de storage?
Exemplo de ativação de log:
ALTER TABLE producao.acerfpgt ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Obrigado,
Robson Avila (Kroton)
LogMiner
Re: LogMiner
O SUPPLEMENTAL LOG (requisito para o Log Miner) é necessário também para outras ferramentas de replicação, como o Golden Gate.
De acordo com a documentação, "... whenever a column in any database table is changed, the entire row containing that column (except columns for LOBs, LONGs, and ADTs) will be placed in the redo log file".
Fonte: https://docs.oracle.com/database/121/SU ... 19F5FE.htm
Ou seja, mais REDO LOGs (e portanto mais ARCHIVED REDO LOGs) serão gerados durante os UPDATEs. Isto potencialmente causará um impacto de I/O. No teste que eu fiz em uma tabela simples, vi que este impacto não é grande (veja o "redo size" no teste abaixo). Mas meu teste foi em 18c, talvez seja diferente em sua versão.
De acordo com a documentação, "... whenever a column in any database table is changed, the entire row containing that column (except columns for LOBs, LONGs, and ADTs) will be placed in the redo log file".
Fonte: https://docs.oracle.com/database/121/SU ... 19F5FE.htm
Ou seja, mais REDO LOGs (e portanto mais ARCHIVED REDO LOGs) serão gerados durante os UPDATEs. Isto potencialmente causará um impacto de I/O. No teste que eu fiz em uma tabela simples, vi que este impacto não é grande (veja o "redo size" no teste abaixo). Mas meu teste foi em 18c, talvez seja diferente em sua versão.
Code: Select all
09:04:51 RICARDO@OTSQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
Table created.
Elapsed: 00:00:03.90
09:05:14 RICARDO@OTSQL> UPDATE T SET OBJECT_TYPE = 'NEW' WHERE OBJECT_TYPE = 'TABLE';
1621 rows updated.
Elapsed: 00:00:00.38
Statistics
----------------------------------------------------------
54 recursive calls
1686 db block gets
1328 consistent gets
1296 physical reads
449816 redo size
873 bytes sent via SQL*Net to client
996 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
1621 rows processed
09:06:02 RICARDO@OTSQL> DROP TABLE T;
Table dropped.
Elapsed: 00:00:00.64
09:06:12 RICARDO@OTSQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS;
Table created.
Elapsed: 00:00:03.22
09:06:17 RICARDO@OTSQL> ALTER TABLE T ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Table altered.
Elapsed: 00:00:00.09
09:06:23 RICARDO@OTSQL> UPDATE T SET OBJECT_TYPE = 'NEW' WHERE OBJECT_TYPE = 'TABLE';
1621 rows updated.
Elapsed: 00:00:00.05
Statistics
----------------------------------------------------------
53 recursive calls
1666 db block gets
1327 consistent gets
1275 physical reads
449932 redo size
874 bytes sent via SQL*Net to client
996 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
1621 rows processed
09:06:27 RICARDO@OTSQL>