UAT DB Build Using RMAN
UAT DB Build Using RMAN
UAT DB Build Using RMAN
ABA Bank
July 2023
Document Control
Source:
Target:
Hostname: exauatdbadm01,exauatdbadm02
Instance: FCXUAT1,FCXUAT2
vi inituatdb.ora
*.audit_file_dest='/u01/app/oracle/admin/fcxuat/adump'
*.audit_trail='db'
*.cluster_database=FALSE
*.control_files='+DATA'
*.compatible='12.1.0.2.0'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_files=1024
*.db_name='FCXUAT'
*.diagnostic_dest='/u01/app/oracle'
*.log_archive_dest='+RECO'
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=134217728
*.os_authent_prefix=''
*.parallel_adaptive_multi_user=FALSE
*.pga_aggregate_target=61384m
*.processes=1024
*.remote_login_passwordfile='exclusive'
*.sga_target=244576m
*.use_large_pages='ONLY'
Step 2: Create the required directories for starting the database in nomount by
using the pfile.
mkdir -p /u01/app/oracle/admin/fcxuat/adump
Step 4: Create a shell script by using the below details for cloning the database
from RMAN backup.
Please change the dbnames as per your request. FCXUAT used for UATDB.
vi rman_duplicate.sh
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1/
BACKUP_LOG_PATH=/home/oracle/duplicate
export ORACLE_SID=FCXUAT
export BACKUP_LOG_PATH
LOG_FILE=${BACKUP_LOG_PATH}/RESTORE_FCXUAT_05JUL2023.log
run {
spfile
parameter_value_convert ('FCLIVE','FCXUAT')
set db_name='FCXUAT'
set db_unique_name='FCXUAT'
set db_create_file_dest='+DATA'
set db_recovery_file_dest='+RECO'
set sga_max_size='440G'
set sga_target='440G'
set pga_aggregate_limit='180G'
set pga_aggregate_target='80G'
set control_files='+DATA'
set log_archive_dest_1=''
set db_file_name_convert='/oradata/FCLIVE/','+DATA/FCXUAT/','/oradata/','+DATA/FCXUAT/','/oratemp/
FCCLIVE/','+DATA/FCXUAT/'
set log_file_name_convert='/redo1/FCLIVE/','+REDO1/FCXUAT/','/redo2/FCLIVE/','+REDO2/FCXUAT/'
nofilenamecheck;
exit;
EOF
chmod +x rman_duplicate.sh
Step 5: Start the restore activity by using the duplicate script in nohup mode.
Step 6: Once restore gets complete, create pfile from spfile and add the below
lines to pfile.
*.cluster_database=true
*.remote_listener='exauat-scan1:1521'
FCXUAT1.instance_number=1
FCXUAT2.instance_number=2
FCXUAT1.thread=1
FCXUAT2.thread=2
FCXUAT1.undo_tablespace='UNDOTBS'
FCXUAT2.undo_tablespace='UNDOTBS2'
Step 7: Rename the pfile to instance name and copy another pfile for node 2.
cd $ORACLE_HOME/dbs
cp initFCXUAT.ora initFCXUAT1.ora
cp initFCXUAT1.ora initFCXUAT2.ora
Step 8: Transfer the new pfile to node2 and start the instance in the other node.
export ORACLE_SID=FCXUAT2
SQL> startup
Step 9: Run the below commands to add the database to server control utility.
Step 10: Create spfile to ASM and update the same path to pfile in both the
nodes.
SQL> create spfile=’+DATA/FCXUAT/PARAMETERFILE/spfilefcxuat.ora’ from pfile;
cd $ORACLE_HOME/dbs
mv initFCXUAT1.ora initFCXUAT1.ora_bkp
vi initFCXUAT1.ora
spfile=’+DATA/FCXUAT/PARAMETERFILE/spfilefcxuat.ora’
Step 11: Verify the status of the database using srvctl command.
Step 12: Change the FC objects PLSQL_CODE_TYPE to NATIVE using the below
command.
Select PLSQL_OPTIMIZE_LEVEL,type,plsql_code_type,count(*) "Count" from
dba_plsql_object_settings where owner='FCCHOST' group by
PLSQL_OPTIMIZE_LEVEL,type,plsql_code_type;
exec
dbms_utility.compile_schema(schema=>'FCCHOST',compile_all=>true,REUSE_SETTINGS=>fals
e);
Step 13: Run the warmup scripts from the below attachment.
Parameter FC Recommended
DB_WRITER_PROCESSES 16
CURSOR_SHARING Force
DB_CACHE_ADVICE OFF (Should be ON while Performance Monitoring)
FAST_START_MTTR_TARGET 300
FILESYSTEM_IO_OPTIONS SETALL
JOB_QUEUE_PROCESSES 1000
NLS_DATE_FORMAT DD-MON-RRRR
OPEN_CURSORS 5000
OPTIMIZER_DYNAMIC_SAMPLING 2
OPTIMIZER_INDEX_CACHING 90
OPTIMIZER_INDEX_COST_ADJ 50
PLSQL_CODE_TYPE NATIVE
PLSQL_OPTIMIZE_LEVEL 2
PROCESSES 5500
QUERY_REWRITE_ENABLED FALSE
REMOTE_DEPENDENCIES_MODE SIGNATURE
RESULT_CACHE_MAX_SIZE 0.5% of SGA
CLIENT_RESULT_CACHE LAG 10,800,000(3 hours)
CLIENT_RESULT_CACHE_SIZE 32K
SESSION_CACHED_CURSORS 400
SKIP_UNUSABLE_INDEXES FALSE
UNDO_RETENTION 1800
UTL_FILE_DIR *
LOG_BUFFER Recommended Value: 100M
_ALLOW_LEVEL_WITHOUT_CONNECT_BY TRUE
PGA_AGGREGATE_LIMIT 0
optimizer_adaptive_features FALSE
SGA_TARGET 600G
SGA_MAX_SIZE 600G
PGA_AGGREGATE_TARGET
_lm_drm_disable 0
shared_pool_size 30G
db_cache_size 90G
gcs_server_processes 8
parallel_max_servers 1600
parallel_min_servers 160
parallel_servers_target 1600
vm.nr_hugepages(sysctl.conf) 320000
db_securefile PREFERRED
Step 15: Verify if any indexes are in UNUSABLE status and take
necessary action.
Step 16: Please change the sequence cache size 20 of all the
TRSQ_104_PROCESS
TRSQ_105_PROCESS
TRSQ_106_PROCESS
Step 21: Gather stats for FC schema and Fixed objects using
EXEC DBMS_STATS.gather_schema_stats(OWNNAME=>'FCCHOST',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE ,degree => 48,
METHOD_OPT=>'FOR ALL COLUMNS SIZE 1', cascade =>
TRUE ,GRANULARITY => 'GLOBAL AND PARTITION');
exec dbms_stats.gather_dictionary_stats;
exec dbms_stats.gather_fixed_objects_stats;
exec dbms_stats.gather_system_stats('EXADATA');