#!/bin/bash function usage { echo "Usage: crdb -n|--name -v|--version <11.2.0.4|12.1|12.2|19|21>" } ######## # MAIN # ######## # parameter processing while [ "$1" != "" ]; do case $1 in -n | --name ) shift DB_NAME="$1" ;; -v | --version ) shift VERSION="$1" ;; * ) usage exit 1 esac shift done if [ -z "${DB_NAME}" ] || [ -z "${VERSION}" ] then usage exit -2 fi # version/template selection if [ "$VERSION" == "21" ]; then . oraenv < ${ORACLE_BASE}/dbs/init${ORACLE_SID}.ora fi if [ "$VERSION" == "19" ]; then . oraenv < ${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora fi if [ "$VERSION" == "11.2.0.4" ]; then . oraenv < ${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora fi if [ -z "${BACKUP_DIR}" ] then echo "No template found for this database version" exit -1 fi # admin directories creation mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/adump mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/pfile mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/spfile mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/divers # not automaticly created in 11.2.0.4 mkdir -p /data/${ORACLE_SID} # init and spfile creation cp ${BACKUP_DIR}/init${BACKUP_DB_NAME}PRD.ora ${ORACLE_BASE}/admin/${ORACLE_SID}/pfile/init${ORACLE_SID}.ora sed -i -r "s/${BACKUP_DB_NAME}/${DB_NAME}/" ${ORACLE_BASE}/admin/${ORACLE_SID}/pfile/init${ORACLE_SID}.ora echo ${ORACLE_SID} sqlplus /nolog <