-
-
Save ahoy-jon/7e5aae82505cbda6432210e2133ab587 to your computer and use it in GitHub Desktop.
Reproduction https://issues.redhat.com/browse/DBZ-2679
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#docker rm dbz_oracle | |
#docker volume rm ORCL | |
docker volume create ORCL | |
docker run \ | |
--name dbz_oracle -p 1521:1521 \ | |
--env DB_DOMAIN="" \ | |
--volume ORCL:/ORCL \ | |
container-registry.oracle.com/database/enterprise:12.2.0.1-slim |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
#cat setupDbzOnOracle.sh | docker exec -i dbz_oracle bash -x | |
source /home/oracle/.bashrc | |
#sqlplus sys/Oradoc_db1 AS SYSDBA | |
set -euo pipefail | |
IFS=$'\n\t' | |
mkdir -p /u02/app/oracle/oradata/recovery_area | |
chgrp 54321 /u02/app/oracle/oradata/recovery_area | |
chown 54321 /u02/app/oracle/oradata/recovery_area | |
# Set archive log mode and enable GG replication | |
export ORACLE_SID=ORCLCDB | |
export ORACLE_PDB=ORCLPDB1 | |
export PASSWORD=Oradoc_db1 | |
echo "Enable GoldenGate replication and archive log mode" | |
sqlplus /nolog <<-EOF | |
CONNECT sys/Oradoc_db1 AS SYSDBA | |
alter system set db_recovery_file_dest_size = 5G; | |
alter system set db_recovery_file_dest = '/u02/app/oracle/oradata/recovery_area' scope=spfile; | |
alter system set enable_goldengate_replication=true; | |
shutdown immediate | |
exit; | |
EOF | |
sqlplus /nolog <<-EOF | |
CONNECT sys/Oradoc_db1 AS SYSDBA | |
startup mount | |
alter database archivelog; | |
alter database open; | |
-- Should show "Database log mode: Archive Mode" | |
archive log list | |
exit; | |
EOF | |
echo "Create XStream admin user" | |
# ALTER SESSION SET CONTAINER = CDB$ROOT; | |
sqlplus sys/Oradoc_db1@//localhost:1521/ORCLCDB as sysdba <<-EOF | |
CREATE TABLESPACE xstream_adm_tbs DATAFILE '/u02/app/oracle/oradata/ORCLCDB/xstream_adm_tbs.dbf' | |
SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; | |
ALTER SESSION SET CONTAINER = ORCLPDB1; | |
CREATE TABLESPACE xstream_adm_tbs DATAFILE '/u02/app/oracle/oradata/ORCLCDB/orclpdb1/xstream_adm_tbs.dbf' | |
SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; | |
ALTER SESSION SET CONTAINER = CDB\$ROOT; | |
CREATE USER c##xstrmadmin IDENTIFIED BY xsa | |
DEFAULT TABLESPACE xstream_adm_tbs | |
QUOTA UNLIMITED ON xstream_adm_tbs | |
CONTAINER=ALL; | |
GRANT CREATE SESSION, SET CONTAINER TO c##xstrmadmin CONTAINER=ALL; | |
BEGIN | |
DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE( | |
grantee => 'c##xstrmadmin', | |
privilege_type => 'CAPTURE', | |
grant_select_privileges => TRUE, | |
container => 'ALL' | |
); | |
END; | |
/ | |
EXIT; | |
EOF | |
#sys/Oradoc_db1@//localhost:1521/ORCLCDB as sysdba | |
echo "xstream_tbs" | |
sqlplus sys/Oradoc_db1@//localhost:1521/ORCLCDB as sysdba <<-EOF | |
CREATE TABLESPACE xstream_tbs DATAFILE '/u02/app/oracle/oradata/ORCLCDB/xstream_tbs.dbf' | |
SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; | |
ALTER SESSION SET CONTAINER = ORCLPDB1; | |
CREATE TABLESPACE xstream_tbs DATAFILE '/u02/app/oracle/oradata/ORCLCDB/orclpdb1/xstream_tbs.dbf' | |
SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED; | |
ALTER SESSION SET CONTAINER = CDB\$ROOT; | |
CREATE USER c##xstrm IDENTIFIED BY xs | |
DEFAULT TABLESPACE xstream_tbs | |
QUOTA UNLIMITED ON xstream_tbs | |
CONTAINER=ALL; | |
GRANT CREATE SESSION TO c##xstrm CONTAINER=ALL; | |
GRANT SET CONTAINER TO c##xstrm CONTAINER=ALL; | |
GRANT SELECT ON V_\$DATABASE to c##xstrm CONTAINER=ALL; | |
GRANT FLASHBACK ANY TABLE TO c##xstrm CONTAINER=ALL; | |
EXIT; | |
EOF | |
echo "create debezium test user" | |
sqlplus sys/Oradoc_db1@//localhost:1521/ORCLPDB1 as sysdba <<-EOF | |
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; | |
EOF | |
echo "create table from debezium test account" | |
sqlplus /nolog <<-EOF | |
CONN debezium/dbz@//localhost:1521/ORCLPDB1 | |
CREATE TABLE testDbzTbl(id int,name varchar2(20), CONSTRAINT testDbzTbl_pk PRIMARY KEY (id)); | |
INSERT INTO testDbzTbl (id, name) VALUES (1, 'A'); | |
EXIT; | |
EOF | |
echo "xstrmadmin + c##debezium" | |
sqlplus c##xstrmadmin/xsa@//localhost:1521/ORCLCDB <<-EOF | |
DECLARE | |
tables DBMS_UTILITY.UNCL_ARRAY; | |
schemas DBMS_UTILITY.UNCL_ARRAY; | |
BEGIN | |
tables(1) := NULL; | |
schemas(1) := 'debezium'; | |
DBMS_XSTREAM_ADM.CREATE_OUTBOUND( | |
server_name => 'dbzxout', | |
table_names => tables, | |
schema_names => schemas); | |
END; | |
/ | |
EXIT; | |
EOF | |
echo "xstrm" | |
sqlplus sys/Oradoc_db1@//localhost:1521/ORCLCDB as sysdba <<-EOF | |
BEGIN | |
DBMS_XSTREAM_ADM.ALTER_OUTBOUND( | |
server_name => 'dbzxout', | |
connect_user => 'c##xstrm'); | |
END; | |
/ | |
EXIT; | |
EOF | |
sqlplus sys/Oradoc_db1@//localhost:1521/ORCLCDB as sysdba <<-EOF | |
GRANT execute on sys.dbms_metadata to public; | |
GRANT select_catalog_role TO c##xstrm; | |
EXIT; | |
EOF | |
sqlplus sys/Oradoc_db1@//localhost:1521/ORCLPDB1 as sysdba <<- EOF | |
GRANT SELECT, UPDATE, INSERT, DELETE ON debezium.testDbzTbl TO c##xstrm; | |
EXIT; | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment