How to copy SQL Profile from one database to another one. 21 October 2010
Posted by David Alejo Marcos in Oracle 11.2, Tuning.Tags: Oracle 11.2, Tuning
trackback
This is a very straight forward procedure.
The problem:
I need to copy SQL Profiles from one database to another database for stability and testing.
The solution:
6 simple steps:
1.- Create staging table to store the SQL Profiles to be copied on Source database:
MYUSER@MYDB> EXEC DBMS_SQLTUNE.CREATE_STGTAB_SQLPROF (table_name => 'PROFILE_STGTAB');
2.- Copy SQL Profiles from SYS to the staging table:
MYUSER@MYDB> EXEC DBMS_SQLTUNE.PACK_STGTAB_SQLPROF (profile_category => '%', staging_table_name => 'PROFILE_STGTAB');
As I needed to copy all SQL Profiles on my database ‘%’ value for profile_category was the best option.
3.- Export staging table.
4.- Create staging table on Destination Database:
MYUSER@MYDB> EXEC DBMS_SQLTUNE.CREATE_STGTAB_SQLPROF (table_name => 'PROFILE_STGTAB');
5.- Import data on Destination database.
6.- Create SQL Profiles on Destination database using data stored on staging table:
MYUSER@MYDB> EXEC DBMS_SQLTUNE.UNPACK_STGTAB_SQLPROF(replace => TRUE, staging_table_name => 'PROFILE_STGTAB');
I used replace = TRUE as I needed to have the same SQL Profiles on both databases.
Note.- Please, refer to http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_sqltun.htm#CACFCAEC for a full list of parameters and options.
As always, comments are welcome.