Conversation
…141) The standby/clone path of createDB.sh cannot succeed with the 23.26 dbca, for two stacked reasons: 1. dbca -createDuplicateDB prompts on stdin for the remote (primary) SYS password and then for the new database's SYS password; it ignores the -responseFile sysPassword entry and -useWalletForDBCredentials for the remote credential, so it always fails with DBT-05514. Feed both passwords via heredoc, the same pattern the TrueCache path already uses. 2. With credentials fixed, dbca then fails with DBT-16141: it now requires listener information. Pass -createListener LISTENER:1521, the same listener the -createDatabase path already creates. Verified end-to-end with database/enterprise:23.26.1.0 in plain docker: with the shipped script the standby fails in seconds with DBT-05514; with this fix dbca duplicates the primary and the instance comes up as PHYSICAL STANDBY / READ ONLY.
|
Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application. When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated. If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public. |
|
Scope update after the findings in #3109 (testing on the 23.26.3 free image at the maintainer's request):
So this PR is still relevant as-is for the repo's 23.26.1 scripts; alternatively, if the repo is going to be refreshed with the 23.26.3 script rework, only the clone-branch portion of this fix needs to be carried over there. Happy to rework the PR either way. |
|
@fmnapoli plz resolve the conflicts and sign the OCA. |
Fixes #3109.
Problem
The standby/clone path of
OracleDatabase/SingleInstance/dockerfiles/23.26.1/createDB.shcannot succeed with the 23.26dbca, for two stacked reasons:dbca -createDuplicateDBprompts on stdin for the remote (primary) SYS password and then for the new database's SYS password. It ignores thesysPassword=entry in the-responseFilethe script generates, and it ignores-useWalletForDBCredentialsfor the remote credential. Since the script feeds nothing on stdin, dbca reads EOF three times and aborts withDBT-05514within seconds.DBT-16141: it requires listener information, which the standby/clone invocations do not pass (unlike the-createDatabasepath in the same script, which passes-createListener LISTENER:1521).Full analysis and reproduction (plain docker, public
database/freeimage) in #3109.Fix
Minimal and consistent with patterns already in the file:
<<EOF ${ORACLE_PWD} ... EOF), converting the|| catchain to the[ $? -eq 0 ] || cat ... || cat ...form used there.-createListener LISTENER:1521to the two-createDuplicateDBinvocations — the same listener the-createDatabasepath creates.Verification
Executed end-to-end with
container-registry.oracle.com/database/enterprise:23.26.1.0in plain docker:ENABLE_ARCHIVELOG=true/ENABLE_FORCE_LOGGING=true; remote SYSDBA over the network verified with sqlplus.createDB.sh(STANDBY_DB=true,PRIMARY_DB_CONN_STR=<primary>:1521/ORCL,ORACLE_SID=ORCLSB): dbca duplicated the primary and the instance came up asPHYSICAL STANDBY/READ ONLY, ending withDATABASE IS READY TO USE!.DBT-05514.Note: OCA signature is in progress (evaluating individual vs. company agreement) — the OCA bot flag is expected for now.