Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Increment this value whenever you make a change to an immutable field of the Job
E.g. passing in a new environment variable.
Included in $_job_hash (see below).
*/}}
{{- $_job_version := "v14" }}
{{- $_job_version := "v15" }}

{{- /*
10 char hash appended to the job name taking into account $_job_config_values, $_job_version and $_cli_image_digest
Expand Down Expand Up @@ -247,6 +247,7 @@ spec:
- |

set -e
set -o pipefail

source /mascli/functions/gitops_utils

Expand Down Expand Up @@ -320,6 +321,44 @@ spec:
return 1
}

function setup_catalog_database_path() {
SETUP_CATALOG_DATABASE_PATH="/tmp/setup_catalog_database_path.sh"
local MLNDIR=${2:-/mnt/bludata0/db2/databases}
echo ""
echo "Create ${SETUP_CATALOG_DATABASE_PATH}"
echo "--------------------------------------------------------------------------------"

cat > ${SETUP_CATALOG_DATABASE_PATH} << EOF
[[ -z "\${DB_PATH}" ]] && source /etc/profile
chmod 775 \${DB_PATH}
mkdir -p \${DB_PATH}/\${DB2INSTANCE}
chmod 775 \${DB_PATH}/\${DB2INSTANCE}
chown \${DB2INSTANCE}:\${INST_GROUP} \${DB_PATH}/\${DB2INSTANCE}
mkdir -p ${MLNDIR}/\${DB2INSTANCE}
DATADIR=${MLNDIR}/\${DB2INSTANCE}/NODE0000
mkdir -p \${DATADIR}
chmod 775 \${DATADIR}
if [[ (! -L \${DB_PATH}/\${DB2INSTANCE}/NODE0000) && (! -d \${DB_PATH}/\${DB2INSTANCE}/NODE0000) ]]; then
ln -s \${DATADIR} \${DB_PATH}/\${DB2INSTANCE}
sudo chown -h \${DB2INSTANCE}:\${INST_GROUP} \${DB_PATH}/\${DB2INSTANCE}/NODE0000
fi
sudo chown -R \${DB2INSTANCE}:\${INST_GROUP} ${MLNDIR}/\${DB2INSTANCE}
EOF

chmod +x ${SETUP_CATALOG_DATABASE_PATH}

echo ""
echo "Copy ${SETUP_CATALOG_DATABASE_PATH} to ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc cp ${SETUP_CATALOG_DATABASE_PATH} ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0:${SETUP_CATALOG_DATABASE_PATH} -c db2u || exit $?

echo ""
echo "Executing ${SETUP_CATALOG_DATABASE_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${SETUP_CATALOG_DATABASE_PATH} | tee /tmp/setupcatalogdbpath.log" db2inst1 || exit $?

}

export DB2_CONFIG_SECRET=${ACCOUNT_ID}/${CLUSTER_ID}/${MAS_INSTANCE_ID}/jdbc/${DB2_INSTANCE_NAME}/config
export DB2_USER=db2_${MAS_APP_ID}

Expand Down Expand Up @@ -417,7 +456,7 @@ spec:
zip -r db2-scripts.zip db2-scripts/
oc cp /tmp/db2-scripts.zip ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0:/tmp/db2-scripts.zip -c db2u || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /tmp; unzip -o db2-scripts.zip; chmod -R +x /tmp/db2-scripts" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "/tmp/db2-scripts/CopyDBScripts.sh | tee /tmp/copydbscripts.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "/tmp/db2-scripts/CopyDBScripts.sh 2>&1 | tee /tmp/copydbscripts.log" db2inst1 || exit $?
fi

if [[ "$MAS_APP_ID" == "manage" ]]; then
Expand Down Expand Up @@ -546,14 +585,14 @@ spec:
echo ""
echo "Executing ${SETUPDB_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${SETUPDB_SH_PATH} | tee /tmp/setupdb.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${SETUPDB_SH_PATH} 2>&1 | tee /tmp/setupdb.log" db2inst1 || exit $?

if [[ -n $BUCKET_NAME ]]; then
CREATE_ROLES_SH_PATH="${DB2_INSTANCE_HOME_PATH}/bin/CreateRoles.sh"
echo ""
echo "Executing ${CREATE_ROLES_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd ${DB2_INSTANCE_HOME_PATH}/bin; ${CREATE_ROLES_SH_PATH} | tee /tmp/createroles.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd ${DB2_INSTANCE_HOME_PATH}/bin; ${CREATE_ROLES_SH_PATH} 2>&1 | tee /tmp/createroles.log" db2inst1 || exit $?
fi


Expand Down Expand Up @@ -608,12 +647,14 @@ spec:

fi # [[ "$MAS_APP_ID" == "facilities" ]]

setup_catalog_database_path

if [[ -n $BUCKET_NAME ]]; then
POST_BACKFLOW_SH_PATH="${DB2_INSTANCE_HOME_PATH}/Managed/PostBackFlow.sh"
echo ""
echo "Executing ${POST_BACKFLOW_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${POST_BACKFLOW_SH_PATH} | tee /tmp/postbackflowscriptcreation.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${POST_BACKFLOW_SH_PATH} 2>&1 | tee /tmp/postbackflowscriptcreation.log" db2inst1 || exit $?
fi

# check if config LOGARCHMETH1 is defined
Expand Down Expand Up @@ -723,7 +764,7 @@ spec:
echo ""
echo "Executing ${BACKUPDB_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${BACKUPDB_SH_PATH} | tee /tmp/backupdb.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${BACKUPDB_SH_PATH} 2>&1 | tee /tmp/backupdb.log" db2inst1 || exit $?

echo ""
echo "================================================================================"
Expand Down Expand Up @@ -772,7 +813,7 @@ spec:
echo ""
echo "Executing ${FIX_INVALID_OBJECTS_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${FIX_INVALID_OBJECTS_SH_PATH} | tee /tmp/fixInvalidObjects.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${FIX_INVALID_OBJECTS_SH_PATH} 2>&1 | tee /tmp/fixInvalidObjects.log" db2inst1 || exit $?

SQL_FILES_AVAILABLE=`oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "find ${INSTHOME} -name \"ALL_*.sql\"" db2inst1 || exit $?`

Expand All @@ -788,7 +829,7 @@ spec:
echo ""
echo "Executing ${LARGE_TBSP_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${LARGE_TBSP_SH_PATH} | tee /tmp/regLargeTbsp.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${LARGE_TBSP_SH_PATH} 2>&1 | tee /tmp/regLargeTbsp.log" db2inst1 || exit $?

fi

Expand Down Expand Up @@ -817,13 +858,13 @@ spec:
echo ""
echo "Executing ${SET_COS_STORAGE_SH_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${SET_COS_STORAGE_SH_PATH} | tee /tmp/setcosstorage.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${SET_COS_STORAGE_SH_PATH} 2>&1 | tee /tmp/setcosstorage.log" db2inst1 || exit $?

CHECK_COS_STORAGE_SH_PATH="CheckCOS.sh"
echo ""
echo "Executing ${INSTHOME}/bin/CheckCOS.sh file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${INSTHOME}/bin/CheckCOS.sh | tee /tmp/checkcos.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${INSTHOME}/bin/CheckCOS.sh 2>&1 | tee /tmp/checkcos.log" db2inst1 || exit $?

backup_images=`oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${INSTHOME}/bin/CheckCOS.sh | grep c-${DB2_INSTANCE_NAME}-db2u-0 | grep -v keystore | wc -l" db2inst1`
echo "Number of backup images in COS bucket - ${backup_images}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Increment this value whenever you make a change to an immutable field of the Job
E.g. passing in a new environment variable.
Included in $_job_hash (see below).
*/}}
{{- $_job_version := "v8" }}
{{- $_job_version := "v9" }}

{{- /*
10 char hash appended to the job name taking into account $_job_config_values, $_job_version and $_cli_image_digest
Expand Down Expand Up @@ -189,6 +189,7 @@ spec:
- |

set -e
set -o pipefail

source /mascli/functions/gitops_utils

Expand Down Expand Up @@ -278,7 +279,7 @@ spec:
for (( c=1; c<="${RETRIES}"; c++ )); do
echo ""
echo "... attempt ${c} of ${RETRIES}"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc '/db2u/scripts/apply-db2cfg-settings.sh --setting all | tee /tmp/apply-db2cfg-settings.log' db2inst1
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc '/db2u/scripts/apply-db2cfg-settings.sh --setting all 2>&1 | tee /tmp/apply-db2cfg-settings.log' db2inst1
# no useful info in return code of this script

rc=0
Expand Down Expand Up @@ -336,6 +337,44 @@ spec:
echo "================================================================================"
}

function setup_catalog_database_path() {
local MLNDIR=${2:-/mnt/bludata0/db2/databases}
SETUP_CATALOG_DATABASE_PATH="/tmp/setup_catalog_database_path.sh"
echo ""
echo "Create ${SETUP_CATALOG_DATABASE_PATH}"
echo "--------------------------------------------------------------------------------"

cat > ${SETUP_CATALOG_DATABASE_PATH} << EOF
[[ -z "\${DB_PATH}" ]] && source /etc/profile
chmod 775 \${DB_PATH}
mkdir -p \${DB_PATH}/\${DB2INSTANCE}
chmod 775 \${DB_PATH}/\${DB2INSTANCE}
chown \${DB2INSTANCE}:\${INST_GROUP} \${DB_PATH}/\${DB2INSTANCE}
mkdir -p ${MLNDIR}/\${DB2INSTANCE}
DATADIR=${MLNDIR}/\${DB2INSTANCE}/NODE0000
mkdir -p \${DATADIR}
chmod 775 \${DATADIR}
if [[ (! -L \${DB_PATH}/\${DB2INSTANCE}/NODE0000) && (! -d \${DB_PATH}/\${DB2INSTANCE}/NODE0000) ]]; then
ln -s \${DATADIR} \${DB_PATH}/\${DB2INSTANCE}
sudo chown -h \${DB2INSTANCE}:\${INST_GROUP} \${DB_PATH}/\${DB2INSTANCE}/NODE0000
fi
sudo chown -R \${DB2INSTANCE}:\${INST_GROUP} ${MLNDIR}/\${DB2INSTANCE}
EOF

chmod +x ${SETUP_CATALOG_DATABASE_PATH}

echo ""
echo "Copy ${SETUP_CATALOG_DATABASE_PATH} to ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc cp ${SETUP_CATALOG_DATABASE_PATH} ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0:${SETUP_CATALOG_DATABASE_PATH} -c db2u || exit $?

echo ""
echo "Executing ${SETUP_CATALOG_DATABASE_PATH} file on ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${SETUP_CATALOG_DATABASE_PATH} 2>&1 | tee /tmp/setupcatalogdbpath.log" db2inst1 || exit $?

}

PRIMARY_DB2_INSTANCE_NAME=${DB2_INSTANCE_NAME:0:-4}

echo ""
Expand Down Expand Up @@ -374,6 +413,7 @@ spec:
echo "================================================================================"
wait_for_resource "svc" "c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-engn-svc" "${DB2_NAMESPACE}"

setup_catalog_database_path

# Get HADR ROLE and CONNECT STATUS for Primary and Standby
get_existing_hadr_config
Expand Down Expand Up @@ -440,7 +480,7 @@ spec:
echo ""
echo "Executing ${BACKUP_TYPE_SCRIPT} file on ${DB2_NAMESPACE}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${BACKUP_TYPE_SCRIPT} | tee /tmp/backuptype.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${BACKUP_TYPE_SCRIPT} 2>&1 | tee /tmp/backuptype.log" db2inst1 || exit $?
backup_type=`oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cat /tmp/backuptype.log | grep 'Backup type is'" db2inst1`
backup_type=`echo ${backup_type} | tr -d '' | awk '{print $NF}'`
echo "Backup type is ${backup_type}"
Expand Down Expand Up @@ -476,7 +516,7 @@ spec:
echo ""
echo "Taking backup on ${DB2_NAMESPACE}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "mkdir -p /mnt/backup/standby; db2 backup db ${DB2_DBNAME} on all dbpartitionnums online to /mnt/backup/standby | tee /mnt/backup/standby/dbbackup.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "mkdir -p /mnt/backup/standby; db2 backup db ${DB2_DBNAME} on all dbpartitionnums online to /mnt/backup/standby 2>&1 | tee /mnt/backup/standby/dbbackup.log" db2inst1 || exit $?
echo ""
timestamp=`oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cat /mnt/backup/standby/dbbackup.log | grep 'timestamp' | rev | cut -d ' ' -f1 | rev" db2inst1`
echo "Timestamp of backup is ${timestamp}"
Expand Down Expand Up @@ -523,11 +563,11 @@ spec:
SOURCE=backups-manage/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0/${backup_filename}
if [[ ${copy_to_cos} == 'true' ]]; then
SOURCE1=/mnt/backup/standby/${backup_filename}
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc ". /mnt/backup/bin/.PROPS;db2RemStgManager ALIAS PUT source=${SOURCE1} target=DB2REMOTE://AWSCOS//${SOURCE} | tee /tmp/backupupload.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc ". /mnt/backup/bin/.PROPS;db2RemStgManager ALIAS PUT source=${SOURCE1} target=DB2REMOTE://AWSCOS//${SOURCE} 2>&1 | tee /tmp/backupupload.log" db2inst1 || exit $?
fi

# copy backup from cos bucket to standby
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "export AWS_ACCESS_KEY_ID=${PARM1}; export AWS_SECRET_ACCESS_KEY=${PARM2}; mkdir -p /mnt/backup/primary-backup; /mnt/backup/aws/dist/aws s3 cp s3://${CONTAINER}/${SOURCE} /mnt/backup/primary-backup/${backup_filename} | tee /tmp/backupdownload.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "export AWS_ACCESS_KEY_ID=${PARM1}; export AWS_SECRET_ACCESS_KEY=${PARM2}; mkdir -p /mnt/backup/primary-backup; /mnt/backup/aws/dist/aws s3 cp s3://${CONTAINER}/${SOURCE} /mnt/backup/primary-backup/${backup_filename} 2>&1 | tee /tmp/backupdownload.log" db2inst1 || exit $?


else
Expand Down Expand Up @@ -563,7 +603,7 @@ spec:
echo ""
echo "Executing ${KEYSTORE_GENERATION_SCRIPT} file on ${DB2_NAMESPACE}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0"
echo "--------------------------------------------------------------------------------"
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${KEYSTORE_GENERATION_SCRIPT} | tee /tmp/keystoregeneration.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "${KEYSTORE_GENERATION_SCRIPT} 2>&1 | tee /tmp/keystoregeneration.log" db2inst1 || exit $?
oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "mkdir -p /tmp/keystore; cp /mnt/blumeta0/home/db2inst1/migrate_hadr.p12 /tmp/keystore; chmod -R 777 /tmp/keystore" db2inst1 || exit $?
oc rsync ${DB2_NAMESPACE}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0:/tmp/keystore /tmp
oc rsync /tmp/keystore ${DB2_NAMESPACE}/c-${DB2_INSTANCE_NAME}-db2u-0:/tmp
Expand Down
Loading