-
Notifications
You must be signed in to change notification settings - Fork 779
Expand file tree
/
Copy pathstartup.sh
More file actions
executable file
·151 lines (110 loc) · 4.39 KB
/
Copy pathstartup.sh
File metadata and controls
executable file
·151 lines (110 loc) · 4.39 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/bin/bash
echo ""
echo "Oracle XE 11g CI/Development image"
echo "By Epic Labs, 2017 - http://www.epiclabs.io"
echo ""
echo "https://github.com/epiclabs-io/docker-oracle-xe-11g"
echo "forked from wnameless/docker-oracle-xe-11g"
echo ""
echo ""
LISTENER_ORA=/u01/app/oracle-product/11.2.0/xe/network/admin/listener.ora
TNSNAMES_ORA=/u01/app/oracle-product/11.2.0/xe/network/admin/tnsnames.ora
cp "${LISTENER_ORA}.tmpl" "$LISTENER_ORA" &&
sed -i "s/%hostname%/$HOSTNAME/g" "${LISTENER_ORA}" &&
sed -i "s/%port%/1521/g" "${LISTENER_ORA}" &&
cp "${TNSNAMES_ORA}.tmpl" "$TNSNAMES_ORA" &&
sed -i "s/%hostname%/$HOSTNAME/g" "${TNSNAMES_ORA}" &&
sed -i "s/%port%/1521/g" "${TNSNAMES_ORA}" &&
rm -rf /u01/app/oracle/product
ln -s /u01/app/oracle-product /u01/app/oracle/product #Mount database installation to the Expanded VOLUME of container
if [ ! -d /u01/app/oracle/dbs ] ; then
echo "using default configuration"
tar xf /u01/app/default-dbs.tar.gz -C /u01/app/oracle/
fi
if [ ! -d /u01/app/oracle/oradata ] ; then
echo "using default data directory"
tar xf /u01/app/default-oradata.tar.gz
fi
if [ ! -d /u01/app/oracle/admin ] ; then
echo "using default admin directory"
tar xf /u01/app/default-admin.tar.gz
fi
if [ ! -d /u01/app/oracle/fast_recovery_area ] ; then
echo "using default fast_recovery_area directory"
tar xf /u01/app/default-fast_recovery_area.tar.gz
fi
ln -s /u01/app/oracle/dbs /u01/app/oracle-product/11.2.0/xe/dbs #Link db configuration to the installation path form extended volume with DB data
chown -R oracle:dba /u01/app/oracle
service oracle-xe start
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=XE
export ORACLE_DATA=/u01/app/oracle/oradata/$ORACLE_SID
if [ ! -e "/u01/app/oracle/initialized.id" ] ; then
echo "Performing initial database setup ..."
if [ ! -z "$RELAX_SECURITY" ] ; then
echo "WARNING: Relaxing profile security with no password reuse limits, etc. Use with caution ..."
echo "CREATE PROFILE NOEXPIRY LIMIT
COMPOSITE_LIMIT UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED;" | sqlplus -s SYSTEM/oracle
echo "ALTER USER SYSTEM PROFILE NOEXPIRY;" | sqlplus -s SYSTEM/oracle
echo "ALTER USER SYS PROFILE NOEXPIRY;" | sqlplus -s SYSTEM/oracle
echo "Security relaxed."
fi
echo "Setting db_create_file_dest param..."
if ! echo "ALTER SYSTEM SET db_create_file_dest = '$ORACLE_DATA';" | sqlplus -s SYSTEM/oracle; then
echo "error setting db_create_file_dest param"
exit 1
fi
if [ -z "$ORACLE_PASSWORD" ] ; then
echo "Warning: using default password!!. Set ORACLE_PASSWORD environment variable to change it"
export ORACLE_PASSWORD="oracle";
else
echo "Setting SYS password... "
if ! echo "ALTER USER SYS IDENTIFIED BY \"$ORACLE_PASSWORD\";" | sqlplus -s SYSTEM/oracle ; then
echo "Error setting SYS password."
exit 1;
fi
echo "Setting SYSTEM password... "
if ! echo "ALTER USER SYSTEM IDENTIFIED BY \"$ORACLE_PASSWORD\";" | sqlplus -s SYSTEM/oracle ; then
echo "Error setting SYSTEM password."
exit 1;
fi
fi
touch "/u01/app/oracle/initialized.id"
fi
if [ "$ORACLE_ENABLE_XDB" = true ]; then
echo "ALTER USER XDB ACCOUNT UNLOCK;" | sqlplus -s SYSTEM/oracle
echo "ALTER USER XDB IDENTIFIED BY xdb;" | sqlplus -s SYSTEM/oracle
fi
if [ "$ORACLE_ALLOW_REMOTE" = true ]; then
echo "alter system disable restricted session;" | sqlplus -s "SYSTEM/$ORACLE_PASSWORD"
fi
if [ "$ORACLE_DISABLE_ASYNCH_IO" = true ]; then
echo "ALTER SYSTEM SET disk_asynch_io = FALSE SCOPE = SPFILE;" | sqlplus -s SYSTEM/oracle
service oracle-xe restart
fi
echo "Running startup scripts ..."
for f in /docker-entrypoint-initdb.d/*; do
[ -f "$f" ] || continue
case "$f" in
*.sh) echo "$0: running $f"; . "$f" ;;
*.sql) echo "$0: running $f"; echo "exit" | /u01/app/oracle/product/11.2.0/xe/bin/sqlplus "SYS/$ORACLE_PASSWORD" AS SYSDBA @"$f"; echo ;;
*) echo "$0: ignoring $f" ;;
esac
echo
done
echo "#########################"
echo "DATABASE IS READY TO USE!"
echo "#########################"
echo -e "\n\n Bring it on!! \n\n"
tail -fn 0 /u01/app/oracle/diag/rdbms/xe/XE/trace/alert_XE.log
echo -e '\n\nShutting down...\n\n'
service oracle-xe stop
echo -e "\nbye\n"