Nesteartigo vamos demonstrar como transferir os SQL Profiles que estao no banco dedados Oracle para outro. Este recurso e muito utilizado para os casos demigracoes de plataforma, onde o banco e recriado ou mesmo feito um"upgrade".Vamos aos passos:1. Primeiro deve-se criar uma tabela de "staging" paraarmazenar os "SQL Profiles" para serem levados ao banco DESTINO,usar:SQL> EXECDBMS_SQLTUNE.CREATE_STGTAB_SQLPROF (table_name => 'PROFILE_SQLTAB');2. Depois copiar os "SQL Profiles", conectado com o usuario"SYS" para a tabela "staging", usar :SQL> EXECDBMS_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 utilizandoCTAS (create table as select), na base de destino.4. Importar a tabela no banco de dados DESTINO, se for utilizado oprocesso de copia via CTAS, nao e necessario importar a tabela.5. Para colocar os "SQL Profiles" no banco de destino usaro comando abaixo:SQL> EXECDBMS_SQLTUNE.UNPACK_STGTAB_SQLPROF(replace => TRUE, staging_table_name =>'PROFILE_SQLTAB');NOTA: Ao utilizar a opcao REPLACE=TRUE,os "SQL Profiles" serao sobrepostos no banco de dados DESTINO.Para verificar os "SQL Profiles" importados podem serverificados utilizando a consulta abaixo. COLUMN category FORMAT a10COLUMN sql_text FORMAT a20SELECT NAME, SQL_TEXT, CATEGORY, STATUS FROM DBA_SQL_PROFILES;Referencias: Oracle DatabasePL/SQL Packages and Types Reference 11g Oracle Database Performance Tuning Guide 11gR2 (11.2) Oracle DatabaseAdministrator s Guide 11gR2 (11.2)MSc.Rubens OliveiraDBA Oracle Consultorolivert.dba@consultant.com Mesmo com asrotinas de retencao que sao configuradas no AWR, algumas vezes, pode ser que orepositorio do AWR necessite ser expurgado manualmente. Neste artigo vamosdemonstrar um procedimento para o expurgo controlado do repositorio do AWR. Importante: Para a execucao deste procedimento, certifique-seque seus dados foram salvos em um backup ou mesmo que voce nao ira utilizaras informacoes que serao removidas. A primeiracoisa que devemos verificar e a quantidade de informacao armazenada pelo AWR,deve-se executar a consulta abaixo: SQL> set lines 200SQL> col Nome fora10SQL> col Descricao for a60SQL>SQL> SELECT OCCUPANT_NAMENOME, 2 OCCUPANT_DESC DESCRICAO, 3 ROUND(SPACE_USAGE_KBYTES/1024) "ESPACO (M)" 4 FROM V$SYSAUX_OCCUPANTS 5 WHERE OCCUPANT_NAME LIKE'SM/%' 6 ORDER BY 1 ; NOME DESCRICAO ESPACO (M)---------- ----------------------------------------------------------------------SM/ADVISOR Server Manageability -Advisor Framework 323SM/AWR Server Manageability - Automatic WorkloadRepository 4187SM/OPTSTAT Server Manageability -Optimizer Statistics History 344SM/OTHER Server Manageability - Other Components 8 A linhaem destaque e a informacao que desejamos saber, ou seja, o tamanho dorepositorio de dados do AWR, para este exemplo, o tamanho do repositorio e de 4MB. Depois vamosverificar os intervalos de meses que estao armazenados no repositorio para queposteriormente executemos o expurgo. SQL>COL BEGIN_INTERVAL_TIME FOR A30SQL>COL END_INTERVAL_TIME FOR A30SQL>SQL>SELECT SNAP_ID, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME 2 FROM SYS.WRM$_SNAPSHOT 3 WHERE SNAP_ID = (SELECT MIN (SNAP_ID) FROM SYS.WRM$_SNAPSHOT) 4 UNION 5 SELECT SNAP_ID, BEGIN_INTERVAL_TIME,END_INTERVAL_TIME 6 FROM SYS.WRM$_SNAPSHOT 7 WHERE SNAP_ID = (SELECT MAX (SNAP_ID) FROM SYS.WRM$_SNAPSHOT) 8 ORDER BY 2 9 / SNAP_ID BEGIN_INTERVAL_TIME END_INTERVAL_TIME---------------------------------------- ------------------------------ 156971 27-SEP-13 12.00.29.580 AM 27-SEP-13 12.10.31.001 AM 160065 18-OCT-1311.40.27.729 AM 18-OCT-1311.50.28.105 AM Osvalores apresentados pela coluna SNAP_ID, indicam as informacoes gravadas norepositorio do AWR. Neste exemplo temos informacoes do mes de Setembro eOutubro. Antes deremovermos os dados, vamos verificar os registros de um determinado intervalo,para esse exemplo vamos listar todos os registros do mes de Setembro. SQL> col begin_interval_timefor a30 SELECT snap_id, begin_interval_time FROM SYS.WRM$_SNAPSHOT WHERE instance_number = 1 AND begin_interval_time like