#!
/bin/sh
# ==============================================================================
# IBM Information Server metadata repository user and tablespace creation for
# Oracle 12c
# Copyright (C) 2009-2017 IBM Corporation. All rights reserved.
# ==============================================================================
TRUE=0
FALSE=1
showUsage() {
echo
echo ' Usage: create_xmeta_db <OracleSystemName> <OracleSystemPassword> <ServiceName>
<XmetaUserName> <XmetaUserPassword> <XmetaTablespaceName> <XmetaDatafilePath>'
echo
echo Sample: create_xmeta_db SYSTEM MANAGER DBNAME xmetauser xmetapwd xmetaspace
/u01/app/oracle/oradata/dbname
echo
echo Parameters:
echo
echo ' <OracleSystemUser>'
echo Oracle system user to login to sqlplus with to create the tablespace and
echo user. This user must be assigned the DBA role.
echo
echo ' <OracleSystemPassword>'
echo Password for the Oracle system user.
echo
echo ' <ServiceName>'
echo Oracle TNS service name. This must be a working service name.
echo
echo ' <XmetaUserName>'
echo Name of the Oracle user to create for the metadata repository tablespace.
echo
echo ' <XmetaUserPassword>'
echo Password for the metadata repository tablespace user.
echo
echo ' <XmetaTableSpaceName>'
echo Name of the metadata repository tablespace.
echo
echo ' <XmetaDatafilePath>'
echo Location where the tablespace data files will be created. It must be an
echo ' existing path. Do not add a trailing slash or backslash ("/" or "\").'
echo
echo Example: /u01/app/oracle/oradata/dbname
echo
exit 1
isCygwin() {
case `uname` in
CYGWIN*) #cygwin-specific stuff
echo $TRUE
return $TRUE
;;
esac
echo $FALSE
return $FALSE
missingFile() {
echo
echo Required file $1 'was not found.'
exit 1
stepFailed() {
echo
echo An error occurred while $1
echo
echo See the file $2 for more information.
echo
echo CREATION FAILED >> $3
echo >> $3
exit 1
if [ "'echo -n'" = "-n" ]; then
n=""; c="\c"
else
n="-n"; c=""
fi
# Capture parameters and set the variables:
SYS_USER_NAME=$1
SYS_USER_PASSWORD=$2
SYS_SERVICE_NAME=$3
XMETA_USER_NAME=$4
XMETA_USER_PASSWORD=$5
XMETA_TABLESPACE_NAME=$6
XMETA_DATAFILE_PATH=$7
AS_SYSDBA=" AS SYSDBA"
SQLPLUS_OPTIONS=$SYS_USER_NAME/$SYS_USER_PASSWORD@$SYS_SERVICE_NAME
# ===$AS_SYSDBA
# ==============================================================================
clear
#echo $SQLPLUS_OPTIONS
if [ "$SYS_USER_NAME" = "" ];
then
showUsage
fi
if [ "$SYS_USER_PASSWORD" = "" ];
then
showUsage
fi
if [ "$XMETA_USER_NAME" = "" ];
then
showUsage
fi
if [ "$XMETA_USER_PASSWORD" = "" ];
then
showUsage
fi
if [ "$SYS_SERVICE_NAME" = "" ];
then
showUsage
fi
if [ "$XMETA_DATAFILE_PATH" = "" ];
then
showUsage
fi
if [ "$XMETA_TABLESPACE_NAME" = "" ];
then
showUsage
fi
# ==============================================================================
# ==============================================================================
# Check for expected files:
echo Checking Required files....
# ==============================================================================
STEP_DSC='Checking Required File.'
REQUIRED_FILE=create_xmeta_db_tablespace.sql
if [ ! -f $REQUIRED_FILE ];
then
missingFile $REQUIRED_FILE
fi
REQUIRED_FILE=configure_xmeta_db.sql
if [ ! -f $REQUIRED_FILE ];
then
missingFile $REQUIRED_FILE
fi
REQUIRED_FILE=create_xmeta_db_user.sql
if [ ! -f $REQUIRED_FILE ];
then
missingFile $REQUIRED_FILE
fi
# ==============================================================================
# ==============================================================================
# Echo and get confirmation if appropriate:
echo setting datafile path ...
echo
if [ `isCygwin` = $TRUE ]; then
XMETA_DATAFILE=`cygpath -w $XMETA_DATAFILE_PATH/$XMETA_TABLESPACE_NAME.dbf`
else
XMETA_DATAFILE=$XMETA_DATAFILE_PATH/$XMETA_TABLESPACE_NAME.dbf
fi
REQUIRED_FILE=$XMETA_DATAFILE_PATH
#Check if data file path is in ASM
#if data file path is in ASM it always starts with +
isASMFilePath=${XMETA_DATAFILE_PATH:0:1}
if [ "$isASMFilePath" != "+" ] && [ ! -d $REQUIRED_FILE ]
then
echo DataFilePath Error: $REQUIRED_FILE must be a valid directory which exists.
exit 1
fi
echo
echo The IBM Information Server metadata repository database will be created:
echo
echo Oracle SID : $SYS_SERVICE_NAME
echo Tablespace : $XMETA_TABLESPACE_NAME
echo Schema name : $XMETA_USER_NAME
echo Data file : $XMETA_DATAFILE
echo
echo $n 'Press [CTRL/C]; to abort or [ENTER] to continue' $c; read ans
# ==============================================================================
OUTFILE=create_xmeta_db.log
echo >> $OUTFILE
date >> $OUTFILE
echo Metadata repository database info: >> $OUTFILE
echo >> $OUTFILE
echo Oracle SID: $SYS_SERVICE_NAME >> $OUTFILE
echo Tablespace name to be created: $XMETA_TABLESPACE_NAME >> $OUTFILE
echo Schema name to be created: $XMETA_USER_NAME >> $OUTFILE
echo Data file spec: $XMETA_DATAFILE >> $OUTFILE
# ==============================================================================
# Create Oracle Metadata repository Schema
# ==============================================================================
echo Creating tablespace .....
STEP_LOG=ORACLE_XMETA_TABLESPACE.log
if [ -f $STEP_LOG ];
then
rm $STEP_LOG
fi
sqlplus -S -L $SQLPLUS_OPTIONS @create_xmeta_db_tablespace.sql $XMETA_TABLESPACE_NAME
$XMETA_DATAFILE
if [ "$?" = "1" ];
then
stepFailed 'Creating metadata repository tablespace' $STEP_LOG $OUTFILE
fi
echo Tablespace created successfully
# ==============================================================================
echo Modifying DB config
STEP_LOG=config_xmeta_db.log
if [ -f $STEP_LOG ];
then
rm $STEP_LOG
fi
sqlplus -S -L $SQLPLUS_OPTIONS @configure_xmeta_db.sql
if [ "$?" = "1" ];
then
stepFailed 'Configuring metadata repository database' $STEP_LOG $OUTFILE
fi
echo Database configuration modified successfully
# ========================================================================
echo Creating metadata repository user .....
STEP_LOG=ORACLE_XMETA_USER.log
if [ -f $STEP_LOG ];
then
rm $STEP_LOG
fi
sqlplus -S -L $SQLPLUS_OPTIONS @create_xmeta_db_user.sql $XMETA_USER_NAME
$XMETA_USER_PASSWORD $XMETA_TABLESPACE_NAME
if [ "$?" = "1" ];
then
stepFailed 'Creating metadata repository user' $STEP_LOG $OUTFILE
fi
echo User created successfully
# ==============================================================================
echo $0 completed
echo COMPLETED SUCCESSFULLY >> $OUTFILE
echo >> $OUTFILE