Skip to content

Commit 6c7e0f5

Browse files
committed
Update ocenv to 2022-11-22
1 parent bf0b2ac commit 6c7e0f5

File tree

2 files changed

+84
-41
lines changed

2 files changed

+84
-41
lines changed

changelogs/fragments/305-ocenv.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
minor_changes:
3+
- "Update ocenv to 2022-11-22"

roles/oradb_manage_db/files/ocenv

Lines changed: 81 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
################################################################################
3232

3333
## Version of this script. Simply uses the date in YYYY-MM-DD format
34-
GV_OCENV_VERSION="2022-08-10"
34+
GV_OCENV_VERSION="2022-11-22"
3535

3636
###############################################################################
3737
## Environment support homogenization
@@ -140,6 +140,7 @@ then
140140
export ORIGINAL_LD_LIBRARY_PATH_PRE_ENVLOAD="${LD_LIBRARY_PATH}"
141141

142142
export GV_INITIAL_VARS_SAVED=TRUE
143+
GV_ENV_SPECIFIC_VARS=()
143144
fi
144145

145146
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
@@ -523,12 +524,16 @@ alias pmon='ps -ef | grep -w -E "ora_pmon_[a-zA-Z0-9]+"'
523524
[[ -n "$(which amon 2>/dev/null)" ]] && alias amon="\$(which amon) -l n"
524525
if [[ "${GV_OS_TYPE}" == "AIX" ]]
525526
then
526-
export GV_PAGER=more
527527
alias psg='ps -ef | grep -v grep | grep '
528528
else
529-
export GV_PAGER=less
530529
alias psg='ps aux | grep -v grep | grep --color=auto'
531530
fi
531+
if [[ -x "$(which less 2>/dev/null)" ]]
532+
then
533+
export GV_PAGER=less
534+
else
535+
export GV_PAGER=more
536+
fi
532537
alias via='${GV_PAGER} ${GV_INSTANCE_ALERT_LOG}'
533538
alias vio='${EDITOR} /etc/oratab'
534539
alias taa='tail -n50 -f ${GV_INSTANCE_ALERT_LOG}'
@@ -611,9 +616,46 @@ clroraenv() {
611616
unset GV_INSTANCE_STATUS
612617
unset GV_IS_CDB
613618
unset GV_ORACLE_SID_LC
619+
for LV_VAR_NAME in "${GV_ENV_SPECIFIC_VARS[@]}"
620+
do
621+
unset "${LV_VAR_NAME}"
622+
done
623+
GV_ENV_SPECIFIC_VARS=()
614624
unset ORACLE_BASE
615625
unset ORACLE_HOME
616626
unset ORACLE_SID
627+
unset GV_PDB_LIST
628+
unset TNS_ADMIN
629+
export PATH="${ORIGINAL_PATH_PRE_ENVLOAD}"
630+
}
631+
add_env_specific_var() {
632+
if [[ -n "${1}" ]]
633+
then
634+
GV_ENV_SPECIFIC_VARS[${#GV_ENV_SPECIFIC_VARS[@]}]="${1}"
635+
fi
636+
}
637+
set_ora_home_env() {
638+
if [[ -z "$1" ]]
639+
then
640+
echo "No ORACLE_HOME given as parameter." 1>&2
641+
return 1
642+
fi
643+
export ORACLE_HOME="$1"
644+
if [[ -x "${ORACLE_HOME}/bin/orabase" ]]
645+
then
646+
ORACLE_BASE="$("${ORACLE_HOME}/bin/orabase")"
647+
export ORACLE_BASE
648+
fi
649+
case "$(uname -s)" in
650+
"Linux")
651+
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORIGINAL_LD_LIBRARY_PATH_PRE_ENVLOAD}
652+
;;
653+
"AIX")
654+
export LIBPATH=${ORACLE_HOME}/lib:${ORIGINAL_LIBPATH_PRE_ENVLOAD}
655+
;;
656+
esac
657+
export PATH=${ORACLE_HOME}/bin:${ORACLE_HOME}/OPatch:${ORIGINAL_PATH_PRE_ENVLOAD}
658+
unset GV_PDB_LIST
617659
}
618660
myoraenv_simple() {
619661
if [[ -z "${2}" ]]
@@ -625,6 +667,8 @@ myoraenv_simple() {
625667
unset GV_DB_UNIQUE_NAME 2>/dev/null
626668
unset GV_DB_UNIQUE_NAME_LC 2>/dev/null
627669
unset TNS_ADMIN 2>/dev/null
670+
## ORACLE_UNQNAME is not set by this method, but often sourced from srvctl in OCI environments
671+
unset ORACLE_UNQNAME 2>/dev/null
628672
if [[ -n "${3}" ]]
629673
then
630674
export TNS_ADMIN="${3}"
@@ -664,12 +708,31 @@ myoraenv() {
664708
return 1
665709
fi
666710
myoraenv_simple "${LV_ORACLE_SID}" "${LV_ORACLE_HOME}" "${LV_TNS_ADMIN}"
711+
if [[ -n "${GV_GRID_HOME}" ]]
712+
then
713+
## Read environment variables from GridInfrastructure ressource configuration
714+
while read -r LV_VAR_ASSIGNMENT
715+
do
716+
## Make sure, that the variable actually contains something that can plausibly be a variable assignment
717+
if [[ "${LV_VAR_ASSIGNMENT}" =~ .+= ]]
718+
then
719+
local LV_VAR_NAME="${LV_VAR_ASSIGNMENT%=*}"
720+
eval "export ${LV_VAR_ASSIGNMENT}"
721+
add_env_specific_var "${LV_VAR_NAME}"
722+
fi
723+
done <<< "$("${LV_ORACLE_HOME}"/bin/srvctl getenv database -db "${LV_DB_UNIQUE_NAME}" | grep "=")"
724+
fi
725+
667726
if [[ -n "${LV_DB_NAME}" ]]
668727
then
669728
GV_DB_NAME="${LV_DB_NAME}"
670729
fi
671730
if [[ -n "${LV_DB_UNIQUE_NAME}" ]]
672731
then
732+
if [[ -z "${ORACLE_UNQNAME}" ]]
733+
then
734+
export ORACLE_UNQNAME="${LV_DB_UNIQUE_NAME}"
735+
fi
673736
GV_DB_UNIQUE_NAME="${LV_DB_UNIQUE_NAME}"
674737
GV_DB_UNIQUE_NAME_LC="$(echo "${GV_DB_UNIQUE_NAME}" | to_lower)"
675738
fi
@@ -1104,19 +1167,19 @@ llh() {
11041167
}
11051168
if ($1 != "total") {
11061169
v_size = $5
1107-
v_unit = "B "
1108-
if ( v_size >= 1024 ) {
1109-
v_size = v_size / 1024
1110-
v_unit = "KB"
1111-
if ( v_size >= 1024 ) {
1112-
v_size = v_size / 1024
1113-
v_unit = "MB"
1114-
if ( v_size >= 1024 ) {
1115-
v_size = v_size / 1024
1116-
v_unit = "GB"
1117-
}
1118-
}
1119-
}
1170+
v_unit = "B "
1171+
if ( v_size >= 1024 ) {
1172+
v_size = v_size / 1024
1173+
v_unit = "KB"
1174+
if ( v_size >= 1024 ) {
1175+
v_size = v_size / 1024
1176+
v_unit = "MB"
1177+
if ( v_size >= 1024 ) {
1178+
v_size = v_size / 1024
1179+
v_unit = "GB"
1180+
}
1181+
}
1182+
}
11201183
printf("%10s %4d %8s %-8s %7.2f %2s %3s %2s %5s %s\n", $1, $2, $3, $4, v_size, v_unit, $6, $7, $8, $9);
11211184
}
11221185
}'
@@ -1193,7 +1256,7 @@ edf() {
11931256
local LV_THRESHOLD_CRIT=95
11941257
local LV_THRESHOLD_WARN=85
11951258

1196-
if [[ "${GV_OS_TYPE}" == "AIX" ]]
1259+
if [[ "$(uname -s)" == "AIX" ]] && ! (which df 2>/dev/null| grep -q "/opt/freeware/")
11971260
then
11981261
local LV_DF="df -Pg"
11991262
else
@@ -1710,29 +1773,6 @@ vilsnr(){
17101773
${GV_PAGER} "${LV_LSNR_LOG}"
17111774
fi
17121775
}
1713-
set_ora_home_env() {
1714-
if [[ -z "$1" ]]
1715-
then
1716-
echo "No ORACLE_HOME given as parameter." 1>&2
1717-
return 1
1718-
fi
1719-
export ORACLE_HOME="$1"
1720-
if [[ -x "${ORACLE_HOME}/bin/orabase" ]]
1721-
then
1722-
ORACLE_BASE="$("${ORACLE_HOME}/bin/orabase")"
1723-
export ORACLE_BASE
1724-
fi
1725-
case "${GV_OS_TYPE}" in
1726-
"Linux")
1727-
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORIGINAL_LD_LIBRARY_PATH_PRE_ENVLOAD}
1728-
;;
1729-
"AIX")
1730-
export LIBPATH=${ORACLE_HOME}/lib:${ORIGINAL_LIBPATH_PRE_ENVLOAD}
1731-
;;
1732-
esac
1733-
export PATH=${ORACLE_HOME}/bin:${ORACLE_HOME}/OPatch:${ORIGINAL_PATH_PRE_ENVLOAD}
1734-
unset GV_PDB_LIST
1735-
}
17361776
fill_pdb_details_list () {
17371777
unset GV_PDB_LIST_DETAILS
17381778

@@ -2046,7 +2086,7 @@ list_homes() {
20462086
}
20472087
mystat() {
20482088
local LV_TARGET="${1}"
2049-
if [[ "${GV_OS_TYPE}" == "AIX" ]]
2089+
if [[ "$(uname -s)" == "AIX" ]] && ! (which stat 2>/dev/null| grep -q "/opt/freeware/")
20502090
then
20512091
istat "${LV_TARGET}" | awk '/Owner/{split($2, v_a, "[()]"); print v_a[2]; }'
20522092
else

0 commit comments

Comments
 (0)