1. Overview

How-to-install-ODI-12cR2 에서 작성한 내용을 토대로,

All In One Script를 작성한다.

2. Descriptions

2.1 Downloads

Oracle Software Delivery Cloud 에서 Download 할 List

  • Oracle Database Standard Edition 2 12.1.0.2.0 (2.5 GB)
  • Oracle WebLogic Server 10.3.6.0.0 (1018.5 MB)
  • Oracle Data Integrator 11.1.1.9.0 (4.1 GB)
  • Oracle Fusion Middleware Repository Creation Utility 11.1.1.9.0 (561.4 MB)

2.2 DB

2.2.1 Define Envs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
## OS Env ##
unset $(env | grep ORACLE | awk -F= '{print $1}')
BASEDIR=/sw/downloads
OS_USERNAME=$(id --user --name)
OS_GROUPNAME=$(id --group --name)
OS_HOSTNAME=wls.local


## Setup OS Kernel Parameters
# ref. https://velog.io/@w10sim/오라클-데이터베이스-설치하기싱글-노드x8664
sudo cat << EOF > /etc/sysctl.conf
kernel.shmmax = 2147483648
kernel.shmall = 943719
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
sudo sysctl -p

sudo cat << EOF > /etc/security/limits.conf
${OS_USERNAME} soft nofile 1024
${OS_USERNAME} hard nofile 65536
${OS_USERNAME} soft nproc 2047
${OS_USERNAME} hard nproc 16384
${OS_USERNAME} soft stack 10240
${OS_USERNAME} hard stack 32768
${OS_USERNAME} soft memlock 3774874
${OS_USERNAME} hard memlock 3774874
EOF


## DB Env ##
DB_INSTALL_PATH=/sw/databases/oracle-12c
DB_INVENTORY_PATH=/sw/databases/inventories/12cR1

export ORACLE_BASE=${DB_INSTALL_PATH}
export ORACLE_HOME=${ORACLE_BASE}/product/12.1.0/db_home_1
export ORACLE_SID=ODI
export ORACLE_ODI_PDBNAME=${ORACLE_SID}PDB
export ORACLE_DB_GROUP=weblogic
export ORACLE_DB_PASSWORD=weblogic1
export PATH=${ORACLE_HOME}/bin:$PATH

2.2.2 Install DB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
## Move unziped file to ORACLE_HOME ##
mkdir -p ${ORACLE_HOME}
mv ${BASEDIR}/database/* ${ORACLE_HOME}


## Install DB Engine ##
cp ${ORACLE_HOME}/response/db_install.rsp ${ORACLE_HOME}/response/db_install.rsp.back
cat << EOF > ${ORACLE_HOME}/response/db_install.rsp
ORACLE_HOME=${ORACLE_HOME}
ORACLE_BASE=${ORACLE_BASE}
ORACLE_HOSTNAME=${OS_HOSTNAME}

UNIX_GROUP_NAME=${OS_USERNAME}
INVENTORY_LOCATION=${DB_INVENTORY_PATH}

SELECTED_LANGUAGES=en
DECLINE_SECURITY_UPDATES=true

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0
oracle.install.option=INSTALL_DB_SWONLY
oracle.install.db.InstallEdition=SE
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.DBA_GROUP=${ORACLE_DB_GROUP}
oracle.install.db.OPER_GROUP=${ORACLE_DB_GROUP}
oracle.install.db.BACKUPDBA_GROUP=${ORACLE_DB_GROUP}
oracle.install.db.DGDBA_GROUP=${ORACLE_DB_GROUP}
oracle.install.db.KMDBA_GROUP=${ORACLE_DB_GROUP}
EOF

${ORACLE_HOME}/runInstaller -silent -responseFile ${ORACLE_HOME}/response/db_install.rsp
sleep 10
tail -f ${DB_INVENTORY_PATH}/logs/installActions$(date +%Y-%m-%d)*.log

2.2.3 Setup Listener & DB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## Setup Listener ##
netca -silent -responseFile ${ORACLE_HOME}/response/netca.rsp


## Setup DB ##
cp ${ORACLE_HOME}/assistants/dbca/dbca.rsp ${ORACLE_HOME}/assistants/dbca/dbca.rsp.back
cat << EOF > ${ORACLE_HOME}/assistants/dbca/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "12.1.0"
OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]
GDBNAME = "GLOBAL_${ORACLE_SID}"
SID = "${ORACLE_SID}"
DATABASECONFTYPE = "SI"
CREATEASCONTAINERDATABASE = true
NUMBEROFPDBS = 1
PDBNAME = "${ORACLE_ODI_PDBNAME}"
PDBADMINPASSWORD = "${ORACLE_DB_PASSWORD}"
SYSPASSWORD = "${ORACLE_DB_PASSWORD}"
SYSTEMPASSWORD = "${ORACLE_DB_PASSWORD}"
STORAGETYPE = "FS"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1536"
EMCONFIGURATION = "NONE"
DATABASETYPE = "MULTIPURPOSE"
EOF

dbca -silent -createDatabase -responsefile ${ORACLE_HOME}/assistants/dbca/dbca.rsp

2.2.4 Tune DB as ODI requests

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## Tuning DB as ODI requests
sqlplus / as sysdba << EOF
ALTER SYSTEM SET shared_pool_size=150M SCOPE=SPFILE;
--ALTER SYSTEM SET sga_target 150M SCOPE=SPFILE;
ALTER SYSTEM SET session_cached_cursors=100 SCOPE=SPFILE;
ALTER SYSTEM SET processes=500 SCOPE=SPFILE;
ALTER SYSTEM SET open_cursors=800 SCOPE=SPFILE;
ALTER SYSTEM SET db_files=600 SCOPE=SPFILE;

ALTER SESSION SET CONTAINER = ${ORACLE_ODI_PDBNAME};
ALTER PLUGGABLE DATABASE SAVE STATE;

CONN / AS SYSDBA;
SHUTDOWN IMMEDIATE;
STARTUP;
EXIT;
EOF

2.3 RCU

2.3.1 Define Envs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
## OS Env ##
BASEDIR=/sw/downloads


## RCU Env ##
RCU_DB_HOSTNAME=wls.local        # is ORACLE_HOSTNAME
RCU_DB_PORT=1521                 # is DB Port
RCU_DB_NAME=ODIPDB               # is ORACLE_ODI_PDBNAME
RCU_DB_SYS_PASSWORD=weblogic1    # is ORACLE_DB_PASSWORD

RCU_SCHEMA_PREFIX=ODIDEV
RCU_SCHEMA_PASSWORD=schema1
RCU_SUPERVISOR_PASSWORD=supervisor1
RCU_PRODUCTION_MODE=D
RCU_WORK_REPOSITORY=WORKREP
RCU_ENCRYPTION=AES-128
RCU_MASTER_REPOSITORY_ID=001
RCU_WORK_REPOSITORY_ID=001

RCU_JDBC_DRIVER=oracle.jdbc.OracleDriver
RCU_JDBC_URL=jdbc:oracle:thin:@${RCU_DB_HOSTNAME}:${RCU_DB_PORT}/${RCU_DB_NAME}

2.3.2 Setup ODI Schema with RCU

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## Setup ODI Schema with RCU
cat << EOF > ${BASEDIR}/odi_rcu_parameters.txt
${RCU_DB_SYS_PASSWORD}
${RCU_SCHEMA_PASSWORD}
${RCU_MASTER_REPOSITORY_ID}
${RCU_SUPERVISOR_PASSWORD}
${RCU_PRODUCTION_MODE}
${RCU_WORK_REPOSITORY_ID}
${RCU_WORK_REPOSITORY}
${RCU_SCHEMA_PASSWORD}
EOF
	
${BASEDIR}/rcuHome/bin/rcu -silent -createRepository \
  -connectString ${RCU_DB_HOSTNAME}:${RCU_DB_PORT}/${RCU_DB_NAME} -dbUser SYS -dbRole SYSDBA \
  -useSamePasswordForAllSchemaUsers true \
  -schemaPrefix ${RCU_SCHEMA_PREFIX} \
  -component ODI -component IAU \
  -component OPSS < ${BASEDIR}/odi_rcu_parameters.txt

2.4 WLS

2.4.1 Install WLS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
## OS Env ##
BASEDIR=/sw/downloads
OS_USERNAME=$(id --user --name)
OS_GROUPNAME=$(id --group --name)
OS_HOSTNAME=wls.local

WLS_INSTALL_FILE=${BASEDIR}/wls1036_generic.jar
JAVA_HOME=/sw/jdk/jdk1.7.0_201

WLS_INSTALL_PATH=/sw/weblogic/11gR1
INVENTORY_PATH=/sw/weblogic/inventories/11gR1
INVENTORY_GROUP=${OS_GROUPNAME}


# (1) silent.xml
# https://docs.oracle.com/cd/E24329_01/doc.1211/e24492/silent.htm#WLSIG185
# https://oracle-base.com/articles/11g/weblogic-silent-installation-11g
# wls1036_generic.jar:lpr.xml or gpr.xml

cat << EOF > ${BASEDIR}/silent.xml
<?xml version="1.0" encoding="UTF-8"?>
<bea-installer>
 <input-fields>
  <data-value name="BEAHOME" value="${WLS_INSTALL_PATH}"/>
  <data-value name="WLS_INSTALL_DIR" value="${WLS_INSTALL_PATH}/wlserver_10.3"/>
  <!--<data-value name="COMPONENT_PATHS" value="WebLogic Server/Core Application Server|WebLogic Server/Administration Console|WebLogic Server/Web 2.0 HTTP Pub-Sub Server|WebLogic Server/WebLogic SCA|WebLogic Server/WebLogic JDBC Drivers|WebLogic Server/Third Party JDBC Drivers|WebLogic Server/WebLogic Server Clients|WebLogic Server/WebLogic Web Server Plugins"/>-->
    <data-value name="COMPONENT_PATHS" value="WebLogic Server"/>
  <data-value name="INSTALL_SHORTCUT_IN_ALL_USERS_FOLDER" value="no"/>
  <data-value name="LOCAL_JVMS" value="${JAVA_HOME}"/>
 </input-fields>
</bea-installer>
EOF


# (2) Installation
# https://docs.oracle.com/cd/E24329_01/doc.1211/e24492/silent.htm#CIHCAHGC

${JAVA_HOME}/bin/java -jar ${WLS_INSTALL_FILE} -mode=silent -silent_xml=${BASEDIR}/silent.xml

2.5 ODI

2.5.1 Define Envs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## OS Env ##
BASEDIR=/sw/downloads
OS_USERNAME=$(id --user --name)
OS_GROUPNAME=$(id --group --name)
OS_HOSTNAME=wls.local


## WLS Env ##
# https://docs.oracle.com/middleware/11119/core/ODING/ODING.pdf#page=62&zoom=100,124,846
MIDDLEWARE_HOME=${WLS_INSTALL_PATH}


## ODI Env ##
JAVA_HOME=/sw/jdk/jdk1.7.0_201
ODI_INSTALL_FILE=${BASEDIR}/Disk1/runInstaller
ODI_INSTALL_PATH=/sw/odi/11gR1
ODI_INVENTORY_PATH=/sw/odi/inventories/11gR1
ODI_INVENTORY_GROUP=${OS_GROUPNAME}

2.5.2 Install ODI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## Install ODI Engine ##
cat << EOF > ${BASEDIR}/rsp
[ENGINE]
Response File Version=1.0.0.0.0

[GENERIC]
ORACLE_HOME=${ODI_INSTALL_PATH}
MIDDLEWARE_HOME=${MIDDLEWARE_HOME}
APPSERVER_TYPE=WLS
SKIP_SOFTWARE_UPDATES=true
SPECIFY_DOWNLOAD_LOCATION=false
USE EXISTING REPOSITORY=false
SKIP REPOSITORY CREATION=true

[APPLICATIONS]
ODI_STUDIO=true
ODI_SDK=true
STANDALONE_AGENT=false
ORACLE_DATA_INTEGRATOR_J2EE_AGENT=true
ORACLE_DATA_INTEGRATOR_CONSOLE=true
ORACLE_DATA_INTEGRATOR_PUBLIC_WEB_SERVICE=true
EOF


cat << EOF > ${BASEDIR}/loc
inventory_loc=${ODI_INVENTORY_PATH}
inst_group=${ODI_INVENTORY_GROUP}
EOF

${ODI_INSTALL_FILE} -silent -responseFile ${BASEDIR}/rsp -invPtrLoc ${BASEDIR}/loc -jreLoc ${JAVA_HOME}

2.5.3 ODI Studio

ODI 11gR1 의 ODI Studio 가 Windows 10/11 에서 정상적으로 설치가 되지 않아, Windows에는 별도로 설치를 하지 않았다.

TigerVNC 를 구축 및 활용하여, ${ODI_INSTALL_PATH}/oracledi/client/odi.sh 실행하였다.

Studio 에서 Login을 위한 정보는 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
Oracle Data Integrator Connection
Login Name : Any string that you want
User : SUPERVISOR
Password : ${RCU_SUPERVISOR_PASSWORD}

Database Connection (Master Repository)
User : ${RCU_SCHEMA_PREFIX}_ODI_REPO
Password : ${RCU_SCHEMA_PASSWORD}
Driver List : Oracle JDBC Driver
Driver Name : oracle.jdbc.OracleDriver
Url : jdbc:oracle:thin:@${RCU_DB_HOSTNAME}:${RCU_DB_PORT}/${RCU_DB_NAME}

3. References

How-to-install-ODI-12cR2

https://oracle-base.com/articles/11g/odi-11g-silent-installation-on-ol7