DBZ-7439 [ci] Add Oracle 23 initialisation scripts
* Create oracle-init dir with SQL init scripts * Create init-db.sh to set default password and run init scripts * Update test.sh to run init-db.sh for oracle-23
This commit is contained in:
parent
3d22ed30a3
commit
c806a04531
@ -328,6 +328,7 @@ jobs:
|
|||||||
environments:
|
environments:
|
||||||
- variables:
|
- variables:
|
||||||
ORACLE_VERSION: 23.3.0.0
|
ORACLE_VERSION: 23.3.0.0
|
||||||
|
ORACLE_PROFILE_ARGS: "-Poracle-23 -pl debezium-connector-oracle"
|
||||||
TEST_PROFILE: oracle
|
TEST_PROFILE: oracle
|
||||||
|
|
||||||
###############################################################################################
|
###############################################################################################
|
@ -85,6 +85,7 @@ public OracleConnection(JdbcConfiguration config, ConnectionFactory connectionFa
|
|||||||
|
|
||||||
public OracleConnection(JdbcConfiguration config, ConnectionFactory connectionFactory, boolean showVersion) {
|
public OracleConnection(JdbcConfiguration config, ConnectionFactory connectionFactory, boolean showVersion) {
|
||||||
super(config, connectionFactory, QUOTED_CHARACTER, QUOTED_CHARACTER);
|
super(config, connectionFactory, QUOTED_CHARACTER, QUOTED_CHARACTER);
|
||||||
|
LOGGER.trace("JDBC connection string: " + connectionString(config));
|
||||||
this.databaseVersion = resolveOracleDatabaseVersion();
|
this.databaseVersion = resolveOracleDatabaseVersion();
|
||||||
if (showVersion) {
|
if (showVersion) {
|
||||||
LOGGER.info("Database Version: {}", databaseVersion.getBanner());
|
LOGGER.info("Database Version: {}", databaseVersion.getBanner());
|
||||||
@ -93,6 +94,7 @@ public OracleConnection(JdbcConfiguration config, ConnectionFactory connectionFa
|
|||||||
|
|
||||||
public OracleConnection(JdbcConfiguration config, boolean showVersion) {
|
public OracleConnection(JdbcConfiguration config, boolean showVersion) {
|
||||||
super(config, resolveConnectionFactory(config), QUOTED_CHARACTER, QUOTED_CHARACTER);
|
super(config, resolveConnectionFactory(config), QUOTED_CHARACTER, QUOTED_CHARACTER);
|
||||||
|
LOGGER.trace("JDBC connection string: " + connectionString(config));
|
||||||
this.databaseVersion = resolveOracleDatabaseVersion();
|
this.databaseVersion = resolveOracleDatabaseVersion();
|
||||||
if (showVersion) {
|
if (showVersion) {
|
||||||
LOGGER.info("Database Version: {}", databaseVersion.getBanner());
|
LOGGER.info("Database Version: {}", databaseVersion.getBanner());
|
||||||
|
@ -306,6 +306,11 @@ private static Configuration getDatabaseConfig(String prefix) {
|
|||||||
public static OracleConnection testConnection() {
|
public static OracleConnection testConnection() {
|
||||||
Configuration config = testConfig().build();
|
Configuration config = testConfig().build();
|
||||||
Configuration jdbcConfig = config.subset(DATABASE_PREFIX, true);
|
Configuration jdbcConfig = config.subset(DATABASE_PREFIX, true);
|
||||||
|
LOGGER.info("JDBC config: ");
|
||||||
|
for (var entry : jdbcConfig.asMap().entrySet()) {
|
||||||
|
LOGGER.info(entry.getKey() + "------" + entry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
return createConnection(config, JdbcConfiguration.adapt(jdbcConfig), false);
|
return createConnection(config, JdbcConfiguration.adapt(jdbcConfig), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
44
debezium-testing/tmt/tests/debezium/init-db.sh
Executable file
44
debezium-testing/tmt/tests/debezium/init-db.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
|
||||||
|
docker exec -d oracledb /bin/bash /opt/oracle/setPassword.sh top_secret
|
||||||
|
|
||||||
|
docker exec oracledb /bin/bash -l -c 'mkdir /opt/oracle/oradata/recovery_area'
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
docker exec -i oracledb sqlplus /nolog <<- EOF
|
||||||
|
CONNECT sys/top_secret AS SYSDBA
|
||||||
|
alter system set db_recovery_file_dest_size = 5G;
|
||||||
|
alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;
|
||||||
|
shutdown immediate
|
||||||
|
startup mount
|
||||||
|
alter database archivelog;
|
||||||
|
alter database open;
|
||||||
|
archive log list
|
||||||
|
exit;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
pushd debezium-testing/tmt/tests/debezium
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
sqlplus64 sys/top_secret@//localhost:1521/FREE as sysdba @oracle-init/log-init.sql
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
sqlplus64 sys/top_secret@//localhost:1521/FREE as sysdba @oracle-init/oracle-free-logminer-init.sql
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
sqlplus64 sys/top_secret@//localhost:1521/FREEPDB1 as sysdba @oracle-init/oracle-free-logminer-pdb.sql
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
sqlplus64 sys/top_secret@//localhost:1521/FREE as sysdba @oracle-init/oracle-init.sql
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
sqlplus64 sys/top_secret@//localhost:1521/FREEPDB1 as sysdba @oracle-init/common-user.sql
|
||||||
|
|
||||||
|
popd
|
@ -0,0 +1,7 @@
|
|||||||
|
CREATE USER debezium IDENTIFIED BY dbz;
|
||||||
|
GRANT CONNECT TO debezium;
|
||||||
|
GRANT CREATE SESSION TO debezium;
|
||||||
|
GRANT CREATE TABLE TO debezium;
|
||||||
|
GRANT CREATE SEQUENCE to debezium;
|
||||||
|
ALTER USER debezium QUOTA 100M on users;
|
||||||
|
exit;
|
@ -0,0 +1,3 @@
|
|||||||
|
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
|
||||||
|
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
|
||||||
|
exit;
|
@ -0,0 +1,2 @@
|
|||||||
|
CREATE TABLESPACE logminer_tbs DATAFILE '/opt/oracle/oradata/FREE/logminer_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
|
||||||
|
exit;
|
@ -0,0 +1,2 @@
|
|||||||
|
CREATE TABLESPACE logminer_tbs DATAFILE '/opt/oracle/oradata/FREE/FREEPDB1/logminer_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
|
||||||
|
exit;
|
@ -0,0 +1,36 @@
|
|||||||
|
CREATE USER c##dbzuser IDENTIFIED BY dbz DEFAULT TABLESPACE logminer_tbs QUOTA UNLIMITED ON logminer_tbs CONTAINER=ALL;
|
||||||
|
|
||||||
|
GRANT CREATE SESSION TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SET CONTAINER TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$DATABASE to c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT FLASHBACK ANY TABLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ANY TABLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT_CATALOG_ROLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT EXECUTE_CATALOG_ROLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ANY TRANSACTION TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT LOGMINING TO c##dbzuser CONTAINER=ALL;
|
||||||
|
|
||||||
|
GRANT CREATE TABLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT LOCK ANY TABLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT CREATE SEQUENCE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
|
||||||
|
GRANT EXECUTE ON DBMS_LOGMNR TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT EXECUTE ON DBMS_LOGMNR_D TO c##dbzuser CONTAINER=ALL;
|
||||||
|
|
||||||
|
GRANT SELECT ON V_$LOG TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$LOG_HISTORY TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$LOGMNR_LOGS TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$LOGMNR_CONTENTS TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$LOGMNR_PARAMETERS TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$LOGFILE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$ARCHIVED_LOG TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$TRANSACTION TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$VERSION TO c##dbzuser CONTAINER=ALL;
|
||||||
|
|
||||||
|
GRANT SELECT ON V_$MYSTAT TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT SELECT ON V_$STATNAME TO c##dbzuser CONTAINER=ALL;
|
||||||
|
|
||||||
|
GRANT CREATE TABLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
GRANT ALTER ANY TABLE TO c##dbzuser CONTAINER=ALL;
|
||||||
|
exit;
|
@ -27,15 +27,26 @@ elif [ "$TEST_PROFILE" = "oracle" ]
|
|||||||
then
|
then
|
||||||
source ${HOME}/install-oracle-driver.sh
|
source ${HOME}/install-oracle-driver.sh
|
||||||
export LD_LIBRARY_PATH=$ORACLE_ARTIFACT_DIR
|
export LD_LIBRARY_PATH=$ORACLE_ARTIFACT_DIR
|
||||||
|
if [ "$ORACLE_VERSION" = "23.3.0.0" ]
|
||||||
|
then
|
||||||
|
export ORACLE_HOME=/usr/lib/oracle/21/client64
|
||||||
|
export PATH=$ORACLE_HOME/bin:$PATH
|
||||||
|
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
|
||||||
|
export ORACLE_CONNECTION="-Ddatabase.dbname=FREEPDB1 -Ddatabase.pdb.name=FREEPDB1"
|
||||||
|
debezium-testing/tmt/tests/debezium/init-db.sh
|
||||||
|
fi
|
||||||
mvn clean verify -U -pl debezium-connector-oracle -am -fae \
|
mvn clean verify -U -pl debezium-connector-oracle -am -fae \
|
||||||
-Poracle-tests \
|
-Poracle-tests \
|
||||||
|
${ORACLE_PROFILE_ARGS:-} \
|
||||||
${ORACLE_ARG:-} \
|
${ORACLE_ARG:-} \
|
||||||
${EXECUTION_ARG:-} \
|
${EXECUTION_ARG:-} \
|
||||||
-Ddatabase.hostname=0.0.0.0 \
|
-Ddatabase.hostname=0.0.0.0 \
|
||||||
-Ddatabase.admin.hostname=0.0.0.0 \
|
-Ddatabase.admin.hostname=0.0.0.0 \
|
||||||
|
-Ddatabase.port=1521 \
|
||||||
-Dinstantclient.dir=${ORACLE_ARTIFACT_DIR} \
|
-Dinstantclient.dir=${ORACLE_ARTIFACT_DIR} \
|
||||||
-Dinsecure.repositories=WARN \
|
|
||||||
-Ddatabase.user="c##dbzuser" \
|
-Ddatabase.user="c##dbzuser" \
|
||||||
|
-Dinsecure.repositories=WARN \
|
||||||
|
${ORACLE_CONNECTION:-} \
|
||||||
-Papicurio
|
-Papicurio
|
||||||
elif [ "$TEST_PROFILE" = "sqlserver" ]
|
elif [ "$TEST_PROFILE" = "sqlserver" ]
|
||||||
then
|
then
|
||||||
|
Loading…
Reference in New Issue
Block a user