Friday, February 23, 2024

shelll scrips

 cat TEST_DB

https://www.funoracleapps.com/2021/06/shell-script-to-change-sys-and-system.html

TEST1
TEST2
TEST3
TEST4


Script:

#!/bin/bash
#################################################################################
#PURPOSE: TEST DB SYS and SYSTEM password change script
# Usage : sys_system_pass_change.sh [PROD]/[TEST]
#Author Version Date
#Himanshu Singh 1.0 15-AUG-2020
#
##################################################################################

#######################Before change system password prefix#######################
prefx=dundb
##############Change the below value before canging system password##################

newprefx=ebs123
. $HOME/testdb.env
checkfile=TNS_DB_CHECK.log
passch=PASS_CHANGE.log
RECEIPENTS=support@funoracleapps.com
RUN_USER=`who am i |awk '{print $1}'`
if [ $# -ne 1 ]
then
echo "No Parameter passed!! ==\>Either Pass TEST or PROD\<== Exiting"
exit 1;
fi

if [ "$1" == "TEST" ]
then
inst_file=TEST_DB
elif [ "$1" == "PROD" ]
then
inst_file=PROD_DB
else
echo "Wrong Parameter passed!! Exiting"
exit 1;
fi

pass_checker ()
{
for db_name in `cat ${inst_file}|grep -v '^#'`
do
tnsping ${db_name} > /tmp/tnsping_check
count=`grep -i "ok" /tmp/tnsping_check|wc -l`
if [ $count -ne 1 ]
then
echo "Tnsping to ${db_name} failed..Please check"
#else
#echo "TNSPING working on ${db_name}"
fi
dataname=`echo ${db_name}|tr [:upper:] [:lower:]`
echo "======================================================================="
echo " Checking the database ${db_name}" 
echo "======================================================================="
#echo "connect system/${prefx}${dataname}@${db_name}"
sqlplus -s "/as  sysdba" <<EOF
connect system/${prefx}${dataname}@${db_name}
select name from v\$database;
exit;
EOF

done
}

change_pass ()
{
for db_name in `cat ${inst_file}|grep -v '^#'`
do
dataname=`echo ${db_name}|tr [:upper:] [:lower:]`
echo "======================================================================="
echo " Working on the database ${db_name}"
echo "======================================================================="
sqlplus -s "/as  sysdba" <<EOF
connect system/${prefx}${dataname}@${db_name}
select name from v\$database;
alter user sys identified by ${newprefx}${dataname};
alter user system identified by ${newprefx}${dataname};
exit;
EOF

done
}


#################################################################
##### MAIN PROG################################################
################################################################
echo " FUNORACLEAPPS -- SYS and SYSTEM PASSWORD CHANGE UTILITY "
export PS3="Please make a selection [1-3][Press 3 for Exit]  => " 
select fun in Pass_Check Change_Pass Exit
do
case $fun in 

"Pass_Check") pass_checker > ${checkfile}
echo "Completed"
mailx -s "SYS and SYSTEM Password Connection Check in  $1 Instances on `date` executed by ${RUN_USER}" ${RECEIPENTS} < ${checkfile}
;;
"Change_Pass") change_pass > ${passch}
echo "Completed"
mailx -s "SYS and SYSTEM Password Changed Completed in $1 Instances  on `date` executed by ${RUN_USER}" ${RECEIPENTS} <  ${passch}
;;
"Exit") echo "Exiting" 
exit 0;
;;
 *)echo "Invalid option. Program will exit now."
            break
            ;;
esac
done

Thursday, February 15, 2024

tablespace move

 set feedback off

set echo off

set serverout off

set pages 0

set lines 200 

col name new_val dbname noprint

select name from v$database;

spool mvlobs_&&dbname\.sql

prompt spool mvlobs_&&dbname

select 'alter table ' || owner || '.' || table_name ||

' move lob(' || column_name || ') store as (tablespace '||tablespace_name||'_NEW);'

from dba_lobs where tablespace_name not in ('SYSTEM', 'SYSAUX', 'UNDOTBS1','USERS','TEMP')

order by tablespace_name;

prompt spool off

spool off

set feedback off
set echo off
set serverout off
set pages 0
set lines 200 
col name new_val dbname noprint
select name from v$database;
spool mvtabs_&&dbname\.sql
prompt spool mvtabs_&&dbname
select 'alter table '||owner||'.'||table_name||' move tablespace '||tablespace_name||'_NEW;' 
from dba_tables 
where tablespace_name not in ('SYSTEM', 'SYSAUX', 'UNDOTBS1','USERS','TEMP') 
and tablespace_name in (select tablespace_name from dba_tablespaces where bigfile = 'NO') 
order by tablespace_name,blocks;    
prompt spool off
spool off

set feedback off
set echo off
set serverout off
set pages 0
set lines 200 
col name new_val dbname noprint
select name from v$database;
spool rebuild_idx_&&dbname\.sql
prompt spool rebuild_idx_&&dbname
select 'alter index '||owner||'.'||table_name||' rebuild tablespace '||tablespace_name||'_NEW;' 
from dba_indexes 
where tablespace_name not in ('SYSTEM', 'SYSAUX', 'UNDOTBS1','USERS','TEMP')
and index_type != 'LOB'
and tablespace_name in (select tablespace_name from dba_tablespaces where bigfile='NO')
order by tablespace_name, table_name; 
prompt spool off
spool off

About Me

My photo
Sydney, NSW, Australia
An experienced IT professional (14+ years) worked in multiple industries such as consulting, education, financial, retail sectors. Carries good work experience in relational database design, analysis, modeling, development, administration, implementation, trouble shooting, support etc. Experienced in Oracle/SQL Server/MySQL DBA involving setup, configuration, tuning, backups, disaster recovery, high availability Oracle 11g/12C/19C RAC clusters; SQL server 2008/2012/2016 clusters, Oracle Engineered Systems such as EXADATA, ODA and Oracle and Azure Cloud. Performed Software Installations, Migrations, Database Capacity Planning, Automation of backup implementation, Cloud migration Tuning Oracle in windows/Unix platforms. In addition, experienced in UNIX administration, Shell scripting. PowerShell scripting A team player with communication skills.