Oracle DuplicateDB
Jump to navigation
Jump to search
#!/bin/bash
ORACLE_SID=DBCLONE
ORAENV_ASK=NO
export ORACLE_SID ORAENV_ASK
. oraenv
unset ORAENV_ASK
HOST_PROD=10.1.1.1
HOST_TEST=10.1.1.2
## salvare le password
sqlplus '/ as sysdba' << EOF
@save_password SYS
@save_password SYSTEM
shutdown abort;
EOF
rm -rf /oradata/${ORACLE_SID}
rm -rf /oralog/${ORACLE_SID}
rm -f ${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
rm -f ${ORACLE_HOME}/dbs/orapw${ORACLE_SID}
orapwd file=${ORACLE_HOME}/dbs/orapw${ORACLE_SID} password="xxxxxxxxxxxxxxxxxxxxxxxxxx" entries=16
rman target / nocatalog << EOF
startup nomount force;
EOF
rman target sys/"xxxxxxxxxxxxxxxxxxxxxxxxxx"@${HOST_PROD}:1521/SID_SRC auxiliary sys/"xxxxxxxxxxxxxxxxxxxxxxxxxx"@${HOST_TEST}:1521/${ORACLE_SID} trace refresh_trintest_from_prod.log << EOF
DUPLICATE DATABASE TO TRINTEST
FROM ACTIVE DATABASE
SPFILE
parameter_value_convert ('YYYY','XXXX')
set db_create_file_dest='/oradata'
set db_create_online_log_dest_1='/oralog'
set db_name='XXXX'
set db_unique_name='XXXX'
set diagnostic_dest='/orabin/oracle/12.2'
set local_listener='LISTENER'
set sga_target='1700M'
set pga_aggregate_target='512M'
set db_recovery_file_dest='/oradata'
set db_recovery_file_dest_size='40G'
set audit_file_dest='/orabin/oracle/12.2/admin/XXXX/adump'
set audit_sys_operations='TRUE'
reset log_archive_dest_1
NOFILENAMECHECK;
EOF
#set log_archive_dest_1='location=/oradata reopen=10'
rman target / nocatalog << EOF
delete noprompt archivelog all;
EOF
sqlplus '/ as sysdba' << EOF
shutdown immediate
startup mount
alter database noarchivelog;
alter database open;
EOF
-- save password.sql &1 set pagesize 0 set linesize 800 set trim on trims on verify off spool password_&1..sql select 'alter user ' || t1.username || ' identified by values ''' || t2.password || ';' || t2.spare4 || ''';' from dba_users t1 inner join sys.user$ t2 on t2.name=t1.username where t1.username='&1'; spool off