Neste
artigo vamos demonstrar como transferir os SQL Profiles que estão no banco de
dados Oracle para outro. Este recurso é muito utilizado para os casos de
migrações de plataforma, onde o banco é recriado ou mesmo feito um
"upgrade".
Vamos aos passos:
1.
Primeiro deve-se criar uma tabela de "staging" para
armazenar os "SQL Profiles" para serem levados ao banco DESTINO,
usar:
SQL> EXEC
DBMS_SQLTUNE.CREATE_STGTAB_SQLPROF (table_name => 'PROFILE_SQLTAB');
2.
Depois copiar os "SQL Profiles", conectado com o usuário
"SYS" para a tabela "staging", usar :
SQL> EXEC
DBMS_SQLTUNE.PACK_STGTAB_SQLPROF (profile_category => '%',
staging_table_name => 'PROFILE_SQLTAB');
NOTA: Para copiar todos os "SQL Profiles" do banco de dados,
deve-se utilizar '%'.
3.
Exportar a tabela "staging" ou criar a tabela utilizando
CTAS (create table as select), na base de destino.
4.
Importar a tabela no banco de dados DESTINO, se for utilizado o
processo de cópia via CTAS, não é necessário importar a tabela.
5.
Para colocar os "SQL Profiles" no banco de destino usar
o comando abaixo:
SQL> EXEC
DBMS_SQLTUNE.UNPACK_STGTAB_SQLPROF(replace => TRUE, staging_table_name =>
'PROFILE_SQLTAB');
NOTA: Ao utilizar a opção REPLACE=TRUE,
os "SQL Profiles" serão sobrepostos no banco de dados DESTINO.
Para verificar os "SQL Profiles" importados podem ser
verificados utilizando a consulta abaixo.
COLUMN category FORMAT a10
COLUMN sql_text FORMAT a20
SELECT NAME, SQL_TEXT, CATEGORY, STATUS FROM DBA_SQL_PROFILES;
Referências: Oracle® Database
PL/SQL Packages and Types Reference 11g
Oracle® Database Performance Tuning Guide 11gR2 (11.2)
Oracle® Database
Administrator´s Guide 11gR2 (11.2)
MSc.
Rubens Oliveira
DBA Oracle Consultor
olivert.dba@consultant.com