From acdc9b4d3f0a58b360290152ddd45e74da0dd2fe Mon Sep 17 00:00:00 2001 From: Saurabh Ahuja Date: Fri, 9 Oct 2026 07:37:02 +0000 Subject: [PATCH 1/3] Sync and modernize Oracle database images for PR 3143 --- OracleDatabase/.syncignore | 18 +- OracleDatabase/GDD/README.md | 28 + .../GDD/containerfiles/19.3.0/Containerfile | 42 +- .../GDD/containerfiles/19.3.0/Dockerfile_19c | 89 -- .../containerfiles/19.3.0/setupLinuxEnv.sh | 2 + .../GDD/containerfiles/21.3.0/Containerfile | 42 +- .../GDD/containerfiles/21.3.0/Dockerfile_21c | 85 -- .../containerfiles/21.3.0/setupLinuxEnv.sh | 2 + .../GDD/containerfiles/23.26.0/Containerfile | 58 +- .../containerfiles/23.26.0/setupLinuxEnv.sh | 2 + .../GDD/containerfiles/baseImageMetadata.sh | 60 + .../GDD/containerfiles/buildContainerImage.sh | 33 +- .../OracleConnectionManager/README.md | 47 +- .../containerfiles/12.2.0.1/Checksum | 1 - .../containerfiles/12.2.0.1/Containerfile | 91 -- .../containerfiles/12.2.0.1/checkSpace.sh | 23 - .../containerfiles/12.2.0.1/client.rsp | 106 -- .../containerfiles/12.2.0.1/cman.ora | 62 - .../containerfiles/12.2.0.1/configCMAN.sh | 164 --- .../containerfiles/12.2.0.1/functions.sh | 67 - .../12.2.0.1/installDBBinaries.sh | 55 - .../containerfiles/12.2.0.1/runOracle.sh | 79 - .../containerfiles/12.2.0.1/setupDB.sh | 32 - .../containerfiles/12.2.0.1/setupLinuxEnv.sh | 19 - .../containerfiles/18.3.0/Checksum | 1 - .../containerfiles/18.3.0/Containerfile | 91 -- .../containerfiles/18.3.0/checkSpace.sh | 23 - .../containerfiles/18.3.0/client.rsp | 106 -- .../containerfiles/18.3.0/client_install.rsp | 106 -- .../containerfiles/18.3.0/cman.ora | 62 - .../containerfiles/18.3.0/configCMAN.sh | 164 --- .../containerfiles/18.3.0/functions.sh | 67 - .../18.3.0/installDBBinaries.sh | 55 - .../containerfiles/18.3.0/runOracle.sh | 79 - .../containerfiles/18.3.0/setupDB.sh | 32 - .../containerfiles/18.3.0/setupLinuxEnv.sh | 19 - .../containerfiles/19.3.0/Containerfile | 51 +- .../containerfiles/19.3.0/Dockerfile | 89 -- .../containerfiles/19.3.0/setupLinuxEnv.sh | 2 + .../containerfiles/21.3.0/Containerfile | 52 +- .../containerfiles/21.3.0/Dockerfile | 82 -- .../containerfiles/21.3.0/setupLinuxEnv.sh | 2 + .../containerfiles/23.26.0/Containerfile | 35 +- .../containerfiles/baseImageMetadata.sh | 60 + .../containerfiles/buildContainerImage.sh | 23 +- OracleDatabase/RAC/OracleDNSServer/README.md | 20 + OracleDatabase/RAC/OracleDNSServer/README1.md | 102 -- .../containerfiles/baseImageMetadata.sh | 60 + .../containerfiles/buildContainerImage.sh | 24 +- .../containerfiles/latest/Containerfile | 30 +- .../containerfiles/latest/named.conf | 2 +- .../RAC/OracleRACStorageServer/README.md | 38 +- .../RAC/OracleRACStorageServer/README1.md | 202 --- .../containerfiles/baseImageMetadata.sh | 60 + .../containerfiles/buildContainerImage.sh | 46 +- .../containerfiles/latest/Containerfile | 16 +- .../containerfiles/latest/runOracle.sh | 25 +- .../containerfiles/latest/setupLinuxEnv.sh | 16 +- .../containerfiles/ol7/Containerfile | 27 +- .../containerfiles/ol7/checkSpace.sh | 2 +- .../containerfiles/ol7/runOracle.sh | 26 +- .../containerfiles/ol7/setupLinuxEnv.sh | 2 +- .../containerfiles/ol7/setupSudo.sh | 2 +- .../dockerfiles/12.2.0.1/Dockerfile | 61 - .../dockerfiles/12.2.0.1/checkSpace.sh | 23 - .../dockerfiles/12.2.0.1/exportfile | 1 - .../dockerfiles/12.2.0.1/runOracle.sh | 182 --- .../dockerfiles/12.2.0.1/setupLinuxEnv.sh | 19 - .../dockerfiles/12.2.0.1/setupSudo.sh | 15 - .../dockerfiles/18.3.0/Dockerfile | 61 - .../dockerfiles/18.3.0/checkSpace.sh | 23 - .../dockerfiles/18.3.0/exportfile | 1 - .../dockerfiles/18.3.0/runOracle.sh | 182 --- .../dockerfiles/18.3.0/setupLinuxEnv.sh | 19 - .../dockerfiles/18.3.0/setupSudo.sh | 15 - .../dockerfiles/19.3.0/Dockerfile | 57 - .../dockerfiles/19.3.0/checkSpace.sh | 23 - .../dockerfiles/19.3.0/exportfile | 1 - .../dockerfiles/19.3.0/runOracle.sh | 182 --- .../dockerfiles/19.3.0/setupLinuxEnv.sh | 19 - .../dockerfiles/19.3.0/setupSudo.sh | 15 - .../dockerfiles/buildDockerImage.sh | 122 -- .../dockerfiles/latest/Dockerfile | 62 - .../dockerfiles/latest/checkSpace.sh | 23 - .../dockerfiles/latest/exportfile | 1 - .../dockerfiles/latest/initsh | 10 - .../dockerfiles/latest/runOracle.sh | 124 -- .../dockerfiles/latest/setupLinuxEnv.sh | 19 - .../dockerfiles/latest/setupSudo.sh | 15 - .../OracleRealApplicationClusters/README.md | 109 +- .../OracleRealApplicationClusters/README1.md | 1194 --------------- .../containerfiles/19.3.0/Containerfile | 39 +- .../containerfiles/19.3.0/setupLinuxEnv.sh | 20 +- .../containerfiles/21.3.0/Containerfile | 40 +- .../containerfiles/21.3.0/runOracle.sh | 2 +- .../containerfiles/21.3.0/setupGrid.sh | 2 +- .../containerfiles/21.3.0/setupLinuxEnv.sh | 10 +- .../containerfiles/23.26.0/Containerfile | 37 +- .../23.26.0/installGridBinaries.sh | 2 +- .../containerfiles/23.26.0/setupGrid.sh | 1 - .../containerfiles/23.26.0/setupLinuxEnv.sh | 10 +- .../containerfiles/baseImageMetadata.sh | 60 + .../containerfiles/buildContainerImage.sh | 25 +- .../containerfiles/ociregion.sh | 23 - .../containerfiles/scripts/oracommon.py | 2 +- .../containerfiles/scripts/orasetupenv.py | 45 +- .../dockerfiles/12.2.0.1/AddNode.sh | 961 ------------ .../dockerfiles/12.2.0.1/Checksum | 2 - .../dockerfiles/12.2.0.1/DelNode.sh | 93 -- .../dockerfiles/12.2.0.1/Dockerfile | 147 -- .../dockerfiles/12.2.0.1/GridHomeCleanup.sh | 56 - .../dockerfiles/12.2.0.1/MultiNodeInstall.py | 326 ---- .../dockerfiles/12.2.0.1/OracleHomeCleanup.sh | 33 - .../dockerfiles/12.2.0.1/applyGridPatch.sh | 44 - .../dockerfiles/12.2.0.1/checkDBStatus.sh | 47 - .../dockerfiles/12.2.0.1/checkSpace.sh | 23 - .../dockerfiles/12.2.0.1/configGrid.sh | 1247 ---------------- .../dockerfiles/12.2.0.1/db_inst.rsp | 130 -- .../dockerfiles/12.2.0.1/dbca.rsp | 605 -------- .../dockerfiles/12.2.0.1/enableRAC.sh | 19 - .../dockerfiles/12.2.0.1/fixupPreq.sh | 30 - .../dockerfiles/12.2.0.1/functions.sh | 187 --- .../dockerfiles/12.2.0.1/grid.rsp | 642 -------- .../dockerfiles/12.2.0.1/grid1.rsp | 671 --------- .../dockerfiles/12.2.0.1/grid_addnode.rsp | 641 -------- .../dockerfiles/12.2.0.1/grid_inst.rsp | 641 -------- .../dockerfiles/12.2.0.1/grid_sw_inst.rsp | 668 --------- .../dockerfiles/12.2.0.1/installDBBinaries.sh | 64 - .../12.2.0.1/installGridBinaries.sh | 54 - .../dockerfiles/12.2.0.1/remoteListener.sh | 85 -- .../dockerfiles/12.2.0.1/resetOSPassword.sh | 221 --- .../dockerfiles/12.2.0.1/runOracle.sh | 127 -- .../dockerfiles/12.2.0.1/runUserScripts.sh | 68 - .../dockerfiles/12.2.0.1/setPassword.sh | 30 - .../dockerfiles/12.2.0.1/setupDB.sh | 35 - .../dockerfiles/12.2.0.1/setupGrid.sh | 39 - .../dockerfiles/12.2.0.1/setupGridEnv.sh | 282 ---- .../dockerfiles/12.2.0.1/setupLinuxEnv.sh | 20 - .../dockerfiles/12.2.0.1/setupSSH.expect | 45 - .../12.2.0.1/setupdockeroracleinit.sh | 31 - .../dockerfiles/12.2.0.1/sshUserSetup.sh | 659 --------- .../dockerfiles/12.2.0.1/stopOracle.sh | 56 - .../dockerfiles/18.3.0/AddNode.sh | 961 ------------ .../dockerfiles/18.3.0/Checksum | 2 - .../dockerfiles/18.3.0/DelNode.sh | 93 -- .../dockerfiles/18.3.0/Dockerfile | 143 -- .../dockerfiles/18.3.0/GridHomeCleanup.sh | 58 - .../dockerfiles/18.3.0/MultiNodeInstall.py | 326 ---- .../dockerfiles/18.3.0/OracleHomeCleanup.sh | 34 - .../dockerfiles/18.3.0/applyGridPatch.sh | 44 - .../dockerfiles/18.3.0/checkDBStatus.sh | 47 - .../dockerfiles/18.3.0/checkSpace.sh | 23 - .../dockerfiles/18.3.0/configGrid.sh | 1248 ---------------- .../dockerfiles/18.3.0/db_inst.rsp | 125 -- .../dockerfiles/18.3.0/dbca.rsp | 604 -------- .../dockerfiles/18.3.0/dbca1.rsp | 605 -------- .../dockerfiles/18.3.0/enableRAC.sh | 19 - .../dockerfiles/18.3.0/fixupPreq.sh | 30 - .../dockerfiles/18.3.0/functions.sh | 187 --- .../dockerfiles/18.3.0/grid.rsp | 672 --------- .../dockerfiles/18.3.0/grid1.rsp | 671 --------- .../dockerfiles/18.3.0/grid_addnode.rsp | 672 --------- .../dockerfiles/18.3.0/grid_sw_inst.rsp | 668 --------- .../dockerfiles/18.3.0/installDBBinaries.sh | 63 - .../dockerfiles/18.3.0/installGridBinaries.sh | 58 - .../dockerfiles/18.3.0/remoteListener.sh | 69 - .../dockerfiles/18.3.0/resetOSPassword.sh | 221 --- .../dockerfiles/18.3.0/runOracle.sh | 127 -- .../dockerfiles/18.3.0/runUserScripts.sh | 68 - .../dockerfiles/18.3.0/setPassword.sh | 30 - .../dockerfiles/18.3.0/setupDB.sh | 35 - .../dockerfiles/18.3.0/setupGrid.sh | 40 - .../dockerfiles/18.3.0/setupGridEnv.sh | 282 ---- .../dockerfiles/18.3.0/setupLinuxEnv.sh | 22 - .../dockerfiles/18.3.0/setupSSH.expect | 45 - .../dockerfiles/18.3.0/sshUserSetup.sh | 659 --------- .../dockerfiles/18.3.0/stopOracle.sh | 56 - .../dockerfiles/19.3.0/AddNode.sh | 976 ------------ .../dockerfiles/19.3.0/Checksum | 2 - .../dockerfiles/19.3.0/DelNode.sh | 91 -- .../dockerfiles/19.3.0/Dockerfile | 299 ---- .../dockerfiles/19.3.0/Dockerfile_orig | 132 -- .../dockerfiles/19.3.0/GridHomeCleanup.sh | 58 - .../dockerfiles/19.3.0/MultiNodeInstall.py | 326 ---- .../dockerfiles/19.3.0/MultiRACInstall.sh | 64 - .../dockerfiles/19.3.0/OracleHomeCleanup.sh | 34 - .../dockerfiles/19.3.0/README.md | 0 .../dockerfiles/19.3.0/applyGridPatch.sh | 44 - .../dockerfiles/19.3.0/checkDBStatus.sh | 47 - .../dockerfiles/19.3.0/checkSpace.sh | 23 - .../dockerfiles/19.3.0/configGrid.sh | 1257 ---------------- .../dockerfiles/19.3.0/db_inst.rsp | 125 -- .../dockerfiles/19.3.0/db_install_19cv1.rsp | 356 ----- .../dockerfiles/19.3.0/db_sw_install_19c.rsp | 45 - .../dockerfiles/19.3.0/dbca.rsp | 605 -------- .../dockerfiles/19.3.0/dbca1.rsp | 605 -------- .../dockerfiles/19.3.0/dbca_19c.rsp | 58 - .../dockerfiles/19.3.0/dbca_19cv1.rsp | 604 -------- .../dockerfiles/19.3.0/enableRAC.sh | 19 - .../dockerfiles/19.3.0/fixupPreq.sh | 30 - .../dockerfiles/19.3.0/functions.sh | 187 --- .../dockerfiles/19.3.0/grid.rsp | 672 --------- .../dockerfiles/19.3.0/grid1.rsp | 671 --------- .../dockerfiles/19.3.0/grid_addnode.rsp | 672 --------- .../19.3.0/grid_sw_install_19c.rsp | 668 --------- .../dockerfiles/19.3.0/gridsetup_19c.rsp | 63 - .../dockerfiles/19.3.0/gridsetup_19cv1.rsp | 653 --------- .../dockerfiles/19.3.0/initsh | 10 - .../dockerfiles/19.3.0/installDBBinaries.sh | 63 - .../dockerfiles/19.3.0/installGridBinaries.sh | 60 - .../dockerfiles/19.3.0/remoteListener.sh | 70 - .../dockerfiles/19.3.0/resetFailedUnits.sh | 15 - .../dockerfiles/19.3.0/resetOSPassword.sh | 241 --- .../dockerfiles/19.3.0/runOracle.sh | 127 -- .../dockerfiles/19.3.0/runUserScripts.sh | 68 - .../dockerfiles/19.3.0/sample_19c.ccf | 53 - .../dockerfiles/19.3.0/scripts | 1 - .../dockerfiles/19.3.0/setCrontab.sh | 14 - .../dockerfiles/19.3.0/setPassword.sh | 29 - .../dockerfiles/19.3.0/setupDB.sh | 35 - .../dockerfiles/19.3.0/setupGrid.sh | 39 - .../dockerfiles/19.3.0/setupGridEnv.sh | 357 ----- .../dockerfiles/19.3.0/setupLinuxEnv.sh | 23 - .../dockerfiles/19.3.0/setupSSH.expect | 45 - .../dockerfiles/19.3.0/sshUserSetup.sh | 659 --------- .../dockerfiles/19.3.0/stopOracle.sh | 56 - .../dockerfiles/19.3.0/tempfile | 0 .../dockerfiles/21.3.0/AddNode.sh | 997 ------------- .../dockerfiles/21.3.0/Checksum | 2 - .../dockerfiles/21.3.0/DelNode.sh | 91 -- .../dockerfiles/21.3.0/Dockerfile | 300 ---- .../dockerfiles/21.3.0/Dockerfile.ORG | 146 -- .../dockerfiles/21.3.0/GridHomeCleanup.sh | 59 - .../dockerfiles/21.3.0/MultiNodeInstall.py | 324 ---- .../dockerfiles/21.3.0/MultiRACInstall.sh | 73 - .../dockerfiles/21.3.0/OracleHomeCleanup.sh | 35 - .../dockerfiles/21.3.0/applyGridPatch.sh | 43 - .../dockerfiles/21.3.0/checkDBStatus.sh | 47 - .../dockerfiles/21.3.0/checkSpace.sh | 23 - .../dockerfiles/21.3.0/configGrid.sh | 1270 ---------------- .../dockerfiles/21.3.0/db_inst.rsp | 125 -- .../dockerfiles/21.3.0/db_install_21cv1.rsp | 356 ----- .../dockerfiles/21.3.0/db_sw_install_21c.rsp | 41 - .../21.3.0/db_sw_install_21cv1.rsp | 341 ----- .../dockerfiles/21.3.0/dbca.rsp | 605 -------- .../dockerfiles/21.3.0/dbca1.rsp | 605 -------- .../dockerfiles/21.3.0/dbca_21c.rsp | 59 - .../dockerfiles/21.3.0/dbca_21cv1.rsp | 613 -------- .../dockerfiles/21.3.0/enableRAC.sh | 19 - .../dockerfiles/21.3.0/fixupPreq.sh | 30 - .../dockerfiles/21.3.0/functions.sh | 187 --- .../dockerfiles/21.3.0/grid.rsp | 672 --------- .../dockerfiles/21.3.0/grid1.rsp | 671 --------- .../dockerfiles/21.3.0/grid_addnode.rsp | 672 --------- .../dockerfiles/21.3.0/grid_addnode_21c.rsp | 67 - .../21.3.0/grid_sw_install_21c.rsp | 661 --------- .../dockerfiles/21.3.0/gridsetup_21c.rsp | 67 - .../dockerfiles/21.3.0/gridsetup_21cv1.rsp | 653 --------- .../dockerfiles/21.3.0/initsh | 10 - .../dockerfiles/21.3.0/installDBBinaries.sh | 63 - .../dockerfiles/21.3.0/installGridBinaries.sh | 58 - .../dockerfiles/21.3.0/remoteListener.sh | 69 - .../dockerfiles/21.3.0/resetFailedUnits.sh | 15 - .../dockerfiles/21.3.0/resetOSPassword.sh | 239 --- .../dockerfiles/21.3.0/runOracle.sh | 123 -- .../dockerfiles/21.3.0/runUserScripts.sh | 41 - .../dockerfiles/21.3.0/scripts | 1 - .../dockerfiles/21.3.0/setCrontab.sh | 14 - .../dockerfiles/21.3.0/setPassword.sh | 29 - .../dockerfiles/21.3.0/setupDB.sh | 36 - .../dockerfiles/21.3.0/setupGrid.sh | 38 - .../dockerfiles/21.3.0/setupGridEnv.sh | 357 ----- .../dockerfiles/21.3.0/setupLinuxEnv.sh | 19 - .../dockerfiles/21.3.0/setupSSH.expect | 45 - .../dockerfiles/21.3.0/stopOracle.sh | 56 - .../dockerfiles/buildContainerImage.sh | 179 --- .../docs/CONNECTING.md | 2 +- .../docs/README_1.md | 1078 -------------- .../docs/dataguard/README.md | 1306 +++++++++++++++++ .../docs/developers/OTHERS.md | 24 +- .../docs/developers/README.md | 12 +- .../docs/orestart/README.md | 6 +- .../docs/rac-container/racimage/README.md | 4 +- .../docs/rac-container/racslimimage/README.md | 8 +- .../blockdevices/addition/podman-compose.yml | 2 +- .../extensions/README.md | 60 +- .../extensions/buildExtensions.sh | 26 +- .../extensions/sharding/Dockerfile | 1 + .../samples/applypatch/latest/Containerfile | 17 +- .../latest/patches/applyDBPatches.sh | 1 + .../latest/patches/applyGridPatches.sh | 2 +- .../samples/customracdb/12.2.0.1/dbca.rsp | 604 -------- .../customracdb/12.2.0.1/dbca_sample.rsp | 605 -------- .../samples/customracdb/12.2.0.1/grid.rsp | 639 -------- .../customracdb/12.2.0.1/grid_sample.rsp | 642 -------- .../customracdb/18.3.0/dbca_sample.rsp | 604 -------- .../customracdb/18.3.0/grid_sample.rsp | 672 --------- .../samples/rac-compose/racimage/README.md | 34 +- .../blockdevices/podman-compose.yml | 2 +- .../nfsdevices/podman-compose.yml | 2 +- .../rac-compose/racslimimage/README.md | 26 +- .../blockdevices/podman-compose.yml | 6 +- .../nfsdevices/podman-compose.yml | 8 +- .../samples/racdockercompose_1/README.md | 490 ------- .../blockdevices/docker-compose-addition.yml | 71 - .../blockdevices/docker-compose.yml | 123 -- .../nfsdevices/docker-compose-addition.yml | 72 - .../nfsdevices/docker-compose.yml | 147 -- .../samples/racpodmancompose_1/README.md | 490 ------- .../blockdevices/podman-compose-addition.yml | 77 - .../blockdevices/podman-compose.yml | 121 -- .../nfsdevices/podman-compose-addition.yml | 75 - .../nfsdevices/podman-compose.yml | 144 -- 313 files changed, 2511 insertions(+), 52329 deletions(-) delete mode 100644 OracleDatabase/GDD/containerfiles/19.3.0/Dockerfile_19c delete mode 100644 OracleDatabase/GDD/containerfiles/21.3.0/Dockerfile_21c create mode 100755 OracleDatabase/GDD/containerfiles/baseImageMetadata.sh delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Checksum delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Containerfile delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/checkSpace.sh delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/client.rsp delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/cman.ora delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/configCMAN.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/functions.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/installDBBinaries.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/runOracle.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupDB.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupLinuxEnv.sh delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Checksum delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Containerfile delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/checkSpace.sh delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client.rsp delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client_install.rsp delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/cman.ora delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/configCMAN.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/functions.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/installDBBinaries.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/runOracle.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupDB.sh delete mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupLinuxEnv.sh delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Dockerfile delete mode 100644 OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Dockerfile create mode 100755 OracleDatabase/OracleConnectionManager/containerfiles/baseImageMetadata.sh delete mode 100644 OracleDatabase/RAC/OracleDNSServer/README1.md create mode 100755 OracleDatabase/RAC/OracleDNSServer/containerfiles/baseImageMetadata.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/README1.md create mode 100755 OracleDatabase/RAC/OracleRACStorageServer/containerfiles/baseImageMetadata.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/exportfile delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/runOracle.sh delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupSudo.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/exportfile delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/runOracle.sh delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupSudo.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/exportfile delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/runOracle.sh delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupSudo.sh delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/buildDockerImage.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/exportfile delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/initsh delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/runOracle.sh delete mode 100755 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupSudo.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/README1.md create mode 100755 OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/baseImageMetadata.sh delete mode 100755 OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/ociregion.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/AddNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Checksum delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/DelNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/GridHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/MultiNodeInstall.py delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/OracleHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/applyGridPatch.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkDBStatus.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/configGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/db_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/dbca.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/enableRAC.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/fixupPreq.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/functions.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_addnode.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_sw_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installDBBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installGridBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/remoteListener.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/resetOSPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runUserScripts.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupDB.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGridEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupSSH.expect delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupdockeroracleinit.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/sshUserSetup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/stopOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/AddNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Checksum delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/DelNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/GridHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/MultiNodeInstall.py delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/OracleHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/applyGridPatch.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkDBStatus.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/configGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/db_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/enableRAC.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/fixupPreq.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/functions.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_addnode.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_sw_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installDBBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installGridBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/remoteListener.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/resetOSPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runUserScripts.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupDB.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGridEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupSSH.expect delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/sshUserSetup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/stopOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/AddNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Checksum delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/DelNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile_orig delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/GridHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiNodeInstall.py delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiRACInstall.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/OracleHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/README.md delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/applyGridPatch.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkDBStatus.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkSpace.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/configGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_install_19cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_sw_install_19c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/enableRAC.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/fixupPreq.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/functions.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_addnode.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_sw_install_19c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/initsh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installDBBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installGridBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/remoteListener.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetFailedUnits.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetOSPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runUserScripts.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sample_19c.ccf delete mode 120000 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/scripts delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setCrontab.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupDB.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGridEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupSSH.expect delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sshUserSetup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/stopOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/tempfile delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/AddNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Checksum delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/DelNode.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile.ORG delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/GridHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiNodeInstall.py delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiRACInstall.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/OracleHomeCleanup.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/applyGridPatch.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkDBStatus.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkSpace.sh delete mode 100755 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/configGrid.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_inst.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_install_21cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/enableRAC.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/fixupPreq.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/functions.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode_21c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_sw_install_21c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21c.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21cv1.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/initsh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installDBBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installGridBinaries.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/remoteListener.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetFailedUnits.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetOSPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runOracle.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runUserScripts.sh delete mode 120000 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/scripts delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setCrontab.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setPassword.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupDB.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGrid.sh delete mode 100755 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGridEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupLinuxEnv.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupSSH.expect delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/stopOracle.sh delete mode 100755 OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/buildContainerImage.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/docs/README_1.md create mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/docs/dataguard/README.md mode change 100644 => 100755 OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyDBPatches.sh delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca_sample.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid_sample.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/dbca_sample.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/grid_sample.rsp delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/README.md delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose-addition.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose-addition.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/README.md delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose-addition.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose-addition.yml delete mode 100644 OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose.yml diff --git a/OracleDatabase/.syncignore b/OracleDatabase/.syncignore index 58acb39d23..f4b843a2f3 100644 --- a/OracleDatabase/.syncignore +++ b/OracleDatabase/.syncignore @@ -2,22 +2,12 @@ OracleDatabase/SingleInstance/extensions/slimming # Do not synchronize version tracks older than 19.3.0. -OracleDatabase/GDD/containerfiles/12.2.0.1 -OracleDatabase/GDD/containerfiles/18.3.0 OracleDatabase/SingleInstance/dockerfiles/12.1.0.2 OracleDatabase/SingleInstance/dockerfiles/12.2.0.1 OracleDatabase/SingleInstance/dockerfiles/18.3.0 OracleDatabase/SingleInstance/samples/applypatch/12.1.0.2 OracleDatabase/SingleInstance/samples/applypatch/12.2.0.1 -OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1 -OracleDatabase/OracleConnectionManager/containerfiles/18.3.0 -OracleDatabase/RAC/OracleDNSServer/containerfiles/12.2.0.1 -OracleDatabase/RAC/OracleDNSServer/containerfiles/18.3.0 -OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/12.2.0.1 -OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/18.3.0 -OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1 -OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0 -OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1 -OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0 -OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1 -OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0 + +# Internal Oracle network/repository references; do not copy these artifacts to GitHub. +OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/named.rfc1912.zones +OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/crDNS diff --git a/OracleDatabase/GDD/README.md b/OracleDatabase/GDD/README.md index 58127ac31e..0fca635862 100644 --- a/OracleDatabase/GDD/README.md +++ b/OracleDatabase/GDD/README.md @@ -156,6 +156,14 @@ To view script usage: This script performs checksum validation and simplifies image creation for new users. Advanced users can run `podman build` directly with their preferred parameters. +RPM provenance is always recorded under `/usr/share/oracle/image-metadata/rpms`. +Inspect it with: + +```bash +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'ls -l /usr/share/oracle/image-metadata/rpms && cat /usr/share/oracle/image-metadata/rpms/*.txt' +``` + ### Building Database Images This repo focuses on GSM container files and deployment samples. For database image creation, use the upstream Oracle image guides: @@ -201,3 +209,23 @@ Unless otherwise noted, the scripts and files in this project and the related `d Copyright (c) 2022 - 2024 Oracle and/or its affiliates. Released under the Universal Permissive License v1.0 as shown at [https://oss.oracle.com/licenses/upl/](https://oss.oracle.com/licenses/upl/) + + +## Base image provenance + +The GSM build wrapper resolves the selected base image to a sha256 digest and +passes `BASE_IMAGE`, `BASE_IMAGE_REF`, and `BASE_IMAGE_DIGEST` to the +build. The image exposes the source reference and digest as OCI labels and +writes the direct-base record to: + +``` +/usr/share/oracle/image-metadata/base-image-chain.json +``` + +Inspect an image with: + +``` +podman image inspect IMAGE --format '{{json .Config.Labels}}' +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'cat /usr/share/oracle/image-metadata/base-image-chain.json' +``` diff --git a/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile b/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile index 8c3ec238be..ca9d6c273a 100644 --- a/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile @@ -1,13 +1,14 @@ +# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2018,2021 Oracle and/or its affiliates. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle GSM 19c Release to build the container image +# This is the Containerfile for Oracle GSM 19c Release to build the container image # MAINTAINER # -# This is the Dockerfile for Oracle GSM 19c +# This is the Containerfile for Oracle GSM 19c # # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- @@ -17,18 +18,31 @@ # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile +# Put all downloaded files in the same directory as this Containerfile # Run: -# $ docker build -t oracle/gsm:19.3.0 . +# $ podman build -t oracle/gsm:19.3.0 . # # Pull base image # --------------- -ARG BASE_OL_IMAGE=oraclelinux:7-slim +ARG BASE_IMAGE=oraclelinux:7-slim +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_DIGEST=unknown # Pull base image # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" ARG VERSION # Labels @@ -120,6 +134,22 @@ RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ ############################################# FROM base +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; COPY --from=builder /u01 /u01 diff --git a/OracleDatabase/GDD/containerfiles/19.3.0/Dockerfile_19c b/OracleDatabase/GDD/containerfiles/19.3.0/Dockerfile_19c deleted file mode 100644 index 49374fb8d9..0000000000 --- a/OracleDatabase/GDD/containerfiles/19.3.0/Dockerfile_19c +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2020, Oracle Corporation and/or affiliates. All rights reserved. -# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl -# MAINTAINER -# -# This is the Dockerfile for Oracle Database 19c -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_193000_gsm.zip -# Download Oracle Database 19c GSM Software -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/gsm:19.3.0 . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim as base - -# Maintainer -# ---------- -MAINTAINER Paramdeep Saini - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -ENV GSM_BASE="/u01/app/oracle" \ - GSM_HOME="/u01/app/oracle/product/19c/gsmhome_1" \ - INVENTORY="/u01/app/oracle/oraInventory" \ - INSTALL_DIR="/opt/oracle/scripts" \ - INSTALL_FILE_1="LINUX.X64_193000_gsm.zip" \ - INSTALL_RSP="19c_gsm_install.rsp" \ - RUN_FILE="runOracle.sh" \ - SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - INSTALL_GSM_BINARIES_FILE="installGSMBinaries.sh" \ - GSM_SETUP_FILE="setupOshardEnv.sh" \ - GSM_ENV_SETUP_FILE="setupGSM.sh" \ - GSM_SCRIPTS="scripts" - MAINPY="main.py" \ -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - ORACLE_HOME=$GSM_HOME \ - ORACLE_BASE=$GSM_BASE \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - GSM_PATH=$GSM_HOME/bin:/usr/sbin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib - - -# Copy files needed during both installation and runtime -# ------------ -COPY $INSTALL_FILE_1 $SETUP_LINUX_FILE $CHECK_SPACE_FILE $INSTALL_RSP $GSM_ENV_SETUP_FILE $INSTALL_GSM_BINARIES_FILE $GSM_SETUP_FILE $INSTALL_DIR/install/ -COPY $RUN_FILE $GSM_SETUP_FILE $USER_SCRIPTS_FILE $INSTALL_DIR/sharding -COPY $GSM_SCRIPTS $INSTALL_DIR/sharding/scripts - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $GSM_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ - rm -f /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - rm -f $INSTALL_DIR/install/* && \ - chown -R oracle:oinstall $SCRIPT_DIR && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - sync - -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 - -VOLUME ["$GSM_BASE/oradata"] - -HEALTHCHECK --interval=1m --start-period=10m \ - CMD "$INSTALL_DIR/sharding/scripts/MAINPY" >/dev/null || exit 1 - -# Define default command to start Oracle Database. -CMD exec $INSTALL_DIR/startup/$RUN_FILE diff --git a/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh b/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh index 8fd641d807..3304ab3252 100755 --- a/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh @@ -6,6 +6,8 @@ # # ------------------------------------------------------------ +dnf update -y && \ +dnf clean all && \ chmod ug+x $SCRIPT_DIR/*.sh && \ yum -y install oracle-database-preinstall-19c net-tools which zip unzip tar openssl openssh-server openssh-client vim-minimal which vim-minimal passwd sudo python36 && \ yum clean all diff --git a/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile b/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile index 0f5e347131..fe5e8b8194 100644 --- a/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile @@ -1,13 +1,14 @@ +# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2018,2021 Oracle and/or its affiliates. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle GSM 21c Release 3 to build the container image +# This is the Containerfile for Oracle GSM 21c Release 3 to build the container image # MAINTAINER # -# This is the Dockerfile for Oracle GSM 21c +# This is the Containerfile for Oracle GSM 21c # # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- @@ -17,18 +18,31 @@ # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile +# Put all downloaded files in the same directory as this Containerfile # Run: -# $ docker build -t oracle/gsm:21.3.0 . +# $ podman build -t oracle/gsm:21.3.0 . # # Pull base image # --------------- -ARG BASE_OL_IMAGE=oraclelinux:7-slim +ARG BASE_IMAGE=oraclelinux:7-slim +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_DIGEST=unknown # Pull base image # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" ARG VERSION # Labels @@ -120,6 +134,22 @@ RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ ############################################# FROM base +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; COPY --from=builder /u01 /u01 diff --git a/OracleDatabase/GDD/containerfiles/21.3.0/Dockerfile_21c b/OracleDatabase/GDD/containerfiles/21.3.0/Dockerfile_21c deleted file mode 100644 index 37f8fbaa60..0000000000 --- a/OracleDatabase/GDD/containerfiles/21.3.0/Dockerfile_21c +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 2020, Oracle Corporation and/or affiliates. All rights reserved. -# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl -# MAINTAINER -# -# This is the Dockerfile for Oracle Database 21 -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_213000_gsm.zip -# Download Oracle Database 21c GSM Software -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/gsm:21.3.0 . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim as base - -# Maintainer -# ---------- -MAINTAINER Paramdeep Saini - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -ENV GSM_BASE="/u01/app/oracle" \ - GSM_HOME="/u01/app/oracle/product/21c/gsmhome_1" \ - INVENTORY="/u01/app/oraInventory" \ - INSTALL_DIR="/opt/scripts" \ - INSTALL_FILE_1="LINUX.X64_213000_gsm.zip" \ - INSTALL_RSP="21c_gsm_install.rsp" \ - RUN_FILE="runOracle.sh" \ - SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - INSTALL_GSM_BINARIES_FILE="installGSMBinaries.sh" \ - GSM_SETUP_FILE="setupOshardEnv.sh" \ - GSM_ENV_SETUP_FILE="setupGSM.sh" \ - GSM_SCRIPTS="scripts" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - ORACLE_HOME=$GSM_HOME \ - ORACLE_BASE=$GSM_BASE \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - GSM_PATH=$GSM_HOME/bin:/usr/sbin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib - - -# Copy files needed during both installation and runtime -# ------------ -COPY $INSTALL_FILE_1 $SETUP_LINUX_FILE $CHECK_SPACE_FILE $INSTALL_RSP $GSM_ENV_SETUP_FILE $INSTALL_GSM_BINARIES_FILE $GSM_SETUP_FILE $INSTALL_DIR/install/ -COPY $RUN_FILE $GSM_SETUP_FILE $USER_SCRIPTS_FILE $INSTALL_DIR/startup/ -COPY $GSM_SCRIPTS $INSTALL_DIR/startup/scripts - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $GSM_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ - rm -f /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - rm -f $INSTALL_DIR/install/* && \ - chown -R oracle:oinstall $SCRIPT_DIR && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - sync - -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 - -VOLUME ["$GSM_BASE/oradata"] - -# Define default command to start Oracle Database. -CMD exec $INSTALL_DIR/startup/$RUN_FILE diff --git a/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh b/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh index 17db98fd9b..7adbb4d689 100755 --- a/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh @@ -9,6 +9,8 @@ # # Copyright (c) 2020,2021 Oracle and/or its affiliates. # +dnf update -y && \ +dnf clean all && \ chmod ug+x $SCRIPT_DIR/*.sh && \ yum -y install oracle-database-preinstall-21c net-tools which zip unzip tar openssl openssh-server openssh-client vim-minimal which vim-minimal passwd sudo && \ yum clean all diff --git a/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile b/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile index d26ad8eed2..16fc088487 100644 --- a/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile @@ -1,13 +1,14 @@ +# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2018,2026 Oracle and/or its affiliates. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle GSM 23.26ai to build the container image +# This is the Containerfile for Oracle GSM 23.26ai to build the container image # MAINTAINER # -# This is the Dockerfile for Oracle GSM 23.26ai +# This is the Containerfile for Oracle GSM 23.26ai # # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- @@ -17,18 +18,31 @@ # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile +# Put all downloaded files in the same directory as this Containerfile # Run: -# $ docker build -t oracle/gsm:23.26.0 . +# $ podman build -t oracle/gsm:23.26.0 . # ARG SLIMMING=false -ARG BASE_OL_IMAGE=oraclelinux:9 +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown # Pull base image # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" ARG SLIMMING=false ARG VERSION @@ -37,7 +51,7 @@ ARG VERSION LABEL "provider"="Oracle" \ "issues"="https://github.com/oracle/docker-images/issues" \ "volume.setup.location1"="/opt/oracle/scripts" \ - "port.listener"="1522" + "port.listener"="1522" # Argument to control removal of components not needed after db software installation @@ -78,7 +92,7 @@ ENV GSM_BASE="/u01/app/oracle" \ ORACOMMON="oracommon.py" \ DEMOAPPSQL="demoapp.sql" \ RUNORASHARD="runOraShardSetup.sh" \ - CHECKLIVENESS="checkLiveness.sh" + CHECKLIVENESS="checkLiveness.sh" # Use second ENV so that variable get substituted # hadolint ignore=DL3044 ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ @@ -88,8 +102,8 @@ ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ PATH=/bin:/usr/bin:/sbin:/usr/sbin \ GSM_PATH=$GSM_HOME/bin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib - + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib + ############################################# # ------------------------------------------- # Start new stage for slim image @@ -185,12 +199,12 @@ USER ${USER} # hadolint ignore=SC2086 RUN if [ "${SLIMMING}x" != 'truex' ]; then \ chmod 755 $INSTALL_SCRIPTS/*.sh && \ - :;\ + :;\ fi USER ${GSM_USER} RUN if [ "${SLIMMING}x" != 'truex' ]; then \ "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ - :;\ + :;\ fi USER ${USER} @@ -199,8 +213,8 @@ RUN if [ "${SLIMMING}x" != 'truex' ]; then \ $INVENTORY/orainstRoot.sh && \ $GSM_HOME/root.sh && \ rm -rf $INSTALL_DIR/install && \ - :;\ - fi + :;\ + fi #RUN if [ "${SLIMMING}x" == 'truex' ]; then \ # mkdir /u01 && \ @@ -218,6 +232,22 @@ RUN rm -f $INSTALL_DIR/install/* && \ ############################################# # hadolint ignore=DL3006,DL3025 FROM gsm-image-slim-${SLIMMING} AS final +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; COPY --from=builder /u01 /u01 # hadolint ignore=SC2086 diff --git a/OracleDatabase/GDD/containerfiles/23.26.0/setupLinuxEnv.sh b/OracleDatabase/GDD/containerfiles/23.26.0/setupLinuxEnv.sh index 52db9fbf1a..8a81889e2d 100755 --- a/OracleDatabase/GDD/containerfiles/23.26.0/setupLinuxEnv.sh +++ b/OracleDatabase/GDD/containerfiles/23.26.0/setupLinuxEnv.sh @@ -9,6 +9,8 @@ # # Copyright (c) 2020,2026 Oracle and/or its affiliates. # +dnf update -y && \ +dnf clean all && \ if grep -q "Oracle Linux Server release 9" /etc/oracle-release; then \ dnf -y install oracle-ai-database-preinstall-26ai && \ diff --git a/OracleDatabase/GDD/containerfiles/baseImageMetadata.sh b/OracleDatabase/GDD/containerfiles/baseImageMetadata.sh new file mode 100755 index 0000000000..9a789df87c --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/baseImageMetadata.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# Resolve and export reproducible base-image build arguments for image wrappers. +# Call resolve_base_image_metadata VERSION DEFAULT_IMAGE BUILD_OPTIONS. +resolve_base_image_metadata() { + local version="$1" + local default_image="$2" + local build_options="${3:-}" + local token previous="" input="" ref="" digest="" repo_digest="" repository + + # Keep the SIDB base-image defaults consistent for supported ARM builds. + if [[ -z "${default_image}" && "${HOSTTYPE:-}" == "aarch64" && "${version}" != "26.0.0" ]]; then + default_image="oraclelinux:8" + fi + + for token in ${build_options}; do + if [[ "${token}" == BASE_IMAGE=* || "${token}" == BASE_OL_IMAGE=* ]]; then + input="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_REF=* ]]; then + ref="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_DIGEST=* ]]; then + digest="${token#*=}" + elif [[ "${previous}" == "--build-arg" ]]; then + case "${token}" in + BASE_IMAGE=*|BASE_OL_IMAGE=*) input="${token#*=}" ;; + BASE_IMAGE_REF=*) ref="${token#*=}" ;; + BASE_IMAGE_DIGEST=*) digest="${token#*=}" ;; + esac + fi + previous="${token}" + done + + input="${input:-${default_image}}" + ref="${ref:-${input}}" + if [[ -z "${digest}" && "${input}" == *@sha256:* ]]; then + digest="${input##*@}" + fi + + if [[ -z "${digest}" ]]; then + echo "Resolving base image digest for ${input} ..." + "${CONTAINER_RUNTIME:-docker}" pull "${input}" || return 1 + repo_digest="$("${CONTAINER_RUNTIME:-docker}" image inspect --format '{{index .RepoDigests 0}}' "${input}" 2>/dev/null || true)" + [[ "${repo_digest}" == *@sha256:* ]] || { + echo "ERROR: no repository digest returned for ${input}" >&2 + return 1 + } + digest="${repo_digest##*@}" + fi + [[ "${digest}" == sha256:* ]] || { + echo "ERROR: BASE_IMAGE_DIGEST must be a sha256 digest, got ${digest}" >&2 + return 1 + } + + repository="${input%@*}" + [[ "${repository##*/}" == *:* ]] && repository="${repository%:*}" + BASE_IMAGE_BUILD_ARGS="--build-arg BASE_IMAGE=${repository}@${digest} --build-arg BASE_OL_IMAGE=${repository}@${digest} --build-arg BASE_IMAGE_REF=${ref} --build-arg BASE_IMAGE_DIGEST=${digest}" + export BASE_IMAGE_BUILD_ARGS + echo "Base image reference: ${ref}" + echo "Base image digest: ${digest}" +} diff --git a/OracleDatabase/GDD/containerfiles/buildContainerImage.sh b/OracleDatabase/GDD/containerfiles/buildContainerImage.sh index 94c2928e69..90d980c4cf 100755 --- a/OracleDatabase/GDD/containerfiles/buildContainerImage.sh +++ b/OracleDatabase/GDD/containerfiles/buildContainerImage.sh @@ -10,6 +10,19 @@ # Copyright (c) 2014,2024 Oracle and/or its affiliates. # +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# shellcheck source=/dev/null +source "${SCRIPT_DIR}/baseImageMetadata.sh" + +checkContainerRuntime() { + CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + CONTAINER_RUNTIME=$(which docker 2>/dev/null) || + { + echo "No docker or podman executable found in your PATH" + exit 1 + } +} + usage() { cat << EOF @@ -56,7 +69,7 @@ if [ "$#" -eq 0 ]; then fi # Parameters -VERSION="12.2.0.1" +VERSION="19.3.0" SKIPMD5=0 DOCKEROPS="" IMAGE_NAME="" @@ -108,6 +121,18 @@ fi echo "Container Image set to : ${IMAGE_NAME}" +if [ "${VERSION%%.*}" -ge 19 ]; then + BUILD_FILE="Containerfile" +else + BUILD_FILE="Dockerfile" +fi + +# Resolve the digest before building the selected GSM version. +checkContainerRuntime +if [[ "${VERSION}" == 19.* || "${VERSION}" == 21.* ]]; then BASE_IMAGE_DEFAULT="oraclelinux:7-slim"; else BASE_IMAGE_DEFAULT="oraclelinux:9"; fi +resolve_base_image_metadata "${VERSION}" "${BASE_IMAGE_DEFAULT}" "${DOCKEROPS}" +DOCKEROPS="${DOCKEROPS} ${BASE_IMAGE_BUILD_ARGS}" + # Go into version folder # cd "$VERSION" || exit @@ -117,8 +142,8 @@ else echo "Ignored MD5 checksum." fi echo "==========================" -echo "DOCKER info:" -docker info +echo "${CONTAINER_RUNTIME} info:" +"${CONTAINER_RUNTIME}" info echo "==========================" # Proxy settings @@ -152,7 +177,7 @@ echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date '+%s') # shellcheck disable=SC2086 -docker build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" -t ${IMAGE_NAME} -f "${VERSION}"/Containerfile . || { +"${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" -t ${IMAGE_NAME} -f "${VERSION}/${BUILD_FILE}" . || { echo "There was an error building the image." exit 1 } diff --git a/OracleDatabase/OracleConnectionManager/README.md b/OracleDatabase/OracleConnectionManager/README.md index 7dded1324c..7227d99d37 100644 --- a/OracleDatabase/OracleConnectionManager/README.md +++ b/OracleDatabase/OracleConnectionManager/README.md @@ -18,6 +18,26 @@ This guide provides information about example container build files that you can - [Copyright](#copyright) ## How to build and run Oracle Connection Manager in Containers + +### 19c Oracle Linux and Podman requirements + +When CMAN is used with Oracle RAC on Podman, follow the Oracle RAC Podman host and software requirements. The `19.3.0` directory can be used to build a 19c CMAN base image on Oracle Linux 8, but an unpatched 19.3.0 image is not the supported RAC deployment level. Apply the required RU before setting up the RAC environment. + +| Platform | RAC software level when CMAN is used with RAC | Podman | Container image | Podman host | Required kernel | +|----------|-----------------------------------------------|--------|-----------------|-------------|-----------------| +| Oracle Linux 8 x86-64 | GI 19c and Database 19c, RU 19.16 or later | 4.0.2 or later | `oraclelinux:8` | Oracle Linux 8.5 or later updates | UEKR6 or UEKR7; the documentation example uses `5.4.17-2136.300.7.el8uek.x86_64` | +| Oracle Linux 9 x86-64 | GI 19c and Database 19c, RU 19.28 or later; apply patch 34436514 to the 19.28 Database home | 4.5 or later | `oraclelinux:9` | Oracle Linux 9.5 or later updates | UEKR7, minimum `5.15.0-305.176.4.el9uek.x86_64`, and later UEKR7 updates | +| Oracle Linux 8 ARM | GI 19c and Database 19c, RU 19.19 or later | 4.0.2 or later | `oraclelinux:8` | Oracle Linux 8.7 or later updates | UEKR7, minimum `5.15.0-100.96.32.el8uek.aarch64`, and later UEKR7 updates | + +The kernel requirement applies to the Podman host, not the container. Verify it with: + +```bash +uname -r +podman --version +``` + +These requirements describe the RAC deployment that CMAN connects to; they do not change the CMAN image build command or replace the CMAN installation media requirements below. + This project offers example container images under these version folders: | Folder | Use for | @@ -25,8 +45,6 @@ This project offers example container images under these version folders: | `23.26.0` | All 23.26.* CMAN builds (dbInstall maps `23.26` → `23.26.0`) | | `21.3.0` | 21c client/CMAN | | `19.3.0` | 19c client/CMAN (use zip build-arg for later 19 RUs) | -| `18.3.0` | 18c client/CMAN | -| `12.2.0.1` | 12c R2 client/CMAN | Default install media for `23.26.0` is `LINUX.X64_2326100_client_cman_home.zip` (SHA256 in `23.26.0/Checksum`). @@ -215,3 +233,28 @@ All scripts and files hosted in this repository which are required to build the ## Copyright Copyright (c) 2014-2026 Oracle and/or its affiliates. + + +## Base image provenance + +Build wrappers resolve the selected base image to a sha256 digest and pass +`BASE_IMAGE`, `BASE_IMAGE_REF`, and `BASE_IMAGE_DIGEST` to the build. +The resulting image exposes the source reference and digest as OCI labels and +writes the direct-base record to: + +``` +/usr/share/oracle/image-metadata/base-image-chain.json +``` + +Inspect an image with: + +``` +podman image inspect IMAGE --format '{{json .Config.Labels}}' +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'cat /usr/share/oracle/image-metadata/base-image-chain.json' + +RPM provenance is always recorded under `/usr/share/oracle/image-metadata/rpms`. +Inspect it with: +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'ls -l /usr/share/oracle/image-metadata/rpms && cat /usr/share/oracle/image-metadata/rpms/*.txt' +``` diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Checksum b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Checksum deleted file mode 100644 index 567e12f059..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Checksum +++ /dev/null @@ -1 +0,0 @@ -911a691fef37786ef7fffd00c5ed64b2 linuxx64_12201_client.zip diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Containerfile b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Containerfile deleted file mode 100644 index e50aaed4ad..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/Containerfile +++ /dev/null @@ -1,91 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Connection Manager -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) linuxx64_12201_client.zip (64-bit) -# Oracle Database 12c Release 2 Client (12.2.0.1.0) for Linux x86-64 -# Download Oracle Connection Manager as part of the Oracle Database Client -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/cman:12.2.0.1 . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -# hadolint ignore=DL4000 -MAINTAINER Sanjay Singh (Sanjay.Singh@oracle.com), Paramdeep Saini (paramdeep.saini@oracle.com) - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - INVENTORY=/u01/app/oraInventory \ - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/12.2.0/client_1 \ - INSTALL_FILE_1="linuxx64_12201_client.zip" \ - DB_INSTALL_RSP="client.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - RUN_FILE="runOracle.sh" \ - CONFIG_CMAN_FILE="configCMAN.sh" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - CMANORA="cman.ora" \ - FUNCTIONS="functions.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - container="true" -# Use second ENV so that variable get substituted -# hadolint ignore=DL3044 -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# Grid Binaries -COPY $INSTALL_FILE_1 $SETUP_LINUX_FILE $CHECK_SPACE_FILE $CLIENT_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/install/ - -COPY $RUN_FILE $CMANORA $CONFIG_CMAN_FILE $FUNCTIONS $INSTALL_DIR/startup/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE - -# Install DB software binaries -USER oracle -RUN $INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE - -USER root -RUN $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ - rm -f /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf && \ - chown -R oracle:oinstall $SCRIPT_DIR && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.ora && \ - sync - -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 5500 - -# Define default command to start Oracle Database. -# hadolint ignore=DL3025 -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/checkSpace.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/checkSpace.sh deleted file mode 100755 index 175a3a0f26..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=6 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/client.rsp b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/client.rsp deleted file mode 100644 index bf12086663..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/client.rsp +++ /dev/null @@ -1,106 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2017. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -############################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_clientinstall_response_schema_v12.2.0 - -#------------------------------------------------------------------------------- -# Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME=oinstall -#------------------------------------------------------------------------------- -# Inventory location. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### -#------------------------------------------------------------------------------- -# Complete path of the Oracle Home -#------------------------------------------------------------------------------- -ORACLE_HOME=###DB_HOME### - -#------------------------------------------------------------------------------- -# Complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###DB_BASE### - -#------------------------------------------------------------------------------ -#Name : INSTALL_TYPE -#Datatype : String -#Description: Installation type of the component. -# -# The following choices are available. The value should contain -# only one of these choices. -# - InstantClient -# - Administrator -# - Runtime -# - Custom -# -#Example : INSTALL_TYPE = Administrator -#------------------------------------------------------------------------------ -oracle.install.client.installType=Custom - -#------------------------------------------------------------------------------- -# Name : oracle.install.client.customComponents -# Datatype : StringList -# -# This property is considered only if INSTALL_TYPE is set to "Custom" -# -# Description: List of Client Components you would like to install -# -# The following choices are available. You may specify any -# combination of these choices. The components you choose should -# be specified in the form "internal-component-name:version" -# Below is a list of components you may specify to install. -# -# oracle.sqlj:12.2.0.1.0 -- "Oracle SQLJ" -# oracle.rdbms.util:12.2.0.1.0 -- "Oracle Database Utilities" -# oracle.javavm.client:12.2.0.1.0 -- "Oracle Java Client" -# oracle.sqlplus:12.2.0.1.0 -- "SQL*Plus" -# oracle.dbjava.jdbc:12.2.0.1.0 -- "Oracle JDBC/THIN Interfaces" -# oracle.ldap.client:12.2.0.1.0 -- "Oracle Internet Directory Client" -# oracle.rdbms.oci:12.2.0.1.0 -- "Oracle Call Interface (OCI)" -# oracle.precomp:12.2.0.1.0 -- "Oracle Programmer" -# oracle.xdk:12.2.0.1.0 -- "Oracle XML Development Kit" -# oracle.network.aso:12.2.0.1.0 -- "Oracle Advanced Security" -# oracle.oraolap.mgmt:12.2.0.1.0 -- "OLAP Analytic Workspace Manager and Worksheet" -# oracle.network.client:12.2.0.1.0 -- "Oracle Net" -# oracle.network.cman:12.2.0.1.0 -- "Oracle Connection Manager" -# oracle.network.listener:12.2.0.1.0 -- "Oracle Net Listener" -# oracle.ordim.client:12.2.0.1.0 -- "Oracle Multimedia Client Option" -# oracle.odbc:12.2.0.1.0 -- "Oracle ODBC Driver" -# oracle.has.client:12.2.0.1.0 -- "Oracle Clusterware High Availability API" -# oracle.dbdev:12.2.0.1.0 -- "Oracle SQL Developer" -# oracle.rdbms.scheduler:12.2.0.1.0 -- "Oracle Scheduler Agent" -# -# Example : oracle.install.client.customComponents="oracle.precomp:12.2.0.1.0","oracle.oraolap.mgmt:12.2.0.1.0","oracle.rdbms.scheduler:12.2.0.1.0" -#------------------------------------------------------------------------------- -oracle.install.client.customComponents=oracle.sqlplus:12.2.0.1.0,oracle.network.client:12.2.0.1.0,oracle.network.cman:12.2.0.1.0,oracle.network.listener:12.2.0.1.0 - -#------------------------------------------------------------------------------- -# Host name to be used for by the Oracle Scheduler Agent. -# This needs to be entered in case oracle.rdbms.scheduler is selected in the -# list of custom components during custom install -# -# Example : oracle.install.client.schedulerAgentHostName = acme.domain.com -#------------------------------------------------------------------------------ -oracle.install.client.schedulerAgentHostName= - -#------------------------------------------------------------------------------ -# Port number to be used for by the Oracle Scheduler Agent. -# This needs to be entered in case oracle.rdbms.scheduler is selected in the -# list of custom components during custom install -# -# Example: oracle.install.client.schedulerAgentPortNumber = 1500 -#------------------------------------------------------------------------------ -oracle.install.client.schedulerAgentPortNumber= diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/cman.ora b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/cman.ora deleted file mode 100644 index ae3ae0f6a5..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/cman.ora +++ /dev/null @@ -1,62 +0,0 @@ -###################################################################### -# -# Copyright (c) 2001,2002, Oracle Corporation. All rights reserved. -# -# NAME -# cman.ora -# -# DESCRIPTION -# Sample CMAN configuration file that the user can modify for their -# own use. -# -# NOTES -# 1. Change to your fully qualified hostname -# 2. Change to the listening port number -# 3. Change and to your log and trace directories -# -# MODIFIED (MM/DD/YYYY) -# asankrut 10/05/2002 - Added Rule List Specifications -# asankrut 06/11/2002 - Modified to add new parameters; added comments. -# asankrut 12/31/2001 - Creation. -# -###################################################################### - -# CMAN Alias -CMAN_###CMAN_HOSTNAME###.###DOMAIN### = -(configuration= - # Listening address of the cman - (address=(protocol=tcp)(host=###CMAN_HOSTNAME###.###DOMAIN###)(port=###PORT###)) - # Configuration parameters of this CMAN - (parameter_list = - # Need authentication for connection? - # Valid values: boolean values for on/off - (connection_statistics=yes) - (log_directory=###DB_HOME###/network/log) - (log_level=USER) - (trace_directory=###DB_HOME###/network/trace) - (trace_level=USER) - (valid_node_checking_registration=on) - (registration_invited_nodes=*) - ) - - # Rule list - - # Rule Specification: - # src = Source of connection; '*' for 'ANY' - # dst = Destination of connection; '*' for 'ANY' - # srv = Service of connection; '*' for 'ANY' - # act = Action: 'accept', 'reject' or 'drop' - - # Action List Specification: - # aut = aso_authentication_filter - # moct = outbound_connect_timeout - # mct = session_timeout - # mit = idle_timeout - # conn_stats = connect_statistics - (rule_list= - (rule= - (src=*)(dst=*)(srv=*)(act=accept) - (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on)) - ) - ) -) diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/configCMAN.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/configCMAN.sh deleted file mode 100755 index b857e4a292..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/configCMAN.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Configure and setup CMAN -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -source /tmp/envfile - -source $SCRIPT_DIR/functions.sh - -####################### Constants ################# -# shellcheck disable=SC2034 -declare -r FALSE=1 -# shellcheck disable=SC2034 -declare -r TRUE=0 -# shellcheck disable=SC2034 -declare -r ETCHOSTS="/etc/hosts" -# shellcheck disable=SC2034 -progname="$(basename $0)" -###################### Constants #################### - -all_check() -{ -check_env_vars -} - -check_env_vars () -{ -## Checking Grid Reponsfile or vip,scan ip and private ip -### if user has passed the Grid ResponseFile name, below checks will be skipped - -# Following checks will be executed if user is not providing Grid Response File - -if [ -z "${DOMAIN}" ]; then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - print_message "Domain is defined to $DOMAIN" -fi - -if [ -z "${PORT}" ]; then - print_message "PORT is not defined. Setting PORT to '1521'" - PORT="1521" - else - print_message "PORT is defined to $PORT" -fi - -if [ -z "${PUBLIC_IP}" ]; then - error_exit "Container hostname is not set or set to the empty string" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - error_exit "RAC Node PUBLIC Hostname is not set ot set to empty string" -else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z ${SCAN_NAME} ]; then - print_message "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if [ -z ${SCAN_IP} ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi - -} - -####################################### ETC Host Function ############################################################# - -SetupEtcHosts() -{ -# shellcheck disable=SC2034 -local stat=3 -# shellcheck disable=SC2034 -local HOST_LINE - -echo -e "127.0.0.1\tlocalhost.localdomain\tlocalhost" > /etc/hosts -echo -e "$PUBLIC_IP\t$PUBLIC_HOSTNAME.$DOMAIN\t$PUBLIC_HOSTNAME" >> /etc/hosts -echo -e "$SCAN_IP\t$SCAN_NAME.$DOMAIN\t$SCAN_NAME" >> /etc/hosts -} - -######### Grid setup Function########################### -cman_file () -{ - -cp $SCRIPT_DIR/$CMANORA $logdir/$CMANORA - -sed -i -e "s|###CMAN_HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/$CMANORA -sed -i -e "s|###DOMAIN###|$DOMAIN|g" $logdir/$CMANORA -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $logdir/$CMANORA -sed -i -e "s|###PORT###|$PORT|g" $logdir/$CMANORA -} - -copycmanora () -{ -cp $logdir/$CMANORA $DB_HOME/network/admin/ -chown -R oracle:oinstall $DB_HOME/network/admin/ -rm -f $logdir/$CMANORA -} - -start_cman () -{ -local cmd -cmd="su - oracle -c \"$DB_HOME/bin/cmctl startup -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN\"" -eval $cmd -} - -stop_cman () -{ -local cmd -cmd="su - oracle -c \"$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN\"" -eval $cmd -} - -status_cman () -{ -local cmd -cmd="su - oracle -c \"$DB_HOME/bin/cmctl show service -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN\"" -eval $cmd - -if [ $? -eq 0 ];then -print_message "cman started sucessfully" -else -error_exit "Cman startup failed" -fi - -} - - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -#clear_files -SetupEtcHosts -all_check - -####### CMAN Setup ########## -print_message "Generating CMAN file" -cman_file -print_message "Copying CMAN file to $DB_HOME/network/admin" -copycmanora -print_message "Starting CMAN" -start_cman -print_message "Checking CMAN Status" -status_cman -print_message "################################################" -print_message " CONNECTION MANAGER IS READY TO USE! " -print_message "################################################" diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/functions.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/functions.sh deleted file mode 100755 index dd9f3ffc91..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/functions.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Common functions for CMAN -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -source /tmp/envfile - -export logfile=/tmp/orod.log -export logdir=/tmp -export STD_OUT_FILE="/proc/self/fd/1" -export STD_ERR_FILE="/proc/self/fd/2" - -###### Function Related to printing messages and exit the script if error occurred ################## -error_exit() { -# shellcheck disable=SC2155 -local NOW=$(date +"%m-%d-%Y %T %Z") - # Display error message and exit -# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 - echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $logfile > $STD_OUT_FILE - exit 15 -} - -print_message () -{ -# shellcheck disable=SC2155 - local NOW=$(date +"%m-%d-%Y %T %Z") - # Display message and return - echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $logfile > $STD_OUT_FILE - return $? -} - -##################################################################################################### - -####### Function related to IP Checks ############################################################### -resolveip(){ - - local host="$1" - if [ -z "$host" ] - then - return 1 - else -# shellcheck disable=SC2155 - local ip=$( getent hosts "$host" | awk '{print $1}' ) - if [ -z "$ip" ] - then - ip=$( dig +short "$host" ) - if [ -z "$ip" ] - then - print_message "unable to resolve '$host'" - return 1 - else - print_message "$ip" - return 0 - fi - else - print_message "$ip" - return 0 - fi - fi -} diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/installDBBinaries.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/installDBBinaries.sh deleted file mode 100755 index 9c239259d8..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/installDBBinaries.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Install Oracle Database Client for CMAN -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -# shellcheck disable=SC2166 -if [ "$EDITION" != "EE" -a "$EDITION" != "SE2" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether DB_BASE is set -if [ "$DB_BASE" == "" ]; then - echo "ERROR: DB_BASE has not been set!" - echo "You have to have the DB_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether DB_HOME is set -if [ "$DB_HOME" == "" ]; then - echo "ERROR: DB_HOME has not been set!" - echo "You have to have the DB_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Replace place holders -# --------------------- -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP - -# Install Oracle binaries -cd $INSTALL_SCRIPTS && \ -unzip $INSTALL_FILE_1 && \ -rm -f $INSTALL_SCRIPTS/$INSTALL_FILE_1 && \ -$INSTALL_SCRIPTS/client/runInstaller -silent -force -waitforcompletion -responsefile $INSTALL_SCRIPTS/$DB_INSTALL_RSP -ignoresysprereqs -ignoreprereq || true && \ -rm -rf $INSTALL_SCRIPTS/client diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/runOracle.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/runOracle.sh deleted file mode 100755 index f20f3a8cc5..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/runOracle.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Runs the Oracle Database inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -env > /tmp/envfile - -chmod 755 /tmp/envfile -source /tmp/envfile -source $SCRIPT_DIR/functions.sh - -########### SIGINT handler ############ -function _int() { - echo "Stopping container." -local cmd -cmd="$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN" -eval $cmd -touch /tmp/stop -} - -########### SIGTERM handler ############ -function _term() { - echo "Stopping container." - echo "SIGTERM received, shutting down!" -local cmd -cmd="$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN" -eval $cmd -touch /tmp/sigterm -} - -########### SIGKILL handler ############ -function _kill() { - echo "SIGKILL received, shutting down database!" -local cmd -cmd="$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN" -eval $cmd -touch /tmp/sigkill -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -# Set SIGINT handler -trap _int SIGINT - -# Set SIGTERM handler -trap _term SIGTERM - -# Set SIGKILL handler -# shellcheck disable=SC2173 -trap _kill SIGKILL - -############ Removing /tmp/orod.log ##### -print_message "Creating $logfile" -chmod 666 $logfile - -sudo $SCRIPT_DIR/$CONFIG_CMAN_FILE - -if [ $? -eq 0 ];then - print_message "cman started sucessfully" - echo $TRUE -else - error_exit "Cman startup failed!" -fi - -tail -f /tmp/orod.log & -childPID=$! -wait $childPID diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupDB.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupDB.sh deleted file mode 100755 index 9041fe4e84..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupDB.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p $DB_BASE -mkdir -p $DB_HOME -mkdir -p $INVENTORY - -chown -R oracle:oinstall $INVENTORY -chown -R oracle:oinstall $DB_BASE -chown -R oracle:oinstall $DB_HOME -chown -R oracle:oinstall $INSTALL_SCRIPTS -chmod 775 $INSTALL_SCRIPTS - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers - -echo "export ORACLE_HOME=$DB_HOME" >> /home/oracle/.bashrc -echo "export PATH=$DB_PATH" >> /home/oracle/.bashrc -echo "export LD_LIBRARY_PATH=$DB_LD_LIBRARY_PATH" >> /home/oracle/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/oracle/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/oracle/.bashrc diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupLinuxEnv.sh b/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupLinuxEnv.sh deleted file mode 100755 index 9e3486d6ea..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/12.2.0.1/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ - -chmod ug+x $SCRIPT_DIR/*.sh && \ -yum -y install oracle-database-server-12cR2-preinstall net-tools which zip unzip tar openssh-server openssh-client vim-minimal which vim-minimal passwd sudo && \ -yum clean all diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Checksum b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Checksum deleted file mode 100644 index 15505651a8..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Checksum +++ /dev/null @@ -1 +0,0 @@ -9dedeacf9b3e84cd67621ffc166e32d1 LINUX.X64_180000_client.zip diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Containerfile b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Containerfile deleted file mode 100644 index c3ffbb7d91..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/Containerfile +++ /dev/null @@ -1,91 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Connection Manager -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_180000_client.zip -# Oracle Database 18c Client (18.3) for Linux x86-64 -# Download Oracle Connection Manager as part of the Oracle Database Client -# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle18c-linux-180000-5022980.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/cman:18.3.0 . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -# hadolint ignore=DL4000 -MAINTAINER Sanjay Singh (Sanjay.Singh@oracle.com), Paramdeep Saini (paramdeep.saini@oracle.com) - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - INVENTORY=/u01/app/oraInventory \ - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/18.3.0/client_1 \ - INSTALL_FILE_1="LINUX.X64_180000_client.zip" \ - DB_INSTALL_RSP="client.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - RUN_FILE="runOracle.sh" \ - CONFIG_CMAN_FILE="configCMAN.sh" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - CMANORA="cman.ora" \ - FUNCTIONS="functions.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - container="true" -# Use second ENV so that variable get substituted -# hadolint ignore=DL3044 -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# Grid Binaries -COPY $INSTALL_FILE_1 $SETUP_LINUX_FILE $CHECK_SPACE_FILE $CLIENT_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/install/ - -COPY $RUN_FILE $CMANORA $CONFIG_CMAN_FILE $FUNCTIONS $INSTALL_DIR/startup/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE - -# Install DB software binaries -USER oracle -RUN $INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE - -USER root -RUN $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ - rm -f /etc/security/limits.d/oracle-database-preinstall-18c.conf && \ - chown -R oracle:oinstall $SCRIPT_DIR && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.ora && \ - sync - -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 5500 - -# Define default command to start Oracle Database. -# hadolint ignore=DL3025 -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/checkSpace.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/checkSpace.sh deleted file mode 100755 index 175a3a0f26..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=6 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client.rsp b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client.rsp deleted file mode 100644 index adf6e6b600..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client.rsp +++ /dev/null @@ -1,106 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -############################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_clientinstall_response_schema_v18.0.0 - -#------------------------------------------------------------------------------- -# Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME=oinstall -#------------------------------------------------------------------------------- -# Inventory location. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### -#------------------------------------------------------------------------------- -# Complete path of the Oracle Home -#------------------------------------------------------------------------------- -ORACLE_HOME=###DB_HOME### - -#------------------------------------------------------------------------------- -# Complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###DB_BASE### - -#------------------------------------------------------------------------------ -#Name : INSTALL_TYPE -#Datatype : String -#Description: Installation type of the component. -# -# The following choices are available. The value should contain -# only one of these choices. -# - Administrator -# - Runtime -# - InstantClient -# - Custom -# -#Example : INSTALL_TYPE = Administrator -#------------------------------------------------------------------------------ -oracle.install.client.installType=Custom - -#------------------------------------------------------------------------------- -# Name : oracle.install.client.customComponents -# Datatype : StringList -# -# This property is considered only if INSTALL_TYPE is set to "Custom" -# -# Description: List of Client Components you would like to install -# -# The following choices are available. You may specify any -# combination of these choices. The components you choose should -# be specified in the form "internal-component-name:version" -# Below is a list of components you may specify to install. -# -# oracle.sqlj:18.0.0.0.0 -- "Oracle SQLJ" -# oracle.rdbms.util:18.0.0.0.0 -- "Oracle Database Utilities" -# oracle.javavm.client:18.0.0.0.0 -- "Oracle Java Client" -# oracle.sqlplus:18.0.0.0.0 -- "SQL*Plus" -# oracle.dbjava.jdbc:18.0.0.0.0 -- "Oracle JDBC/THIN Interfaces" -# oracle.ldap.client:18.0.0.0.0 -- "Oracle Internet Directory Client" -# oracle.rdbms.oci:18.0.0.0.0 -- "Oracle Call Interface (OCI)" -# oracle.precomp:18.0.0.0.0 -- "Oracle Programmer" -# oracle.xdk:18.0.0.0.0 -- "Oracle XML Development Kit" -# oracle.network.aso:18.0.0.0.0 -- "Oracle Advanced Security" -# oracle.oraolap.mgmt:18.0.0.0.0 -- "OLAP Analytic Workspace Manager and Worksheet" -# oracle.network.client:18.0.0.0.0 -- "Oracle Net" -# oracle.network.cman:18.0.0.0.0 -- "Oracle Connection Manager" -# oracle.network.listener:18.0.0.0.0 -- "Oracle Net Listener" -# oracle.ordim.client:18.0.0.0.0 -- "Oracle Multimedia Client Option" -# oracle.odbc:18.0.0.0.0 -- "Oracle ODBC Driver" -# oracle.has.client:18.0.0.0.0 -- "Oracle Clusterware High Availability API" -# oracle.dbdev:18.0.0.0.0 -- "Oracle SQL Developer" -# oracle.rdbms.scheduler:18.0.0.0.0 -- "Oracle Scheduler Agent" -# -# Example : oracle.install.client.customComponents="oracle.precomp:18.0.0.0.0","oracle.oraolap.mgmt:18.0.0.0.0","oracle.rdbms.scheduler:18.0.0.0.0" -#------------------------------------------------------------------------------- -oracle.install.client.customComponents=oracle.sqlplus:18.0.0.0.0,oracle.network.client:18.0.0.0.0,oracle.network.cman:18.0.0.0.0,oracle.network.listener:18.0.0.0.0 - -#------------------------------------------------------------------------------- -# Host name to be used for by the Oracle Scheduler Agent. -# This needs to be entered in case oracle.rdbms.scheduler is selected in the -# list of custom components during custom install -# -# Example : oracle.install.client.schedulerAgentHostName = acme.domain.com -#------------------------------------------------------------------------------ -oracle.install.client.schedulerAgentHostName= - -#------------------------------------------------------------------------------ -# Port number to be used for by the Oracle Scheduler Agent. -# This needs to be entered in case oracle.rdbms.scheduler is selected in the -# list of custom components during custom install -# -# Example: oracle.install.client.schedulerAgentPortNumber = 1500 -#------------------------------------------------------------------------------ -oracle.install.client.schedulerAgentPortNumber= diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client_install.rsp b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client_install.rsp deleted file mode 100644 index 77d6a7679d..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/client_install.rsp +++ /dev/null @@ -1,106 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -############################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_clientinstall_response_schema_v18.0.0 - -#------------------------------------------------------------------------------- -# Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME= -#------------------------------------------------------------------------------- -# Inventory location. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### -#------------------------------------------------------------------------------- -# Complete path of the Oracle Home -#------------------------------------------------------------------------------- -ORACLE_HOME=###DB_HOME### - -#------------------------------------------------------------------------------- -# Complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###DB_BASE### - -#------------------------------------------------------------------------------ -#Name : INSTALL_TYPE -#Datatype : String -#Description: Installation type of the component. -# -# The following choices are available. The value should contain -# only one of these choices. -# - Administrator -# - Runtime -# - InstantClient -# - Custom -# -#Example : INSTALL_TYPE = Administrator -#------------------------------------------------------------------------------ -oracle.install.client.installType=Custom - -#------------------------------------------------------------------------------- -# Name : oracle.install.client.customComponents -# Datatype : StringList -# -# This property is considered only if INSTALL_TYPE is set to "Custom" -# -# Description: List of Client Components you would like to install -# -# The following choices are available. You may specify any -# combination of these choices. The components you choose should -# be specified in the form "internal-component-name:version" -# Below is a list of components you may specify to install. -# -# oracle.sqlj:18.0.0.0.0 -- "Oracle SQLJ" -# oracle.rdbms.util:18.0.0.0.0 -- "Oracle Database Utilities" -# oracle.javavm.client:18.0.0.0.0 -- "Oracle Java Client" -# oracle.sqlplus:18.0.0.0.0 -- "SQL*Plus" -# oracle.dbjava.jdbc:18.0.0.0.0 -- "Oracle JDBC/THIN Interfaces" -# oracle.ldap.client:18.0.0.0.0 -- "Oracle Internet Directory Client" -# oracle.rdbms.oci:18.0.0.0.0 -- "Oracle Call Interface (OCI)" -# oracle.precomp:18.0.0.0.0 -- "Oracle Programmer" -# oracle.xdk:18.0.0.0.0 -- "Oracle XML Development Kit" -# oracle.network.aso:18.0.0.0.0 -- "Oracle Advanced Security" -# oracle.oraolap.mgmt:18.0.0.0.0 -- "OLAP Analytic Workspace Manager and Worksheet" -# oracle.network.client:18.0.0.0.0 -- "Oracle Net" -# oracle.network.cman:18.0.0.0.0 -- "Oracle Connection Manager" -# oracle.network.listener:18.0.0.0.0 -- "Oracle Net Listener" -# oracle.ordim.client:18.0.0.0.0 -- "Oracle Multimedia Client Option" -# oracle.odbc:18.0.0.0.0 -- "Oracle ODBC Driver" -# oracle.has.client:18.0.0.0.0 -- "Oracle Clusterware High Availability API" -# oracle.dbdev:18.0.0.0.0 -- "Oracle SQL Developer" -# oracle.rdbms.scheduler:18.0.0.0.0 -- "Oracle Scheduler Agent" -# -# Example : oracle.install.client.customComponents="oracle.precomp:18.0.0.0.0","oracle.oraolap.mgmt:18.0.0.0.0","oracle.rdbms.scheduler:18.0.0.0.0" -#------------------------------------------------------------------------------- -oracle.install.client.customComponents=oracle.sqlplus:18.0.0.0.0,oracle.network.client:18.0.0.0.0,oracle.network.cman:18.0.0.0.0,oracle.network.listener:18.0.0.0.0 - -#------------------------------------------------------------------------------- -# Host name to be used for by the Oracle Scheduler Agent. -# This needs to be entered in case oracle.rdbms.scheduler is selected in the -# list of custom components during custom install -# -# Example : oracle.install.client.schedulerAgentHostName = acme.domain.com -#------------------------------------------------------------------------------ -oracle.install.client.schedulerAgentHostName= - -#------------------------------------------------------------------------------ -# Port number to be used for by the Oracle Scheduler Agent. -# This needs to be entered in case oracle.rdbms.scheduler is selected in the -# list of custom components during custom install -# -# Example: oracle.install.client.schedulerAgentPortNumber = 1500 -#------------------------------------------------------------------------------ -oracle.install.client.schedulerAgentPortNumber= diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/cman.ora b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/cman.ora deleted file mode 100644 index ae3ae0f6a5..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/cman.ora +++ /dev/null @@ -1,62 +0,0 @@ -###################################################################### -# -# Copyright (c) 2001,2002, Oracle Corporation. All rights reserved. -# -# NAME -# cman.ora -# -# DESCRIPTION -# Sample CMAN configuration file that the user can modify for their -# own use. -# -# NOTES -# 1. Change to your fully qualified hostname -# 2. Change to the listening port number -# 3. Change and to your log and trace directories -# -# MODIFIED (MM/DD/YYYY) -# asankrut 10/05/2002 - Added Rule List Specifications -# asankrut 06/11/2002 - Modified to add new parameters; added comments. -# asankrut 12/31/2001 - Creation. -# -###################################################################### - -# CMAN Alias -CMAN_###CMAN_HOSTNAME###.###DOMAIN### = -(configuration= - # Listening address of the cman - (address=(protocol=tcp)(host=###CMAN_HOSTNAME###.###DOMAIN###)(port=###PORT###)) - # Configuration parameters of this CMAN - (parameter_list = - # Need authentication for connection? - # Valid values: boolean values for on/off - (connection_statistics=yes) - (log_directory=###DB_HOME###/network/log) - (log_level=USER) - (trace_directory=###DB_HOME###/network/trace) - (trace_level=USER) - (valid_node_checking_registration=on) - (registration_invited_nodes=*) - ) - - # Rule list - - # Rule Specification: - # src = Source of connection; '*' for 'ANY' - # dst = Destination of connection; '*' for 'ANY' - # srv = Service of connection; '*' for 'ANY' - # act = Action: 'accept', 'reject' or 'drop' - - # Action List Specification: - # aut = aso_authentication_filter - # moct = outbound_connect_timeout - # mct = session_timeout - # mit = idle_timeout - # conn_stats = connect_statistics - (rule_list= - (rule= - (src=*)(dst=*)(srv=*)(act=accept) - (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on)) - ) - ) -) diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/configCMAN.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/configCMAN.sh deleted file mode 100755 index b857e4a292..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/configCMAN.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Configure and setup CMAN -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -source /tmp/envfile - -source $SCRIPT_DIR/functions.sh - -####################### Constants ################# -# shellcheck disable=SC2034 -declare -r FALSE=1 -# shellcheck disable=SC2034 -declare -r TRUE=0 -# shellcheck disable=SC2034 -declare -r ETCHOSTS="/etc/hosts" -# shellcheck disable=SC2034 -progname="$(basename $0)" -###################### Constants #################### - -all_check() -{ -check_env_vars -} - -check_env_vars () -{ -## Checking Grid Reponsfile or vip,scan ip and private ip -### if user has passed the Grid ResponseFile name, below checks will be skipped - -# Following checks will be executed if user is not providing Grid Response File - -if [ -z "${DOMAIN}" ]; then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - print_message "Domain is defined to $DOMAIN" -fi - -if [ -z "${PORT}" ]; then - print_message "PORT is not defined. Setting PORT to '1521'" - PORT="1521" - else - print_message "PORT is defined to $PORT" -fi - -if [ -z "${PUBLIC_IP}" ]; then - error_exit "Container hostname is not set or set to the empty string" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - error_exit "RAC Node PUBLIC Hostname is not set ot set to empty string" -else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z ${SCAN_NAME} ]; then - print_message "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if [ -z ${SCAN_IP} ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi - -} - -####################################### ETC Host Function ############################################################# - -SetupEtcHosts() -{ -# shellcheck disable=SC2034 -local stat=3 -# shellcheck disable=SC2034 -local HOST_LINE - -echo -e "127.0.0.1\tlocalhost.localdomain\tlocalhost" > /etc/hosts -echo -e "$PUBLIC_IP\t$PUBLIC_HOSTNAME.$DOMAIN\t$PUBLIC_HOSTNAME" >> /etc/hosts -echo -e "$SCAN_IP\t$SCAN_NAME.$DOMAIN\t$SCAN_NAME" >> /etc/hosts -} - -######### Grid setup Function########################### -cman_file () -{ - -cp $SCRIPT_DIR/$CMANORA $logdir/$CMANORA - -sed -i -e "s|###CMAN_HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/$CMANORA -sed -i -e "s|###DOMAIN###|$DOMAIN|g" $logdir/$CMANORA -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $logdir/$CMANORA -sed -i -e "s|###PORT###|$PORT|g" $logdir/$CMANORA -} - -copycmanora () -{ -cp $logdir/$CMANORA $DB_HOME/network/admin/ -chown -R oracle:oinstall $DB_HOME/network/admin/ -rm -f $logdir/$CMANORA -} - -start_cman () -{ -local cmd -cmd="su - oracle -c \"$DB_HOME/bin/cmctl startup -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN\"" -eval $cmd -} - -stop_cman () -{ -local cmd -cmd="su - oracle -c \"$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN\"" -eval $cmd -} - -status_cman () -{ -local cmd -cmd="su - oracle -c \"$DB_HOME/bin/cmctl show service -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN\"" -eval $cmd - -if [ $? -eq 0 ];then -print_message "cman started sucessfully" -else -error_exit "Cman startup failed" -fi - -} - - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -#clear_files -SetupEtcHosts -all_check - -####### CMAN Setup ########## -print_message "Generating CMAN file" -cman_file -print_message "Copying CMAN file to $DB_HOME/network/admin" -copycmanora -print_message "Starting CMAN" -start_cman -print_message "Checking CMAN Status" -status_cman -print_message "################################################" -print_message " CONNECTION MANAGER IS READY TO USE! " -print_message "################################################" diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/functions.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/functions.sh deleted file mode 100755 index dd9f3ffc91..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/functions.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Common functions for CMAN -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -source /tmp/envfile - -export logfile=/tmp/orod.log -export logdir=/tmp -export STD_OUT_FILE="/proc/self/fd/1" -export STD_ERR_FILE="/proc/self/fd/2" - -###### Function Related to printing messages and exit the script if error occurred ################## -error_exit() { -# shellcheck disable=SC2155 -local NOW=$(date +"%m-%d-%Y %T %Z") - # Display error message and exit -# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 - echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $logfile > $STD_OUT_FILE - exit 15 -} - -print_message () -{ -# shellcheck disable=SC2155 - local NOW=$(date +"%m-%d-%Y %T %Z") - # Display message and return - echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $logfile > $STD_OUT_FILE - return $? -} - -##################################################################################################### - -####### Function related to IP Checks ############################################################### -resolveip(){ - - local host="$1" - if [ -z "$host" ] - then - return 1 - else -# shellcheck disable=SC2155 - local ip=$( getent hosts "$host" | awk '{print $1}' ) - if [ -z "$ip" ] - then - ip=$( dig +short "$host" ) - if [ -z "$ip" ] - then - print_message "unable to resolve '$host'" - return 1 - else - print_message "$ip" - return 0 - fi - else - print_message "$ip" - return 0 - fi - fi -} diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/installDBBinaries.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/installDBBinaries.sh deleted file mode 100755 index 9c239259d8..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/installDBBinaries.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Install Oracle Database Client for CMAN -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -# shellcheck disable=SC2166 -if [ "$EDITION" != "EE" -a "$EDITION" != "SE2" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether DB_BASE is set -if [ "$DB_BASE" == "" ]; then - echo "ERROR: DB_BASE has not been set!" - echo "You have to have the DB_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether DB_HOME is set -if [ "$DB_HOME" == "" ]; then - echo "ERROR: DB_HOME has not been set!" - echo "You have to have the DB_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Replace place holders -# --------------------- -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP - -# Install Oracle binaries -cd $INSTALL_SCRIPTS && \ -unzip $INSTALL_FILE_1 && \ -rm -f $INSTALL_SCRIPTS/$INSTALL_FILE_1 && \ -$INSTALL_SCRIPTS/client/runInstaller -silent -force -waitforcompletion -responsefile $INSTALL_SCRIPTS/$DB_INSTALL_RSP -ignoresysprereqs -ignoreprereq || true && \ -rm -rf $INSTALL_SCRIPTS/client diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/runOracle.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/runOracle.sh deleted file mode 100755 index f20f3a8cc5..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/runOracle.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Runs the Oracle Database inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -env > /tmp/envfile - -chmod 755 /tmp/envfile -source /tmp/envfile -source $SCRIPT_DIR/functions.sh - -########### SIGINT handler ############ -function _int() { - echo "Stopping container." -local cmd -cmd="$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN" -eval $cmd -touch /tmp/stop -} - -########### SIGTERM handler ############ -function _term() { - echo "Stopping container." - echo "SIGTERM received, shutting down!" -local cmd -cmd="$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN" -eval $cmd -touch /tmp/sigterm -} - -########### SIGKILL handler ############ -function _kill() { - echo "SIGKILL received, shutting down database!" -local cmd -cmd="$DB_HOME/bin/cmctl shutdown -c CMAN_$PUBLIC_HOSTNAME.$DOMAIN" -eval $cmd -touch /tmp/sigkill -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -# Set SIGINT handler -trap _int SIGINT - -# Set SIGTERM handler -trap _term SIGTERM - -# Set SIGKILL handler -# shellcheck disable=SC2173 -trap _kill SIGKILL - -############ Removing /tmp/orod.log ##### -print_message "Creating $logfile" -chmod 666 $logfile - -sudo $SCRIPT_DIR/$CONFIG_CMAN_FILE - -if [ $? -eq 0 ];then - print_message "cman started sucessfully" - echo $TRUE -else - error_exit "Cman startup failed!" -fi - -tail -f /tmp/orod.log & -childPID=$! -wait $childPID diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupDB.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupDB.sh deleted file mode 100755 index 9041fe4e84..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupDB.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p $DB_BASE -mkdir -p $DB_HOME -mkdir -p $INVENTORY - -chown -R oracle:oinstall $INVENTORY -chown -R oracle:oinstall $DB_BASE -chown -R oracle:oinstall $DB_HOME -chown -R oracle:oinstall $INSTALL_SCRIPTS -chmod 775 $INSTALL_SCRIPTS - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers - -echo "export ORACLE_HOME=$DB_HOME" >> /home/oracle/.bashrc -echo "export PATH=$DB_PATH" >> /home/oracle/.bashrc -echo "export LD_LIBRARY_PATH=$DB_LD_LIBRARY_PATH" >> /home/oracle/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/oracle/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/oracle/.bashrc diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupLinuxEnv.sh b/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupLinuxEnv.sh deleted file mode 100755 index 47a86d40b2..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/18.3.0/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ - -chmod ug+x $SCRIPT_DIR/*.sh && \ -yum -y install oracle-database-preinstall-18c net-tools which zip unzip tar openssh-server openssh-client vim-minimal which vim-minimal passwd sudo && \ -yum clean all diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Containerfile b/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Containerfile index 76ad186a3e..d9407aa356 100644 --- a/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Containerfile +++ b/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Containerfile @@ -1,28 +1,41 @@ -# hadolint global ignore=DL3025,DL3044,DL4000 +# hadolint global ignore=DL3006,DL3025,DL3044,DL4000,DL4006 # LICENSE UPL 1.0 # # Copyright (c) 1982-2026 Oracle and/or its affiliates. All rights reserved. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle Connection Manager -# +# This is the Containerfile for Oracle Connection Manager +# # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- -# (1) LINUX.X64_193000_client.zip +# (1) LINUX.X64_193000_client.zip # Oracle Database 19c Client (19.3) for Linux x86-64 # Download Oracle Connection Manager as part of the Oracle Database Client -# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle18c-linux-180000-5022980.html +# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle18c-linux-180000-5022980.html # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/cman:19.3.0 . +# Put all downloaded files in the same directory as this Containerfile +# Run: +# $ podman build -t oracle/cman:19.3.0 . # # Pull base image # --------------- -FROM oraclelinux:7-slim +ARG BASE_IMAGE=oraclelinux:7-slim +ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_DIGEST=unknown +FROM $BASE_IMAGE +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" # Maintainer # ---------- @@ -46,7 +59,7 @@ ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CMANORA="cman.ora" \ FUNCTIONS="functions.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - container="true" + container="true" # Use second ENV so that variable get substituted ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ @@ -79,7 +92,21 @@ RUN chmod 755 $INSTALL_DIR/install/*.sh && \ chown -R oracle:oinstall $SCRIPT_DIR && \ chmod 755 $SCRIPT_DIR/*.sh && \ chmod 666 $SCRIPT_DIR/*.ora && \ - sync + sync + +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; USER oracle WORKDIR /home/oracle diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Dockerfile b/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Dockerfile deleted file mode 100644 index 66bcb16395..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/Dockerfile +++ /dev/null @@ -1,89 +0,0 @@ -# hadolint global ignore=DL3025,DL3044,DL4000 -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2026 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Connection Manager -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_193000_client.zip -# Oracle Database 19c Client (19.3) for Linux x86-64 -# Download Oracle Connection Manager as part of the Oracle Database Client -# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle18c-linux-180000-5022980.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/cman:19.3.0 . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Sanjay Singh (Sanjay.Singh@oracle.com), Paramdeep Saini (paramdeep.saini@oracle.com), Saurabh Ahuja (saurabh.ahuja@oracle.com) - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - INVENTORY=/u01/app/oraInventory \ - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/19.3.0/client_1 \ - INSTALL_FILE_1="LINUX.X64_193000_client.zip" \ - DB_INSTALL_RSP="client19c_install.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - RUN_FILE="runOracle.sh" \ - CONFIG_CMAN_FILE="configCMAN.sh" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - CMANORA="cman.ora" \ - FUNCTIONS="functions.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# Grid Binaries -COPY $INSTALL_FILE_1 $SETUP_LINUX_FILE $CHECK_SPACE_FILE $CLIENT_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/install/ - -COPY $RUN_FILE $CMANORA $CONFIG_CMAN_FILE $FUNCTIONS $INSTALL_DIR/startup/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ - rm -f /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - rm -f $INSTALL_DIR/install/* && \ - chown -R oracle:oinstall $SCRIPT_DIR && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.ora && \ - sync - -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 5500 - -# Define default command to start Oracle Database. -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/setupLinuxEnv.sh b/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/setupLinuxEnv.sh index 75bf28480f..00105fabc9 100755 --- a/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/OracleConnectionManager/containerfiles/19.3.0/setupLinuxEnv.sh @@ -13,6 +13,8 @@ # Setup filesystem and oracle user # Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation # ------------------------------------------------------------ +dnf update -y && \ +dnf clean all && \ chmod ug+x "$SCRIPT_DIR"/*.sh && \ yum -y install \ diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Containerfile b/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Containerfile index 42c9d7a464..afb6dc81ee 100644 --- a/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Containerfile +++ b/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Containerfile @@ -1,27 +1,41 @@ +# hadolint global ignore=DL3006,DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2022 Oracle and/or its affiliates. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle Connection Manager -# +# This is the Containerfile for Oracle Connection Manager +# # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- -# (1) LINUX.X64_213000_client.zip +# (1) LINUX.X64_213000_client.zip # Oracle Database 21c Client (21.3) for Linux x86-64 # Download Oracle Connection Manager as part of the Oracle Database Client -# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle21c-linux-210000-5022980.html +# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle21c-linux-210000-5022980.html # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/cman:21.3.0 . +# Put all downloaded files in the same directory as this Containerfile +# Run: +# $ podman build -t oracle/cman:21.3.0 . # # Pull base image # --------------- -FROM oraclelinux:7-slim +ARG BASE_IMAGE=oraclelinux:7-slim +ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_DIGEST=unknown +FROM $BASE_IMAGE +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- @@ -41,7 +55,7 @@ ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CMANORA="cman.ora" \ FUNCTIONS="functions.sh" \ INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - container="true" + container="true" # Use second ENV so that variable get substituted # hadolint ignore=DL3044 ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ @@ -68,12 +82,26 @@ RUN chmod 755 $INSTALL_DIR/install/*.sh && \ $INVENTORY/orainstRoot.sh && \ $DB_HOME/root.sh && \ rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ + rm -f /etc/sysctl.d/99-sysctl.conf && \ rm -f /etc/rc.d/init.d/oracle-database-preinstall-21c-firstboot && \ chown -R oracle:oinstall $SCRIPT_DIR && \ chmod 755 $SCRIPT_DIR/*.sh && \ chmod 666 $SCRIPT_DIR/*.ora && \ - sync + sync + +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; USER oracle WORKDIR /home/oracle diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Dockerfile b/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Dockerfile deleted file mode 100644 index c57c3bd65d..0000000000 --- a/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/Dockerfile +++ /dev/null @@ -1,82 +0,0 @@ -# hadolint global ignore=DL3025,DL3044 -# LICENSE UPL 1.0 -# -# Copyright (c) 2022-2026 Oracle and/or its affiliates. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Connection Manager -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_213000_client.zip -# Oracle Database 21c Client (21.3) for Linux x86-64 -# Download Oracle Connection Manager as part of the Oracle Database Client -# from https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle21c-linux-210000-5022980.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/cman:21.3.0 . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - INVENTORY=/u01/app/oracle/oraInventory \ - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/cman \ - INSTALL_FILE_1="LINUX.X64_213000_client.zip" \ - DB_INSTALL_RSP="client21c_install.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - RUN_FILE="runOracle.sh" \ - CONFIG_CMAN_FILE="configCMAN.sh" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - CMANORA="cman.ora" \ - FUNCTIONS="functions.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# Grid Binaries -COPY $INSTALL_FILE_1 $SETUP_LINUX_FILE $CHECK_SPACE_FILE $CLIENT_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/install/ - -COPY $RUN_FILE $CMANORA $CONFIG_CMAN_FILE $FUNCTIONS $INSTALL_DIR/startup/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-21c-firstboot && \ - chown -R oracle:oinstall $SCRIPT_DIR && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.ora && \ - sync - -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 5500 - -# Define default command to start Oracle Database. -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/setupLinuxEnv.sh b/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/setupLinuxEnv.sh index cac024830b..1d4fa22946 100755 --- a/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/OracleConnectionManager/containerfiles/21.3.0/setupLinuxEnv.sh @@ -13,6 +13,8 @@ # Setup filesystem and oracle user # Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation # ------------------------------------------------------------ +dnf update -y && \ +dnf clean all && \ chmod ug+x $SCRIPT_DIR/*.sh && \ yum -y install oracle-database-preinstall-21c net-tools which zip unzip tar openssh-server openssh-client vim-minimal which vim-minimal passwd sudo && \ diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/23.26.0/Containerfile b/OracleDatabase/OracleConnectionManager/containerfiles/23.26.0/Containerfile index 997ec4bc65..5795f0065d 100644 --- a/OracleDatabase/OracleConnectionManager/containerfiles/23.26.0/Containerfile +++ b/OracleDatabase/OracleConnectionManager/containerfiles/23.26.0/Containerfile @@ -1,4 +1,4 @@ -# hadolint global ignore=DL3006,DL3025,SC2086 +# hadolint global ignore=DL3006,DL3025,SC2086,DL4006 # ############################# # Copyright (c) 2024-2026, Oracle and/or its affiliates. @@ -26,11 +26,25 @@ # $ ./buildContainerImage.sh -v 23.26.0 \ # -o "--build-arg INSTALL_FILE_1=LINUX.X64_2326100_client_cman_home.zip" -ARG BASE_OL_IMAGE=oraclelinux:9 +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown # Pull base image # --------------- FROM $BASE_OL_IMAGE AS base +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; + +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" # Labels # ------ @@ -143,6 +157,23 @@ RUN unzip -q $INSTALL_SCRIPTS/$INSTALL_FILE_1 -d $DB_HOME && \ FROM base +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; + COPY --from=builder /u01 /u01 RUN sh /u01/app/oraInventory/orainstRoot.sh && \ diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/baseImageMetadata.sh b/OracleDatabase/OracleConnectionManager/containerfiles/baseImageMetadata.sh new file mode 100755 index 0000000000..9a789df87c --- /dev/null +++ b/OracleDatabase/OracleConnectionManager/containerfiles/baseImageMetadata.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# Resolve and export reproducible base-image build arguments for image wrappers. +# Call resolve_base_image_metadata VERSION DEFAULT_IMAGE BUILD_OPTIONS. +resolve_base_image_metadata() { + local version="$1" + local default_image="$2" + local build_options="${3:-}" + local token previous="" input="" ref="" digest="" repo_digest="" repository + + # Keep the SIDB base-image defaults consistent for supported ARM builds. + if [[ -z "${default_image}" && "${HOSTTYPE:-}" == "aarch64" && "${version}" != "26.0.0" ]]; then + default_image="oraclelinux:8" + fi + + for token in ${build_options}; do + if [[ "${token}" == BASE_IMAGE=* || "${token}" == BASE_OL_IMAGE=* ]]; then + input="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_REF=* ]]; then + ref="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_DIGEST=* ]]; then + digest="${token#*=}" + elif [[ "${previous}" == "--build-arg" ]]; then + case "${token}" in + BASE_IMAGE=*|BASE_OL_IMAGE=*) input="${token#*=}" ;; + BASE_IMAGE_REF=*) ref="${token#*=}" ;; + BASE_IMAGE_DIGEST=*) digest="${token#*=}" ;; + esac + fi + previous="${token}" + done + + input="${input:-${default_image}}" + ref="${ref:-${input}}" + if [[ -z "${digest}" && "${input}" == *@sha256:* ]]; then + digest="${input##*@}" + fi + + if [[ -z "${digest}" ]]; then + echo "Resolving base image digest for ${input} ..." + "${CONTAINER_RUNTIME:-docker}" pull "${input}" || return 1 + repo_digest="$("${CONTAINER_RUNTIME:-docker}" image inspect --format '{{index .RepoDigests 0}}' "${input}" 2>/dev/null || true)" + [[ "${repo_digest}" == *@sha256:* ]] || { + echo "ERROR: no repository digest returned for ${input}" >&2 + return 1 + } + digest="${repo_digest##*@}" + fi + [[ "${digest}" == sha256:* ]] || { + echo "ERROR: BASE_IMAGE_DIGEST must be a sha256 digest, got ${digest}" >&2 + return 1 + } + + repository="${input%@*}" + [[ "${repository##*/}" == *:* ]] && repository="${repository%:*}" + BASE_IMAGE_BUILD_ARGS="--build-arg BASE_IMAGE=${repository}@${digest} --build-arg BASE_OL_IMAGE=${repository}@${digest} --build-arg BASE_IMAGE_REF=${ref} --build-arg BASE_IMAGE_DIGEST=${digest}" + export BASE_IMAGE_BUILD_ARGS + echo "Base image reference: ${ref}" + echo "Base image digest: ${digest}" +} diff --git a/OracleDatabase/OracleConnectionManager/containerfiles/buildContainerImage.sh b/OracleDatabase/OracleConnectionManager/containerfiles/buildContainerImage.sh index 0ff9a9f5dc..0912804b1d 100755 --- a/OracleDatabase/OracleConnectionManager/containerfiles/buildContainerImage.sh +++ b/OracleDatabase/OracleConnectionManager/containerfiles/buildContainerImage.sh @@ -1,4 +1,17 @@ #!/bin/bash +# shellcheck disable=SC2154,SC2320 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# shellcheck source=/dev/null +source "${SCRIPT_DIR}/baseImageMetadata.sh" + +checkContainerRuntime() { + CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + CONTAINER_RUNTIME=$(which docker 2>/dev/null) || + { + echo "No docker or podman executable found in your PATH" + exit 1 + } +} # shellcheck disable=SC2045,SC2154,SC2164,SC2320 # ############################# @@ -100,6 +113,12 @@ while getopts "hiv:o:t:" optname; do esac done if [ "$VERSION" = "23.26.0" ]; then IMAGE_NAME="oracle/client-cman:23.26ai"; else IMAGE_NAME="oracle/client-cman:$VERSION"; fi +# Resolve the digest before changing into the version directory. +checkContainerRuntime +if [[ "${VERSION}" == 19.* || "${VERSION}" == 21.* ]]; then BASE_IMAGE_DEFAULT="oraclelinux:7-slim"; else BASE_IMAGE_DEFAULT="oraclelinux:9"; fi +resolve_base_image_metadata "${VERSION}" "${BASE_IMAGE_DEFAULT}" "${DOCKEROPS}" +DOCKEROPS="${DOCKEROPS} ${BASE_IMAGE_BUILD_ARGS}" + # Go into version folder cd "$VERSION" || exit 1 @@ -110,7 +129,7 @@ else fi echo "==========================" echo "DOCKER info:" -docker info +"${CONTAINER_RUNTIME}" info echo "==========================" # Proxy settings @@ -142,7 +161,7 @@ echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date '+%s') -docker build --force-rm=true --no-cache=true $DOCKEROPS $PROXY_SETTINGS -t $IMAGE_NAME -f Containerfile . || { +"${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true $DOCKEROPS $PROXY_SETTINGS -t $IMAGE_NAME -f Containerfile . || { echo "There was an error building the image." exit 1 } diff --git a/OracleDatabase/RAC/OracleDNSServer/README.md b/OracleDatabase/RAC/OracleDNSServer/README.md index ca7333ab59..b42b5971cf 100644 --- a/OracleDatabase/RAC/OracleDNSServer/README.md +++ b/OracleDatabase/RAC/OracleDNSServer/README.md @@ -111,3 +111,23 @@ Unless otherwise noted, all scripts and files hosted in this repository that are ## Copyright Copyright (c) 2014-2026 Oracle and/or its affiliates. + + +## Base image provenance + +Build wrappers resolve the selected base image to a sha256 digest and pass +`BASE_IMAGE`, `BASE_IMAGE_REF`, and `BASE_IMAGE_DIGEST` to the build. +The resulting image exposes the source reference and digest as OCI labels and +writes the direct-base record to: + +``` +/usr/share/oracle/image-metadata/base-image-chain.json +``` + +Inspect an image with: + +``` +podman image inspect IMAGE --format '{{json .Config.Labels}}' +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'cat /usr/share/oracle/image-metadata/base-image-chain.json' +``` diff --git a/OracleDatabase/RAC/OracleDNSServer/README1.md b/OracleDatabase/RAC/OracleDNSServer/README1.md deleted file mode 100644 index d77afc0847..0000000000 --- a/OracleDatabase/RAC/OracleDNSServer/README1.md +++ /dev/null @@ -1,102 +0,0 @@ -# Oracle DNS Server to resolve Oracle RAC IPs - -Sample container build files to facilitate installation, configuration, and environment setup for DevOps users. - -**IMPORTANT:** This image can be used to setup DNS server for RAC. You can skip this step if you already have a DNS server configure and which can be used for Oracle RAC. You should ensure that the DNS server container is up before starting RAC. This image is provided for test purposes only. - -## How to build and run -You need to make sure that you have at least 350MB of space available for the container to create the files for RAC DNS server. - -**IMPORTANT:** If you are behind a proxy, you need to set the `http_proxy or https_proxy` env variable based on your environment before building the image. Please ensure that you have the `podman-docker` package installed on your OL8 Podman host to run the command using the docker utility. -```bash -dnf install podman-docker -y -``` - -The `buildContainerImage.sh` script can assist with building the images. See below for instructions and usage. - -The `buildContainerImage.sh` script is a utility shell script that performs MD5 checks and is an easy way to get started. Users can also use the docker build command to build an image with custom configuration parameters. To run the script, go into the `dockerfiles` folder and run the `buildContainerImage.sh` script: - -```bash -cd /docker-images/OracleDatabase/RAC/OracleDNSServer/dockerfiles -./buildContainerImage.sh-v -./buildContainerImage.sh -v latest -``` -NOTE: To build the DNS server image, pass the version latest to `buildContainerImage.sh`. The RAC DNS server image is not tied to any release of the RAC release, you can use `latest` version to build the image. - -For detailed usage instructions, please execute the following command: - -```bash -./buildContainerImage.sh -h -``` - -## Create bridge -Before you create the DNS server container, ensure you have created the required network bridges so you can attach the DNS server to the correct bridge. - -```bash -docker network create --driver=bridge --subnet=172.16.1.0/24 rac_pub1_nw -docker network create --driver=bridge --subnet=192.168.17.0/24 rac_priv1_nw -``` -**Note:** You can change the subnet according to your environment. - -## Running RAC DNS server container -### Execute following command to create the container on Docker Host - -```bash -docker create --hostname racdns \ - --dns-search=example.com \ - --cap-add=AUDIT_WRITE \ - -e DOMAIN_NAME="example.com" \ - -e WEBMIN_ENABLED=false \ - -e RAC_NODE_NAME_PREFIXD="racnoded" \ - -e SETUP_DNS_CONFIG_FILES="setup_true" \ - --privileged=false \ - --name rac-dnsserver \ - oracle/rac-dnsserver:latest -``` -Connect networks to DNS container in DockerHost- -```bash -docker network disconnect bridge rac-dnsserver -docker network connect rac_pub1_nw --ip 172.16.1.25 rac-dnsserver -docker network connect rac_priv1_nw --ip 192.168.17.25 rac-dnsserver -docker start rac-dnsserver -``` - -### Execute following command to create the container on Podman Host - -```bash -podman create --hostname racdns \ - --dns-search=example.com \ - --cap-add=AUDIT_WRITE \ - -e DOMAIN_NAME="example.com" \ - -e WEBMIN_ENABLED=false \ - -e RAC_NODE_NAME_PREFIXP="racnodep" \ - -e SETUP_DNS_CONFIG_FILES="setup_true" \ - --privileged=false \ - --name rac-dnsserver \ - oracle/rac-dnsserver:latest -``` - -Connect networks to DNS container in PodmanHost- -```bash -podman network disconnect podman rac-dnsserver -podman network connect rac_pub1_nw --ip 172.16.1.25 rac-dnsserver -podman network connect rac_priv1_nw --ip 192.168.17.25 rac-dnsserver -podman start rac-dnsserver -``` -In the above example, we used **172.16.1.0/24** subnet for the DNS server. You can change the subnet values according to your environment. - -Also, `RAC_NODE_NAME_PREFIXD`, `RAC_NODE_NAME_PREFIXP`, and `PRIVATE_DOMAIN_NAME` are optional environment variables. You can utilize one depending on whether you are planning to use DNS Server on Docker or Podman Host and want to utilize the Private Network Domain respectively. - -To check the DNS server container/services creation logs, please tail the Docker logs. It may take up to 2 minutes for the racdns container to start completely. - -```bash -docker logs -f rac-dnsserver -``` - -you should see the following in docker logs output: - -```bash -################################################# -DNS Server IS READY TO USE! -################################################# -``` \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleDNSServer/containerfiles/baseImageMetadata.sh b/OracleDatabase/RAC/OracleDNSServer/containerfiles/baseImageMetadata.sh new file mode 100755 index 0000000000..9a789df87c --- /dev/null +++ b/OracleDatabase/RAC/OracleDNSServer/containerfiles/baseImageMetadata.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# Resolve and export reproducible base-image build arguments for image wrappers. +# Call resolve_base_image_metadata VERSION DEFAULT_IMAGE BUILD_OPTIONS. +resolve_base_image_metadata() { + local version="$1" + local default_image="$2" + local build_options="${3:-}" + local token previous="" input="" ref="" digest="" repo_digest="" repository + + # Keep the SIDB base-image defaults consistent for supported ARM builds. + if [[ -z "${default_image}" && "${HOSTTYPE:-}" == "aarch64" && "${version}" != "26.0.0" ]]; then + default_image="oraclelinux:8" + fi + + for token in ${build_options}; do + if [[ "${token}" == BASE_IMAGE=* || "${token}" == BASE_OL_IMAGE=* ]]; then + input="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_REF=* ]]; then + ref="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_DIGEST=* ]]; then + digest="${token#*=}" + elif [[ "${previous}" == "--build-arg" ]]; then + case "${token}" in + BASE_IMAGE=*|BASE_OL_IMAGE=*) input="${token#*=}" ;; + BASE_IMAGE_REF=*) ref="${token#*=}" ;; + BASE_IMAGE_DIGEST=*) digest="${token#*=}" ;; + esac + fi + previous="${token}" + done + + input="${input:-${default_image}}" + ref="${ref:-${input}}" + if [[ -z "${digest}" && "${input}" == *@sha256:* ]]; then + digest="${input##*@}" + fi + + if [[ -z "${digest}" ]]; then + echo "Resolving base image digest for ${input} ..." + "${CONTAINER_RUNTIME:-docker}" pull "${input}" || return 1 + repo_digest="$("${CONTAINER_RUNTIME:-docker}" image inspect --format '{{index .RepoDigests 0}}' "${input}" 2>/dev/null || true)" + [[ "${repo_digest}" == *@sha256:* ]] || { + echo "ERROR: no repository digest returned for ${input}" >&2 + return 1 + } + digest="${repo_digest##*@}" + fi + [[ "${digest}" == sha256:* ]] || { + echo "ERROR: BASE_IMAGE_DIGEST must be a sha256 digest, got ${digest}" >&2 + return 1 + } + + repository="${input%@*}" + [[ "${repository##*/}" == *:* ]] && repository="${repository%:*}" + BASE_IMAGE_BUILD_ARGS="--build-arg BASE_IMAGE=${repository}@${digest} --build-arg BASE_OL_IMAGE=${repository}@${digest} --build-arg BASE_IMAGE_REF=${ref} --build-arg BASE_IMAGE_DIGEST=${digest}" + export BASE_IMAGE_BUILD_ARGS + echo "Base image reference: ${ref}" + echo "Base image digest: ${digest}" +} diff --git a/OracleDatabase/RAC/OracleDNSServer/containerfiles/buildContainerImage.sh b/OracleDatabase/RAC/OracleDNSServer/containerfiles/buildContainerImage.sh index 9d2409b735..57ea9708a5 100755 --- a/OracleDatabase/RAC/OracleDNSServer/containerfiles/buildContainerImage.sh +++ b/OracleDatabase/RAC/OracleDNSServer/containerfiles/buildContainerImage.sh @@ -1,4 +1,17 @@ #!/bin/bash +# shellcheck disable=SC2154 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# shellcheck source=/dev/null +source "${SCRIPT_DIR}/baseImageMetadata.sh" + +checkContainerRuntime() { + CONTAINER_RUNTIME=$(which docker 2>/dev/null) || + CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + { + echo "No docker or podman executable found in your PATH" + exit 1 + } +} # ############################# # Copyright (c) 2025, Oracle and/or its affiliates. @@ -93,12 +106,17 @@ done # Oracle Database Image Name IMAGE_NAME="oracle/rac-dnsserver:$VERSION" +# Resolve the digest before changing into the version directory. +checkContainerRuntime +resolve_base_image_metadata "${VERSION}" "oraclelinux:9" "${PODMANOPS}" +PODMANOPS="${PODMANOPS} ${BASE_IMAGE_BUILD_ARGS}" + # Go into version folder cd "$VERSION" || exit echo "==========================" echo "PODMAN info:" -podman info +"${CONTAINER_RUNTIME}" info echo "==========================" # Proxy settings @@ -131,7 +149,7 @@ echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date +%s) -if ! podman build --force-rm=true --no-cache=true \ +if ! "${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true \ $PODMANOPS $PROXY_SETTINGS \ -t "$IMAGE_NAME" -f Containerfile .; then echo "There was an error building the image." @@ -149,4 +167,4 @@ cat << EOF Build completed in $BUILD_ELAPSED seconds. -EOF \ No newline at end of file +EOF diff --git a/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/Containerfile b/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/Containerfile index b0a09286ec..3d04b4dbfb 100644 --- a/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/Containerfile +++ b/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/Containerfile @@ -1,3 +1,4 @@ +# hadolint global ignore=DL3006 # ############################# # Copyright (c) 2025, Oracle and/or its affiliates. @@ -8,17 +9,26 @@ # # ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle Database 19c RAC Storage Server. This file create DNS Server for RAC. -# +# This is the Containerfile for Oracle Database 19c RAC Storage Server. This file create DNS Server for RAC. +# # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/rac-dns-server:19.3.0. +# Put all downloaded files in the same directory as this Containerfile +# Run: +# $ podman build -t oracle/rac-dns-server:19.3.0. # # Pull base image # --------------- -FROM oraclelinux:9 +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown +FROM $BASE_IMAGE +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- @@ -46,7 +56,7 @@ ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CONFIGENV="/dnsserver/env" \ BIN="/usr/sbin" \ ORADATA="/oradata" \ - container="true" + container="true" # Use second ENV so that variable get substituted ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ SCRIPT_DIR=$INSTALL_DIR/startup @@ -82,9 +92,13 @@ RUN chmod 755 $INSTALL_DIR/install/*.sh && \ sync # Define default command to start Oracle Database. +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + USER orcladmin WORKDIR /home/orcladmin #CMD ["/usr/sbin/init"] # hadolint ignore=DL3025 -CMD exec $SCRIPT_DIR/$RUN_FILE \ No newline at end of file +CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/named.conf b/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/named.conf index 3f664ca1dd..13cb4105f1 100644 --- a/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/named.conf +++ b/OracleDatabase/RAC/OracleDNSServer/containerfiles/latest/named.conf @@ -11,7 +11,7 @@ options { listen-on port 53 { 127.0.0.1; any; }; - forwarders { 192.168.100.1; 169.254.169.254; }; + forwarders { 192.168.100.1; }; forward only; # listen-on-v6 port 53 { ::1; }; directory "/var/named"; diff --git a/OracleDatabase/RAC/OracleRACStorageServer/README.md b/OracleDatabase/RAC/OracleRACStorageServer/README.md index fd825410ff..de339c3c08 100644 --- a/OracleDatabase/RAC/OracleRACStorageServer/README.md +++ b/OracleDatabase/RAC/OracleRACStorageServer/README.md @@ -12,7 +12,6 @@ Refer to the following instructions for setup of NFS Container for Oracle RAC: - [SELinux Configuration on Podman Host](#selinux-configuration-on-podman-host) - [Oracle RAC Storage Container for Podman Host](#oracle-rac-storage-container-for-podman-host) - [Create NFS Volume](#create-nfs-volume) -- [Sample Container Files for Older Releases](#sample-container-files-for-older-releases) - [Copyright](#copyright) ## How to build NFS Storage Container Image on Container host @@ -22,7 +21,7 @@ To create the files for Oracle RAC storage, ensure that you have at least 60 GB To assist in building the images, you can use the [`buildContainerImage.sh`](containerfiles/buildContainerImage.sh) script. See below for instructions and usage. -In this guide, we refer to Oracle Linux 8 onwards as the Podman Host. +In this guide, we refer to Oracle Linux 8 onwards as the Podman Host machines. The `buildContainerImage.sh` script is just a utility shell script that performs MD5 checks. It provides an easy way for beginners to get started. Expert users are welcome to directly call `podman build` with their preferred set of parameters. Go into the **containerfiles** folder and run the **buildContainerImage.sh** script on your Podman host: @@ -45,7 +44,8 @@ Usage: buildContainerImage.sh -v [version] [-o] [Podman build option] Builds a Podman Image for Oracle Database. Parameters: - -v: version to build e.g latest + -v: version to build + Choose "latest" version for podman host machines -o: passes on Podman build option ``` @@ -125,7 +125,7 @@ podman run -d -t \ localhost/oracle/rac-storage-server:latest ``` -To check the Oracle RAC storage container and services creation logs, you can run a `tail` command on the Podman logs. It should take approximately 10 minutes to create the racnode-storage container service. +To check the Oracle RAC storage container and services creation logs, you can run a `tail` command on the Container logs. It should take approximately 10 minutes to create the racnode-storage container service. ```bash podman exec racnode-storage tail -f /tmp/storage_setup.log @@ -143,11 +143,13 @@ Export list for racnode-storage: **NOTE**: Place the directory in a container that has at least 60 GB. In the preceding example, we are using `/scratch/stage/rac-storage/$ORACLE_DBNAME`. Change these values according to your environment. Inside the container, the directory will be `/oradata`. Do not change this value. -In the following example, we use **192.168.17.0/24** as the subnet for the NFS server. You can change the subnet values according to your environment. +In the preceding example, we use **192.168.17.0/24** as the subnet for the NFS server. You can change the subnet values according to your environment. + **IMPORTANT:** The NFS volume must be `/oradata`, which you will export to Oracle RAC containers for ASM storage. It will take approximately 10 minutes to set up the NFS server. ### Create NFS Volume +#### Create NFS volume using the following command on the Podman Host ```bash podman volume create --driver local \ @@ -157,7 +159,6 @@ podman volume create --driver local \ racstorage ``` - **IMPORTANT:** If you are not using the `192.168.17.0/24` subnet then you must change **addr=192.168.17.80** based on your environment. ## Environment variables explained @@ -167,12 +168,27 @@ racstorage | DNS_SERVER | Default set to `10.0.20.25`. Specify the comma-separated list of DNS server IP addresses where both Oracle RAC nodes are resolved. | | DOMAIN | Default set to `example.info`. Specify the domain details for the Oracle RAC Container Environment. | -## Sample Container Files for Older Releases -To setup an Oracle RAC storage Container for the Docker host on Oracle Linux 7, refer older [README](./README1.md#how-to-build-nfs-storage-container-image-on-docker-host) -instructions. - ## License Unless otherwise noted, all scripts and files hosted in this repository that are required to build the container images are under UPL 1.0 license. ## Copyright -Copyright (c) 2014-2025 Oracle and/or its affiliates. \ No newline at end of file +Copyright (c) 2014-2025 Oracle and/or its affiliates. + +## Base image provenance + +Build wrappers resolve the selected base image to a sha256 digest and pass +`BASE_IMAGE`, `BASE_IMAGE_REF`, and `BASE_IMAGE_DIGEST` to the build. +The resulting image exposes the source reference and digest as OCI labels and +writes the direct-base record to: + +``` +/usr/share/oracle/image-metadata/base-image-chain.json +``` + +Inspect an image with: + +``` +podman image inspect IMAGE --format '{{json .Config.Labels}}' +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'cat /usr/share/oracle/image-metadata/base-image-chain.json' +``` diff --git a/OracleDatabase/RAC/OracleRACStorageServer/README1.md b/OracleDatabase/RAC/OracleRACStorageServer/README1.md deleted file mode 100644 index 77c2cde84f..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/README1.md +++ /dev/null @@ -1,202 +0,0 @@ -# Oracle ASM on NFS Server for RAC testing -Sample Docker and Podman build files to facilitate installation, configuration, and environment setup for DevOps users. - -**IMPORTANT:** This image can be used to setup ASM on NFS for RAC. You can skip if you have physical block devices or NAS server for Oracle RAC and Grid. You need to make sure that NFS server container must be up and running for RAC functioning. This image is for only testing purpose. - -Refer below instructions for setup of NFS Container for RAC - - -- [Oracle ASM on NFS Server for RAC testing](#oracle-asm-on-nfs-server-for-rac-testing) -- [How to build NFS Storage Container Image](#how-to-build-nfs-storage-container-image) - - [How to build NFS Storage Container Image on Docker Host](#how-to-build-nfs-storage-container-image-on-docker-host) - - [How to build NFS Storage Container Image on Podman Host](#how-to-build-nfs-storage-container-image-on-podman-host) -- [Create Bridge Network](#create-bridge-network) -- [NFS Server installation on Host](#nfs-server-installation-on-host) -- [Running RACStorageServer container](#running-racstorageserver-container) - - [RAC Storage container for Docker Host Machine](#rac-storage-container-for-docker-host-machine) - - [RAC Storage Container for Podman Host Machine](#rac-storage-container-for-podman-host-machine) -- [Create NFS Volume](#create-nfs-volume) -- [Copyright](#copyright) - -## How to build NFS Storage Container Image - -### How to build NFS Storage Container Image on Docker Host -You need to make sure that you have atleast 60GB space available for container to create the files for RAC storage. - -**IMPORTANT:** If you are behind the proxy, you need to set http_proxy env variable based on your enviornment before building the image. Please ensure that you have the `podman-docker` package installed on your OL8 Podman host to run the command using the docker utility. -```bash -dnf install podman-docker -y -``` - -To assist in building the images, you can use the [buildDockerImage.sh](dockerfiles/buildDockerImage.sh) script. See below for instructions and usage. - -The `buildDockerImage.sh` script is just a utility shell script that performs MD5 checks and is an easy way for beginners to get started. Expert users are welcome to directly call `docker build` with their prefered set of parameters. Go into the **dockerfiles** folder and run the **buildDockerImage.sh** script: - -```bash -cd /docker-images/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles -./buildDockerImage.sh -v 19.3.0 -``` - -For detailed usage of command, please execute folowing command: -```bash -cd /docker-images/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles -./buildDockerImage.sh -h -``` -### How to build NFS Storage Container Image on Podman Host - -You need to make sure that you have atleast 60GB space available for container to create the files for RAC storage. - -**IMPORTANT:** If you are behind the proxy, you need to set `http_proxy` and `https_proxy` env variable based on your enviornment before building the image. - -To assist in building the images, you can use the [buildDockerImage.sh](dockerfiles/buildDockerImage.sh) script. See below for instructions and usage. - -The `buildDockerImage.sh` script is just a utility shell script that performs MD5 checks and is an easy way for beginners to get started. Expert users are welcome to directly call `docker build` with their prefered set of parameters. Go into the **dockerfiles** folder and run the **buildDockerImage.sh** script: - -```bash -cd /docker-images/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles -./buildDockerImage.sh -v latest -``` -You would see successful build message similar like below- -```bash - Oracle RAC Storage Server Podman Image version latest is ready to be extended: - - --> oracle/rac-storage-server:latest -``` - -## Create Bridge Network -Before creating container, create the bridge private network for NFS storage container. - -On the host- -```bash -docker network create --driver=bridge --subnet=192.168.17.0/24 rac_priv1_nw -``` - -**Note:** You can change subnet according to your environment. - - -## NFS Server installation on Host -Ensure to install NFS server rpms on host to utilize NFS volumes in containers- - -```bash -yum -y install nfs-utils -``` -## Running RACStorageServer container - -### RAC Storage container for Docker Host Machine - -#### Prerequisites for RAC Storage Container for Docker Host - -Create placeholder for NFS storage and make sure it is empty - -```bash -export ORACLE_DBNAME=ORCLCDB -mkdir -p /docker_volumes/asm_vol/$ORACLE_DBNAME -rm -rf /docker_volumes/asm_vol/$ORACLE_DBNAME/asm_disk0* -``` - -Execute following command to create the container: - -```bash -export ORACLE_DBNAME=ORCLCDB -docker run -d -t --hostname racnode-storage \ ---dns-search=example.com --cap-add SYS_ADMIN --cap-add AUDIT_WRITE \ ---volume /docker_volumes/asm_vol/$ORACLE_DBNAME:/oradata --init \ ---network=rac_priv1_nw --ip=192.168.17.80 --tmpfs=/run \ ---volume /sys/fs/cgroup:/sys/fs/cgroup:ro \ ---name racnode-storage oracle/rac-storage-server:19.3.0 -``` - -**IMPORTANT:** During the container startup 5 files named as `asm_disk0[1-5].img` will be created under /oradata.If the files are already present, they will not be recreated.These files can be used for ASM storage in RAC containers. - -**NOTE**: Expose directory to container which has atleast 60GB. In the above example, we are using `/docker_volumes/asm_vol/$ORACLE_DBNAME` and you need to change values according to your env. Inside container, it will be /oradata and do not change this. - -In the above example, we used **192.168.17.0/24** subnet for NFS server. You can change the subnet values according to your environment. Also, SELINUX must be disabled or in permissive mode in Docker Host Machine. - -To check the racstorage container/services creation logs , please tail docker logs. It will take 10 minutes to create the racnode-storage container service. - -```bash -docker logs -f racnode-storage -``` - -you should see following in docker logs output: - -```bash -################################################# -runOracle.sh: NFS Server is up and running -Create NFS volume for /oradata -################################################# -``` - -### RAC Storage Container for Podman Host Machine - -#### Prerequisites for RAC Storage Container for Podman Host - -Create placeholder for NFS storage and make sure it is empty - -```bash -export ORACLE_DBNAME=ORCLCDB -mkdir -p /scratch/stage/rac-storage/$ORACLE_DBNAME -rm -rf /scratch/stage/rac-storage/$ORACLE_DBNAME/asm_disk0* -``` - -If SELinux is enabled on Podman Host (you can check by running `sestatus` command), then execute below to make SELinux policy as `permissive` and reboot the host machine. This will allow permissions to write to `asm-disks*` in the `/oradata` folder inside the podman containers- -```bash -sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config -reboot -``` - -Execute following command to create the container: - -```bash -export ORACLE_DBNAME=ORCLCDB -podman run -d -t \ - --hostname racnode-storage \ - --dns-search=example.com \ - --cap-add SYS_ADMIN \ - --cap-add AUDIT_WRITE \ - --cap-add NET_ADMIN \ - --volume /scratch/stage/rac-storage/$ORACLE_DBNAME:/oradata \ - --network=rac_priv1_nw \ - --ip=192.168.17.80 \ - --systemd=always \ - --restart=always \ - --name racnode-storage \ - localhost/oracle/rac-storage-server:latest -``` - -To check the racstorage container/services creation logs , please tail docker logs. It will take 10 minutes to create the racnode-storage container service. - -```bash -podman exec racnode-storage tail -f /tmp/storage_setup.log -``` -You would see successful message like below - -```bash -################################################# - Setup Completed -################################################# -``` - -**NOTE**: Expose directory to container which has atleast 60GB. In the above example, we are using `/scratch/stage/rac-storage/$ORACLE_DBNAME` and you need to change values according to your env. Inside container, it will be /oradata and do not change this. - -In the above example, we used **192.168.17.0/24** subnet for NFS server. You can change the subnet values according to your environment. - -**Note** : If SELINUX is enabled on the Podman host, then you must create an SELinux policy for Oracle RAC on Podman. For details about this procedure, see "How to Configure Podman for SELinux Mode" in the publication [Oracle Real Application Clusters Installation Guide for Podman Oracle Linux x86-64](https://docs.oracle.com/en/database/oracle/oracle-database/21/racpd/target-configuration-oracle-rac-podman.html#GUID-59138DF8-3781-4033-A38F-E0466884D008). - - -**IMPORTANT:** During the container startup 5 files named as `asm_disk0[1-5].img` will be created under /oradata.If the files are already present, they will not be recreated.These files can be used for ASM storage in RAC containers. - -### Create NFS Volume -Create NFS volume using following command on Podman Host: - -```bash -docker volume create --driver local \ ---opt type=nfs \ ---opt o=addr=192.168.17.80,rw,bg,hard,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 \ ---opt device=192.168.17.80:/oradata \ -racstorage -``` - -**IMPORTANT:** If you are not using 192.168.17.0/24 subnet then you need to change **addr=192.168.17.25** based on your environment. - -**IMPORTANT:** The NFS volume must be `/oradata` which you will export to RAC containers for ASM storage. It will take 10 minutes for setting up NFS server. - -## Copyright - -Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/baseImageMetadata.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/baseImageMetadata.sh new file mode 100755 index 0000000000..9a789df87c --- /dev/null +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/baseImageMetadata.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# Resolve and export reproducible base-image build arguments for image wrappers. +# Call resolve_base_image_metadata VERSION DEFAULT_IMAGE BUILD_OPTIONS. +resolve_base_image_metadata() { + local version="$1" + local default_image="$2" + local build_options="${3:-}" + local token previous="" input="" ref="" digest="" repo_digest="" repository + + # Keep the SIDB base-image defaults consistent for supported ARM builds. + if [[ -z "${default_image}" && "${HOSTTYPE:-}" == "aarch64" && "${version}" != "26.0.0" ]]; then + default_image="oraclelinux:8" + fi + + for token in ${build_options}; do + if [[ "${token}" == BASE_IMAGE=* || "${token}" == BASE_OL_IMAGE=* ]]; then + input="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_REF=* ]]; then + ref="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_DIGEST=* ]]; then + digest="${token#*=}" + elif [[ "${previous}" == "--build-arg" ]]; then + case "${token}" in + BASE_IMAGE=*|BASE_OL_IMAGE=*) input="${token#*=}" ;; + BASE_IMAGE_REF=*) ref="${token#*=}" ;; + BASE_IMAGE_DIGEST=*) digest="${token#*=}" ;; + esac + fi + previous="${token}" + done + + input="${input:-${default_image}}" + ref="${ref:-${input}}" + if [[ -z "${digest}" && "${input}" == *@sha256:* ]]; then + digest="${input##*@}" + fi + + if [[ -z "${digest}" ]]; then + echo "Resolving base image digest for ${input} ..." + "${CONTAINER_RUNTIME:-docker}" pull "${input}" || return 1 + repo_digest="$("${CONTAINER_RUNTIME:-docker}" image inspect --format '{{index .RepoDigests 0}}' "${input}" 2>/dev/null || true)" + [[ "${repo_digest}" == *@sha256:* ]] || { + echo "ERROR: no repository digest returned for ${input}" >&2 + return 1 + } + digest="${repo_digest##*@}" + fi + [[ "${digest}" == sha256:* ]] || { + echo "ERROR: BASE_IMAGE_DIGEST must be a sha256 digest, got ${digest}" >&2 + return 1 + } + + repository="${input%@*}" + [[ "${repository##*/}" == *:* ]] && repository="${repository%:*}" + BASE_IMAGE_BUILD_ARGS="--build-arg BASE_IMAGE=${repository}@${digest} --build-arg BASE_OL_IMAGE=${repository}@${digest} --build-arg BASE_IMAGE_REF=${ref} --build-arg BASE_IMAGE_DIGEST=${digest}" + export BASE_IMAGE_BUILD_ARGS + echo "Base image reference: ${ref}" + echo "Base image digest: ${digest}" +} diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/buildContainerImage.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/buildContainerImage.sh index 5600c030cd..47e7c0a165 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/buildContainerImage.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/buildContainerImage.sh @@ -1,4 +1,13 @@ #!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# shellcheck source=/dev/null +source "${SCRIPT_DIR}/baseImageMetadata.sh" + +checkContainerRuntime() { + CONTAINER_RUNTIME=$(which docker 2>/dev/null) || + CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + { echo "No docker or podman executable found in your PATH"; exit 1; } +} ############################# # Copyright (c) 2025, Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl @@ -8,14 +17,14 @@ usage() { cat << EOF -Usage: buildContainerImage.sh -v [version] [-o] [Docker build option] -Builds a Docker Image for Oracle Database. +Usage: buildContainerImage.sh -v [version] [-o] [Podman build option] +Builds a Podman Image for Oracle Database. Parameters: -v: version to build - Choose "latest" version for podman host machines - Choose "ol7" version for docker host machines - -o: passes on Docker build option + Choose "latest" version for Podman host machines + Choose "ol7" version for legacy hosts + -o: passes on Podman build option ############################# # Copyright (c) 2025, Oracle and/or its affiliates. @@ -60,20 +69,16 @@ done # Oracle Database Image Name IMAGE_NAME="oracle/rac-storage-server:$VERSION" -if command -v docker &>/dev/null; then - CONTAINER_BUILD_TOOL="docker" -elif command -v podman &>/dev/null; then - CONTAINER_BUILD_TOOL="podman" -else - echo "Neither Docker nor Podman is installed. Please install either Docker or Podman to proceed." - exit 1 -fi +checkContainerRuntime +if [[ "${VERSION}" == ol7* ]]; then BASE_IMAGE_DEFAULT="oraclelinux:7-slim"; else BASE_IMAGE_DEFAULT="oraclelinux:8"; fi +resolve_base_image_metadata "${VERSION}" "${BASE_IMAGE_DEFAULT}" "${DOCKEROPS}" +DOCKEROPS="${DOCKEROPS} ${BASE_IMAGE_BUILD_ARGS}" # Go into version folder -cd "$VERSION" || exit +cd "$VERSION" || exit 1 echo "==========================" -echo "DOCKER info:" -docker info +echo "Container runtime info:" +"${CONTAINER_RUNTIME}" info echo "==========================" # Proxy settings @@ -107,17 +112,18 @@ echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date '+%s') # shellcheck disable=SC2086 -$CONTAINER_BUILD_TOOL build --force-rm=true --no-cache=true $DOCKEROPS $PROXY_SETTINGS -t $IMAGE_NAME -f Containerfile . || { +"${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true $DOCKEROPS $PROXY_SETTINGS -t $IMAGE_NAME -f Containerfile . || { echo "There was an error building the image." exit 1 } +BUILD_STATUS=$? BUILD_END=$(date '+%s') # shellcheck disable=SC2154,SC2003 BUILD_ELAPSED=$((BUILD_END - BUILD_START)) echo "" # shellcheck disable=SC2181,SC2320 -if [ $? -eq 0 ]; then +if [ ${BUILD_STATUS} -eq 0 ]; then cat << EOF Oracle RAC Storage Server Container Image version $VERSION is ready to be extended: @@ -128,5 +134,5 @@ cat << EOF EOF else - echo "Oracle RAC Storage Server Docker Image was NOT successfully created. Check the output and correct any reported problems with the docker build operation." -fi \ No newline at end of file + echo "Oracle RAC Storage Server image was NOT successfully created. Check the output and correct any reported problems with the container build operation." +fi diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/Containerfile b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/Containerfile index ab0ad5338d..3b55db61b1 100644 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/Containerfile +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/Containerfile @@ -1,3 +1,4 @@ +# hadolint global ignore=DL3006 ############################# # Copyright (c) 2025, Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl @@ -16,7 +17,16 @@ # # Pull base image # --------------- -FROM oraclelinux:8 +ARG BASE_IMAGE=oraclelinux:8 +ARG BASE_IMAGE_REF=oraclelinux:8 +ARG BASE_IMAGE_DIGEST=unknown +FROM $BASE_IMAGE +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- @@ -55,6 +65,10 @@ RUN rm -rf $INSTALL_DIR/install && \ chmod 755 /usr/bin/$INITSH && \ chmod 666 $SCRIPT_DIR/$EXPORTFILE +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + USER root VOLUME ["/oradata"] WORKDIR /workdir diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/runOracle.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/runOracle.sh index e4170ae874..c316ec42d6 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/runOracle.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/runOracle.sh @@ -1,4 +1,5 @@ #!/bin/bash +# shellcheck disable=SC2034,SC2154,SC2173 # ############################# # Copyright (c) 2025, Oracle and/or its affiliates. @@ -11,7 +12,6 @@ # if [ -f /etc/storage_env_vars ]; then -# shellcheck disable=SC1091 source /etc/storage_env_vars fi @@ -19,13 +19,10 @@ logfile="/tmp/storage_setup.log" touch $logfile chmod 666 $logfile -# shellcheck disable=SC2034,SC2086 progname="$(basename $0)" ####################### Constants ################# -# shellcheck disable=SC2034 declare -r FALSE=1 -# shellcheck disable=SC2034 declare -r TRUE=0 export REQUIRED_SPACE_GB=55 export ORADATA=/oradata @@ -36,12 +33,10 @@ export FILE_COUNT=0 check_space () { local REQUIRED_SPACE_GB=$1 - # shellcheck disable=SC2006 + AVAILABLE_SPACE_GB=`df -B 1G $ORADATA | tail -n 1 | awk '{print $4}'` if [ ! -f ${INSTALL_COMPLETED_FILE} ] ;then - # shellcheck disable=SC2086 if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - # shellcheck disable=SC2006 script_name=`basename "$0"` echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | tee -a $logfile echo "$script_name: ERROR - There is not enough space available in the docker container under $ORADATA." | tee -a $logfile @@ -58,9 +53,8 @@ check_space () setupEtcResolvConf() { local stat=3 -# shellcheck disable=SC2154 + if [ "$action" == "" ]; then -# shellcheck disable=SC2236 if [ ! -z "${DNS_SERVER}" ] ; then sudo sh -c "echo \"search ${DOMAIN}\" > /etc/resolv.conf" sudo sh -c "echo \"nameserver ${DNS_SERVER}\" >> /etc/resolv.conf" @@ -71,12 +65,9 @@ fi SetupEtcHosts() { -# shellcheck disable=SC2034 local stat=3 -# shellcheck disable=SC2034 local HOST_LINE if [ "$action" == "" ]; then -# shellcheck disable=SC2236 if [ ! -z "${HOSTFILE}" ]; then if [ -f "${HOSTFILE}" ]; then sudo sh -c "cat \"${HOSTFILE}\" > /etc/hosts" @@ -101,7 +92,7 @@ fi echo "$ORADATA dir doesn't exist! exiting" | tee -a $logfile exit 1 fi - # shellcheck disable=SC2086 + if [ -z $ASM_STORAGE_SIZE_GB ] ;then echo "ASM_STORAGE_SIZE env variable is not defined! Assigning 50GB default" | tee -a $logfile ASM_STORAGE_SIZE_GB=50 @@ -117,7 +108,6 @@ fi echo "Checking Space" | tee -a $logfile check_space $ASM_STORAGE_SIZE_GB - # shellcheck disable=SC2004 ASM_DISKS_SIZE=$(($ASM_STORAGE_SIZE_GB/5)) count=1; while [ $count -le 5 ]; @@ -130,12 +120,12 @@ fi else echo "$ORADATA/asm_disk0$count.img file already exist! Skipping file creation" | tee -a $logfile fi - # shellcheck disable=SC2004 + count=$(($count+1)) done - # shellcheck disable=SC2012 + FILE_COUNT=$(ls $ORADATA/asm_disk0* | wc -l) - # shellcheck disable=SC2086 + if [ ${FILE_COUNT} -ge 5 ];then echo "Touching ${INSTALL_COMPLETED_FILE}" | tee -a $logfile touch ${INSTALL_COMPLETED_FILE} @@ -158,7 +148,6 @@ fi systemctl status rpcbind.service | tee -a $logfile echo "Setting up /etc/exports" - # shellcheck disable=SC2086,SC2002 cat $SCRIPT_DIR/$EXPORTFILE | tee -a /etc/exports echo "Exporting File System" diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/setupLinuxEnv.sh index 8c0978d9bc..ee3c3bf06e 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/setupLinuxEnv.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/latest/setupLinuxEnv.sh @@ -15,18 +15,18 @@ mkdir /oradata && \ chmod ug+x /opt/scripts/startup/*.sh && \ if grep -q "Oracle Linux Server release 9" /etc/oracle-release; then \ - dnf install -y oracle-database-preinstall-23ai && \ - cp /etc/security/limits.d/oracle-database-preinstall-23ai.conf /etc/security/limits.d/grid-database-preinstall-23ai.conf && \ - sed -i 's/oracle/grid/g' /etc/security/limits.d/grid-database-preinstall-23ai.conf && \ - rm -f /etc/systemd/system/oracle-database-preinstall-23ai-firstboot.service && \ + dnf install -y oracle-ai-database-preinstall-26ai && \ + cp /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf /etc/security/limits.d/grid-ai-database-preinstall-26ai.conf && \ + sed -i 's/oracle/grid/g' /etc/security/limits.d/grid-ai-database-preinstall-26ai.conf && \ + rm -f /etc/systemd/system/oracle-ai-database-preinstall-26ai-firstboot.service && \ sed -i 's/^TasksMax\S*/TasksMax=80%/g' /usr/lib/systemd/system/user-.slice.d/10-defaults.conf && \ dnf clean all; \ else \ dnf -y install oraclelinux-developer-release-el8 && \ - dnf -y install oracle-database-preinstall-23ai && \ - cp /etc/security/limits.d/oracle-database-preinstall-23ai.conf /etc/security/limits.d/grid-database-preinstall-23ai.conf && \ - sed -i 's/oracle/grid/g' /etc/security/limits.d/grid-database-preinstall-23ai.conf && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-23ai-firstboot && \ + dnf -y install oracle-ai-database-preinstall-26ai && \ + cp /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf /etc/security/limits.d/grid-ai-database-preinstall-26ai.conf && \ + sed -i 's/oracle/grid/g' /etc/security/limits.d/grid-ai-database-preinstall-26ai.conf && \ + rm -f /etc/rc.d/init.d/oracle-ai-database-preinstall-26ai-firstboot && \ dnf clean all; \ fi && \ dnf -y install net-tools which zip unzip tar openssh-server vim-minimal which vim-minimal passwd sudo nfs-utils && \ diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/Containerfile b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/Containerfile index 1a047aff0d..37201e148b 100644 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/Containerfile +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/Containerfile @@ -1,20 +1,30 @@ +# hadolint global ignore=DL3006 # LICENSE UPL 1.0 # # Copyright (c) 1982-2025 Oracle and/or its affiliates. All rights reserved. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for Oracle Database 18c RAC Storage Server. This file create NFS server for ASM storage. +# This is the Containerfile for Oracle RAC Storage Server. This file creates an NFS server for ASM storage. # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile +# Put all downloaded files in the same directory as this Containerfile # Run: -# $ docker build -t oracle/rac-storage-server:19.3.0. +# $ podman build -t oracle/rac-storage-server:ol7 . # # Pull base image # --------------- -FROM oraclelinux:7-slim +ARG BASE_IMAGE=oraclelinux:7-slim +ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_DIGEST=unknown +FROM $BASE_IMAGE +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- @@ -48,10 +58,15 @@ RUN rm -rf $INSTALL_DIR/install && \ chmod 755 $SCRIPT_DIR/*.sh && \ chmod 666 $SCRIPT_DIR/$EXPORTFILE +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + USER oracle VOLUME ["/oradata"] WORKDIR /home/oracle # Define default command to start Oracle Database. -CMD ["exec", "$SCRIPT_DIR/$RUN_FILE"] +# hadolint ignore=DL3025 +CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/checkSpace.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/checkSpace.sh index eedb57330f..3544ed3c06 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/checkSpace.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/checkSpace.sh @@ -1,7 +1,7 @@ #!/bin/bash # LICENSE UPL 1.0 # -# Copyright (c) 1982-2025 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. # # Since: January, 2018 # Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/runOracle.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/runOracle.sh index 168d81764d..62e6f1d93e 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/runOracle.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/runOracle.sh @@ -1,7 +1,8 @@ #!/bin/bash +# shellcheck disable=SC2034,SC2154,SC2173 # LICENSE UPL 1.0 # -# Copyright (c) 1982-2025 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. # # Since: January, 2018 # Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com @@ -11,18 +12,15 @@ # if [ -f /etc/rac_env_vars ]; then -# shellcheck disable=SC1091 source /etc/rac_env_vars fi logfile="/tmp/orod.log" touch $logfile chmod 666 /tmp/orod.log -# shellcheck disable=SC2086,SC2034 progname="$(basename $0)" ####################### Constants ################# -# shellcheck disable=SC2034 declare -r FALSE=1 declare -r TRUE=0 export REQUIRED_SPACE_GB=55 @@ -34,13 +32,10 @@ export FILE_COUNT=0 check_space () { local REQUIRED_SPACE_GB=$1 -# shellcheck disable=SC2006,SC2086 + AVAILABLE_SPACE_GB=`df -B 1G $ORADATA | tail -n 1 | awk '{print $4}'` -# shellcheck disable=SC1009 if [ ! -f ${INSTALL_COMPLETED_FILE} ] ;then -# shellcheck disable=SC2086 if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - # shellcheck disable=SC2006 script_name=`basename "$0"` echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "$script_name: ERROR - There is not enough space available in the docker container under $ORADATA." @@ -83,7 +78,6 @@ touch /tmp/sigterm ########### SIGKILL handler ############ function _kill() { echo "SIGKILL received, shutting down database!" -# shellcheck disable=SC2034 local cmd echo "Stopping nfs server" sudo /usr/sbin/rpc.nfsd 0 @@ -107,14 +101,13 @@ trap _int SIGINT trap _term SIGTERM # Set SIGKILL handler -# shellcheck disable=SC2173 trap _kill SIGKILL if [ ! -d "$ORADATA" ] ;then echo "$ORADATA dir doesn't exist! exiting" exit 1 fi -# shellcheck disable=SC2086 + if [ -z $ASM_STORAGE_SIZE_GB ] ;then echo "ASM_STORAGE_SIZE env variable is not defined! Assigning 50GB default" ASM_STORAGE_SIZE_GB=50 @@ -127,7 +120,6 @@ sudo chown -R oracle:oinstall /oradata echo "Checking Space" check_space $ASM_STORAGE_SIZE_GB -# shellcheck disable=SC2004 ASM_DISKS_SIZE=$(($ASM_STORAGE_SIZE_GB/5)) count=1; while [ $count -le 5 ]; @@ -139,12 +131,12 @@ dd if=/dev/zero of=$ORADATA/asm_disk0$count.img bs=1G count=$ASM_DISKS_SIZE else echo "$ORADATA/asm_disk0$count.img file already exist! Skipping file creation" fi -# shellcheck disable=SC2004 + count=$(($count+1)) done -# shellcheck disable=SC2012 + FILE_COUNT=$(ls $ORADATA/asm_disk0* | wc -l) -# shellcheck disable=SC2086 + if [ ${FILE_COUNT} -ge 5 ];then echo "Touching ${INSTALL_COMPLETED_FILE}" touch ${INSTALL_COMPLETED_FILE} @@ -156,7 +148,6 @@ echo "#################################################" echo "Setting up /etc/exports" -# shellcheck disable=SC2086,SC2002 cat $SCRIPT_DIR/$EXPORTFILE | sudo tee -a /etc/exports echo "Starting RPC Bind " @@ -175,9 +166,8 @@ sudo /usr/sbin/rpc.mountd --manage-gids sudo /usr/sbin/rpc.rquotad echo "Checking NFS server" -# shellcheck disable=SC2006,SC2196,SC2126 PROC_COUNT=`ps aux | egrep 'rpcbind|mountd|nfsd' | grep -v "grep -E rpcbind|mountd|nfsd" | wc -l` -# shellcheck disable=SC2086 + if [ $PROC_COUNT -gt 1 ]; then echo "####################################################" echo " NFS Server is up and running " diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupLinuxEnv.sh index 389aaf7a5b..fc6c663dcd 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupLinuxEnv.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupLinuxEnv.sh @@ -1,7 +1,7 @@ #!/bin/bash # LICENSE UPL 1.0 # -# Copyright (c) 1982-2025 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. # # Since: January, 2018 # Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com diff --git a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupSudo.sh b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupSudo.sh index d65b6e29ae..a07c060e0d 100755 --- a/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupSudo.sh +++ b/OracleDatabase/RAC/OracleRACStorageServer/containerfiles/ol7/setupSudo.sh @@ -1,7 +1,7 @@ #!/bin/bash # LICENSE UPL 1.0 # -# Copyright (c) 1982-2025 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. # # Since: November, 2018 # Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/Dockerfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/Dockerfile deleted file mode 100644 index c9cdcc8e4f..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 12c Release 2 RAC Storage Server. This file create NFS server for ASM storage. -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/rac-storage-server:12.2.0.1. -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Paramdeep saini , Sanjay Singh - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ - EXPORTFILE=exportfile \ - RUN_FILE="runOracle.sh" \ - SUDO_SETUP_FILE="setupSudo.sh" \ - BIN="/usr/sbin" \ - ORADATA="/oradata" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - SCRIPT_DIR=$INSTALL_DIR/startup - -# Copy binaries -# ------------- -# Copy Linux setup Files -COPY $SETUP_LINUX_FILE $SUDO_SETUP_FILE $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $EXPORTFILE $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$SUDO_SETUP_FILE && \ - sync - -RUN rm -rf $INSTALL_DIR/install && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/$EXPORTFILE - -USER oracle -VOLUME ["/oradata"] -WORKDIR /home/oracle - -# Define default command to start Oracle Database. - -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/checkSpace.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/checkSpace.sh deleted file mode 100644 index 3544ed3c06..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=5 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/exportfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/exportfile deleted file mode 100644 index 906122a523..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/exportfile +++ /dev/null @@ -1 +0,0 @@ -/oradata *(rw,sync,no_wdelay,no_root_squash) diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/runOracle.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/runOracle.sh deleted file mode 100755 index daf6b2a97d..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/runOracle.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Runs NFS server inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi -logfile="/tmp/orod.log" - -touch $logfile -chmod 666 /tmp/orod.log -progname="$(basename $0)" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -export REQUIRED_SPACE_GB=55 -export ORADATA=/oradata -export INSTALL_COMPLETED_FILE="/home/oracle/installcomplete" -export FILE_COUNT=0 -################################################## - -check_space () -{ -local REQUIRED_SPACE_GB=$1 - -AVAILABLE_SPACE_GB=`df -B 1G $ORADATA | tail -n 1 | awk '{print $4}'` -if [ ! -f ${INSTALL_COMPLETED_FILE} ] ;then -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container under $ORADATA." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -else - echo " Space check passed : $ORADATA has avilable space $AVAILABLE_SPACE_GB and ASM storage set to $REQUIRED_SPACE_GB" -fi; -fi; -} - -########### SIGINT handler ############ -function _int() { - echo "Stopping container." -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/stop -} - -########### SIGTERM handler ############ -function _term() { - echo "Stopping container." - echo "SIGTERM received, shutting down!" -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/sigterm -} - -########### SIGKILL handler ############ -function _kill() { - echo "SIGKILL received, shutting down database!" -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/sigkill -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -# Set SIGINT handler -trap _int SIGINT - -# Set SIGTERM handler -trap _term SIGTERM - -# Set SIGKILL handler -trap _kill SIGKILL - -if [ ! -d "$ORADATA" ] ;then -echo "$ORADATA dir doesn't exist! exiting" -exit 1 -fi - -if [ -z $ASM_STORAGE_SIZE_GB ] ;then -echo "ASM_STORAGE_SIZE env variable is not defined! Assigning 50GB default" -ASM_STORAGE_SIZE_GB=50 -else -echo "ASM STORAGE SIZE set to : $ASM_STORAGE_SIZE_GB" -fi - -echo "Oracle user will be the owner for /oradata" -sudo chown -R oracle:oinstall /oradata - -echo "Checking Space" -check_space $ASM_STORAGE_SIZE_GB -ASM_DISKS_SIZE=$(($ASM_STORAGE_SIZE_GB/5)) -count=1; -while [ $count -le 5 ]; -do -echo "Creating ASM Disks $ORADATA/asm_disk0$count.img of size $ASM_DISKS_SIZE" - -if [ ! -f $ORADATA/asm_disk0$count.img ];then -dd if=/dev/zero of=$ORADATA/asm_disk0$count.img bs=1G count=$ASM_DISKS_SIZE -else -echo "$ORADATA/asm_disk0$count.img file already exist! Skipping file creation" -fi - -count=$(($count+1)) -done - -FILE_COUNT=$(ls $ORADATA/asm_disk0* | wc -l) - -if [ ${FILE_COUNT} -ge 5 ];then -echo "Touching ${INSTALL_COMPLETED_FILE}" -touch ${INSTALL_COMPLETED_FILE} -fi - -echo "#################################################" -echo " Starting NFS Server Setup " -echo "#################################################" - - -echo "Setting up /etc/exports" -cat $SCRIPT_DIR/$EXPORTFILE | sudo tee -a /etc/exports - -echo "Starting RPC Bind " -sudo /sbin/rpcbind -w - -echo "Exporting File System" -sudo /usr/sbin/exportfs -r - -echo "Starting RPC NFSD" -sudo /usr/sbin/rpc.nfsd - -echo "Starting RPC Mountd" -sudo /usr/sbin/rpc.mountd --manage-gids - -#echo "Starting Rpc Quotad" -sudo /usr/sbin/rpc.rquotad - -echo "Checking NFS server" -PROC_COUNT=`ps aux | egrep 'rpcbind|mountd|nfsd' | grep -v "grep -E rpcbind|mountd|nfsd" | wc -l` - -if [ $PROC_COUNT -gt 1 ]; then -echo "####################################################" -echo " NFS Server is up and running " -echo " Create NFS volume for $ORADATA/$ORACLE_SID " -echo "####################################################" -echo $TRUE -else -echo "NFS Server Setup Failed" -fi - -tail -f /tmp/orod.log & -childPID=$! -wait $childPID diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupLinuxEnv.sh deleted file mode 100755 index 78b00e23cf..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /oradata && \ -chmod ug+x /opt/scripts/startup/*.sh && \ -yum -y install oracle-database-server-12cR2-preinstall net-tools which zip unzip tar openssh-server openssh-client vim-minimal which vim-minimal passwd sudo nfs-utils && \ -yum clean all diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupSudo.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupSudo.sh deleted file mode 100644 index a07c060e0d..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/12.2.0.1/setupSudo.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: November, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: setup the sudo for Oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/Dockerfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/Dockerfile deleted file mode 100644 index 23333cd392..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 18c RAC Storage Server. This file create NFS server for ASM storage. -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/rac-storage-server:18.3.0. -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Paramdeep saini , Sanjay Singh - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ - EXPORTFILE=exportfile \ - RUN_FILE="runOracle.sh" \ - SUDO_SETUP_FILE="setupSudo.sh" \ - BIN="/usr/sbin" \ - ORADATA="/oradata" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - SCRIPT_DIR=$INSTALL_DIR/startup - -# Copy binaries -# ------------- -# Copy Linux setup Files -COPY $SETUP_LINUX_FILE $SUDO_SETUP_FILE $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $EXPORTFILE $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$SUDO_SETUP_FILE && \ - sync - -RUN rm -rf $INSTALL_DIR/install && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/$EXPORTFILE - -USER oracle -VOLUME ["/oradata"] -WORKDIR /home/oracle - -# Define default command to start Oracle Database. - -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/checkSpace.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/checkSpace.sh deleted file mode 100644 index 3544ed3c06..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=5 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/exportfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/exportfile deleted file mode 100644 index 906122a523..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/exportfile +++ /dev/null @@ -1 +0,0 @@ -/oradata *(rw,sync,no_wdelay,no_root_squash) diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/runOracle.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/runOracle.sh deleted file mode 100755 index daf6b2a97d..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/runOracle.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Runs NFS server inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi -logfile="/tmp/orod.log" - -touch $logfile -chmod 666 /tmp/orod.log -progname="$(basename $0)" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -export REQUIRED_SPACE_GB=55 -export ORADATA=/oradata -export INSTALL_COMPLETED_FILE="/home/oracle/installcomplete" -export FILE_COUNT=0 -################################################## - -check_space () -{ -local REQUIRED_SPACE_GB=$1 - -AVAILABLE_SPACE_GB=`df -B 1G $ORADATA | tail -n 1 | awk '{print $4}'` -if [ ! -f ${INSTALL_COMPLETED_FILE} ] ;then -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container under $ORADATA." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -else - echo " Space check passed : $ORADATA has avilable space $AVAILABLE_SPACE_GB and ASM storage set to $REQUIRED_SPACE_GB" -fi; -fi; -} - -########### SIGINT handler ############ -function _int() { - echo "Stopping container." -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/stop -} - -########### SIGTERM handler ############ -function _term() { - echo "Stopping container." - echo "SIGTERM received, shutting down!" -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/sigterm -} - -########### SIGKILL handler ############ -function _kill() { - echo "SIGKILL received, shutting down database!" -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/sigkill -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -# Set SIGINT handler -trap _int SIGINT - -# Set SIGTERM handler -trap _term SIGTERM - -# Set SIGKILL handler -trap _kill SIGKILL - -if [ ! -d "$ORADATA" ] ;then -echo "$ORADATA dir doesn't exist! exiting" -exit 1 -fi - -if [ -z $ASM_STORAGE_SIZE_GB ] ;then -echo "ASM_STORAGE_SIZE env variable is not defined! Assigning 50GB default" -ASM_STORAGE_SIZE_GB=50 -else -echo "ASM STORAGE SIZE set to : $ASM_STORAGE_SIZE_GB" -fi - -echo "Oracle user will be the owner for /oradata" -sudo chown -R oracle:oinstall /oradata - -echo "Checking Space" -check_space $ASM_STORAGE_SIZE_GB -ASM_DISKS_SIZE=$(($ASM_STORAGE_SIZE_GB/5)) -count=1; -while [ $count -le 5 ]; -do -echo "Creating ASM Disks $ORADATA/asm_disk0$count.img of size $ASM_DISKS_SIZE" - -if [ ! -f $ORADATA/asm_disk0$count.img ];then -dd if=/dev/zero of=$ORADATA/asm_disk0$count.img bs=1G count=$ASM_DISKS_SIZE -else -echo "$ORADATA/asm_disk0$count.img file already exist! Skipping file creation" -fi - -count=$(($count+1)) -done - -FILE_COUNT=$(ls $ORADATA/asm_disk0* | wc -l) - -if [ ${FILE_COUNT} -ge 5 ];then -echo "Touching ${INSTALL_COMPLETED_FILE}" -touch ${INSTALL_COMPLETED_FILE} -fi - -echo "#################################################" -echo " Starting NFS Server Setup " -echo "#################################################" - - -echo "Setting up /etc/exports" -cat $SCRIPT_DIR/$EXPORTFILE | sudo tee -a /etc/exports - -echo "Starting RPC Bind " -sudo /sbin/rpcbind -w - -echo "Exporting File System" -sudo /usr/sbin/exportfs -r - -echo "Starting RPC NFSD" -sudo /usr/sbin/rpc.nfsd - -echo "Starting RPC Mountd" -sudo /usr/sbin/rpc.mountd --manage-gids - -#echo "Starting Rpc Quotad" -sudo /usr/sbin/rpc.rquotad - -echo "Checking NFS server" -PROC_COUNT=`ps aux | egrep 'rpcbind|mountd|nfsd' | grep -v "grep -E rpcbind|mountd|nfsd" | wc -l` - -if [ $PROC_COUNT -gt 1 ]; then -echo "####################################################" -echo " NFS Server is up and running " -echo " Create NFS volume for $ORADATA/$ORACLE_SID " -echo "####################################################" -echo $TRUE -else -echo "NFS Server Setup Failed" -fi - -tail -f /tmp/orod.log & -childPID=$! -wait $childPID diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupLinuxEnv.sh deleted file mode 100755 index fc6c663dcd..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /oradata && \ -chmod ug+x /opt/scripts/startup/*.sh && \ -yum -y install oracle-database-preinstall-18c net-tools which zip unzip tar openssh-server openssh-client vim-minimal which vim-minimal passwd sudo nfs-utils && \ -yum clean all diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupSudo.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupSudo.sh deleted file mode 100644 index a07c060e0d..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/18.3.0/setupSudo.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: November, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: setup the sudo for Oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/Dockerfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/Dockerfile deleted file mode 100644 index b5b21c9098..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/Dockerfile +++ /dev/null @@ -1,57 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 18c RAC Storage Server. This file create NFS server for ASM storage. -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/rac-storage-server:19.3.0. -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ - EXPORTFILE=exportfile \ - RUN_FILE="runOracle.sh" \ - SUDO_SETUP_FILE="setupSudo.sh" \ - BIN="/usr/sbin" \ - ORADATA="/oradata" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - SCRIPT_DIR=$INSTALL_DIR/startup - -# Copy binaries -# ------------- -# Copy Linux setup Files -COPY $SETUP_LINUX_FILE $SUDO_SETUP_FILE $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $EXPORTFILE $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$SUDO_SETUP_FILE && \ - sync - -RUN rm -rf $INSTALL_DIR/install && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/$EXPORTFILE - -USER oracle -VOLUME ["/oradata"] -WORKDIR /home/oracle - -# Define default command to start Oracle Database. -# hadolint ignore=DL3025 -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/checkSpace.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/checkSpace.sh deleted file mode 100644 index 3544ed3c06..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=5 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/exportfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/exportfile deleted file mode 100644 index 906122a523..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/exportfile +++ /dev/null @@ -1 +0,0 @@ -/oradata *(rw,sync,no_wdelay,no_root_squash) diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/runOracle.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/runOracle.sh deleted file mode 100755 index daf6b2a97d..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/runOracle.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Runs NFS server inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi -logfile="/tmp/orod.log" - -touch $logfile -chmod 666 /tmp/orod.log -progname="$(basename $0)" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -export REQUIRED_SPACE_GB=55 -export ORADATA=/oradata -export INSTALL_COMPLETED_FILE="/home/oracle/installcomplete" -export FILE_COUNT=0 -################################################## - -check_space () -{ -local REQUIRED_SPACE_GB=$1 - -AVAILABLE_SPACE_GB=`df -B 1G $ORADATA | tail -n 1 | awk '{print $4}'` -if [ ! -f ${INSTALL_COMPLETED_FILE} ] ;then -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container under $ORADATA." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -else - echo " Space check passed : $ORADATA has avilable space $AVAILABLE_SPACE_GB and ASM storage set to $REQUIRED_SPACE_GB" -fi; -fi; -} - -########### SIGINT handler ############ -function _int() { - echo "Stopping container." -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/stop -} - -########### SIGTERM handler ############ -function _term() { - echo "Stopping container." - echo "SIGTERM received, shutting down!" -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/sigterm -} - -########### SIGKILL handler ############ -function _kill() { - echo "SIGKILL received, shutting down database!" -local cmd -echo "Stopping nfs server" -sudo /usr/sbin/rpc.nfsd 0 -echo "Executing exportfs au" -sudo /usr/sbin/exportfs -au -echo "Executing exportfs f" -sudo /usr/sbin/exportfs -f -touch /tmp/sigkill -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -# Set SIGINT handler -trap _int SIGINT - -# Set SIGTERM handler -trap _term SIGTERM - -# Set SIGKILL handler -trap _kill SIGKILL - -if [ ! -d "$ORADATA" ] ;then -echo "$ORADATA dir doesn't exist! exiting" -exit 1 -fi - -if [ -z $ASM_STORAGE_SIZE_GB ] ;then -echo "ASM_STORAGE_SIZE env variable is not defined! Assigning 50GB default" -ASM_STORAGE_SIZE_GB=50 -else -echo "ASM STORAGE SIZE set to : $ASM_STORAGE_SIZE_GB" -fi - -echo "Oracle user will be the owner for /oradata" -sudo chown -R oracle:oinstall /oradata - -echo "Checking Space" -check_space $ASM_STORAGE_SIZE_GB -ASM_DISKS_SIZE=$(($ASM_STORAGE_SIZE_GB/5)) -count=1; -while [ $count -le 5 ]; -do -echo "Creating ASM Disks $ORADATA/asm_disk0$count.img of size $ASM_DISKS_SIZE" - -if [ ! -f $ORADATA/asm_disk0$count.img ];then -dd if=/dev/zero of=$ORADATA/asm_disk0$count.img bs=1G count=$ASM_DISKS_SIZE -else -echo "$ORADATA/asm_disk0$count.img file already exist! Skipping file creation" -fi - -count=$(($count+1)) -done - -FILE_COUNT=$(ls $ORADATA/asm_disk0* | wc -l) - -if [ ${FILE_COUNT} -ge 5 ];then -echo "Touching ${INSTALL_COMPLETED_FILE}" -touch ${INSTALL_COMPLETED_FILE} -fi - -echo "#################################################" -echo " Starting NFS Server Setup " -echo "#################################################" - - -echo "Setting up /etc/exports" -cat $SCRIPT_DIR/$EXPORTFILE | sudo tee -a /etc/exports - -echo "Starting RPC Bind " -sudo /sbin/rpcbind -w - -echo "Exporting File System" -sudo /usr/sbin/exportfs -r - -echo "Starting RPC NFSD" -sudo /usr/sbin/rpc.nfsd - -echo "Starting RPC Mountd" -sudo /usr/sbin/rpc.mountd --manage-gids - -#echo "Starting Rpc Quotad" -sudo /usr/sbin/rpc.rquotad - -echo "Checking NFS server" -PROC_COUNT=`ps aux | egrep 'rpcbind|mountd|nfsd' | grep -v "grep -E rpcbind|mountd|nfsd" | wc -l` - -if [ $PROC_COUNT -gt 1 ]; then -echo "####################################################" -echo " NFS Server is up and running " -echo " Create NFS volume for $ORADATA/$ORACLE_SID " -echo "####################################################" -echo $TRUE -else -echo "NFS Server Setup Failed" -fi - -tail -f /tmp/orod.log & -childPID=$! -wait $childPID diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupLinuxEnv.sh deleted file mode 100755 index fc6c663dcd..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /oradata && \ -chmod ug+x /opt/scripts/startup/*.sh && \ -yum -y install oracle-database-preinstall-18c net-tools which zip unzip tar openssh-server openssh-client vim-minimal which vim-minimal passwd sudo nfs-utils && \ -yum clean all diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupSudo.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupSudo.sh deleted file mode 100644 index a07c060e0d..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/19.3.0/setupSudo.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: November, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: setup the sudo for Oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/buildDockerImage.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/buildDockerImage.sh deleted file mode 100755 index ca7c144f17..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/buildDockerImage.sh +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Since: January, 2018 -# Author: Paramdeep saini -# Description: Build script for building Oracle RAC Storage Server Docker images. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# - -usage() { - cat << EOF - -Usage: buildDockerImage.sh -v [version] [-o] [Docker build option] -Builds a Docker Image for Oracle Database. - -Parameters: - -v: version to build - Choose one of: $(for i in */; do echo -n "${i%/} "; done) - -o: passes on Docker build option - -LICENSE UPL 1.0 - -Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. - -EOF - exit 0 -} - -############## -#### MAIN #### -############## - -# Parameters -VERSION="latest" -DOCKEROPS=("${DOCKEROPS[@]}") -PROXY_SETTINGS=("${PROXY_SETTINGS[@]}") - -while getopts "hiv:o:" optname; do - case "$optname" in - "h") - usage - ;; - "v") - VERSION="$OPTARG" - ;; - "o") - DOCKEROPS=("$OPTARG") - ;; - "?") - usage - # shellcheck disable=SC2317 - exit 1 - ;; - *) - # Should not occur - echo "Unknown error while processing options inside buildDockerImage.sh" - ;; - esac -done - - -# Oracle Database Image Name -IMAGE_NAME="oracle/rac-storage-server:$VERSION" - -# Go into version folder -cd "$VERSION" || { echo "Error: Unable to change to directory $VERSION"; exit 1; } - - -echo "==========================" -echo "DOCKER info:" -docker info -echo "==========================" - -# Proxy settings -if [ -n "${http_proxy-}" ]; then - PROXY_SETTINGS+=("--build-arg http_proxy=${http_proxy}") -fi - -if [ -n "${https_proxy-}" ]; then - PROXY_SETTINGS+=("--build-arg https_proxy=${https_proxy}") -fi - -if [ -n "${ftp_proxy-}" ]; then - PROXY_SETTINGS+=("--build-arg ftp_proxy=${ftp_proxy}") -fi - -if [ -n "${no_proxy-}" ]; then - PROXY_SETTINGS+=("--build-arg no_proxy=${no_proxy}") -fi -# shellcheck disable=SC2128 -if [ -n "$PROXY_SETTINGS" ]; then - echo "Proxy settings were found and will be used during the build." -fi - - -# ################## # -# BUILDING THE IMAGE # -# ################## # -echo "Building image '$IMAGE_NAME' ..." - -# BUILD THE IMAGE (replace all environment variables) -BUILD_START=$(date '+%s') -if docker build --force-rm=true --no-cache=true "${DOCKEROPS[@]}" "${PROXY_SETTINGS[@]}" -t "$IMAGE_NAME" -f Dockerfile .; then - BUILD_END=$(date '+%s') - BUILD_ELAPSED=$((BUILD_END - BUILD_START)) - - echo "" - cat << EOF - Oracle RAC Storage Server Docker Image version $VERSION is ready to be extended: - - --> $IMAGE_NAME - - Build completed in $BUILD_ELAPSED seconds. - -EOF -else - echo "Oracle RAC Storage Server Docker Image was NOT successfully created. Check the output and correct any reported problems with the docker build operation." - exit 1 -fi diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/Dockerfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/Dockerfile deleted file mode 100644 index ad8024951c..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/Dockerfile +++ /dev/null @@ -1,62 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 18c RAC Storage Server. This file create NFS server for ASM storage. -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/rac-storage-server:19.3.0. -# -# Pull base image -# --------------- -FROM oraclelinux:8 - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ - EXPORTFILE=exportfile \ - RUN_FILE="runOracle.sh" \ - SUDO_SETUP_FILE="setupSudo.sh" \ - INITSH="initsh" \ - BIN="/usr/sbin" \ - ORADATA="/oradata" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - SCRIPT_DIR=$INSTALL_DIR/startup - -# Copy binaries -# ------------- -# Copy Linux setup Files -COPY $SETUP_LINUX_FILE $SUDO_SETUP_FILE $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $EXPORTFILE $INITSH $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_DIR/install/*.sh && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$SUDO_SETUP_FILE && \ - sync - -RUN rm -rf $INSTALL_DIR/install && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - chmod +x /etc/rc.d/rc.local && \ - cp $SCRIPT_DIR/$INITSH /usr/bin/$INITSH && \ - chmod 755 /usr/bin/$INITSH && \ - chmod 666 $SCRIPT_DIR/$EXPORTFILE - -USER root -VOLUME ["/oradata"] -WORKDIR /workdir - -# Define default command to start Oracle Database. -# hadolint ignore=DL3025 -ENTRYPOINT /usr/bin/$INITSH diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/checkSpace.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/checkSpace.sh deleted file mode 100644 index 4114c59a81..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=5 -AVAILABLE_SPACE_GB=$(df -PB 1G / | tail -n 1 | awk '{print $4}') - -if [ "$AVAILABLE_SPACE_GB" -lt "$REQUIRED_SPACE_GB" ]; then - script_name=$(basename "$0") - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/exportfile b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/exportfile deleted file mode 100644 index 906122a523..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/exportfile +++ /dev/null @@ -1 +0,0 @@ -/oradata *(rw,sync,no_wdelay,no_root_squash) diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/initsh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/initsh deleted file mode 100644 index 9ad2638721..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/initsh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Copyright (c) 2014-2024 , Oracle and/or its affiliates -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ - -echo "Creating env variables file /etc/storage_env_vars" -/bin/bash -c "cat /proc/1/environ | tr '\0' '\n' > /etc/storage_env_vars" -/bin/bash -c "sed -i -e 's/^/export /' /etc/storage_env_vars" - -echo "Starting Systemd" -exec /lib/systemd/systemd diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/runOracle.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/runOracle.sh deleted file mode 100755 index da456a7407..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/runOracle.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Runs NFS server inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/storage_env_vars ]; then -# shellcheck disable=SC1091 - source /etc/storage_env_vars -else - echo "Warning: /etc/storage_env_vars not found. Some environment variables may not be set." -fi - -logfile="/tmp/storage_setup.log" - -touch $logfile -chmod 666 $logfile - -####################### Constants ################# -export REQUIRED_SPACE_GB=55 -export ORADATA=/oradata -export INSTALL_COMPLETED_FILE="/workdir/installcomplete" -export FILE_COUNT=0 -################################################## - -check_space () -{ - local REQUIRED_SPACE_GB=$1 - - AVAILABLE_SPACE_GB=$(df -B 1G "$ORADATA" | tail -n 1 | awk '{print $4}') - if [ ! -f ${INSTALL_COMPLETED_FILE} ] ;then - if [ "$AVAILABLE_SPACE_GB" -lt "$REQUIRED_SPACE_GB" ]; then - script_name=$(basename "$0") - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | tee -a $logfile - echo "$script_name: ERROR - There is not enough space available in the docker container under $ORADATA." | tee -a $logfile - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." | tee -a $logfile - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | tee -a $logfile - exit 1; - else - echo " Space check passed : $ORADATA has avilable space $AVAILABLE_SPACE_GB and ASM storage set to $REQUIRED_SPACE_GB" | tee -a $logfile - fi; - fi; - } - - ################################### - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # - ############# MAIN ################ - # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # - ################################### - - if [ ! -d "$ORADATA" ] ;then - echo "$ORADATA dir doesn't exist! exiting" | tee -a $logfile - exit 1 - fi - - if [ -z "$ASM_STORAGE_SIZE_GB" ]; then - echo "ASM_STORAGE_SIZE env variable is not defined! Assigning 50GB default" | tee -a $logfile - ASM_STORAGE_SIZE_GB=50 - else - echo "ASM STORAGE SIZE set to : $ASM_STORAGE_SIZE_GB" | tee -a $logfile - fi - - echo "Oracle user will be the owner for /oradata" | tee -a $logfile - sudo chown -R oracle:oinstall /oradata - - echo "Checking Space" | tee -a $logfile - check_space "$ASM_STORAGE_SIZE_GB" - ASM_DISKS_SIZE=$((ASM_STORAGE_SIZE_GB / 5)) - count=$((count + 1)) - while [ $count -le 5 ]; - do - echo "Creating ASM Disks $ORADATA/asm_disk0$count.img of size $ASM_DISKS_SIZE" | tee -a $logfile - - if [ ! -f $ORADATA/asm_disk0$count.img ];then - dd if=/dev/zero of=$ORADATA/asm_disk0$count.img bs=1G count=$ASM_DISKS_SIZE - chown oracle:oinstall $ORADATA/asm_disk0$count.img - else - echo "$ORADATA/asm_disk0$count.img file already exist! Skipping file creation" | tee -a $logfile - fi - - count=$((count + 1)) - done - - FILE_COUNT=$(find "$ORADATA" -maxdepth 1 -type f -name 'asm_disk0*' | wc -l) - - if [ "${FILE_COUNT}" -ge 5 ]; then - echo "Touching ${INSTALL_COMPLETED_FILE}" | tee -a $logfile - touch ${INSTALL_COMPLETED_FILE} - fi - - echo "#################################################" | tee -a $logfile - echo " Starting NFS Server Setup " | tee -a $logfile - echo "#################################################" | tee -a $logfile - - - echo "Starting Nfs Server" | tee -a $logfile - systemctl start nfs-utils.service | tee -a $logfile - systemctl restart rpcbind.service | tee -a $logfile - systemctl start nfs-server.service | tee -a $logfile - - echo "Checking Nfs Service" | tee -a $logfile - systemctl status nfs-utils.service | tee -a $logfile - - echo "Checking rpc bind service" - systemctl status rpcbind.service | tee -a $logfile - - echo "Setting up /etc/exports" - tee -a /etc/exports < "$SCRIPT_DIR/$EXPORTFILE" - - echo "Exporting File System" - sudo /usr/sbin/exportfs -r | tee -a $logfile - - echo "Checking exported mountpoints" | tee -a $logfile - showmount -e | tee -a $logfile - - echo "#################################################" | tee -a $logfile - echo " Setup Completed " | tee -a $logfile - echo "#################################################" | tee -a $logfile diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupLinuxEnv.sh deleted file mode 100755 index 3598bedab1..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /oradata && \ -chmod ug+x /opt/scripts/startup/*.sh && \ -yum -y install oracle-database-preinstall-21c net-tools which zip unzip tar openssh-server vim-minimal which vim-minimal passwd sudo nfs-utils && \ -yum clean all diff --git a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupSudo.sh b/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupSudo.sh deleted file mode 100644 index 288b75fee1..0000000000 --- a/OracleDatabase/RAC/OracleRACStorageServer/dockerfiles/latest/setupSudo.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved.. -# -# Since: November, 2018 -# Author: paramdeep.saini@oracle.com, sanjay.singh@oracle.com -# Description: setup the sudo for Oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/README.md index 10a4046676..6592ef2e6c 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/README.md @@ -1,13 +1,13 @@ # Oracle Real Application Clusters in Linux Containers -Learn about container deployment options for Oracle Real Application Clusters (Oracle RAC) Release 23.26ai +Learn about container deployment options for Oracle Real Application Clusters (Oracle RAC) Release 26ai ## Overview of Running Oracle RAC in Containers Oracle Real Application Clusters (Oracle RAC) is an option for the award-winning Oracle Database Enterprise Edition. Oracle RAC is a cluster database with a shared cache architecture that overcomes the limitations of traditional shared-nothing and shared-disk approaches to provide highly scalable and available database solutions for all business applications. Oracle RAC uses Oracle Clusterware as a portable cluster software that allows clustering of independent servers so that they cooperate as a single system and Oracle Automatic Storage Management (Oracle ASM) to provide simplified storage management that is consistent across all servers and storage platforms. -Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy-to-deploy software package. For more information on Oracle RAC Database 23.26ai refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). +Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy-to-deploy software package. For more information on Oracle RAC Database 26ai refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). This guide helps you install Oracle RAC on Containers on Host Machines as explained in detail below. With the current release, you prepare the host machine, build or use pre-built Oracle RAC Container Images, and setup Oracle RAC on Single or Multiple Host machines with Oracle ASM. In this installation guide, we use [Podman](https://docs.podman.io/en/v3.0/) to create Oracle RAC Containers and manage them. @@ -26,7 +26,7 @@ To create an Oracle RAC environment, follow these steps: - [Network Management](#network-management) - [Password Management](#password-management) - [Oracle RAC on Containers Deployment Scenarios](#oracle-rac-on-containers-deployment-scenarios) - - [Oracle RAC Containers on Podman](#oracle-rac-containers-on-podman) + - [Oracle RAC Containers on Podman](#oracle-rac-containers-on-podman) - [Setup Using Oracle RAC Image](#1-setup-using-oracle-rac-container-image) - [Setup Using Oracle RAC Slim Image](#2-setup-using-oracle-rac-container-slim-image) - [Connecting to an Oracle RAC Database](#connecting-to-an-oracle-rac-database) @@ -38,6 +38,27 @@ To create an Oracle RAC environment, follow these steps: - [License](#license) - [Copyright](#copyright) +## Oracle RAC on Podman 19c software and host requirements + +For Oracle RAC on Podman, the `19.3.0` directory is a build base for Oracle Linux 8. It does **not** mean that an unpatched 19.3.0 Grid Infrastructure or Database deployment is supported. Before setup, apply the required Release Update (RU) and build or use the corresponding patched image. + +The requirements from [Software and Storage Requirements for Oracle RAC on Podman](https://docs.oracle.com/en/database/oracle/oracle-database/19/racpd/host-preparation-oracle-rac-podman.html#GUID-FAB2E98B-F707-4793-80FD-83F9CA495BA0) are: + +| Platform | Oracle software | Podman | Container image | Podman host | Required kernel | +|----------|-----------------|--------|-----------------|-------------|-----------------| +| Oracle Linux 8 x86-64 | GI 19c and Database 19c, RU 19.16 or later | 4.0.2 or later | `oraclelinux:8` | Oracle Linux 8.5 or later updates | UEKR6 or UEKR7; the documentation example uses `5.4.17-2136.300.7.el8uek.x86_64` | +| Oracle Linux 9 x86-64 | GI 19c and Database 19c, RU 19.28 or later; apply patch 34436514 to the 19.28 Database home | 4.5 or later | `oraclelinux:9` | Oracle Linux 9.5 or later updates | UEKR7, minimum `5.15.0-305.176.4.el9uek.x86_64`, and later UEKR7 updates | +| Oracle Linux 8 ARM | GI 19c and Database 19c, RU 19.19 or later | 4.0.2 or later | `oraclelinux:8` | Oracle Linux 8.7 or later updates | UEKR7, minimum `5.15.0-100.96.32.el8uek.aarch64`, and later UEKR7 updates | + +The kernel requirement applies to the Podman host, not the container. Confirm the host before deployment with: + +```bash +uname -r +podman --version +``` + +For OL8 x86-64, you may build the 19.3.0 base image with `oraclelinux:8`, but the RAC setup must use GI and Database homes patched to RU 19.16 or later. For OL9 x86-64, use RU 19.28 or later and apply patch 34436514 to the 19.28 Database home. For OL8 ARM, use RU 19.19 or later. + ## Preparation Steps for running Oracle RAC Database in containers Before you proceed to the next section, you must complete each of the steps listed in this section and complete the following prerequisites. @@ -56,7 +77,7 @@ Before you proceed to the next section, you must complete each of the steps list * How to Configure Podman for SELinux Mode * Install `git` from dnf or yum repository and clone the git repo. We clone this repo to a path called `` and refer to it. * Create a NFS Volume if you are planning to use NFS Storage for ASM Devices. See the section `Configuring NFS for Storage for Oracle RAC on Podman` in [Oracle Real Application Clusters Installation Guide for Podman](https://docs.oracle.com/cd/F39414_01/racpd/oracle-real-application-clusters-installation-guide-podman-oracle-linux-x86-64.pdf) for more details. - + **Note:** You can skip this step if you are planning to use block devices for storage. * If SELinux is enabled on the Podman host, then ensure to create an SELinux policy for Oracle RAC on Podman. For details about this procedure, see `How to Configure Podman for SELinux Mode` in the publication [Oracle Real Application Clusters Installation Guide for Podman Oracle Linux x86-64](https://docs.oracle.com/en/database/oracle/oracle-database/21/racpd/target-configuration-oracle-rac-podman.html#GUID-59138DF8-3781-4033-A38F-E0466884D008). @@ -66,10 +87,10 @@ For details about this procedure, see `How to Configure Podman for SELinux Mode` * To resolve VIPs and SCAN IPs in this guide, we use a preconfigured DNS server in our environment. Replace environment variables `-e DNS_SERVERS=10.0.20.25`,`--dns=10.0.20.25`,`-e DOMAIN=example.info` and `--dns-search=example.info` parameters in the examples in this guide based on your environment. -* The Oracle RAC `Containerfile` does not contain any Oracle software binaries. Download the following software from the [Oracle Technology Network](https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html), if you are planning to build Oracle RAC Container Images in the next section. +* The Oracle RAC `Containerfile` does not contain any Oracle software binaries. Download the following software from the [Oracle Database 26ai for Linux download page](https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html), if you are planning to build Oracle RAC Container Images in the next section. However, if you are using pre-built RAC Images from the Oracle Container Registry, then you can skip this step. - - Oracle Grid Infrastructure 23.26ai for Linux x86-64 - - Oracle Database 23.26ai for Linux x86-64 + - Oracle Grid Infrastructure 26ai for Linux x86-64 + - Oracle Database 26ai for Linux x86-64 **Notes** * If the Podman bridge network is not available outside your host, you can use the Oracle Connection Manager [CMAN Container](../OracleConnectionManager/README.md) to access the Oracle RAC Database from outside the host. @@ -106,7 +127,7 @@ If you are using pre-built Oracle RAC images from the [Oracle Container Registry * If you want to build the latest Oracle RAC Image from this Github repository, instead of using a pre-built image, then follow below instructions to build `Oracle RAC Container Image` and `Oracle RAC Container Slim Image`. -* Below section assumes that you have completed all of the prerequisites in [Preparation Steps for running Oracle RAC Database in containers](#preparation-steps-for-running-oracle-rac-database-in-containers) and completed all the steps, based on your environment. +* Below section assumes that you have completed all of the prerequisites in [Preparation Steps for running Oracle RAC Database in containers](#preparation-steps-for-running-oracle-rac-database-in-containers) and completed all the steps, based on your environment. **Note:** Ensure that you do not uncompress the binaries and patches manually before building the Oracle RAC Image. @@ -115,7 +136,7 @@ If you are using pre-built Oracle RAC images from the [Oracle Container Registry * Ensure that you have enough space in `/var/lib/containers` while building the Oracle RAC Image. Also, if required use `export TMPDIR=` for Podman to use another folder as the temporary podman cache location instead of the default `/tmp` location. ### Building Oracle RAC Database Container Image -In this document,an `Oracle RAC Database Container Image` refers to an Oracle RAC Database Container Image with Oracle Grid Infrastructure and Oracle Database Software Binaries installed during Oracle RAC Podman Image creation. The resulting images will contain the Oracle Grid Infrastructure and Oracle RAC Database Software Binaries. +In this document,an `Oracle RAC Database Container Image` refers to an Oracle RAC Database Container Image with Oracle Grid Infrastructure and Oracle Database Software Binaries installed during Oracle RAC Podman Image creation. The resulting images will contain the Oracle Grid Infrastructure and Oracle RAC Database Software Binaries. Before you begin, you must download Oracle Grid Infrastructure and Oracle RDBMS Binaries and stage them under `/docker-images/OracleDatabase/RAC/OracleRealApplicationCluster/containerfiles/`. @@ -127,26 +148,30 @@ Use the below command to build the Oracle RAC Database Container Image: | Folder | Use for | |--------|---------| -| `23.26.0` | All 23.26.* RU builds for 26ai (e.g. 23.26 → `23.26.0`) | | `19.3.0` | 19c builds (use zip build-args for RUs such as 19.32) | - -Older tracks are still present: `21.3.0`, `18.3.0`, `12.2.0.1`. +| `23.26.0` | 26ai builds using 23.26.* media | Override install media zip names with `--build-arg INSTALL_FILE_1` / `INSTALL_FILE_2` when RU zip names differ from the defaults in each folder. -Example: To build Oracle RAC Database Container Image for 26ai, use below command: -```bash -./buildContainerImage.sh -v 23.26.0 -``` -Default media for folder `23.26.0` (SHA256 in `23.26.0/Checksum`): +For 23.26ai (Oracle AI Database 26ai), download these files from the [Oracle Database 26ai for Linux download page](https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html) and place them in `containerfiles/23.26.0`: - `LINUX.X64_2326100_grid_home.zip` - `LINUX.X64_2326100_db_home.zip` -Example: build with defaults: +Build it using the default zip names: ```bash ./buildContainerImage.sh -v 23.26.0 ``` +If the downloaded zip names differ, pass their actual names through the build options: +```bash +./buildContainerImage.sh \ + -v 23.26.0 \ + -t localhost/oracle/database-rac:23.26ai \ + -o "--build-arg INSTALL_FILE_1= --build-arg INSTALL_FILE_2=" +``` + +The default media for that folder is listed in `23.26.0/Checksum`. + Example: explicit install zip names: ```bash ./buildContainerImage.sh \ @@ -168,11 +193,7 @@ In this document, an `Oracle RAC Database Container Slim Image` refers to a cont ```bash ./buildContainerImage.sh -v -i -o '--build-arg SLIMMING=true' ``` -Example: To build Oracle RAC Database Container Slim Image for 23.26ai, use the below command: -```bash -./buildContainerImage.sh -v 23.26.0 -t localhost/oracle/database-rac:23.26ai-slim -i -o '--build-arg SLIMMING=true' -``` -Example: To build Oracle RAC Database Container Slim Image for MAIN/26ai: +Example: To build Oracle RAC Database Container Slim Image for 23.26ai (Oracle AI Database 26ai), use the below command: ```bash ./buildContainerImage.sh -v 23.26.0 -t localhost/oracle/database-rac:23.26ai-slim -i -o '--build-arg SLIMMING=true' ``` @@ -180,17 +201,16 @@ To build an Oracle RAC Database Container Slim Image, you need to use `--build-a To change the Base Image during building Oracle RAC Database Container Images, you must use `--build-arg BASE_OL_IMAGE=oraclelinux:8`. - ### Building Oracle RAC Database Container Base Image In this document, an `Oracle RAC Database Container Base Image` refers to a container image that does not include installation of Oracle Grid Infrastructure and Oracle Database Software Binaries during the Oracle RAC Database Container Image creation. This image is extended to build patched image or extensions. To build an Oracle RAC Database Container Base Image run the following command: ```bash ./buildContainerImage.sh -v -b ``` -Example: To build Oracle RAC Database Container Base Image for MAIN/26ai, use the below command: +Example: To build an Oracle RAC Database Container Base Image for 23.26ai (Oracle AI Database 26ai), use the below command: ```bash ./buildContainerImage.sh -v 23.26.0 -b ``` -Example: To build an Oracle RAC Database Container Base Image for 23.26.0 for patching or extension purposes, use the below command: +Example: To build an Oracle RAC Database Container Base Image for 23.26.1 for patching or extension purposes, use the below command: ```bash ./buildContainerImage.sh \ -v 23.26.0 \ @@ -286,11 +306,11 @@ podman network create -d ipvlan --subnet=192.168.18.0/24 --opt mtu=9000 -o paren mkdir /opt/.secrets/ ``` - Generate a password file - - Edit the `/opt/.secrets/pwdfile.txt` and seed the password for the grid, oracle, and database users. - - For this deployment scenario, it will be a common password for the grid, oracle, and database users. - + + Edit the `/opt/.secrets/pwdfile.txt` and seed the password for the grid, oracle, and database users. + + For this deployment scenario, it will be a common password for the grid, oracle, and database users. + If you use `setup_rac_host.sh -prepare-rac-env`, set `RAC_SECRET` to the password value. `RAC_SECRET_MODE` is optional and defaults to `openssl`; set `RAC_SECRET_MODE=base64` only when you want a Base64 password secret without a key secret. Run the below commands for the default OpenSSL `pkeyutl` encrypted secret mode: @@ -344,7 +364,7 @@ Oracle RAC can be deployed with various scenarios, such as using NFS vs Block De ## Connecting to an Oracle RAC Database -**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC Database using the preceding sections. +**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC Database using the preceding sections. Refer to [Connecting to an Oracle RAC Database](./docs/CONNECTING.md) for instructions on how to connect to the Oracle RAC Database. @@ -382,3 +402,28 @@ All scripts and files hosted in this repository that are required to build the c ## Copyright Copyright (c) 2014-2026 Oracle and/or its affiliates. + + +## Base image provenance + +Build wrappers resolve the selected base image to a sha256 digest and pass +`BASE_IMAGE`, `BASE_IMAGE_REF`, and `BASE_IMAGE_DIGEST` to the build. +The resulting image exposes the source reference and digest as OCI labels and +writes the direct-base record to: + +``` +/usr/share/oracle/image-metadata/base-image-chain.json +``` + +Inspect an image with: + +``` +podman image inspect IMAGE --format '{{json .Config.Labels}}' +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'cat /usr/share/oracle/image-metadata/base-image-chain.json' + +RPM provenance is always recorded under `/usr/share/oracle/image-metadata/rpms`. +Inspect it with: +podman run --rm --entrypoint /bin/sh IMAGE -c \ + 'ls -l /usr/share/oracle/image-metadata/rpms && cat /usr/share/oracle/image-metadata/rpms/*.txt' +``` diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/README1.md b/OracleDatabase/RAC/OracleRealApplicationClusters/README1.md deleted file mode 100644 index ad36e25c55..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/README1.md +++ /dev/null @@ -1,1194 +0,0 @@ -# Oracle Real Application Clusters in Linux Containers - -Learn about container deployment options for Oracle Real Application Clusters (Oracle RAC) Release 21c (21.3) - -## Overview of Running Oracle RAC in Containers - -Oracle Real Application Clusters (Oracle RAC) is an option to the award-winning Oracle Database Enterprise Edition. Oracle RAC is a cluster database with a shared cache architecture that overcomes the limitations of traditional shared-nothing and shared-disk approaches to provide highly scalable and available database solutions for all business applications. -Oracle RAC uses Oracle Clusterware as a portable cluster software that allows clustering of independent servers so that they cooperate as a single system and Oracle Automatic Storage Management (Oracle ASM) to provide simplified storage management that is consistent across all servers and storage platforms. -Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy to deploy software package. - -For more information on Oracle RAC Database 21c refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). - -## Using this Image - -To create an Oracle RAC environment, complete these steps in order: - -- [Oracle Real Application Clusters in Linux Containers](#oracle-real-application-clusters-in-linux-containers) - - [Overview of Running Oracle RAC in Containers](#overview-of-running-oracle-rac-in-containers) - - [Using this Image](#using-this-image) - - [Section 1 : Prerequisites for running Oracle RAC in containers](#section-1--prerequisites-for-running-oracle-rac-in-containers) - - [Section 2: Building Oracle RAC Database Container Images](#section-2-building-oracle-rac-database-container-images) - - [Oracle RAC Container Image for Docker](#oracle-rac-container-image-for-docker) - - [Oracle RAC Container Image for Podman](#oracle-rac-container-image-for-podman) - - [Section 3: Network and Password Management](#section-3--network-and-password-management) - - [Section 4: Oracle RAC on Docker](#section-4-oracle-rac-on-docker) - - [Section 4.1 : Prerequisites for Running Oracle RAC on Docker](#section-41--prerequisites-for-running-oracle-rac-on-docker) - - [Section 4.2: Setup Oracle RAC Container on Docker](#section-42-setup-oracle-rac-container-on-docker) - - [Deploying Oracle RAC on Container with Block Devices on Docker](#deploying-oracle-rac-on-container-with-block-devices-on-docker) - - [Deploying Oracle RAC on Container With Oracle RAC Storage Container](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container) - - [Assign networks to Oracle RAC containers](#assign-networks-to-oracle-rac-containers) - - [Start the first container](#start-the-first-container) - - [Connect to the Oracle RAC container](#connect-to-the-oracle-rac-container) - - [Section 4.3: Adding an Oracle RAC Node using a Docker Container](#section-43-adding-an-oracle-rac-node-using-a-docker-container) - - [Deploying Oracle RAC Additional Node on Container with Block Devices on Docker](#deploying-oracle-rac-additional-node-on-container-with-block-devices-on-docker) - - [Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Docker](#deploying-oracle-rac-additional-node-on-container-with-oracle-rac-storage-container-on-docker) - - [Assign Network to additional Oracle RAC container](#assign-network-to-additional-oracle-rac-container) - - [Start Oracle RAC racnode2 container](#start-oracle-rac-racnode2-container) - - [Connect to the Oracle RAC racnode2 container](#connect-to-the-oracle-rac-racnode2-container) - - [Section 4.4: Setup Oracle RAC Container on Docker with Docker Compose](#section-44-setup-oracle-rac-container-on-docker-with-docker-compose) - - [Section 5: Oracle RAC on Podman](#section-5-oracle-rac-on-podman) - - [Section 5.1 : Prerequisites for Running Oracle RAC on Podman](#section-51--prerequisites-for-running-oracle-rac-on-podman) - - [Section 5.2: Setup RAC Containers on Podman](#section-52-setup-rac-containers-on-podman) - - [Deploying Oracle RAC Containers with Block Devices on Podman](#deploying-oracle-rac-containers-with-block-devices-on-podman) - - [Deploying Oracle RAC on Container With Oracle RAC Storage Container on Podman](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container-on-podman) - - [Assign networks to Oracle RAC containers Created Using Podman](#assign-networks-to-oracle-rac-containers-created-using-podman) - - [Start the first container Created Using Podman](#start-the-first-container-created-using-podman) - - [Connect to the Oracle RAC container Created Using Podman](#connect-to-the-oracle-rac-container-created-using-podman) - - [Section 5.3: Adding a Oracle RAC Node using a container on Podman](#section-53-adding-a-oracle-rac-node-using-a-container-on-podman) - - [Deploying Oracle RAC Additional Node on Container with Block Devices on Podman](#deploying-oracle-rac-additional-node-on-container-with-block-devices-on-podman) - - [Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman](#deploying-oracle-rac-additional-node-on-container-with-oracle-rac-storage-container-on-podman) - - [Assign Network to additional Oracle RAC container Created Using Podman](#assign-network-to-additional-oracle-rac-container-created-using-podman) - - [Start Oracle RAC container](#start-oracle-rac-container) - - [Section 5.4: Setup Oracle RAC Container on Podman with Podman Compose](#section-54-setup-oracle-rac-container-on-podman-with-podman-compose) - - [Section 6: Connecting to an Oracle RAC Database](#section-6-connecting-to-an-oracle-rac-database) - - [Section 7: Environment Variables for the First Node](#section-7-environment-variables-for-the-first-node) - - [Section 8: Environment Variables for the Second and Subsequent Nodes](#section-8-environment-variables-for-the-second-and-subsequent-nodes) - - [Section 9: Building a Patched Oracle RAC Container Image](#section-9-building-a-patched-oracle-rac-container-image) - - [Section 10 : Sample Container Files for Older Releases](#section-10--sample-container-files-for-older-releases) - - [Docker](#docker) - - [Podman](#podman) - - [Section 11 : Support](#section-11--support) - - [Docker Support](#docker-support) - - [Podman Support](#podman-support) - - [Section 12 : License](#section-12--license) - - [Section 13 : Copyright](#section-13--copyright) - -## Section 1 : Prerequisites for running Oracle RAC in containers - -Before you proceed to section two, you must complete each of the steps listed in this section. - -To review the resource requirements for Oracle RAC, see Oracle Database 21c Release documentation [Oracle Grid Infrastructure Installation and Upgrade Guide](https://docs.oracle.com/en/database/oracle/oracle-database/21/cwlin/index.html) - -Complete each of the following prerequisites: - -1. Ensure that each container that you will deploy as part of your cluster meets the minimum hardware requirements for Oracle RAC and Oracle Grid Infrastructure software. -2. Ensure all data files, control files, redo log files, and the server parameter file (`SPFILE`) used by the Oracle RAC database reside on shared storage that is accessible by all the Oracle RAC database instances. An Oracle RAC database is a shared-everything database, so each Oracle RAC Node must have the same access. -3. Configure the following addresses manually in your DNS. - - - Public IP address for each container - - Private IP address for each container - - Virtual IP address for each container - - Three single client access name (SCAN) addresses for the cluster. -4. If you are planning to set up RAC on Docker, refer Docker Host machine details in [Section 4.1](#section-41--prerequisites-for-running-oracle-rac-on-docker) -5. If you are planning to set up RAC on Podman, refer Podman Host machine details in [Section 5.1](#section-51--prerequisites-for-running-oracle-rac-on-podman) -6. Block storage: If you are planning to use block devices for shared storage, then allocate block devices for OCR, voting and database files. -7. NFS storage: If you are planning to use NFS storage for OCR, Voting Disk and Database files, then configure NFS storage and export at least one NFS mount. You can also use `/docker-images/OracleDatabase/RAC/OracleRACStorageServer` container for shared file system on NFS. -8. Set`/etc/sysctl.conf`parameters: For Oracle RAC, you must set following parameters at host level in `/etc/sysctl.conf`: - ```INI - fs.aio-max-nr = 1048576 - fs.file-max = 6815744 - net.core.rmem_max = 4194304 - net.core.rmem_default = 262144 - net.core.wmem_max = 1048576 - net.core.wmem_default = 262144 - net.core.rmem_default = 262144 - ``` -9. List and reload parameters: After the `/etc/sysctl.conf` file is modified, run the following commands: - ```bash - sysctl -a - sysctl -p - ``` -10. To resolve VIPs and SCAN IPs, we are using a DNS container in this guide. Before proceeding to the next step, create a [DNS server container](../OracleDNSServer/README.md). -**Note** If you have a pre-configured DNS server in your environment, then you can replace `-e DNS_SERVERS=172.16.1.25`, `--dns=172.16.1.25`, `-e DOMAIN=example.com` and `--dns-search=example.com` parameters in **Section 2: Building Oracle RAC Database Podman Install Images** with the `DOMAIN_NAME` and `DNS_SERVER` based on your environment. -11. If you are running RAC on Podman, make sure that you have installed the `podman-docker` rpm package so that podman commands can be run using `docker` utility. -12. The Oracle RAC `Dockerfile` does not contain any Oracle software binaries. Download the following software from the [Oracle Technology Network](https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html) and stage them under `/docker-images/OracleDatabase/RAC/OracleRealApplicationCluster/dockerfiles/` folder. - - - Oracle Database 21c Grid Infrastructure (21.3) for Linux x86-64 - - Oracle Database 21c (21.3) for Linux x86-64 - - - If you are deploying Oracle RAC on Podman then execute following, otherwise skip to next section. - - Because Oracle RAC on Podman is supported on Release 21c (21.7) or later, you must download the grid release update (RU) from [support.oracle.com](https://support.oracle.com/portal/). - - - In this Example we download the following latest one-off patches for release 21.13 from [support.oracle.com](https://support.oracle.com/portal/) - - `36031790` - - `36041222` -13. Ensure you have git configured in your host machine, [refer this page](https://docs.oracle.com/en/learn/ol-git-start/index.html) for instructions. Clone this git repo by running below command - -```bash -git clone git@github.com:oracle/docker-images.git -``` - -**Notes** - -- If you are planning to use a `DNSServer` container for SCAN IPs, VIPs resolution, then configure the DNSServer. For development and testing purposes only, use the Oracle `DNSServer` image to deploy a container providing DNS resolutions. Please check [OracleDNSServer](../OracleDNSServer/README.md) for details. -- `OracleRACStorageServer` docker image can be used only for development and testing purpose. Please check [OracleRACStorageServer](../OracleRACStorageServer/README.md) for details. -- When you want to deploy RAC on Docker or Podman on Single host, create bridge networks for containers. -- When you want to deploy RAC on Docker or Podman on Multiple host, create macvlan networks for containers. -- To run Oracle RAC using Podman on multiple hosts, refer [Podman macvlan network](https://docs.podman.io/en/latest/markdown/podman-network-create.1.html). - To run Oracle RAC using Oracle Container Runtime for Docker on multiple hosts, refer [Docker macvlan network](https://docs.docker.com/network/macvlan/). -- If the Docker or Podman bridge network is not available outside your host, you can use the Oracle Connection Manager [CMAN image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleConnectionManager) to access the Oracle RAC Database from outside the host. - -## Section 2: Building Oracle RAC Database Container Images - -**IMPORTANT :** This section assumes that you have gone through all the prerequisites in Section 1 and completed all the steps, based on your environment. Do not uncompress the binaries and patches. - -To assist in building the images, you can use the [`buildContainerImage.sh`](https://github.com/oracle/docker-images/blob/master/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/buildContainerImage.sh) script. See the following for instructions and usage. - -### Oracle RAC Container Image for Docker - -If you are planing to deploy Oracle RAC container image on Podman, skip to the section [Oracle RAC Container Image for Podman](#oracle-rac-container-image-for-podman). - -```bash -cd /docker-images/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles -./buildContainerImage.sh -v -o '--build-arg BASE_OL_IMAGE=oraclelinux:7 --build-arg SLIMMING=true|false' - -# for example ./buildContainerImage.sh -v 21.3.0 -o '--build-arg BASE_OL_IMAGE=oraclelinux:7 --build-arg SLIMMING=false' -``` - -### Oracle RAC Container Image for Podman - -If you are planing to deploy Oracle RAC container image on Docker, skip to the section [Oracle RAC Container Image for Docker](#oracle-rac-container-image-for-docker). - -```bash -cd /docker-images/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles -./buildContainerImage.sh -v -o '--build-arg BASE_OL_IMAGE=oraclelinux:8 --build-arg SLIMMING=true|false' - -# for example ./buildContainerImage.sh -v 21.3.0 -o '--build-arg BASE_OL_IMAGE=oraclelinux:8 --build-arg SLIMMING=false' -``` - -- After the `21.3.0` Oracle RAC container image is built, start building a patched image with the download 21.7 RU and one-offs. To build the patch image, refer [Example of how to create a patched database image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch). - - -**Notes** - -- The resulting images will contain the Oracle Grid Infrastructure binaries and Oracle RAC Database binaries. -- If you are behind a proxy wall, then you must set the `https_proxy` environment variable based on your environment before building the image. - -## Section 3: Network and Password Management - -1. Before you start the installation, you must plan your private and public network. You can create a network bridge on every container host so containers running within that host can communicate with each other. - - For example, create `rac_pub1_nw` for the public network (`172.16.1.0/24`) and `rac_priv1_nw` (`192.168.17.0/24`) for a private network. You can use any network subnet for testing. - - In this document we reference the public network on `172.16.1.0/24` and the private network on `192.168.17.0/24`. - - ```bash - docker network create --driver=bridge --subnet=172.16.1.0/24 rac_pub1_nw - docker network create --driver=bridge --subnet=192.168.17.0/24 rac_priv1_nw - ``` - - - To run Oracle RAC using Oracle Container Runtime for Docker on multiple hosts, you will need to create a [Docker macvlan network](https://docs.docker.com/network/macvlan/) using the following commands: - - ```bash - docker network create -d macvlan --subnet=172.16.1.0/24 --gateway=172.16.1.1 -o parent=eth0 rac_pub1_nw - docker network create -d macvlan --subnet=192.168.17.0/24 --gateway=192.168.17.1 -o parent=eth1 rac_priv1_nw - ``` - -2. Specify the secret volume for resetting the grid, oracle, and database user password during node creation or node addition. The volume can be a shared volume among all the containers. For example: - - ```bash - mkdir /opt/.secrets/ - openssl rand -out /opt/.secrets/pwd.key -hex 64 - ``` - - - Edit the `/opt/.secrets/common_os_pwdfile` and seed the password for the grid, oracle and database users. For this deployment scenario, it will be a common password for the grid, oracle, and database users. Run the command: - - ```bash - openssl enc -aes-256-cbc -salt -in /opt/.secrets/common_os_pwdfile -out /opt/.secrets/common_os_pwdfile.enc -pass file:/opt/.secrets/pwd.key - rm -f /opt/.secrets/common_os_pwdfile - ``` - -3. Create `rac_host_file` on both Podman and Docker hosts: - - ```bash - mkdir /opt/containers/ - touch /opt/containers/rac_host_file - ``` - -**Notes** - -- To run Oracle RAC using Podman on multiple hosts, refer [Podman macvlan network](https://docs.podman.io/en/latest/markdown/podman-network-create.1.html). -To run Oracle RAC using Oracle Container Runtime for Docker on multiple hosts, refer [Docker macvlan network](https://docs.docker.com/network/macvlan/). -- If the Docker or Podman bridge network is not available outside your host, you can use the Oracle Connection Manager [CMAN image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleConnectionManager) to access the Oracle RAC Database from outside the host. -- If you want to specify a different password for each of the user accounts, then create three different files, encrypt them under `/opt/.secrets`, and pass the file name to the container using the environment variable. Environment variables can be ORACLE_PWD_FILE for the oracle user, GRID_PWD_FILE for the grid user, and DB_PWD_FILE for the database password. -- If you want to use a common password for the oracle, grid, and database users, then you can assign a password file name to COMMON_OS_PWD_FILE environment variable. - -## Section 4: Oracle RAC on Docker - -If you are deploying Oracle RAC On Podman, skip to the [Section 5: Oracle RAC on Podman](#section-5-oracle-rac-on-podman). - -**Note** Oracle RAC is supported for production use on Docker starting with Oracle Database 21c (21.3). On earlier releases, Oracle RAC on Docker is supported for development and and test environments. To deploy Oracle RAC on Docker, use the pre-built images available on the Oracle Container Registry. Execute the following steps in a given order to deploy RAC on Docker: - -To create an Oracle RAC environment on Docker, complete each of these steps in order. - -### Section 4.1 : Prerequisites for Running Oracle RAC on Docker - -To run Oracle RAC on Docker, you must install and configure [Oracle Container Runtime for Docker](https://docs.oracle.com/cd/E52668_01/E87205/html/index.html) on Oracle Linux 7. You must have sufficient space on docker file system (`/var/lib/docker`), configured with the Docker OverlayFS storage driver option `overlay2`. - -**IMPORTANT:** Completing prerequisite steps is a requirement for successful configuration. - -Complete each prerequisite step in order, customized for your environment. - -1. Verify that you have enough memory and CPU resources available for all containers. For this `README.md`, we used the following configuration: - - - 2 Docker hosts - - CPU Cores: 1 Socket with 4 cores, with 2 threads for each core Intel® Xeon® Platinum 8167M CPU at 2.00 GHz - - RAM: 60GB - - Swap memory: 32 GB - - Oracle Linux 7.9 or later with the Unbreakable Enterprise Kernel 6: 5.4.17-2102.200.13.el7uek.x86_64. - -2. Oracle RAC must run certain processes in real-time mode. To run processes inside a container in real-time mode, you must make changes to the Docker configuration files. For details, see the [`dockerd` documentation](https://docs.docker.com/engine/reference/commandline/dockerd/#examples). Edit the Docker Daemon based on Docker version: - - - Check the Docker version. In the following output, the Oracle `docker-engine` version is 19.03. - - ```bash - rpm -qa | grep docker - docker-cli-19.03.11.ol-9.el7.x86_64 - docker-engine-19.03.11.ol-9.el7.x86_64 - ``` - - - If Oracle `docker-engine` version is greater than or equal to 19.03: Edit `/usr/lib/systemd/system/docker.service` and add additional parameters in the `[Service]` section for the `dockerd` daemon: - - ```bash - ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --cpu-rt-runtime=950000 - ``` - - - If Oracle docker-engine version is less than 19.03: Edit `/etc/sysconfig/docker` and add following - - ```bash - OPTIONS='--selinux-enabled --cpu-rt-runtime=950000' - ``` - -3. After you have modified the `dockerd` daemon, reload the daemon with the changes you have made: - - ```bash - systemctl daemon-reload - systemctl stop docker - systemctl start docker - ``` - -### Section 4.2: Setup Oracle RAC Container on Docker - -This section provides step by step procedure to deploy Oracle RAC on container with block devices and storage container. To understand the details of environment variable, refer For the details of environment variables [Section 7: Environment Variables for the First Node](#section-7-environment-variables-for-the-first-node) - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -#### Deploying Oracle RAC on Container with Block Devices on Docker - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC on Container With Oracle RAC Storage Container](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container). - -Make sure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: - - ```bash - dd if=/dev/zero of=/dev/xvde bs=8k count=10000 - ``` - -Repeat for each shared block device. In the preceding example, `/dev/xvde` is a shared Xen virtual block device. - -Now create the Oracle RAC container using the image. You can use the following example to create a container: - - ```bash -docker create -t -i \ - --hostname racnoded1 \ - --volume /boot:/boot:ro \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/oracleoci/oraclevdd:/dev/asm_disk1 \ - --device=/dev/oracleoci/oraclevde:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.130 \ - -e VIP_HOSTNAME=racnoded1-vip \ - -e PRIV_IP=192.168.17.100 \ - -e PRIV_HOSTNAME=racnoded1-priv \ - -e PUBLIC_IP=172.16.1.100 \ - -e PUBLIC_HOSTNAME=racnoded1 \ - -e SCAN_NAME=racnodedc1-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ASM_DISCOVERY_DIR=/dev \ - -e CMAN_HOSTNAME=racnodedc1-cman \ - -e CMAN_IP=172.16.1.164 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e RESET_FAILED_SYSTEMD="true" \ - --restart=always --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 --ulimit rtprio=99 \ - --name racnoded1 \ - oracle/database-rac:21.3.0 -``` - -**Note:** Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. - -#### Deploying Oracle RAC on Container With Oracle RAC Storage Container - -If you are using block devices, skip to the section [Deploying Oracle RAC on Container with Block Devices on Docker](#deploying-oracle-rac-on-container-with-block-devices-on-docker) - -Now create the Oracle RAC container using the image. You can use the following example to create a container: - - ```bash - docker create -t -i \ - --hostname racnoded1 \ - --volume /boot:/boot:ro \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.130 \ - -e VIP_HOSTNAME=racnoded1-vip \ - -e PRIV_IP=192.168.17.100 \ - -e PRIV_HOSTNAME=racnoded1-priv \ - -e PUBLIC_IP=172.16.1.100 \ - -e PUBLIC_HOSTNAME=racnoded1 \ - -e SCAN_NAME=racnodedc1-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e CMAN_HOSTNAME=racnodedc1-cman \ - -e CMAN_IP=172.16.1.164 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e RESET_FAILED_SYSTEMD="true" \ - --restart=always \ - --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --name racnoded1 \ - oracle/database-rac:21.3.0 - ``` - -**Notes:** - -- Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. -- You must have created the `racstorage` volume before the creation of the Oracle RAC Container. For details, please refer [OracleRACStorageServer](../OracleRACStorageServer/README.md). -- For details about the available environment variables, refer the [Section 7](#section-7-environment-variables-for-the-first-node). - -#### Assign networks to Oracle RAC containers - -You need to assign the Docker networks created in section 1 to containers. Execute the following commands: - - ```bash - -docker network disconnect bridge racnoded1 -docker network connect rac_pub1_nw --ip 172.16.1.100 racnoded1 -docker network connect rac_priv1_nw --ip 192.168.17.100 racnoded1 - ``` - -#### Start the first container - -To start the first container, run the following command: - - ```bash - docker start racnoded1 - ``` - -It can take at least 40 minutes or longer to create the first node of the cluster. To check the logs, use the following command from another terminal session: - - ```bash - docker logs -f racnoded1 - ``` - -You should see the database creation success message at the end: - - ```bash - #################################### - ORACLE RAC DATABASE IS READY TO USE! - #################################### - ``` - -#### Connect to the Oracle RAC container - -To connect to the container execute the following command: - -```bash -docker exec -i -t racnoded1 /bin/bash -``` - -If the install fails for any reason, log in to the container using the preceding command and check `/tmp/orod.log`. - -- You can also review the Grid Infrastructure logs located at `$GRID_BASE/diag/crs` and check for failure logs. -- If the failure occurred during the database creation then check the database logs. - -### Section 4.3: Adding an Oracle RAC Node using a Docker Container - -Before proceeding to the next step, ensure Oracle Grid Infrastructure is running and the Oracle RAC Database is open as per instructions in [Section 4.2: Setup Oracle RAC on Docker](#section-42-setup-oracle-rac-container-on-docker). Otherwise, the node addition process will fail. - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -To understand the details of environment variable, refer For the details of environment variables [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes) - -Reset the password on the existing Oracle RAC node for SSH setup between an existing node in the cluster and the new node. Password must be the same on all the nodes for the `grid` and `oracle` users. Execute the following command on an existing node of the cluster. - -```bash -docker exec -i -t -u root racnode1 /bin/bash -sh /opt/scripts/startup/resetOSPassword.sh --help -sh /opt/scripts/startup/resetOSPassword.sh --op_type reset_grid_oracle --pwd_file common_os_pwdfile.enc --secret_volume /run/secrets --pwd_key_file pwd.key -``` - -**Note:** If you do not have a common secret volume among Oracle RAC containers, populate the password file with the same password that you have used on the new node, encrypt the file, and execute `resetOSPassword.sh` on the existing node of the cluster. - -#### Deploying Oracle RAC Additional Node on Container with Block Devices on Docker - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC on Container with Oracle RAC Storage Container on Docker](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container). - -To create additional nodes, use the following command: - -```bash -docker create -t -i \ - --hostname racnoded2 \ - --volume /boot:/boot:ro \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/oracleoci/oraclevdd:/dev/asm_disk1 \ - --device=/dev/oracleoci/oraclevde:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnoded1 \ - -e NODE_VIP=172.16.1.131 \ - -e VIP_HOSTNAME=racnoded2-vip \ - -e PRIV_IP=192.168.17.101 \ - -e PRIV_HOSTNAME=racnoded2-priv \ - -e PUBLIC_IP=172.16.1.101 \ - -e PUBLIC_HOSTNAME=racnoded2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnodedc1-scan \ - -e ASM_DISCOVERY_DIR=/dev \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e RESET_FAILED_SYSTEMD="true" \ - --restart=always --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 --ulimit rtprio=99 \ - --name racnoded2 \ - oracle/database-rac:21.3.0 -``` - -For details of all environment variables and parameters, refer to [Section 7](#section-7-environment-variables-for-the-first-node). - -#### Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Docker - -If you are using physical block devices for shared storage, skip to [Deploying Oracle RAC on Container with Block Devices on Docker](#deploying-oracle-rac-on-container-with-block-devices-on-docker). - -Use the existing `racstorage:/oradata` volume when creating the additional container using the image. - -For example: - -```bash -docker create -t -i \ - --hostname racnoded2 \ - --volume /boot:/boot:ro \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --volume racstorage:/oradata \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnoded1 \ - -e NODE_VIP=172.16.1.131 \ - -e VIP_HOSTNAME=racnoded2-vip \ - -e PRIV_IP=192.168.17.101 \ - -e PRIV_HOSTNAME=racnoded2-priv \ - -e PUBLIC_IP=172.16.1.101 \ - -e PUBLIC_HOSTNAME=racnoded2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnodedc1-scan \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e RESET_FAILED_SYSTEMD="true" \ - --restart=always --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 --ulimit rtprio=99 \ - --name racnoded2 \ - oracle/database-rac:21.3.0 -``` - -**Notes:** - -- You must have created **racstorage** volume before the creation of the Oracle RAC container. -- You can change env variables such as IPs and ORACLE_PWD based on your env. For details about the env variables, refer the section 8. - -#### Assign Network to additional Oracle RAC container - -Connect the private and public networks you created earlier to the container: - -```bash -docker network disconnect bridge racnoded2 -docker network connect rac_pub1_nw --ip 172.16.1.101 racnoded2 -docker network connect rac_priv1_nw --ip 192.168.17.101 racnoded2 -``` - -#### Start Oracle RAC racnode2 container - -Start the container - -```bash -docker start racnoded2 -``` - -To check the database logs, tail the logs using the following command: - -```bash -docker logs -f racnoded2 -``` - -You should see the database creation success message at the end. - -```bash -################################################################# -Oracle Database ORCLCDB is up and running on racnoded2 -################################################################# -Running User Script for oracle user -Setting Remote Listener -#################################### -ORACLE RAC DATABASE IS READY TO USE! -#################################### -``` - -#### Connect to the Oracle RAC racnode2 container - -To connect to the container execute the following command: - -```bash -docker exec -i -t racnoded2 /bin/bash -``` - -If the node addition fails, log in to the container using the preceding command and review `/tmp/orod.log`. You can also review the Grid Infrastructure logs i.e. `$GRID_BASE/diag/crs` and check for failure logs. If the node creation has failed during the database creation process, then check DB logs. - -## Section 4.4: Setup Oracle RAC Container on Docker with Docker Compose - -Oracle RAC database can also be deployed with Docker Compose. An example of how to install Oracle RAC Database on Single Host via Bridge Network is explained in this [README.md](./samples/racdockercompose/README.md) - -Same section covers various below scenarios as well with docker compose- -1. Deploying Oracle RAC on Container with Block Devices on Docker with Docker Compose -2. Deploying Oracle RAC on Container With Oracle RAC Storage Container with Docker Compose -3. Deploying Oracle RAC Additional Node on Container with Block Devices on Docker with Docker Compose -4. Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Docker with Docker Compose - -***Note:*** Docker and Docker Compose is not supported with OL8. You need OL7.9 with UEK R5 or R6. - -## Section 5: Oracle RAC on Podman - -If you are deploying Oracle RAC On Docker, skip to [Section 4: Oracle RAC on Docker](#section-4-oracle-rac-on-docker) - -**Note** Oracle RAC is supported for production use on Podman starting with Oracle Database 19c (19.16), and Oracle Database 21c (21.7). You can deploy Oracle RAC on Podman using the pre-built images available on Oracle Container Registry. Execute the following steps in a given order to deploy RAC on Podman: - -To create an Oracle RAC environment on Podman, complete each of these steps in order. - -### Section 5.1 : Prerequisites for Running Oracle RAC on Podman - -You must install and configure [Podman release 4.0.2](https://docs.oracle.com/en/operating-systems/oracle-linux/podman/podman-InstallingPodmanandRelatedUtilities.html#podman-install) or later on Oracle Linux 8.5 or later to run Oracle RAC on Podman. - -**Notes**: - -- You need to remove `"--cpu-rt-runtime=95000 \"` from container creation commands mentioned below in this document in following sections to create the containers if you are running Oracle 8 with UEKR7: - - [Section 5.2: Setup RAC Containers on Podman](#section-52-setup-rac-containers-on-podman). - - [Section 5.3: Adding a Oracle RAC Node using a container on Podman](#section-53-adding-a-oracle-rac-node-using-a-container-on-podman). - -- You can check the details on [Oracle Linux and Unbreakable Enterprise Kernel (UEK) Releases](https://blogs.oracle.com/scoter/post/oracle-linux-and-unbreakable-enterprise-kernel-uek-releases) - -- You do not need to execute step 2 in this section to create and enable `podman-rac-cgroup.service` when we are running Oracle Linux 8 with Unbreakable Enterprise Kernel R7. - -**IMPORTANT:** Completing prerequisite steps is a requirement for successful configuration. - -Complete each prerequisite step in order, customized for your environment. - -1. Verify that you have enough memory and CPU resources available for all containers. In this `README.md` for Podman, we used the following configuration: - - - 2 Podman hosts - - CPU Cores: 1 Socket with 4 cores, with 2 threads for each core Intel® Xeon® Platinum 8167M CPU at 2.00 GHz - - RAM: 60 GB - - Swap memory: 32 GB - - Oracle Linux 8.5 (Linux-x86-64) with the Unbreakable Enterprise Kernel 6: `5.4.17-2136.300.7.el8uek.x86_64`. - -2. Oracle RAC must run certain processes in real-time mode. To run processes inside a container in real-time mode, populate the real-time CPU budgeting on machine restarts. Create a oneshot systemd service as follows: - - - Create a file `/etc/systemd/system/podman-rac-cgroup.service` - - Append the following lines: - - ```INI - [Unit] - Description=Populate Cgroups with real time chunk on machine restart - After=multi-user.target - [Service] - Type=oneshot - ExecStart=/bin/bash -c “/bin/echo 950000 > /sys/fs/cgroup/cpu,cpuacct/machine.slice/cpu.rt_runtime_us && /bin/systemctl restart podman-restart.service” - StandardOutput=journal - CPUAccounting=yes - Slice=machine.slice - [Install] - WantedBy=multi-user.target - ``` - - - After creating the file `/etc/systemd/system/podman-rac-cgroup.service` with the lines appended in the preceding step, reload and restart the Podman daemon using the following steps: - - ```bash - systemctl daemon-reload - systemctl enable podman-rac-cgroup.service - systemctl enable podman-restart.service - systemctl start podman-rac-cgroup.service - ``` - -3. If SELINUX is enabled on the Podman host, then you must create an SELinux policy for Oracle RAC on Podman. - -You can check SELinux Status in your host machine by running the `sestatus` command. - -For details about how to create SELinux policy for Oracle RAC on Podman, see "How to Configure Podman for SELinux Mode" in the publication [Oracle Real Application Clusters Installation Guide for Podman Oracle Linux x86-64](https://docs.oracle.com/en/database/oracle/oracle-database/21/racpd/target-configuration-oracle-rac-podman.html#GUID-59138DF8-3781-4033-A38F-E0466884D008). - -### Section 5.2: Setup RAC Containers on Podman - -This section provides step by step procedure to deploy Oracle RAC on container with block devices and storage container. To understand the details of environment variable, refer For the details of environment variables [Section 7: Environment Variables for the First Node](#section-7-environment-variables-for-the-first-node) - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -#### Deploying Oracle RAC Containers with Block Devices on Podman - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC on Container With Oracle RAC Storage Container on Podman](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container-on-podman). - -Make sure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: - - ```bash - dd if=/dev/zero of=/dev/xvde bs=8k count=10000 - ``` - -Repeat for each shared block device. In the preceding example, `/dev/xvde` is a shared Xen virtual block device. - -Now create the Oracle RAC container using the image. For the details of environment variables, refer to section 7. You can use the following example to create a container: - - ```bash - podman create -t -i \ - --hostname racnodep1 \ - --volume /boot:/boot:ro \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/oracleoci/oraclevdd:/dev/asm_disk1 \ - --device=/dev/oracleoci/oraclevde:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_WRITE \ - --cap-add=AUDIT_CONTROL \ - --memory 16G \ - --memory-swap 32G \ - --sysctl kernel.shmall=2097152 \ - --sysctl "kernel.sem=250 32000 100 128" \ - --sysctl kernel.shmmax=8589934592 \ - --sysctl kernel.shmmni=4096 \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.200 \ - -e VIP_HOSTNAME=racnodep1-vip \ - -e PRIV_IP=192.168.17.170 \ - -e PRIV_HOSTNAME=racnodep1-priv \ - -e PUBLIC_IP=172.16.1.170 \ - -e PUBLIC_HOSTNAME=racnodep1 \ - -e SCAN_NAME=racnodepc1-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ASM_DISCOVERY_DIR=/dev \ - -e CMAN_HOSTNAME=racnodepc1-cman \ - -e CMAN_IP=172.16.1.166 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e ORACLE_SID=ORCLCDB \ - -e RESET_FAILED_SYSTEMD="true" \ - -e DEFAULT_GATEWAY="172.16.1.1" \ - -e TMPDIR=/var/tmp \ - --restart=always \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --name racnodep1 \ - localhost/oracle/database-rac:21.3.0-21.13.0 - ``` - -**Note:** Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. - -#### Deploying Oracle RAC on Container With Oracle RAC Storage Container on Podman - -If you are using block devices, skip to the section [Deploying RAC Containers with Block Devices on Podman](#deploying-oracle-rac-containers-with-block-devices-on-podman). -Now create the Oracle RAC container using the image. You can use the following example to create a container: - - ```bash - podman create -t -i \ - --hostname racnodep1 \ - --volume /boot:/boot:ro \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_WRITE \ - --cap-add=AUDIT_CONTROL \ - --memory 16G \ - --memory-swap 32G \ - --sysctl kernel.shmall=2097152 \ - --sysctl "kernel.sem=250 32000 100 128" \ - --sysctl kernel.shmmax=8589934592 \ - --sysctl kernel.shmmni=4096 \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.200 \ - -e VIP_HOSTNAME=racnodep1-vip \ - -e PRIV_IP=192.168.17.170 \ - -e PRIV_HOSTNAME=racnodep1-priv \ - -e PUBLIC_IP=172.16.1.170 \ - -e PUBLIC_HOSTNAME=racnodep1 \ - -e SCAN_NAME=racnodepc1-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e CMAN_HOSTNAME=racnodepc1-cman \ - -e CMAN_IP=172.16.1.166 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e ORACLE_SID=ORCLCDB \ - -e RESET_FAILED_SYSTEMD="true" \ - -e DEFAULT_GATEWAY="172.16.1.1" \ - -e TMPDIR=/var/tmp \ - --restart=always \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --name racnodep1 \ - localhost/oracle/database-rac:21.3.0-21.13.0 - ``` - -**Notes:** - -- Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. -- You must have created the `racstorage` volume before the creation of the Oracle RAC Container. For details about the available environment variables, refer the [Section 7](#section-7-environment-variables-for-the-first-node). - -#### Assign networks to Oracle RAC containers Created Using Podman - -You need to assign the Podman networks created in section 1 to containers. Execute the following commands: - - ```bash - podman network disconnect podman racnodep1 - podman network connect rac_pub1_nw --ip 172.16.1.170 racnodep1 - podman network connect rac_priv1_nw --ip 192.168.17.170 racnodep1 - ``` - -#### Start the first container Created Using Podman - -To start the first container, run the following command: - - ```bash - podman start racnodep1 - ``` - -It can take at least 40 minutes or longer to create the first node of the cluster. To check the database logs, tail the logs using the following command: - -```bash -podman exec racnodep1 /bin/bash -c "tail -f /tmp/orod.log" -``` - -You should see the database creation success message at the end. - -```bash -01-31-2024 12:31:20 UTC : : ################################################################# -01-31-2024 12:31:20 UTC : : Oracle Database ORCLCDB is up and running on racnodep1 -01-31-2024 12:31:20 UTC : : ################################################################# -01-31-2024 12:31:20 UTC : : Running User Script -01-31-2024 12:31:20 UTC : : Setting Remote Listener -01-31-2024 12:31:27 UTC : : 172.16.1.166 -01-31-2024 12:31:27 UTC : : Executing script to set the remote listener -01-31-2024 12:31:28 UTC : : #################################### -01-31-2024 12:31:28 UTC : : ORACLE RAC DATABASE IS READY TO USE! -01-31-2024 12:31:28 UTC : : #################################### -``` - -#### Connect to the Oracle RAC container Created Using Podman - -To connect to the container execute the following command: - -```bash -podman exec -i -t racnodep1 /bin/bash -``` - -If the install fails for any reason, log in to the container using the preceding command and check `/tmp/orod.log`. You can also review the Grid Infrastructure logs located at `$GRID_BASE/diag/crs` and check for failure logs. If the failure occurred during the database creation then check the database logs. - -### Section 5.3: Adding a Oracle RAC Node using a container on Podman - -Before proceeding to the next step, ensure Oracle Grid Infrastructure is running and the Oracle RAC Database is open as per instructions in [Section 5.2: Setup RAC Containers on Podman](#section-52-setup-rac-containers-on-podman). Otherwise, the node addition process will fail. - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -To understand the details of environment variable, refer For the details of environment variables [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes). - -Reset the password on the existing Oracle RAC node for SSH setup between an existing node in the cluster and the new node. Password must be the same on all the nodes for the `grid` and `oracle` users. Execute the following command on an existing node of the cluster. - -```bash -podman exec -i -t -u root racnode1 /bin/bash -sh /opt/scripts/startup/resetOSPassword.sh --help -sh /opt/scripts/startup/resetOSPassword.sh --op_type reset_grid_oracle --pwd_file common_os_pwdfile.enc --secret_volume /run/secrets --pwd_key_file pwd.key -``` - -**Note:** If you do not have a common secret volume among Oracle RAC containers, populate the password file with the same password that you have used on the new node, encrypt the file, and execute `resetOSPassword.sh` on the existing node of the cluster. - -#### Deploying Oracle RAC Additional Node on Container with Block Devices on Podman - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman](#deploying-oracle-rac-additional-node-on-container-with-oracle-rac-storage-container-on-podman). - -To create additional nodes, use the following command: - -```bash -podman create -t -i \ - --hostname racnodep2 \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /boot:/boot:ro \ - --dns-search=example.com \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/oracleoci/oraclevdd:/dev/asm_disk1 \ - --device=/dev/oracleoci/oraclevde:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_CONTROL \ - --cap-add=AUDIT_WRITE \ - --memory 16G \ - --memory-swap 32G \ - --sysctl kernel.shmall=2097152 \ - --sysctl "kernel.sem=250 32000 100 128" \ - --sysctl kernel.shmmax=8589934592 \ - --sysctl kernel.shmmni=4096 \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnodep1 \ - -e NODE_VIP=172.16.1.201 \ - -e VIP_HOSTNAME=racnodep2-vip \ - -e PRIV_IP=192.168.17.171 \ - -e PRIV_HOSTNAME=racnodep2-priv \ - -e PUBLIC_IP=172.16.1.171 \ - -e PUBLIC_HOSTNAME=racnodep2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnodepc1-scan \ - -e ASM_DISCOVERY_DIR=/dev \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e RESET_FAILED_SYSTEMD="true" \ - -e DEFAULT_GATEWAY="172.16.1.1" \ - -e TMPDIR=/var/tmp \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --restart=always \ - --name racnodep2 \ - localhost/oracle/database-rac:21.3.0-21.13.0 -``` - -For details of all environment variables and parameters, refer to [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes). - -#### Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman - -If you are using physical block devices for shared storage, skip to [Deploying Oracle RAC Additional Node on Container with Block Devices on Podman](#deploying-oracle-rac-additional-node-on-container-with-block-devices-on-podman). - -Use the existing `racstorage:/oradata` volume when creating the additional container using the image. - -For example: - -```bash -podman create -t -i \ - --hostname racnodep2 \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /boot:/boot:ro \ - --dns-search=example.com \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_WRITE \ - --cap-add=AUDIT_CONTROL \ - --memory 16G \ - --memory-swap 32G \ - --sysctl kernel.shmall=2097152 \ - --sysctl "kernel.sem=250 32000 100 128" \ - --sysctl kernel.shmmax=8589934592 \ - --sysctl kernel.shmmni=4096 \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnodep1 \ - -e NODE_VIP=172.16.1.201 \ - -e VIP_HOSTNAME=racnodep2-vip \ - -e PRIV_IP=192.168.17.171 \ - -e PRIV_HOSTNAME=racnodep2-priv \ - -e PUBLIC_IP=172.16.1.171 \ - -e PUBLIC_HOSTNAME=racnodep2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnodepc1-scan \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - -e RESET_FAILED_SYSTEMD="true" \ - -e DEFAULT_GATEWAY="172.16.1.1" \ - -e TMPDIR=/var/tmp \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --restart=always \ - --name racnodep2 \ - localhost/oracle/database-rac:21.3.0-21.13.0 -``` - -**Notes:** - -- You must have created **racstorage** volume before the creation of the Oracle RAC container. -- You can change env variables such as IPs and ORACLE_PWD based on your env. For details about the env variables, refer the [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes). - -#### Assign Network to additional Oracle RAC container Created Using Podman - -Connect the private and public networks you created earlier to the container: - -```bash -podman network disconnect podman racnodep2 -podman network connect rac_pub1_nw --ip 172.16.1.171 racnodep2 -podman network connect rac_priv1_nw --ip 192.168.17.171 racnodep2 -``` - -#### Start Oracle RAC container - -Start the container - -```bash -podman start racnodep2 -``` - -To check the database logs, tail the logs using the following command: - -```bash -podman exec racnodep2 /bin/bash -c "tail -f /tmp/orod.log" -``` - -You should see the database creation success message at the end. - -```bash -02-01-2024 09:36:14 UTC : : ################################################################# -02-01-2024 09:36:14 UTC : : Oracle Database ORCLCDB is up and running on racnodep2 -02-01-2024 09:36:14 UTC : : ################################################################# -02-01-2024 09:36:14 UTC : : Running User Script -02-01-2024 09:36:14 UTC : : Setting Remote Listener -02-01-2024 09:36:14 UTC : : #################################### -02-01-2024 09:36:14 UTC : : ORACLE RAC DATABASE IS READY TO USE! -02-01-2024 09:36:14 UTC : : #################################### -``` -## Section 5.4: Setup Oracle RAC Container on Podman with Podman Compose - -Oracle RAC database can also be deployed with podman Compose. An example of how to install Oracle RAC Database on Single Host via Bridge Network is explained in this [README.md](./samples/racpodmancompose/README.md) - -Same section covers various below scenarios as well with podman compose- -1. Deploying Oracle RAC on Container with Block Devices on Podman with Podman Compose -2. Deploying Oracle RAC on Container with NFS Devices on Podman with Podman Compose -3. Deploying Oracle RAC Additional Node on Container with Block Devices on Podman with Podman Compose -4. Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman with Podman Compose - -***Note:*** Podman and Podman Compose is not supported with OL7. You need minimum OL8.8 with UEK R7. - -## Section 6: Connecting to an Oracle RAC Database - -**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. - -If you are using a connection manager and exposed the port 1521 on the host, then connect from an external client using the following connection string, where `` is the host container, and `` is the database system identifier: - -```bash -system/@//:1521/ -``` - -If you are using the bridge created using MACVLAN driver, and you have configured DNS appropriately, then you can connect using the public Single Client Access (SCAN) listener directly from any external client. To connect with the SCAN, use the following connection string, where `` is the SCAN name for the database, and `` is the database system identifier: - -```bash -system/@//:1521/ -``` - -## Section 7: Environment Variables for the First Node - -This section provides information about the environment variables that can be used when creating the first node of a cluster. - -```bash -OP_TYPE=###Specify the Operation TYPE. It can accept 2 values INSTALL OR ADDNODE#### -NODE_VIP=####Specify the Node VIP### -VIP_HOSTNAME=###Specify the VIP hostname### -PRIV_IP=###Specify the Private IP### -PRIV_HOSTNAME=###Specify the Private Hostname### -PUBLIC_IP=###Specify the public IP### -PUBLIC_HOSTNAME=###Specify the public hostname### -SCAN_NAME=###Specify the scan name### -ASM_DEVICE_LIST=###Specify the ASM Disk lists. -SCAN_IP=###Specify this if you do not have DNS server### -DOMAIN=###Default value set to example.com### -PASSWORD=###OS password will be generated by openssl### -CLUSTER_NAME=###Default value set to racnode-c#### -ORACLE_SID=###Default value set to ORCLCDB### -ORACLE_PDB=###Default value set to ORCLPDB### -ORACLE_PWD=###Default value set to generated by openssl random password### -ORACLE_CHARACTERSET=###Default value set AL32UTF8### -DEFAULT_GATEWAY=###Default gateway. You need this env variable if containers will be running on multiple hosts.#### -CMAN_HOSTNAME=###Connection Manager Host Name### -CMAN_IP=###Connection manager Host IP### -ASM_DISCOVERY_DIR=####ASM disk location insdie the container. By default it is /dev###### -COMMON_OS_PWD_FILE=###Pass the file name to setup grid and oracle user password. If you specify ORACLE_PWD_FILE, GRID_PWD_FILE, and DB_PWD_FILE then you do not need to specify this env variable### -ORACLE_PWD_FILE=###Pass the file name to set the password for oracle user.### -GRID_PWD_FILE=###Pass the file name to set the password for grid user.### -DB_PWD_FILE=###Pass the file name to set the password for DB user i.e. sys.### -REMOVE_OS_PWD_FILES=###Set this env variable to true to remove pwd key file and password file after resetting password.### -CONTAINER_DB_FLAG=###Default value is set to true to create container database. Set this to false if you do not want to create container database.### -``` - -## Section 8: Environment Variables for the Second and Subsequent Nodes - -This section provides the details about the environment variables that can be used for all additional nodes added to an existing cluster. - -```bash -OP_TYPE=###Specify the Operation TYPE. It can accept 2 values INSTALL OR ADDNODE### -EXISTING_CLS_NODES=###Specify the Existing Node of the cluster which you want to join. If you have 2 nodes in the cluster and you are trying to add the third node then specify existing 2 nodes of the clusters and separate them by comma.#### -NODE_VIP=###Specify the Node VIP### -VIP_HOSTNAME=###Specify the VIP hostname### -PRIV_IP=###Specify the Private IP### -PRIV_HOSTNAME=###Specify the Private Hostname### -PUBLIC_IP=###Specify the public IP### -PUBLIC_HOSTNAME=###Specify the public hostname### -SCAN_NAME=###Specify the scan name### -SCAN_IP=###Specify this if you do not have DNS server### -ASM_DEVICE_LIST=###Specify the ASM Disk lists. -DOMAIN=###Default value set to example.com### -ORACLE_SID=###Default value set to ORCLCDB### -DEFAULT_GATEWAY=###Default gateway. You need this env variable if containers will be running on multiple hosts.#### -CMAN_HOSTNAME=###Connection Manager Host Name### -CMAN_IP=###Connection manager Host IP### -ASM_DISCOVERY_DIR=####ASM disk location inside the container. By default it is /dev###### -COMMON_OS_PWD_FILE=###You need to pass the file name to setup grid and oracle user password. If you specify ORACLE_PWD_FILE, GRID_PWD_FILE, and DB_PWD_FILE then you do not need to specify this env variable### -ORACLE_PWD_FILE=###You need to pass the file name to set the password for oracle user.### -GRID_PWD_FILE=###You need to pass the file name to set the password for grid user.### -DB_PWD_FILE=###You need to pass the file name to set the password for DB user i.e. sys.### -REMOVE_OS_PWD_FILES=###You need to set this to true to remove pwd key file and password file after resetting password.### -``` - -## Section 9: Building a Patched Oracle RAC Container Image - -If you want to build a patched image based on a base 21.3.0 container image, then refer to the GitHub page [Example of how to create a patched database image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch). - -## Section 10 : Sample Container Files for Older Releases - -### Docker - -This project offers sample container files for Oracle Grid Infrastructure and Oracle Real Application Clusters for dev and test: - -- Oracle Database 19c Oracle Grid Infrastructure (19.3) for Linux x86-64 -- Oracle Database 19c (19.3) for Linux x86-64 - -- Oracle Database 18c Oracle Grid Infrastructure (18.3) for Linux x86-64 - -- Oracle Database 18c (18.3) for Linux x86-64 - -- Oracle Database 12c Release 2 Oracle Grid Infrastructure (12.2.0.1.0) for Linux x86-64 - -- Oracle Database 12c Release 2 (12.2.0.1.0) Enterprise Edition for Linux x86-64 - - **Notes:** - -- Note that the Oracle RAC on Docker Container releases are supported only for test and development environments, but not for production environments. - -- If you are planning to build and deploy Oracle RAC 18.3.0, you need to download Oracle 18.3.0 Grid Infrastructure and Oracle Database 18.3.0 Database. - - - You also need to download Patch# p28322130_183000OCWRU_Linux-x86-64.zip from [Oracle Technology Network](https://www.oracle.com/technetwork/database/database-technologies/clusterware/downloads/docker-4418413.html). - - - Stage it under dockerfiles/18.3.0 folder. - -- If you are planning to build and deploy Oracle RAC 12.2.0.1, you need to download Oracle 12.2.0.1 Grid Infrastructure and Oracle Database 12.2.0.1 Database. - - - You also need to download Patch# p27383741_122010_Linux-x86-64.zip from [Oracle Technology Network](https://www.oracle.com/technetwork/database/database-technologies/clusterware/downloads/docker-4418413.html). - - - Stage it under dockerfiles/12.2.0.1 folder. - -### Podman - -This project offers sample container files for Oracle Grid Infrastructure and Oracle Real Application Clusters for dev and test: - -- Oracle Database 19c Oracle Grid Infrastructure (19.3) for Linux x86-64 -- Oracle Database 19c (19.3) for Linux x86-64 - -**Notes:** -- Because Oracle RAC on Podman is supported on 19c from 19.16 or later, you must download the grid release update (RU) from [support.oracle.com](https://support.oracle.com/portal/). - -- For RAC on Podman for v19.22, download following one-offs from [support.oracle.com](https://support.oracle.com/portal/) - - `35943157` - - `35940989` - -- Before starting the next step, you must edit `docker-images/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile`, change `oraclelinux:7-slim` to `oraclelinux:8`, and save the file. - -- You must add `CV_ASSUME_DISTID=OEL8` inside the `Dockerfile` as an env variable. - -- Once the `19.3.0` Oracle RAC on Podman image is built, start building patched image with the download 19.16 RU and one-offs. To build the patch the image, refer [Example of how to create a patched database image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch). - -## Section 11 : Support - -### Docker Support - -At the time of this release, Oracle RAC on Docker is supported only on Oracle Linux 7. To see current details, refer the [Real Application Clusters Installation Guide for Docker Containers Oracle Linux x86-64](https://docs.oracle.com/en/database/oracle/oracle-database/21/racdk/oracle-rac-on-docker.html). - -### Podman Support - -At the time of this release, Oracle RAC on Podman is supported for Oracle Linux 8.5 later. To see current Linux support certifications, refer [Oracle RAC on Podman Documentation](https://docs.oracle.com/en/database/oracle/oracle-database/21/install-and-upgrade.html) - -## Section 12 : License - -To download and run Oracle Grid and Database, regardless of whether inside or outside a container, you must download the binaries from the Oracle website and accept the license indicated on that page. - -All scripts and files hosted in this repository which are required to build the container images are, unless otherwise noted, released under UPL 1.0 license. - -## Section 13 : Copyright - -Copyright (c) 2014-2024 Oracle and/or its affiliates. diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/Containerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/Containerfile index db70c98773..ca31aff0ed 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/Containerfile +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/Containerfile @@ -1,3 +1,4 @@ +# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2018,2026 Oracle and/or its affiliates. @@ -21,13 +22,26 @@ # $ ./buildContainerImage.sh -v 19.3.0 -ARG BASE_OL_IMAGE=oraclelinux:9 +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown ARG SLIMMING=false # Pull base image # --------------- # hadolint ignore=DL3006,DL3025 -FROM $BASE_OL_IMAGE AS racbase +FROM $BASE_IMAGE AS racbase +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; ARG SLIMMING=false +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +ARG BASE_IMAGE +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" ARG VERSION # Labels # ------ @@ -59,7 +73,6 @@ ARG IGNORE_PREREQ=false # Linux Env Variable # hadolint ignore=DL3044 ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - OCI_FILE="ociregion.sh" \ INSTALL_DIR=/opt/scripts \ # Grid Env variables GRID_INSTALL_RSP="gridsetup_19c.rsp" \ @@ -131,7 +144,7 @@ ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ # Copy binaries # ------------- # COPY Binaries -COPY $VERSION/$SETUP_LINUX_FILE $OCI_FILE $VERSION/$GRID_SETUP_FILE $VERSION/$DB_SETUP_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$GRID_SETUP_FILE $VERSION/$DB_SETUP_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ # Setup Scripts COPY $VERSION/$RUN_FILE $VERSION/$ADDNODE_RSP $VERSION/$SETUPSSH $VERSION/$GRID_INSTALL_RSP $VERSION/$DBCA_RSP $VERSION/$INITSH $SCRIPT_DIR/ @@ -168,7 +181,7 @@ ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ # Copy binaries # ------------- # COPY Binaries -COPY $VERSION/$SETUP_LINUX_FILE $OCI_FILE $VERSION/$GRID_SETUP_FILE $VERSION/$DB_SETUP_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$GRID_SETUP_FILE $VERSION/$DB_SETUP_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ # Setup Scripts COPY $VERSION/$RUN_FILE $VERSION/$SETUPSSH $VERSION/$INITSH $SCRIPT_DIR/ @@ -239,6 +252,22 @@ RUN rm -f $INSTALL_DIR/install/* && \ ############################################# # hadolint ignore=DL3006 FROM rac-image-slim-${SLIMMING} AS final +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; ARG VERSION ENV GRID_BASE=/u01/app/grid \ GRID_HOME=/u01/app/19c/grid \ diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/setupLinuxEnv.sh index 10c600de8f..04156e0aa9 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/setupLinuxEnv.sh @@ -1,5 +1,5 @@ #!/bin/bash -# shellcheck disable=SC1072,SC1073 +# shellcheck disable=all # LICENSE UPL 1.0 # # Copyright (c) 2018,2026 Oracle and/or its affiliates. @@ -14,22 +14,8 @@ # Setup filesystem and oracle user # Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation # ------------------------------------------------------------ -## Use OCI yum repos on OCI instead of public yum -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REGION_FILE="$SCRIPT_DIR/ociregion.sh" - -if [ ! -f "$REGION_FILE" ]; then - # Call the separate detection script if region file is missing - "$SCRIPT_DIR/ociregion.sh" -fi - -if [ -f "$REGION_FILE" ]; then - region=$(cat "$REGION_FILE") - echo "Loaded OCI Region from file: $region" -else - echo "OCI Region file not found. Exiting." - exit 1 -fi +dnf update -y && \ +dnf clean all && \ # Refer Doc ID 2760289.1 for error- "libxcrypt-compat compat-openssl11" only available in OL9 # Error in invoking target 'libasmclntsh19.ohso libasmperl19.ohso client_sharedlib' of makefile '/u01/app/oracle/product/19c/dbhome_1/rdbms/lib/ins_rdbms.mk'. # Detect Oracle Linux version diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/Containerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/Containerfile index eb1a620e98..ab50924e7c 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/Containerfile +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/Containerfile @@ -1,3 +1,4 @@ +# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2018,2026 Oracle and/or its affiliates. @@ -17,16 +18,29 @@ # HOW TO BUILD THIS IMAGE # ----------------------- # Run: -# $ docker build -t oracle/database:21c-rac . +# $ podman build -t oracle/database:21c-rac . -ARG BASE_OL_IMAGE=oraclelinux:9 +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown ARG SLIMMING=false # Pull base image # --------------- # hadolint ignore=DL3006,DL3025 -FROM $BASE_OL_IMAGE AS racbase +FROM $BASE_IMAGE AS racbase +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; ARG SLIMMING=false +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +ARG BASE_IMAGE +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" ARG VERSION # Labels # ------ @@ -92,7 +106,7 @@ ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ ############################################# # ------------------------------------------- -# Start new stage for Non-Slim Image +# Start new stage for Non-Slim Image # ------------------------------------------- ############################################# @@ -225,6 +239,22 @@ RUN rm -f $INSTALL_DIR/install/* && \ ############################################# # hadolint ignore=DL3006 FROM rac-image-slim-${SLIMMING} AS final +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; ENV GRID_BASE=/u01/app/grid \ GRID_HOME=/u01/app/21c/grid \ DB_BASE=/u01/app/oracle \ @@ -251,7 +281,7 @@ RUN if [ "${SLIMMING}x" != 'truex' ]; then \ chmod +x /etc/rc.d/rc.local && \ cp $SCRIPT_DIR/$INITSH /usr/bin/$INITSH && \ setcap 'cap_net_admin,cap_net_raw+ep' /usr/bin/ping && \ - chmod 755 /usr/bin/$INITSH && \ + chmod 755 /usr/bin/$INITSH && \ rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ rm -f /etc/sysctl.d/99-sysctl.conf && \ rm -f $INSTALL_DIR/install/* && \ diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/runOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/runOracle.sh index 667a02b04e..6dbb9f6394 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/runOracle.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/runOracle.sh @@ -38,4 +38,4 @@ fi cd $BASE_DIR $EXECUTOR $SCRIPT_NAME -# Tail on alert log and wait (otherwise container will exit) +# Tail on alert log and wait (otherwise container will exit) \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupGrid.sh index 671cffc595..1a853e39bf 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupGrid.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupGrid.sh @@ -40,4 +40,4 @@ if [ "${SLIMMING}x" != 'truex' ] ; then echo "export GRID_HOME=$GRID_HOME" >> /home/"${GRID_USER}"/.bashrc echo "export GRID_BASE=$GRID_BASE" >> /home/"${GRID_USER}"/.bashrc echo "export DB_HOME=$DB_HOME" >> /home/"${GRID_USER}"/.bashrc -fi +fi \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupLinuxEnv.sh index f05723aa21..dc4b269e9e 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/21.3.0/setupLinuxEnv.sh @@ -14,14 +14,8 @@ # Setup filesystem and oracle user # Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation # ------------------------------------------------------------ -## Use OCI yum repos on OCI instead of public yum -region=$(curl --noproxy '*' -sfm 3 -H "Authorization: Bearer Oracle" http://169.254.169.254/opc/v2/instance/ | sed -nE 's/^ *"regionIdentifier": "([^"]+)".*/\1/p') -if [ -n "$region" ]; then - echo "Detected OCI Region: $region" - for proxy in $(printenv | grep -i _proxy | cut -d= -f1); do unset $proxy; done - echo "-$region" > /etc/yum/vars/ociregion -fi - +dnf update -y && \ +dnf clean all && \ mkdir /asmdisks && \ mkdir /responsefiles && \ chmod ug+x /opt/scripts/startup/*.sh && \ diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/Containerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/Containerfile index a5d980b1d9..a1d3784bb9 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/Containerfile +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/Containerfile @@ -1,12 +1,12 @@ +# hadolint global ignore=DL3006,SC2086,SC3014,DL4006 # LICENSE UPL 1.0 -# hadolint global ignore=DL3006,SC2086,SC3014 # # Copyright (c) 2018,2026 Oracle and/or its affiliates. # # ORACLE CONTAINERFILES PROJECT # -------------------------- # This is the Containerfile for Oracle Database 26ai Real Application Clusters. -# Folder 23.26.0 is the single maintained track for all 23.26.* RU builds. +# Folder 23.26.0 is the single maintained 26ai track for all 23.26.* RU builds. # Pass actual install media names via --build-arg INSTALL_FILE_1 / INSTALL_FILE_2. # # REQUIRED FILES TO BUILD THIS IMAGE @@ -23,11 +23,24 @@ # $ ./buildContainerImage.sh -v 23.26.0 # ARG SLIMMING=false -ARG BASE_OL_IMAGE=oraclelinux:9 +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown # Pull base image # --------------- -FROM $BASE_OL_IMAGE AS base +FROM $BASE_IMAGE AS base +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; ARG SLIMMING=false +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +ARG BASE_IMAGE +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" ARG VERSION # Labels # ------ @@ -245,6 +258,22 @@ RUN rm -f $INSTALL_DIR/install/* && \ ############################################# # hadolint ignore=DL3006 FROM rac-image-slim-${SLIMMING} AS final +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; ENV GRID_BASE=/u01/app/grid \ GRID_HOME=/u01/app/26ai/grid \ DB_BASE=/u01/app/oracle \ diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/installGridBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/installGridBinaries.sh index 5e8bda9e37..c6341bcf0f 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/installGridBinaries.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/installGridBinaries.sh @@ -49,4 +49,4 @@ temp_var1=`hostname` mkdir -p /home/grid/.ssh && \ chmod 700 /home/grid/.ssh && \ unzip -q "$INSTALL_SCRIPTS"/"$INSTALL_FILE_1" -d "$GRID_HOME" && \ - "${GRID_HOME}"/gridSetup.sh -silent -setupHome -OSDBA asmdba -OSOPER asmoper -OSASM asmadmin -ORACLE_BASE ${GRID_BASE} -INVENTORY_LOCATION ${INVENTORY} -ignorePrereqFailure || true + "${GRID_HOME}"/gridSetup.sh -silent -setupHome -OSDBA asmdba -OSOPER asmoper -OSASM asmadmin -ORACLE_BASE ${GRID_BASE} -INVENTORY_LOCATION ${INVENTORY} -ignorePrereqFailure || true \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupGrid.sh index 0e6ae71f72..ce97ec98d4 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupGrid.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupGrid.sh @@ -18,7 +18,6 @@ if [ "${SLIMMING}x" != 'truex' ] ; then mkdir -p "$GRID_BASE" mkdir -p "$GRID_HOME" fi - groupadd -g 54334 asmadmin groupadd -g 54335 asmdba groupadd -g 54336 asmoper diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupLinuxEnv.sh index 8ab7c81891..4603d64cc1 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupLinuxEnv.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/23.26.0/setupLinuxEnv.sh @@ -14,19 +14,13 @@ # Setup filesystem and oracle user # Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation # ------------------------------------------------------------ -## Use OCI yum repos on OCI instead of public yum -region=$(curl --noproxy '*' -sfm 3 -H "Authorization: Bearer Oracle" http://169.254.169.254/opc/v2/instance/ | sed -nE 's/^ *"regionIdentifier": "([^"]+)".*/\1/p') -if [ -n "$region" ]; then - echo "Detected OCI Region: $region" - for proxy in $(printenv | grep -i _proxy | cut -d= -f1); do unset $proxy; done - echo "-$region" > /etc/yum/vars/ociregion -fi +dnf update -y && \ +dnf clean all && \ mkdir /asmdisks && \ mkdir /responsefiles && \ chmod ug+x /opt/scripts/startup/*.sh && \ if grep -q "Oracle Linux Server release 9" /etc/oracle-release; then \ - # curl --noproxy '*' https://ca-artifacts.oraclecorp.com/auto-build/x86_64-build-output-9-dev/oracle-ai-database-preinstall-26ai-1.0-2.el9.x86_64.rpm --output oracle-ai-database-preinstall-26ai-1.0-2.el9.x86_64.rpm && \ # dnf install -y oracle-ai-database-preinstall-26ai-1.0-2.el9.x86_64.rpm cronie && \ dnf install -y oracle-ai-database-preinstall-26ai && \ cp /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf /etc/security/limits.d/grid-ai-database-preinstall-26ai.conf && \ diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/baseImageMetadata.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/baseImageMetadata.sh new file mode 100755 index 0000000000..9a789df87c --- /dev/null +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/baseImageMetadata.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# Resolve and export reproducible base-image build arguments for image wrappers. +# Call resolve_base_image_metadata VERSION DEFAULT_IMAGE BUILD_OPTIONS. +resolve_base_image_metadata() { + local version="$1" + local default_image="$2" + local build_options="${3:-}" + local token previous="" input="" ref="" digest="" repo_digest="" repository + + # Keep the SIDB base-image defaults consistent for supported ARM builds. + if [[ -z "${default_image}" && "${HOSTTYPE:-}" == "aarch64" && "${version}" != "26.0.0" ]]; then + default_image="oraclelinux:8" + fi + + for token in ${build_options}; do + if [[ "${token}" == BASE_IMAGE=* || "${token}" == BASE_OL_IMAGE=* ]]; then + input="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_REF=* ]]; then + ref="${token#*=}" + elif [[ "${token}" == BASE_IMAGE_DIGEST=* ]]; then + digest="${token#*=}" + elif [[ "${previous}" == "--build-arg" ]]; then + case "${token}" in + BASE_IMAGE=*|BASE_OL_IMAGE=*) input="${token#*=}" ;; + BASE_IMAGE_REF=*) ref="${token#*=}" ;; + BASE_IMAGE_DIGEST=*) digest="${token#*=}" ;; + esac + fi + previous="${token}" + done + + input="${input:-${default_image}}" + ref="${ref:-${input}}" + if [[ -z "${digest}" && "${input}" == *@sha256:* ]]; then + digest="${input##*@}" + fi + + if [[ -z "${digest}" ]]; then + echo "Resolving base image digest for ${input} ..." + "${CONTAINER_RUNTIME:-docker}" pull "${input}" || return 1 + repo_digest="$("${CONTAINER_RUNTIME:-docker}" image inspect --format '{{index .RepoDigests 0}}' "${input}" 2>/dev/null || true)" + [[ "${repo_digest}" == *@sha256:* ]] || { + echo "ERROR: no repository digest returned for ${input}" >&2 + return 1 + } + digest="${repo_digest##*@}" + fi + [[ "${digest}" == sha256:* ]] || { + echo "ERROR: BASE_IMAGE_DIGEST must be a sha256 digest, got ${digest}" >&2 + return 1 + } + + repository="${input%@*}" + [[ "${repository##*/}" == *:* ]] && repository="${repository%:*}" + BASE_IMAGE_BUILD_ARGS="--build-arg BASE_IMAGE=${repository}@${digest} --build-arg BASE_OL_IMAGE=${repository}@${digest} --build-arg BASE_IMAGE_REF=${ref} --build-arg BASE_IMAGE_DIGEST=${digest}" + export BASE_IMAGE_BUILD_ARGS + echo "Base image reference: ${ref}" + echo "Base image digest: ${digest}" +} diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/buildContainerImage.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/buildContainerImage.sh index 0256ae2d39..7c201ddcea 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/buildContainerImage.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/buildContainerImage.sh @@ -1,4 +1,16 @@ #!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# shellcheck source=/dev/null +source "${SCRIPT_DIR}/baseImageMetadata.sh" + +checkContainerRuntime() { + CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + CONTAINER_RUNTIME=$(which docker 2>/dev/null) || + { + echo "No docker or podman executable found in your PATH" + exit 1 + } +} # # Since: November, 2018 # Author: paramdeep.saini@oracle.com @@ -147,6 +159,11 @@ fi echo "Container Image set to : ${IMAGE_NAME}" +# Resolve the digest before changing into the version directory. +checkContainerRuntime +resolve_base_image_metadata "${VERSION}" "oraclelinux:9" "${DOCKEROPS}" +DOCKEROPS="${DOCKEROPS} ${BASE_IMAGE_BUILD_ARGS}" + # Go into version folder #cd "$VERSION" || exit @@ -157,7 +174,7 @@ else fi echo "==========================" echo "DOCKER info:" -docker info +"${CONTAINER_RUNTIME}" info echo "==========================" # Proxy settings @@ -190,7 +207,7 @@ fi if [ ${BASE_ONLY} -eq 1 ]; then echo "Building base stage image '${IMAGE_NAME}' ..." # BUILD THE BASE STAGE IMAGE (replace all environment variables) - docker build --force-rm=true \ + "${CONTAINER_RUNTIME}" build --force-rm=true \ --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" --target final \ -t "${IMAGE_NAME}" -f "${VERSION}"/Containerfile . || { echo "" @@ -198,7 +215,7 @@ if [ ${BASE_ONLY} -eq 1 ]; then exit 1 } # Remove dangling images (intermitten images with tag ) - yes | docker image prune > /dev/null || true + yes | "${CONTAINER_RUNTIME}" image prune > /dev/null || true exit fi @@ -210,7 +227,7 @@ echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date '+%s') # shellcheck disable=SC2086 -docker build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" --target final -t ${IMAGE_NAME} -f "${VERSION}"/Containerfile . || { +"${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" --target final -t ${IMAGE_NAME} -f "${VERSION}"/Containerfile . || { echo "There was an error building the image." exit 1 } diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/ociregion.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/ociregion.sh deleted file mode 100755 index d71491d3c2..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/ociregion.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC2034,SC2166,SC2155,SC1090,SC2046,SC2178,SC2207,SC2163,SC2115,SC2173,SC1091,SC1143,SC2164,SC3014 -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2025 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -## Use OCI yum repos on OCI instead of public yum -region=$(curl --noproxy '*' -sfm 3 -H "Authorization: Bearer Oracle" http://169.254.169.254/opc/v2/instance/ | sed -nE 's/^ *"regionIdentifier": "([^"]+)".*/\1/p') -if [ -n "$region" ]; then - echo "Detected OCI Region: $region" - for proxy in $(printenv | grep -i _proxy | cut -d= -f1); do unset $proxy; done - echo "-$region" > /etc/yum/vars/ociregion -fi \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/oracommon.py b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/oracommon.py index 9ab95d82d4..bb28d9c72e 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/oracommon.py +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/oracommon.py @@ -1917,7 +1917,7 @@ def get_rsp_version(self, key, node): elif output.strip() == "23": vdata = "23.0.0" elif output.strip() == "26": - vdata = "23.26.0" + vdata = "26.0.0" elif output.strip() == "19": vdata = "19.0.0" elif output.strip() == "18": diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/orasetupenv.py b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/orasetupenv.py index 57cfe828c1..dabe981669 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/orasetupenv.py +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/scripts/orasetupenv.py @@ -774,11 +774,19 @@ def _is_ol9(self): def configure_legacy_scp_for_19c(self): """ - Make scp options compatible with Oracle Linux 8 and 9. + Make scp compatible with Oracle 19c CVU/DBCA on Oracle Linux 8 and 9. - Oracle Linux 9's OpenSSH scp requires the legacy protocol options used - by the Oracle 19c setup scripts. Oracle Linux 8's older scp rejects - those options, so its wrapper removes them before invoking scp. + This runs only for Oracle major version 19. + + Oracle 19c CVU/DBCA invokes scp with a remote path that includes literal + single quotes in the argv (for example, + host:'/var/tmp/.../getFileInfoNNN.out'). OpenSSH then fails with + "protocol error: filename does not match request", which surfaces as + PRVF-5311 / INS-06006 during TaskUserEquivalence. + + On OL9, force legacy scp mode with -O -T. + On OL8, OpenSSH 8.0 supports -T but not -O; strip -O if present and + force -T so the CVU quoted-path copy succeeds. """ try: oraversion = self.ocommon.get_rsp_version("INSTALL", None) @@ -807,13 +815,6 @@ def configure_legacy_scp_for_19c(self): ) return - if os.path.exists(scp_orig): - self.ocommon.log_info_message( - "Legacy scp wrapper already installed", - self.file_name - ) - return - if self._is_ol9(): wrapper_lines = [ "#!/bin/bash", @@ -821,19 +822,33 @@ def configure_legacy_scp_for_19c(self): ] wrapper_message = "Installed Oracle 19c OpenSSH scp wrapper at {0} for OL9".format(scp_bin) else: - # Oracle Linux 8 or earlier + # Oracle Linux 8: keep -T (needed for CVU quoted remote paths) and + # drop unsupported -O before invoking the real scp binary. wrapper_lines = [ "#!/bin/bash", "args=()", 'for arg in "$@"; do', ' case "$arg" in', - " -O|-T) ;;", + " -O) ;;", ' *) args+=("$arg") ;;', " esac", "done", - 'exec /usr/bin/scp.openssh "${args[@]}"' + 'exec /usr/bin/scp.openssh -T "${args[@]}"' ] - wrapper_message = "Installed Oracle Linux 8 scp compatibility wrapper at {0}".format(scp_bin) + wrapper_message = "Installed Oracle 19c OpenSSH scp wrapper at {0} for OL8".format(scp_bin) + + if os.path.exists(scp_orig): + # Refresh an existing wrapper so a prior incorrect OL8 install is corrected. + printf_args = " ".join("'{0}'".format(line) for line in wrapper_lines) + install_cmd = "printf '%s\\n' {0} > {1} && chmod 755 {1}".format( + printf_args, scp_bin + ) + self.ocommon.execute_cmd_checked(install_cmd, None, None, exit_on_error=True) + self.ocommon.log_info_message( + "Refreshed Oracle 19c scp wrapper at {0}".format(scp_bin), + self.file_name + ) + return printf_args = " ".join("'{0}'".format(line) for line in wrapper_lines) install_cmd = "mv {0} {1} && printf '%s\\n' {2} > {0} && chmod 755 {0} {1}".format( diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/AddNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/AddNode.sh deleted file mode 100644 index f700b504a3..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/AddNode.sh +++ /dev/null @@ -1,961 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Add a Grid node and add Oracle Database instance based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variables and Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -r ETCHOSTS="/etc/hosts" ## /etc/hosts file location. -declare -r RAC_ENV_FILE="/etc/rac_env_vars" ## RACENV FILE NAME -declare -x GIMR_DB_FLAG='false' ## GIMR DB Check by default is false -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x EXISTING_CLS_NODE ## Computed during the program execution. -declare -x EXISTING_CLS_NODES ## You must all the exisitng nodes of the cluster in comma separated strings. Otherwise installation will fail. -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS='false' ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_TYPE='STANDARD' ## Default instllation is STANDARD. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -r OSDBA='dba' -declare -r OSASM='asmadmin' -declare -r INSTALL_TYPE='CRS_ADDNODE' -declare -r IPMI_FLAG='false' -declare -r ASM_STORAGE_OPTION='ASM' -declare -r GIMR_ON_NAS='false' -declare -x SCAN_TYPE='LOCAL_SCAN' -declare -x SHARED_SCAN -declare -x DB_ASM_DISKGROUP='DATA' -declare -x CONFIGURE_AFD_FLAG='false' -declare -x CONFIGURE_RHPS_FLAG='false' -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -if [ -f "/etc/rac_env_vars" ]; then -source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -all_check() -{ -check_pub_host_name -check_cls_node_names -check_ip_env_vars -check_passwd_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -#####################Function related to public hostname, IP and domain name check begin here ######## - -check_pub_host_name() -{ -local domain_name -local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - -} - -############### Function related to public hostname, IP and domain checks ends here ########## - -############## Function related to check exisitng cls nodes begin here ####################### -check_cls_node_names() -{ -if [ -z "${EXISTING_CLS_NODES}" ]; then - error_exit "For Node Addition, please provide the existing clustered node name." -else - - if isStringExist ${EXISTING_CLS_NODES} ${PUBLIC_HOSTNAME}; then - error_exit "EXISTING_CLS_NODES ${EXISTING_CLS_NODES} contains new node name ${PUBLIC_HOSTNAME}" - fi - -print_message "Setting Existing Cluster Node for node addition operation. This will be retrieved from ${EXISTING_CLS_NODES}" - -EXISTING_CLS_NODE="$( cut -d ',' -f 1 <<< "$EXISTING_CLS_NODES" )" - -if [ -z "${EXISTING_CLS_NODE}" ]; then - error_exit " Existing Node Name of the cluster not set or set to empty string" -else - print_message "Existing Node Name of the cluster is set to ${EXISTING_CLS_NODE}" - -if resolveip ${EXISTING_CLS_NODE}; then - print_message "Existing Cluster node resolved to IP. Check passed" -else - error_exit "Existing Cluster node does not resolved to IP. Check Failed" -fi -fi -fi -} - -############## Function related to check exisitng cls nodes begin here ####################### - -check_ip_env_vars () -{ -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is not set or set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is not set ot set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi - -if [ -z ${SCAN_NAME} ]; then - print_message "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if resolveip ${SCAN_NAME}; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z ${SCAN_IP} ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is not set ot set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname is not set ot set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - - -if [ -z ${CMAN_HOSTNAME} ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z ${CMAN_IP} ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -} -################check ip env vars function ends here ############################ - -################ Check passwd env vars function begin here ###################### -check_passwd_env_vars() -{ -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read PASSWORD < /tmp/${COMMON_OS_PWD_FILE} -rm -f /tmp/${COMMON_OS_PWD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ ! -z "${GRID_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read GRID_PASSWORD < /tmp/${GRID_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ ! -z "${ORACLE_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read ORACLE_PASSWORD < /tmp/${ORACLE_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi - -} - -############### Check password env vars function ends here ######################## - -############### Check grid Response file function begin here ###################### -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f $COMMON_SCRIPTS/$GRID_RESPONSE_FILE ];then -cp $COMMON_SCRIPTS/$GRID_RESPONSE_FILE $logdir/$GRID_RESPONSE_FILE -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -} - -############ Check responsefile function end here ###################### - -########### Check db env vars function begin here ####################### -check_db_env_vars () -{ -if [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -fi -if [ -z "${ORACLE_SID}" ]; then - print_message "ORACLE_SID is not defined" -else - print_message "ORACLE_SID is set to $ORACLE_SID" -fi - -} - -################# Check db env vars end here ################################## - -################ All Check Functions end here ##################################### - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local password -local ssh_pid -local stat - -if [ -z $CRS_NODES ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - - -IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$CRS_NODES" -CLUSTER_NODES=$(echo $EXISTING_CLS_NODES | tr ',' ' ') - -print_message "Cluster Nodes are $CLUSTER_NODES" -print_message "Running SSH setup for $GRID_USER user between nodes ${CLUSTER_NODES}" -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES}\" \"$GRID_PASSWORD\""' -(eval $cmd) & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Grid user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $GRID_USER user" -fi - -print_message "Running SSH setup for $DB_USER user between nodes ${CLUSTER_NODES[@]}" -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES}\" \"$ORACLE_PASSWORD\""' -(eval $cmd) & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Oracle user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $DB_USER user" -fi -} - -checkSSH () -{ - -local password -local ssh_pid -local stat -local status - -IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$PUBLIC_HOSTNAME" -CLUSTER_NODES=$(echo $EXISTING_CLS_NODES | tr ',' ' ') - -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo $cmd - -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo $cmd -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -###################################### SSH Function End here #################################### - -######################Add Node Functions #################################### -runorainstroot() -{ -$INVENTORY/orainstRoot.sh -} - -runrootsh () -{ - -local ORACLE_HOME=$1 -local USER=$2 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -cmd='su - $USER -c "ssh $node sudo $ORACLE_HOME/root.sh"' -eval $cmd -done - -} - -generate_response_file () -{ -cp $SCRIPT_DIR/$ADDNODE_RSP $logdir/$ADDNODE_RSP -chmod 666 $logdir/$ADDNODE_RSP - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ -z ${CRS_CONFIG_NODES} ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" - print_message "Clustered Nodes are set to $CRS_CONFIG_NODES" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $logdir/$ADDNODE_RSP -sed -i -r "s|###PUBLIC_HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/$ADDNODE_RSP -sed -i -r "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###OSDBA###|$OSDBA|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###OSOPER###|$OSOPER|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###OSASM###|$OSASM|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" $logdir/$ADDNODE_RSP -fi - -} - -###### Cluster Verification function ####### -CheckRemoteCluster () -{ -local cmd; -local stat; -local node=$EXISTING_CLS_NODE -local oracle_home=$GRID_HOME -local ORACLE_HOME=$GRID_HOME - -print_message "Checking Cluster" - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check crs\""' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Cluster Check on remote node passed" -else -error_exit "Cluster Check on remote node failed" -fi - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check cluster\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - - cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/srvctl status mgmtdb\""' - eval $cmd - - if [ $? -eq 0 ]; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check crsd\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check cssd\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check evmd\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -} - -setDevicePermissions () -{ - -local cmd -local state=3 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ ! -z "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ ! -z "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -done - -} - -checkCluster () -{ -local cmd; -local stat; -local oracle_home=$GRID_HOME - -print_message "Checking Cluster" - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crs"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cluster"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - cmd='su - $GRID_USER -c "$GRID_HOME/bin/srvctl status mgmtdb"' - eval $cmd - - if [ $? -eq 0 ]; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crsd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cssd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check evmd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f $logdir/cluvfy_check.txt - -} - -checkClusterClass () -{ -print_message "Checking Cluster Class" -local cluster_class - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl get cluster class"' -cluster_class=$(eval $cmd) -print_message "Cluster class is $cluster_class" -CLUSTER_TYPE=$(echo $cluster_class | awk -F \' '{ print $2 }' | awk '{ print $1 }') -} - - -###### Grid install & Cluster Verification utility Function ####### -cluvfyCheck() -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP -local hostname=$PUBLIC_HOSTNAME -local vip_hostname=$VIP_HOSTNAME -local cmd -local stat - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv $logdir/cluvfy_check.txt $logdir/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -#cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $hostname -vip $vip_hostname\" | tee -a $logdir/cluvfy_check.txt"' -#eval $cmd - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for cls_node in "${CLUSTER_NODES[@]}"; do -print_message "ssh to the node $node and executing cvu checks on $cls_node" -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $cls_node\" | tee -a $logdir/cluvfy_check.txt"' -eval $cmd -done - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - $logdir/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat $logdir/cluvfy_check.txt > $STD_OUT_FILE - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -addGridNode () -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP -local hostname=$PUBLIC_HOSTNAME -local vip_hostname=$VIP_HOSTNAME -local cmd -local stat - -print_message "Copying $responsefile on remote node $node" -cmd='su - $GRID_USER -c "scp $responsefile $node:$logdir"' -eval $cmd - -print_message "Running GridSetup.sh on $node to add the node to existing cluster" -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/gridSetup.sh -silent -waitForCompletion -noCopy -skipPrereqs -responseFile $responsefile\" | tee -a $logfile"' -eval $cmd - -print_message "Node Addition performed. removing Responsefile" -rm -f $responsefile -cmd='su - $GRID_USER -c "ssh $node \"rm -f $responsefile\""' -#eval $cmd - -} - -###########DB Node Addition Functions############## -addDBNode () -{ -local node=$EXISTING_CLS_NODE - -if [ -z $CRS_NODES ]; then - new_node_hostname=$PUBLIC_HOSTNAME -else - new_node_hostname=$CRS_NODES -fi - -local stat=3 -local cmd - -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/addnode/addnode.sh \"CLUSTER_NEW_NODES={$new_node_hostname}\" -skipPrereqs -waitForCompletion -ignoreSysPrereqs -noCopy -silent\" | tee -a $logfile"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Node Addition went fine for $new_node_hostname" -else -error_exit "Node Addition failed for $new_node_hostname" -fi -} - -addDBInst () -{ -# Check whether ORACLE_SID is passed on -local HOSTNAME=$PUBLIC_HOSTNAME -local node=$EXISTING_CLS_NODE -local stat=3 -local cmd - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo $CRS_NODES | tr ',' ' ' ) -fi - -if [ -z "${ORACLE_SID}" ];then - error_exit "ORACLE SID is not defined. Cannot Add Instance" -fi - -if [ -z "${HOSTNAME}" ]; then -error_exit "Hostname is not defined" -fi - - -for new_node in "${CLUSTER_NODES[@]}"; do -print_message "Adding DB Instance on $node" -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/bin/dbca -addInstance -silent -nodeName $new_node -gdbName $ORACLE_SID\" | tee -a $logfile"' -eval $cmd -done - -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - - -setremotelistener () -{ -local status -local cmd - -if resolveip $CMAN_HOSTNAME; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -########################## DB Functions End here ########################## - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - - -###### Etc Host and other Checks and setup before proceeding installation ##### -all_check -print_message "Setting random password for root/$GRID_USER/$DB_USER user" -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER $GRID_PASSWORD -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER $ORACLE_PASSWORD -print_message "Setting random password for root user" -setpasswd root $PASSWORD - -#### Setting up SSH ####### -setupSSH -checkSSH - -#### Grid Node Addition ##### -print_message "Setting Device permission to grid and asmadmin on all the cluster nodes" -setDevicePermissions -print_message "Checking Cluster Status on $EXISTING_CLS_NODE" -CheckRemoteCluster -print_message "Generating Responsefile for node addition" -generate_response_file -print_message "Running Cluster verification utility for new node $PUBLIC_HOSTNAME on $EXISTING_CLS_NODE" -cluvfyCheck -print_message "Running Node Addition and cluvfy test for node $PUBLIC_HOSTNAME" -addGridNode -print_message "Running root.sh on node $PUBLIC_HOSTNAME" -runrootsh $GRID_HOME $GRID_USER -checkCluster -print_message "Checking Cluster Class" -checkClusterClass -print_message "Running User Script for $GRID_USER user" -su - $GRID_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $GRID_SCRIPT_ROOT GRID" - -###### DB Node Addition ###### -if [ "${CLUSTER_TYPE}" != 'Domain' ]; then -if [ "${RUN_DBCA}" == 'true' ]; then -print_message "Performing DB Node addition" -addDBNode -print_message "Running root.sh" -runrootsh $DB_HOME $DB_USER -print_message "Adding DB Instance" -addDBInst -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script for $DB_USER user" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $DB_SCRIPT_ROOT DB" -print_message "Setting Remote Listener" -setremotelistener -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Checksum b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Checksum deleted file mode 100644 index 0b3d24c8f0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Checksum +++ /dev/null @@ -1,2 +0,0 @@ -1841f2ce7709cf909db4c064d80aae79 linuxx64_12201_database.zip -ac1b156334cc5e8f8e5bd7fcdbebff82 linuxx64_12201_grid_home.zip diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/DelNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/DelNode.sh deleted file mode 100644 index 09d46575eb..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/DelNode.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Delete a Grid node and add Oracle Database instance. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -declare -a cluster_nodes -DEL_NODE=${1} -NODE_HOSTNAME=$(hostname) -node_count=0 - -source /etc/rac_env_vars - -check_env_vars () -{ - -if [ -z ${DEL_NODE} ];then -echo "Please provide node name which you want to delete"; -exit 1; -else -echo "Deleting node name set to ${DEL_NODE}" -fi -} - -containsNode () { -local nodes match="$1" - shift -nodes=$1 -for e in "${cluster_nodes[@]}" -do - [[ "$e" == "$match" ]] && return 0; -done -return 1 -} - -setNode () { -cluster_nodes=( $($GRID_HOME/bin/olsnodes | awk '{ print $1 }') ) -node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -} - -delNode () { -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster $cluster_nodes" -exit 1 ; -fi - - if [ ${node_count} -eq 1 -a ${DEL_NODE} == ${NODE_HOSTNAME} ] ;then - echo "Stopping the Grid and deconfigure the cluster." - $GRID_HOME/bin/crsctl stop cluster - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force -else - -echo "Stopping Grid on deleting node" -cmd='su - grid -c "ssh ${DEL_NODE} \"sudo ${GRID_HOME}/bin/crsctl stop cluster\""' -eval $cmd - -echo "Deleting the node from the cluster" -$GRID_HOME/bin/crsctl delete node -n ${DEL_NODE} - -echo "getting updated cluster node info from the cluster" -setNode - -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster $cluster_nodes" -exit 0 ; -else -echo "Node ${DEL_NODE} is still a part of cluster." -exit 1; -fi - -fi -} - - -########################################## -############# MAIN######################### -########################################### -check_env_vars -setNode -delNode diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Dockerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Dockerfile deleted file mode 100644 index d491442662..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/Dockerfile +++ /dev/null @@ -1,147 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 12c Release 2 Real Application Clusters -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) linuxx64_12201_grid.zip -# (2) linuxx64_12201_database.zip -# Download Oracle Grid 12c Release 12 Enterprise Edition for Linux x64 -# Download Oracle Database 12c Release 12 Enterprise Edition for Linux x64 -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/database:12.2.0.1-rac . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Paramdeep Saini - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - GRID_BASE=/u01/app/grid \ - GRID_HOME=/u01/app/12.2.0/grid \ - INSTALL_FILE_1="linuxx64_12201_grid_home.zip" \ - GRID_INSTALL_RSP="grid.rsp" \ - GRID_SETUP_FILE="setupGrid.sh" \ - GRID_HOME_CLEANUP="GridHomeCleanup.sh" \ - FIXUP_PREQ_FILE="fixupPreq.sh" \ - INSTALL_GRID_BINARIES_FILE="installGridBinaries.sh" \ - INSTALL_GRID_PATCH="applyGridPatch.sh" \ - INVENTORY=/u01/app/oraInventory \ - CONFIGGRID="configGrid.sh" \ - ADDNODE="AddNode.sh" \ - DELNODE="DelNode.sh" \ - ADDNODE_RSP="grid_addnode.rsp" \ - SETUPSSH="setupSSH.expect" \ - GRID_PATCH="p27383741_122010_Linux-x86-64.zip" \ - PATCH_NUMBER="27383741" \ - SETUPDOCKERORACLEINIT="setupdockeroracleinit.sh" \ - DOCKERORACLEINIT="dockeroracleinit" \ - GRID_USER_HOME="/home/grid" \ - SETUPGRIDENV="setupGridEnv.sh" \ - ASM_DISCOVERY_DIR="/dev" \ -# RAC DB Env Variables - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 \ - INSTALL_FILE_2="linuxx64_12201_database.zip" \ - DB_INSTALL_RSP="db_inst.rsp" \ - DBCA_RSP="dbca.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - PWD_FILE="setPassword.sh" \ - RUN_FILE="runOracle.sh" \ - STOP_FILE="stopOracle.sh" \ - ENABLE_RAC_FILE="enableRAC.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - REMOTE_LISTENER_FILE="remoteListener.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ - ORACLE_HOME_CLEANUP="OracleHomeCleanup.sh" \ - DB_USER="oracle" \ - GRID_USER="grid" \ -# COMMON ENV Variable - FUNCTIONS="functions.sh" \ - COMMON_SCRIPTS="/common_scripts" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - EXPECT="/usr/bin/expect" \ - BIN="/usr/sbin" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - GRID_PATH=$GRID_HOME/bin:$GRID_HOME/OPatch/:/usr/sbin:$PATH \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - GRID_LD_LIBRARY_PATH=$GRID_HOME/lib:/usr/lib:/lib \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# COPY Binaries -COPY $INSTALL_FILE_1 $SETUPDOCKERORACLEINIT $INSTALL_GRID_PATCH $SETUP_LINUX_FILE $GRID_PATCH $GRID_SETUP_FILE $INSTALL_GRID_BINARIES_FILE $FIXUP_PREQ_FILE $INSTALL_FILE_2 $DB_SETUP_FILE $CHECK_SPACE_FILE $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf && \ - su grid -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su ${GRID_USER} -c "$INSTALL_DIR/install/$INSTALL_GRID_PATCH $GRID_PATCH" && \ - su ${DB_USER} -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su ${GRID_USER} -c "$INSTALL_DIR/install/$SETUPDOCKERORACLEINIT" && \ - su ${DB_USER} -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su ${GRID_USER} -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su ${DB_USER} -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - rm -rf $INSTALL_DIR/install && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 755 $SCRIPT_DIR/*.expect && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - chown root:oinstall $GRID_HOME/bin/$DOCKERORACLEINIT && \ - chmod 4755 $GRID_HOME/bin/$DOCKERORACLEINIT && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - echo "/u01/app/12.2.0/grid/dockeroracleinit/lib" > /etc/ld.so.conf.d/dockeroracleinit.conf && \ - ldconfig && \ - rm -f /etc/rc.d/init.d/oracle-database-server-12cR2-preinstall-firstboot && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - ln -s $GRID_HOME/bin/$DOCKERORACLEINIT /usr/sbin/oracleinit && \ - chmod +x /etc/rc.d/rc.local && \ - sync - -VOLUME ["/common_scripts"] - -USER grid -WORKDIR /home/grid - -# Define default command to start Oracle Grid and RAC Database setup. - -CMD ["/usr/sbin/oracleinit"] diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/GridHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/GridHomeCleanup.sh deleted file mode 100644 index b02fc05af1..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/GridHomeCleanup.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $GRID_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/grid/.bashrc - -rm -rf /u01/app/grid/* -rm -rf $GRID_HOME/log -rm -rf $GRID_HOME/logs -rm -rf $GRID_HOME/crs/init -rm -rf $GRID_HOME/crs/install/rhpdata -rm -rf $GRID_HOME/crs/log -rm -rf $GRID_HOME/racg/dump -rm -rf $GRID_HOME/srvm/log -rm -rf $GRID_HOME/cv/log -rm -rf $GRID_HOME/cdata -rm -rf $GRID_HOME/bin/core* -rm -rf $GRID_HOME/bin/diagsnap.pl -rm -rf $GRID_HOME/cfgtoollogs/* -rm -rf $GRID_HOME/network/admin/listener.ora -rm -rf $GRID_HOME/crf -rm -rf $GRID_HOME/ologgerd/init -rm -rf $GRID_HOME/osysmond/init -rm -rf $GRID_HOME/ohasd/init -rm -rf $GRID_HOME/ctss/init -rm -rf $GRID_HOME/dbs/.*.dat -rm -rf $GRID_HOME/oc4j/j2ee/home/log -rm -rf $GRID_HOME/inventory/Scripts/ext/bin/log -rm -rf $GRID_HOME/inventory/backup/* -rm -rf $GRID_HOME/mdns/init -rm -rf $GRID_HOME/gnsd/init -rm -rf $GRID_HOME/evm/init -rm -rf $GRID_HOME/gpnp/gpnp_bcp.* -rm -rf $GRID_HOME/gpnp/init -rm -rf $GRID_HOME/gipc/init -rm -rf $GRID_HOME/auth -rm -rf $GRID_HOME/tfa -rm -rf $GRID_HOME/suptools/tfa/release/diag -rm -rf $GRID_HOME/rdbms/audit/* -rm -rf $GRID_HOME/rdbms/log/* -rm -rf $GRID_HOME/network/log/* -rm -rf $GRID_HOME/inventory/Scripts/comps.xml.* -rm -rf $GRID_HOME/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf $GRID_HOME/inventory/Scripts/oraInst.loc.* -rm -rf $GRID_HOME/inventory/Scripts/inventory.xml.* -rm -rf $GRID_HOME/log_file_client.log diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/MultiNodeInstall.py b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/MultiNodeInstall.py deleted file mode 100644 index 51568c582c..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/MultiNodeInstall.py +++ /dev/null @@ -1,326 +0,0 @@ -#!/usr/bin/python -#!/usr/bin/env python - -########################################################################################################### - - -# stig.py -# -# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. -# -# NAME -# buildImage.py - -# -# DESCRIPTION -# -# -# NOTES - - -# Global Variables -Period = '.' - - -# Import standard python libraries -import subprocess -import sys -import time -import datetime -import os -import commands -import getopt -import shlex -import json -import logging -import socket - - -etchostfile="/etc/hosts" -racenvfile="/etc/rac_env_vars" -domain="none" - -def Usage(): - pass - -def Update_Envfile(common_params): - global racenvfile - global domain - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - - for keys in common_params.keys(): - if keys == 'domain': - domain = common_params[keys] - - env_var_str = "export " + keys.upper() + "=" + common_params[keys] - Redirect_To_File("Env vars for RAC Env set to " + env_var_str, "INFO") - filedata1 = filedata1 + "\n" + env_var_str - - Write_To_File(filedata1,racenvfile) - return "Env file updated sucesfully" - - -def Update_Hostfile(node_list): - counter=0 - global etchostfile - global domain - filedata = None - filedata1 = None - f = open(etchostfile, 'r') - filedata = f.read() - f.close - - global racenvfile - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - host_name=socket.gethostname() - - if domain == 'none': - fqdn_hostname=socket.getfqdn() - domain=fqdn_hostname.split(".")[1] - if not host_name: - Redirect_To_File("Unable to get the container host name! Exiting..", "INFO") - else: - Redirect_To_File("Container Hostname and Domain name : " + host_name + " " + domain, "INFO") - -# Replace and add the target string - for dict_list in node_list: - print dict_list - if "public_hostname" in dict_list.keys(): - pubhost = dict_list['public_hostname'] - if host_name == pubhost: - Redirect_To_File("PUBLIC Hostname set to" + pubhost, "INFO") - PUBLIC_HOSTNAME=pubhost - if counter == 0: - CRS_NODES = pubhost - CRS_CONFIG_NODES = pubhost - counter = counter + 1 - else: - CRS_NODES = CRS_NODES + "," + pubhost - CRS_CONFIG_NODES = CRS_CONFIG_NODES + "," + pubhost - counter = counter + 1 - else: - return "Error: Did not find the key public_hostname" - if "public_ip" in dict_list.keys(): - pubip = dict_list['public_ip'] - if host_name == pubhost: - Redirect_To_File("PUBLIC IP set to" + pubip, "INFO") - PUBLIC_IP=pubip - else: - return "Error: Did not find the key public_ip" - if "private_ip" in dict_list.keys(): - privip = dict_list['private_ip'] - if host_name == pubhost: - Redirect_To_File("Private IP set to" + privip, "INFO") - PRIV_IP=privip - else: - return "Error: Did not find the key private_ip" - if "private_hostname" in dict_list.keys(): - privhost = dict_list['private_hostname'] - if host_name == pubhost: - Redirect_To_File("Private HOSTNAME set to" + privhost, "INFO") - PRIV_HOSTNAME=privhost - else: - return "Error: Did not find the key private_hostname" - if "vip_hostname" in dict_list.keys(): - viphost = dict_list['vip_hostname'] - CRS_CONFIG_NODES = CRS_CONFIG_NODES + ":" + viphost + ":" + "HUB" - if host_name == pubhost: - Redirect_To_File("VIP HOSTNAME set to" + viphost, "INFO") - VIP_HOSTNAME=viphost - else: - return "Error: Did not find the key vip_hostname" - if "vip_ip" in dict_list.keys(): - vipip = dict_list['vip_ip'] - if host_name == pubhost: - Redirect_To_File("NODE VIP set to" + vipip, "INFO") - NODE_VIP=vipip - else: - return "Error: Did not find the key vip_ip" - - delete_entry = [pubhost, privhost, viphost, pubip, privip, vipip] - for hostentry in delete_entry: - print "Processing " + hostentry - cmd=cmd= '""' + "sed " + "'" + "/" + hostentry + "/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - # Removing Empty Lines - cmd=cmd= '""' + "sed " + "'" + "/^$/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - delete_entry [:] - - if pubhost not in filedata: - if pubip not in filedata: - hoststring='%s %s %s' %(pubip, pubhost + "." + domain, pubhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if privhost not in filedata: - if privip not in filedata: - hoststring='%s %s %s' %(privip, privhost + "." + domain, privhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if viphost not in filedata: - if vipip not in filedata: - hoststring='%s %s %s' %(vipip, viphost + "." + domain, viphost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - print filedata - - Write_To_File(filedata,etchostfile) - if CRS_NODES: - Redirect_To_File("Cluster Nodes set to " + CRS_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_NODES=' + CRS_NODES - if CRS_CONFIG_NODES: - Redirect_To_File("CRS CONFIG Variable set to " + CRS_CONFIG_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_CONFIG_NODES=' + CRS_CONFIG_NODES - if NODE_VIP: - filedata1 = filedata1 + '\n' + 'export NODE_VIP=' + NODE_VIP - if PRIV_IP: - filedata1 = filedata1 + '\n' + 'export PRIV_IP=' + PRIV_IP - if PUBLIC_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PUBLIC_HOSTNAME=' + PUBLIC_HOSTNAME - if PUBLIC_IP: - filedata1 = filedata1 + '\n' + 'export PUBLIC_IP=' + PUBLIC_IP - if VIP_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export VIP_HOSTNAME=' + VIP_HOSTNAME - if PRIV_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PRIV_HOSTNAME=' + PRIV_HOSTNAME - - Write_To_File(filedata1,racenvfile) - return "Host and Env file updated sucesfully" - - -def Write_To_File(text,filename): - f = open(filename,'w') - f.write(text) - f.close() - -def Setup_Operation(op_type): - if op_type == 'installrac': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'addnode': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'delnode': - cmd="sudo /opt/scripts/startup/DelNode.sh" - - output,retcode=Execute_Single_Command(cmd,'None','') - if retcode != 0: - return "Error occuurred in setting up env" - else: - return "setup operation completed sucessfully!" - - -def Execute_Single_Command(cmd,env,dir): - try: - if not dir: - dir=os.getcwd() - print shlex.split(cmd) - out = subprocess.Popen(cmd, shell=True, cwd=dir, stdout=subprocess.PIPE) - output, retcode = out.communicate()[0],out.returncode - return output,retcode - except: - Redirect_To_File("Error Occurred in Execute_Single_Command block! Please Check", "ERROR") - sys.exit(2) - -def Redirect_To_File(text,level): - original = sys.stdout - sys.stdout = open('/proc/1/fd/1', 'w') - root = logging.getLogger() - if not root.handlers: - root.setLevel(logging.INFO) - ch = logging.StreamHandler(sys.stdout) - ch.setLevel(logging.INFO) - formatter = logging.Formatter('%(asctime)s :%(message)s', "%Y-%m-%d %T %Z") - ch.setFormatter(formatter) - root.addHandler(ch) - message = os.path.basename(__file__) + " : " + text - root.info(' %s ' % message ) - sys.stdout = original - - -#BEGIN : TO check whether valid arguments are passed for the container ceation or not -def main(argv): - version= '' - type= '' - dir='' - script='' - Redirect_To_File("Passed Parameters " + str(sys.argv[1:]), "INFO") - try: - opts, args = getopt.getopt(sys.argv[1:], '', ['setuptype=','nodeparams=','comparams=','help']) - - except getopt.GetoptError: - Usage() - sys.exit(2) - #Redirect_To_File("Option Arguments are : " + opts , "INFO") - for opt, arg in opts: - if opt in ('--help'): - Usage() - sys.exit(2) - elif opt in ('--nodeparams'): - nodeparams = arg - elif opt in ('--comparams'): - comparams = arg - elif opt in ('--setuptype'): - setuptype = arg - else: - Usage() - sys.exit(2) - - if setuptype == 'installrac': - Redirect_To_File("setup type parameter is set to installrac", "INFO") - elif setuptype == 'addnode': - Redirect_To_File("setup type parameter is set to addnode", "INFO") - elif setuptype == 'delnode': - Redirect_To_File("setup type parameter is set to delnode", "INFO") - else: - setupUsage() - sys.exit(2) - if not nodeparams: - Redirect_To_File("Node Parameters for the Cluster not specified", "Error") - sys.exit(2) - if not comparams: - Redirect_To_File("Common Parameter for the Cluster not specified", "Error") - sys.exit(2) - - - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - - - comparams = comparams.replace('\\"','"') - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - envfile_status=Update_Envfile(json.loads(comparams)) - if 'Error' in envfile_status: - Redirect_To_File(envfile_status, "ERROR") - return sys.exit(2) - - nodeparams = nodeparams.replace('\\"','"') - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - hostfile_status=Update_Hostfile(json.loads(nodeparams)) - if 'Error' in hostfile_status: - Redirect_To_File(hostfile_status, "ERROR") - return sys.exit(2) - - Redirect_To_File("Executing operation" + setuptype, "INFO") - setup_op=Setup_Operation(setuptype) - if 'Error' in setup_op: - Redirect_To_File(setup_op, "ERROR") - return sys.exit(2) - - sys.exit(0) - -if __name__ == '__main__': - main(sys.argv) diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/OracleHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/OracleHomeCleanup.sh deleted file mode 100644 index f61b6cec12..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/OracleHomeCleanup.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $ORACLE_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/oracle/.bashrc - -rm -rf $ORACLE_HOME/bin/extjob -rm -rf $ORACLE_HOME/PAF -rm -rf $ORACLE_HOME/install/oratab -rm -rf $ORACLE_HOME/install/make.log -rm -rf $ORACLE_HOME/network/admin/listener.ora -rm -rf $ORACLE_HOME/network/admin/tnsnames.ora -rm -rf $ORACLE_HOME/bin/nmo -rm -rf $ORACLE_HOME/bin/nmb -rm -rf $ORACLE_HOME/bin/nmhs -rm -rf $ORACLE_HOME/log/.* -rm -rf $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/images/chartCache/* -rm -rf $ORACLE_HOME/rdbms/audit/* -rm -rf $ORACLE_HOME/cfgtoollogs/* -rm -rf $ORACLE_HOME/inventory/Scripts/comps.xml.* -rm -rf $ORACLE_HOME/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf $ORACLE_HOME/inventory/Scripts/oraInst.loc.* -rm -rf $ORACLE_HOME/inventory/Scripts/inventory.xml.* diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/applyGridPatch.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/applyGridPatch.sh deleted file mode 100644 index f50d5726b4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/applyGridPatch.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Apply Patch for Oracle Grid and Databas. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -PATCH=$1 - -# Check whether edition has been passed on -if [ "PATCH" == "" ]; then - echo "ERROR: No Patch has been passed on!" - echo "Please specify the correct PATCH!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - -temp_var1=`hostname` -# Install Oracle binaries - -unzip -q $INSTALL_SCRIPTS/$PATCH -d $GRID_USER_HOME && \ -rm -f $INSTALL_SCRIPTS/$GRID_PATCH && \ -cd $GRID_USER_HOME/$PATCH_NUMBER/$PATCH_NUMBER && \ -$GRID_HOME/OPatch/opatch napply -silent -local -oh $GRID_HOME -id $PATCH_NUMBER && \ -cd $GRID_USER_HOME && \ -rm -rf $GRID_USER_HOME/$PATCH_NUMBER diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkDBStatus.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkDBStatus.sh deleted file mode 100644 index 4f0706018e..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkDBStatus.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the status of Oracle Database. -# The ORACLE_HOME, ORACLE_SID and the PATH has to be set. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh -export ORACLE_HOME=$DB_HOME -export PATH=$ORACLE_HOME/bin:$PATH -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib - -sid=$1 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." - exit 3; -fi; - -ORACLE_SID=$($DB_HOME/bin/srvctl status database -d $sid | grep $(hostname) | awk '{ print $2 }') - -echo "Checking $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -status=`$DB_HOME/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; - select status from v\\$instance; - exit; -EOF` - -echo $status > /tmp/db_status.txt diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkSpace.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkSpace.sh deleted file mode 100644 index 39ebaca649..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=35 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/configGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/configGrid.sh deleted file mode 100644 index 730a997738..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/configGrid.sh +++ /dev/null @@ -1,1247 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup grid and Creates an Oracle Database based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# $ORACLE_SID -# $ORACLE_PDB -# Note : -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variables and Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -declare -r RAC_ENV_FILE="/etc/rac_env_vars" -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -r ETCHOSTS="/etc/hosts" ## /etc/hosts file location. -declare -r OSDBA='dba' ## OSDBA group -declare -r OSASM='asmadmin' ## OSASM group -declare -r INSTALL_TYPE='CRS_CONFIG' ## INSTALL TYPE default set to CRS_CONFIG -declare -r IPMI_FLAG='false' ## IPMI Flag by default to set false -declare -r ASM_STORAGE_OPTION='ASM' ## ASM_STORAGE_OPTION set to ASM -declare -r GIMR_ON_NAS='false' ## GIMR on NAS set to false -declare -x GIMR_DB_FLAG='false' # Disabled GIMR DB FLAG -declare -x ASM_DISKGROUP_DISKS ## Computed during program Execution -declare -x ASM_DISKGROUP_FG_DISKS ## Computing During program execution. -declare -x GIMR_DISKGROUP_DISKS ## Computed During Program Execution -declare -x GIMR_DISKGROUP_FG_DISKS ## Computed During program Execution. -declare -x GIMR_DEVICE_LIST ## Pass as env variable and it must contain device name with location if using DSC. Default DG name is MGMT. -declare -x ASM_DEVICE_LIST ## Pass as env variable and it must contain device name with location for DATA DG. -declare -x ETH_CARD_1 ## Computed During program Execution -declare -x ETH_CARD_2 ## Computed During Program Execution -declare -x PUBLIC_NETWORK ## Computed During program execution. -declare -x PRIVATE_NETWORK ## Computed During program execution. -declare -x NETWORK_STRING ## Do not pass as env variable. Computed during program execution. -declare -x GIMR_DG_FLAG ## Default set to FALSE. If under DSC, set to true. -declare -x GIMR_DG_NAME ## Default set to MGMT. -declare -x GIMR_DG_REDUNDANCY ## Used if you will use DSC. Default set to EXTERNAL. -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_PORT ## Default SCAN_PORT set to 1521. Pass some other value if need some other PORT. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x GNS_OPTIONS ## By Default value will be CREATE_NEW_GNS -declare -x GNSVIP_HOSTNAME ## If you are using DSC or DHCP for grid. -declare -x GNS_SUBDOMAIN ## If you are using DHCP. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_NAME ## if not passed as env variable. It will be set to "hostname-c". -declare -x CLUSTER_TYPE='STANDALONE' ## Default instllation is STANDALONE. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -x STORAGE_OPTIONS_FOR_MEMBERDB ##Pass it as env variable if you want to specify storage options for MEMBER DB Cluster. -declare -x DB_ASM_DISKGROUP='DATA' ## Pass it env variable when using Member DB cluster. Default value is DATA. Another vakue can be MGMT. -declare -x MEMBERDB_FILE ## Mandatory Parameter for MEMBER DB CLUSTER. Pass the Manifest file name. Copy it under COMMON_SCRIPTS. -declare -x ORACLE_CHARACTERSET ## If not passed as env variable then default value is AL32UTF8. -declare -x ORACLE_PWD ## If not passed as env variable then default value is set to PASSWORD -declare -x ORACLE_PDB ## If not passed then oraclepdb is default pdb name -declare -x ORACLE_SID ## If not passed then default db name is oraclecdb. -declare -x CONTAINER_DB_FLAG='true' ## default database will be created as container. Set it to false to create Non-CDB -declare -r OSOPER ## OSOPER group -declare -x IPMI_USERNAME ## Specify IPMI Username -declare -x IPMI_PASSWORD ## IPMI_PASSWORD -declare -x ASM_REDUNDANCY='EXTERNAL' ## ASM REDUNDANCY default to EXTERNAL -declare -x SCAN_TYPE='LOCAL_SCAN' ## SCAN TYPE set to LOCAL -declare -x SHARED_SCAN ## SHARED_SCAN. define file for SHARED SCAN -declare -x EXTENDED_CLUSTER=false ## EXTENDED CLUSTER DEFAULT set to false -declare -x SHARED_GNS_FILE ## Specify SHARED GNS -declare -x EXTENDED_CLUSTER_SITES ## Specify Extended Cluster Sites -declare -x ASM_DG_FAILURE_GROUP ## ASM DG Failure groups -declare -x ASM_ON_NAS ## Specify ASM on NAS -declare -x ASM_ON_NAS_LOCATION ## Specify ASM on NAS Location -declare -x FAILURE_GROUP_SITE_NAME ## Specify Failure Group Site Name -declare -x QUORUM_FAILURE_GROUP ## Specify QUORUM Failure Group name -declare -x GIMR_DG_FAILURE_GROUP ## Specufy DG Failure name -declare -x CONFIGURE_AFD_FLAG='false' ##Specify Configure AFD Flag -declare -x CONFIGURE_RHPS_FLAG='false' ## Speicfy Configure RHPS Flag -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' ## Specify ROOT Script Flag -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' ## Specify Execute Root Script methid -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x TOTAL_MEMORY=5000 ## Total Memory need to be allocated to SGA Instance -declare -x DATABASE_CONFIG_TYPE='RAC' ## DB COnfig TYPE -declare -x PDB_COUNT=1 ## PDB COUNTS -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x DB_PWD_FILE -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_NODES -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x GIMR_FLAG='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -if [ -f "/etc/rac_env_vars" ]; then -source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -####### all_check function to validate all the required variable before proceeding for the installation ####### - -all_check() -{ -check_pub_host_name -check_ip_env_vars -check_passwd_env_vars -check_dsc_env_vars -check_dhcp_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -############## Public Hostname, IP and Domain begin here ############## - -check_pub_host_name() -{ -local domain_name -local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname).$DOMAIN") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - - -} - -############## Public Hostname, IP and Domain end here ############## - -############## IP Related Checks Begins here ############## -check_ip_env_vars () -{ -local domain_name - -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi -fi - - -if [ -z "${SCAN_NAME}" ]; then - error_exit "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if [ -z "${SCAN_PORT}" ]; then - print_message "SCAN PORT is set to empty string. Setting it to 1521 port." - SCAN_PORT=1521 -else - print_message "SCAN_PORT name is ${SCAN_PORT}" -fi - -if resolveip "${SCAN_NAME}"; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z "${SCAN_IP}" ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -### DHCP Check ENDS Here ###### -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - -fi - -if [ -z "${CMAN_HOSTNAME}" ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z "${CMAN_IP}" ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -if [ -z "${CLUSTER_NAME}" ]; then - print_message "Cluster Name is not defined" - print_message "Cluster name is set to 'racnode-c'" - CLUSTER_NAME="$(hostname)-c" -else - print_message "Cluset name is set to $CLUSTER_NAME" -fi - -} - -############## IP Related Checks end here ############## - -############## Checks for password brgins here ######### -check_passwd_env_vars () -{ - -################## Checks for Password and Clustername and clustertype begins here ########### -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read PASSWORD < /tmp/${COMMON_OS_PWD_FILE} -rm -f /tmp/${COMMON_OS_PWD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ ! -z "${GRID_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read GRID_PASSWORD < /tmp/${GRID_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ ! -z "${ORACLE_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read ORACLE_PASSWORD < /tmp/${ORACLE_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ ! -z "${DB_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${DB_PWD_FILE}" -out "/tmp/${DB_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common database password file generation" -fi - -read ORACLE_PWD < /tmp/${DB_PWD_FILE} -rm -f /tmp/${DB_PWD_FILE} -else - ORACLE_PWD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle Database" -fi - - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi -} - -############ Checks for password ends here################ - -############## Checks for Domain Service Cluster ######### -check_dsc_env_vars () -{ -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - print_message "Setting GIMR_DG_FLAG to TRUE" - GIMR_DG_FLAG="true" - print_message "Setting GIMR_DG_NAME to MGMT" - GIMR_DG_NAME="MGMT" - print_message "Setting GIMR_DG_REDUNDANCY to External" - GIMR_DG_REDUNDANCY="EXTERNAL" - print_message "Setting Configure GNS options to true" - CONFIGURE_GNS=true - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi -else - print_message "Setting CONFIGURE_GNS to false" - CONFIGURE_GNS='false' -fi -} -############## Checks for DSC ends here #################################################### - -############## Checks for DHCP Begin here ######################################## -check_dhcp_env_vars () -{ -if [ "${DHCP_CONF}" == 'true' ];then - - if [ -z "${GNS_SUBDOMAIN}" ]; then - error_exit "GNS_SUBDOMAIN is not set or set to empty string" - else - print_message "GNS SUBDOMAIN is set to ${GNS_SUBDOMAIN} " - fi - - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi - -fi -} - -############# Checks for DHCP Ends here ########################################### - -############### Check for Existing Grid Response file based on user settings begin here######## - -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f "${COMMON_SCRIPTS}/${GRID_RESPONSE_FILE}" ];then -cp "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE" "$logdir/$GRID_INSTALL_RSP" -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -print_message "IGNORE_CVU_CHECKS is set to ${IGNORE_CVU_CHECKS}" - -} - -############### Check for Existing Grid Response file based on user settings end here######## - -############## Check for Member Cluster and DB related parameters Begin here ########################## -check_db_env_vars () -{ -if [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to CLIENT_ASM_STORAGE" - STORAGE_OPTIONS_FOR_MEMBERDB=CLIENT_ASM_STORAGE -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -if [ -z "${MEMBERDB_FILE}" ];then - error_exit "Manifest File is not provided for MEMBERDB cluster. Exiting.." -else - print_message "Manifest File is set to $MEMBERDB_FILE" - if [ -f "${COMMON_SCRIPTS}"/"${MEMBERDB_FILE}" ]; then - print_message "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}" - else - error_exit "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}. Check Failed!" - fi -fi - -if [ -z "${DB_ASM_DISKGROUP}" ];then -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -else -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -fi - -fi - -############## Following Checks are applicable only if CLUSTER TYPE is STANDALONE######### - -if [ $CLUSTER_TYPE == 'STANDALONE' ] || [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -if [ -z "${ORACLE_SID}" ]; then -export ORACLE_SID="ORCLCDB" -print_message "Oracle SID is set to $ORACLE_SID" -else -print_message "Oracle SID is set to $ORACLE_SID" -fi - -if [ -z "${ORACLE_PDB}" ]; then -export ORACLE_PDB="ORCLPDB" -print_message "Oracle PDB name is set to $ORACLE_PDB" -else -print_message "Oracle PDB name is set to $ORACLE_PDB" -fi - -if [ -z "${ORACLE_CHARACTERSET}" ]; then -export ORACLE_CHARACTERSET="AL32UTF8" -else -print_message "DB characterset set to $ORACLE_CHARACTERSET" -fi -fi -} - -############## Check for Member Cluster Begin here ######################## -################ all_check function related tasks ends here ################# - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local CLUSTER_NODES -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo $CRS_NODES | tr ',' ' ' ) -fi - -print_message "SSh will be setup among $CLUSTER_NODES nodes" - -print_message "Running SSH setup for $GRID_USER user between nodes $CLUSTER_NODES" -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES\" \"$GRID_PASSWORD\""' -eval $cmd -sleep 30 -print_message "Running SSH setup for $DB_USER user between nodes $CLUSTER_NODES" -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES\" \"$ORACLE_PASSWORD\""' -eval $cmd -} - -checkSSH () -{ - -local password -local ssh_pid -local stat -local status -local CLUSTER_NODES - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo $CRS_NODES | tr ',' ' ' ) -fi - -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo $cmd - -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo $cmd -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -######################################## SSH Function end here ############################# - -######################################### ASM Disk Functions ################################### -build_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ ! -z "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - ASM_DISKGROUP_FG_DISKS+="$device,," - ASM_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin $device - chmod 660 $device - count=$[$count+1] - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "ASM_DEVICE_LIST is set to empty canot proceed" -fi - -temp_str=$(echo -n $ASM_DISKGROUP_FG_DISKS | head -c -1) -export ASM_DISKGROUP_FG_DISKS=$temp_str -print_message "ASM Device list will be with failure groups $ASM_DISKGROUP_FG_DISKS" -temp_str=$(echo -n $ASM_DISKGROUP_DISKS | head -c -1) -export ASM_DISKGROUP_DISKS=$temp_str -print_message "ASM Device list will be groups $ASM_DISKGROUP_DISKS" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### ASM Disk Functions #################################### - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - -if [ -z "${GRID_RESPONSE_FILE}" ]; then -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then -if [ ! -z "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - GIMR_DISKGROUP_FG_DISKS+="$device,," - GIMR_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin $device - chmod 660 $device - count=$[$count+1] - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi - -temp_str=$(echo -n $GIMR_DISKGROUP_FG_DISKS | head -c -1) -export GIMR_DISKGROUP_FG_DISKS=$temp_str -print_message "GIMR Device list will be with failure groups $GIMR_DISKGROUP_FG_DISKS" -temp_str=$(echo -n $GIMR_DISKGROUP_DISKS | head -c -1) -export GIMR_DISKGROUP_DISKS=$temp_str -print_message "GIMR Device list will be set to $GIMR_DISKGROUP_DISKS" -else -print_message "CLUSTER_TYPE env variable is set to ${CLUSTER_TYPE}, will not process GIMR DEVICE list as default Diskgroup is set to DATA. GIMR DEVICE List will be processed when CLUSTER_TYPE is set to DOMAIN for DSC" -fi -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so GIMR_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### GIMR Block Device List Computation ends here ############ - -######################################## Set Device Permissions on all the nodes ####################### -setDevicePermissions () -{ - -local cmd -local state=3 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ ! -z "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ ! -z "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -done - -} - -######################################## Set Device Permission Ends Here ################################ - -####################################### Network Function Begin here ############################# -build_network () -{ - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -####### Building Public IP Details ########### -ETH_CARD_2=$(ifconfig | awk "/${PUBLIC_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface $ETH_CARD_2 ; then - print_message "Check passed for network card $ETH_CARD_2 for public IP $PUBLIC_IP" - else - error_exit "Check failed for network card for $ETH_CARD_2 for public IP $PUBLIC_IP" - fi - -PUBLIC_NETMASK=$(ifconfig $ETH_CARD_2 | awk '/netmask/ {print $4}') -print_message "Public Netmask : $PUBLIC_NETMASK" -PUBLIC_NETWORK=$(ipcalc -np $PUBLIC_IP $PUBLIC_NETMASK | grep NETWORK | awk -F '=' '{ print $2 }') - -##### Building Private Network Detail ######### - -ETH_CARD_1=$(ifconfig | awk "/${PRIV_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface $ETH_CARD_1 ; then - print_message "Check passed for network card $ETH_CARD_1 for private IP $PRIV_IP" -else - error_exit "Check failed for network card for $ETH_CARD_1 for private IP $PRIV_IP" -fi - -PRIVATE_NETMASK=$(ifconfig $ETH_CARD_1 | awk '/netmask/ {print $4}') -PRIVATE_NETWORK=$(ipcalc -np $PRIV_IP $PRIVATE_NETMASK | grep NETWORK | awk -F '=' '{ print $2 }') - -print_message "Building NETWORK_STRING to set networkInterfaceList in Grid Response File" - -if [ "${SINGLENIC}" == "true" ]; then -NETWORK_STRING="$ETH_CARD_1:$PUBLIC_NETWORK:1" -else -NETWORK_STRING="$ETH_CARD_2:$PUBLIC_NETWORK:1,$ETH_CARD_1:$PRIVATE_NETWORK:5" -fi - -print_message "Network InterfaceList set to $NETWORK_STRING" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi - -} - -########################################## Network Function End here ################################ - -######### Grid setup Function########################### -grid_response_file () -{ - -if [ -z $GRID_RESPONSE_FILE ]; then -cp $SCRIPT_DIR/$GRID_INSTALL_RSP $logdir/$GRID_INSTALL_RSP -#chmod 777 $logdir - -if [ -z $CRS_CONFIG_NODES ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CLUSTER_NAME###|$CLUSTER_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SCAN_NAME###|$SCAN_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DISKGROUP_FG_DISKS###|$ASM_DISKGROUP_FG_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DISKGROUP_DISKS###|$ASM_DISKGROUP_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DISCOVERY_STRING###|$ASM_DISCOVERY_DIR/*|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###PASSWORD###|$ORACLE_PWD|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###STORAGE_OPTIONS_FOR_MEMBERDB###|$STORAGE_OPTIONS_FOR_MEMBERDB|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SCAN_PORT###|$SCAN_PORT|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CLUSTER_TYPE###|$CLUSTER_TYPE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_REDUNDANCY###|$GIMR_DG_REDUNDANCY|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DISKGROUP_FG_DISKS###|$GIMR_DISKGROUP_FG_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DISKGROUP_DISKS###|$GIMR_DISKGROUP_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_FLAG###|$GIMR_DG_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_NAME###|$GIMR_DG_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GNS_SUBDOMAIN###|$GNS_SUBDOMAIN|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GNSVIP_HOSTNAME###|$GNSVIP_HOSTNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GNS_OPTIONS###|$GNS_OPTIONS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###DHCP_CONF###|$DHCP_CONF|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CONFIGURE_GNS###|$CONFIGURE_GNS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###MEMBERDB_FILE###|$COMMON_SCRIPTS\/$MEMBERDB_FILE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###OSDBA###|$OSDBA|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###OSOPER###|$OSOPER|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###OSASM###|$OSASM|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXTENDED_CLUSTER###|$EXTENDED_CLUSTER|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SHARED_GNS_FILE###|$SHARED_GNS_FILE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXTENDED_CLUSTER_SITES###|$EXTENDED_CLUSTER_SITES|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###IPMI_FLAG###|$IPMI_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###IPMI_USERNAME###|$IPMI_USERNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###IPMI_PASSWORD###|$IPMI_PASSWORD|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_STORAGE_OPTION###|$ASM_STORAGE_OPTION|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_ON_NAS###|$ASM_ON_NAS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_ON_NAS###|$GIMR_ON_NAS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_ON_NAS_LOCATION###|$ASM_ON_NAS_LOCATION|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_REDUNDANCY###|$ASM_REDUNDANCY|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###AU_SIZE###|$AU_SIZE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###FAILURE_GROUP_SITE_NAME###|$FAILURE_GROUP_SITE_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###QUORUM_FAILURE_GROUP###|$QUORUM_FAILURE_GROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_FAILURE_GROUP###|$GIMR_DG_FAILURE_GROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DG_FAILURE_GROUP###|$ASM_DG_FAILURE_GROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_FLAG###|$GIMR_DB_FLAG|g" $logdir/$GRID_INSTALL_RSP -fi - -} - -cluvfy_checks () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP -local password=$PASSWORD -local stat=3 -local cmd -local FAILED_CMDS -local TIMESTAMP=$(date +%s) - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv $logdir/cluvfy_check.txt $logdir/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -print_message "Performing Cluvfy Checks" -cmd='su - $GRID_USER -c "$GRID_HOME/runcluvfy.sh stage -pre crsinst -responseFile $responsefile | tee -a $logdir/cluvfy_check.txt"' -eval $cmd - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - $logdir/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat $logdir/cluvfy_check.txt > $STD_OUT_FILE - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -RunConfigGrid() -{ -local responsefile=$logdir/$GRID_INSTALL_RSP -local password=$PASSWORD -local stat=3 -local cmd - -if [ "${SINGLENIC}" == 'true' ];then - error_exit "SINGLE NIC is not supported"; -else -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -waitforcompletion -ignorePrereq -silent -responseFile $responsefile"' -eval $cmd -fi -} - -runrootsh () -{ -local cmd -local state=3 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Running root.sh on $node" -cmd='su - $GRID_USER -c "ssh $node sudo $GRID_HOME/root.sh"' -eval $cmd -done -} - -runpostrootsetps () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP -local password=$PASSWORD -local stat=3 -local cmd - -print_message "Running post root.sh steps to setup Grid env" - -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -executeConfigTools -responseFile $responsefile -silent"' -eval $cmd - -#rm -f $responsefile -} - -checkCluster () -{ -local cmd; -local stat; -local oracle_home=$GRID_HOME - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" - - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Checking Cluster on $node" - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crs"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cluster"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - - cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/srvctl status mgmtdb"' - eval $cmd - - if [ $? -eq 0 ]; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crsd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cssd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check evmd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -done - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f $logdir/cluvfy_check.txt - -} - -installCrontab() -{ -print_message "Installing crontab to monitor systemd and reset the failed units" -local cmd; -local stat; - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Copying file $RESET_FAILED_UNITS from $SCRIPT_DIR to /tmp" - -cmd='su - $GRID_USER -c "ssh $node sudo cp $SCRIPT_DIR/$RESET_FAILED_UNITS /tmp/$RESET_FAILED_UNITS"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Copied the $RESET_FAILED_UNITS under /tmp" -else -error_exit "Error occurred during file copy" -fi - -print_message "Setting Crontab" -cmd='su - $GRID_USER -c "ssh $node sudo crontab $SCRIPT_DIR/$CRONTAB_ENTRY"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Sucessfully installed $CRONTAB_ENTRY using crontab" -else -error_exit "Error occurred in crontab setup" -fi - -done - -} - -#############DB Setup Functions######################################## - -dbca_response_file () -{ - -if [ -z $DBCA_RESPONSE_FILE ]; then -cp $SCRIPT_DIR/$DBCA_RSP $logdir/$DBCA_RSP -chmod 666 $logdir/$DBCA_RSP - -if [ -z $CRS_NODES ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - -sed -i -e "s|###ORACLE_SID###|$ORACLE_SID|g" $logdir/$DBCA_RSP -sed -i -e "s|###ORACLE_PDB###|$ORACLE_PDB|g" $logdir/$DBCA_RSP -sed -i -e "s|###ORACLE_PWD###|$ORACLE_PWD|g" $logdir/$DBCA_RSP -sed -i -e "s|###ORACLE_CHARACTERSET###|$ORACLE_CHARACTERSET|g" $logdir/$DBCA_RSP -sed -i -e "s|###DB_NODES###|$CRS_NODES|g" $logdir/$DBCA_RSP -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $logdir/$DBCA_RSP -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $logdir/$DBCA_RSP -sed -i -e "s|###CONTAINER_DB_FLAG###|$CONTAINER_DB_FLAG|g" $logdir/$DBCA_RSP -sed -i -e "s|###PDB_COUNT###|$PDB_COUNT|g" $logdir/$DBCA_RSP -sed -i -e "s|###DATABASE_CONFIG_TYPE###|$DATABASE_CONFIG_TYPE|g" $logdir/$DBCA_RSP -sed -i -e "s|###TOTAL_MEMORY###|$TOTAL_MEMORY|g" $logdir/$DBCA_RSP -else - -if [ -f $COMMON_SCRIPTS/$DBCA_RESPONSE_FILE ];then -cp $COMMON_SCRIPTS/$DBCA_RESPONSE_FILE $logdir/$DBCA_RSP -chmod 666 $logdir/$DBCA_RSP -else -error_exit "$COMMON_SCRIPTS/$DBCA_RESPONSE_FILE does not exist" -fi - -fi -} - -createRACDB() -{ -local responsefile=$logdir/$DBCA_RSP -local cmd -# Replace place holders in response file -cmd='su - $DB_USER -c "$DB_HOME/bin/dbca -silent -ignorePreReqs -createDatabase -responseFile $responsefile"' -eval $cmd -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - -setremotelistener () -{ -local status -local cmd - -if resolveip $CMAN_HOSTNAME; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -############################# DB Functions End here ########################################### - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -all_check -build_network -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER $GRID_PASSWORD -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER $ORACLE_PASSWORD - -print_message "Calling setupSSH function" -setupSSH -checkSSH - -######### ASM Disk Setup ####### -if [ "${CLUSTER_TYPE}" == 'DOMAIN' ] || [ "${CLUSTER_TYPE}" == 'STANDALONE' ]; then -build_block_device_list -build_gimr_block_device_list -setDevicePermissions -fi - -####### Grid Setup ########## -print_message "Generating Reponsefile" -grid_response_file -print_message "Running cluvfy Checks" -cluvfy_checks -print_message "Running Grid Installation" -RunConfigGrid -print_message "Running root.sh" -runrootsh -print_message "Running post root.sh steps" -runpostrootsetps -print_message "Checking Cluster Status" -checkCluster -print_message "Running User Script for $GRID_USER user" -su - $GRID_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $GRID_SCRIPT_ROOT GRID" - -####### DB Setup ########## -if [ "${CLUSTER_TYPE}" == 'STANDALONE' ] || [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -if [ "${RUN_DBCA}" == "true" ]; then -print_message "Generating DB Responsefile Running DB creation" -dbca_response_file -print_message "Running DB creation" -createRACDB -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script for $DB_USER user" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $DB_SCRIPT_ROOT DB" -print_message "Setting Remote Listener" -setremotelistener -fi -fi - -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/db_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/db_inst.rsp deleted file mode 100644 index 07c976438b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/db_inst.rsp +++ /dev/null @@ -1,130 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -# - UPGRADE_DB -#------------------------------------------------------------------------------- -oracle.install.option=INSTALL_DB_SWONLY - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME=oinstall - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME=###DB_HOME### - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###DB_BASE### - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 -#------------------------------------------------------------------------------- -oracle.install.db.InstallEdition=###ORACLE_EDITION### - -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP=oper - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# Disable RAC install -#------------------------------------------------------------------------------ -oracle.install.db.isRACOneInstall=false - -#------------------------------------------------------------------------------ -# Specify whether to enable the user to set the password for -# My Oracle Support credentials. The value can be either true or false. -# If left blank it will be assumed to be false. -# -# Example : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true -#------------------------------------------------------------------------------ -SECURITY_UPDATES_VIA_MYORACLESUPPORT=false - -#------------------------------------------------------------------------------ -# Specify whether user doesn't want to configure Security Updates. -# The value for this variable should be true if you don't want to configure -# Security Updates, false otherwise. -# -# The value can be either true or false. If left blank it will be assumed -# to be true. -# -# Example : DECLINE_SECURITY_UPDATES=false -#------------------------------------------------------------------------------ -DECLINE_SECURITY_UPDATES=true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/dbca.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/dbca.rsp deleted file mode 100644 index b08a918f32..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/dbca.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=###DATABASE_CONFIG_TYPE### - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=###CONTAINER_DB_FLAG### - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=###PDB_COUNT### - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=###ORACLE_PDB### - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=###DB_NODES### - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName={ORACLE_HOME}/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=###ORACLE_SID###,ORACLE_BASE=###DB_BASE###,PDB_NAME=###ORACLE_PDB###,DB_NAME=###ORACLE_SID###,ORACLE_HOME=###DB_HOME###,SID=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=###TOTAL_MEMORY### diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/enableRAC.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/enableRAC.sh deleted file mode 100644 index 1409e8f2e4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/enableRAC.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Enable RAC feature in Oracle Software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -source /home/${DB_USER}/.bashrc - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -make -f $DB_HOME/rdbms/lib/ins_rdbms.mk rac_on -make -f $DB_HOME/rdbms/lib/ins_rdbms.mk ioracle diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/fixupPreq.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/fixupPreq.sh deleted file mode 100644 index 7b42ced77d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/fixupPreq.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup the Linux kernel parameter inside the container. Note that some parameter need to be set on Docker host. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -rpm -Uvh "$GRID_HOME/cv/rpm/cvuqdisk*" -echo "oracle soft nofile 1024" > /etc/security/limits.conf -echo "oracle hard nofile 65536" >> /etc/security/limits.conf -echo "oracle soft nproc 16384" >> /etc/security/limits.conf -echo "oracle hard nproc 16384" >> /etc/security/limits.conf -echo "oracle soft stack 10240" >> /etc/security/limits.conf -echo "oracle hard stack 32768" >> /etc/security/limits.conf -echo "oracle hard memlock 134217728" >> /etc/security/limits.conf -echo "oracle soft memlock 134217728" >> /etc/security/limits.conf -echo "grid soft nofile 1024" >> /etc/security/limits.conf -echo "grid hard nofile 65536" >> /etc/security/limits.conf -echo "grid soft nproc 16384" >> /etc/security/limits.conf -echo "grid hard nproc 16384" >> /etc/security/limits.conf -echo "grid soft stack 10240" >> /etc/security/limits.conf -echo "grid hard stack 32768" >> /etc/security/limits.conf -echo "grid hard memlock 134217728" >> /etc/security/limits.conf -echo "grid soft memlock 134217728" >> /etc/security/limits.conf -echo "ulimit -S -s 10240" >> /home/grid/.bashrc -echo "ulimit -S -s 10240" >> /home/oracle/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/functions.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/functions.sh deleted file mode 100644 index d7c4677148..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/functions.sh +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Common Function File -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -export logfile=/tmp/orod.log -export logdir=/tmp -export STD_OUT_FILE="/proc/1/fd/1" -export STD_ERR_FILE="/proc/1/fd/2" -export TOP_PID=$$ - -###### Function Related to printing messages and exit the script if error occurred ################## -error_exit() { -local NOW=$(date +"%m-%d-%Y %T %Z") - # Display error message and exit -# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 - echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $logfile > $STD_OUT_FILE - kill -s TERM $TOP_PID -} - -print_message () -{ - local NOW=$(date +"%m-%d-%Y %T %Z") - # Display message and return - echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $logfile > $STD_OUT_FILE - return $? -} - -##################################################################################################### - -####### Function related to IP Checks ############################################################### - -validating_env_vars () -{ -local stat=3 -local ip="${1}" -local alive="${2}" - -print_message "checking IP is in correct format such as xxx.xxx.xxx.xxx" - -if valid_ip $ip; then - print_message "IP $ip format check passed!" -else - error_exit "IP $ip is not in correct format..please check!" -fi - -# Checking if Host is alive - -if [ "${alive}" == "true" ]; then - -print_message "Checking if IP is pingable or not!" - -if host_alive $ip; then - print_message "IP $ip is pingable ...check passed!" -else - error_exit "IP $ip is not pingable..check failed!" -fi - -else - -print_message "Checking if IP is pingable or not!" - -if host_alive $ip; then - error_exit "IP $ip is already allocated...check failed!" -else - print_message "IP $ip is not pingable..check passed!" -fi - -fi -} - -check_interface () -{ -local ethcard=$1 -local output - -ip link show | grep $ethcard - -output=$? - - if [ $output -eq 0 ];then - return 0 - else - return 1 - fi -} - -valid_ip() -{ - local ip=$1 - local stat=1 - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - OIFS=$IFS - IFS='.' - ip=($ip) - IFS=$OIFS - [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ - && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -host_alive() -{ - - local ip_or_hostname=$1 - local stat=1 -ping -c 1 -W 1 $ip_or_hostname >& /dev/null - -if [ $? -eq 0 ]; then - stat=0 - return $stat -else - stat=1 - return $stat -fi - -} - -resolveip(){ - - local host="$1" - if [ -z "$host" ] - then - return 1 - else - local ip=$( getent hosts "$host" | awk '{print $1}' ) - if [ -z "$ip" ] - then - ip=$( dig +short "$host" ) - if [ -z "$ip" ] - then - print_message "unable to resolve '$host'" - return 1 - else - print_message "$ip" - return 0 - fi - else - print_message "$ip" - return 0 - fi - fi -} - -################################################################################################################## - -############################################Match an Array element####################### -isStringExist () -{ -local checkthestring="$1" -local stringtocheck="$2" -local stat=1 - -IFS=', ' read -r -a string_array <<< "$checkthestring" - -for ((i=0; i < ${#string_array[@]}; ++i)); do - if [ ${stringtocheck} == ${string_array[i]} ]; then - stat=0 - fi -done - return $stat -} - - -######################################################################################### - - -##################################################Password function########################## - -setpasswd () -{ - -local user=$1 -local pass=$2 -echo $pass | passwd $user --stdin -} - -############################################################################################## diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid.rsp deleted file mode 100644 index b124746651..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid.rsp +++ /dev/null @@ -1,642 +0,0 @@ -########################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -########################################################################### - -########################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -########################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 - -########################################################################### -# # -# SECTION A - BASIC # -# # -########################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -############################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# # -############################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -############################################################################ -# # -# SECTION C - SCAN # -# # -############################################################################ -#------------------------------------------------------------------------------- -# Specify a name for SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=###SCAN_PORT### - -############################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -############################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=###CLUSTER_TYPE### - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile=###MEMBERDB_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=###CLUSTER_NAME### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=###CONFIGURE_GNS### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=###DHCP_CONF### - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=###GNS_OPTIONS### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain=###GNS_SUBDOMAIN### -oracle.install.crs.config.gpnp.gnsVIPAddress=###GNSVIP_HOSTNAME### - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=###NETWORK_STRING### - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=###GIMR_DG_FLAG### - -############################################################################ -# # -# SECTION E - STORAGE # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption=###STORAGE_OPTIONS_FOR_MEMBERDB### -############################################################################ -# # -# SECTION F - IPMI # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -############################################################################ -# # -# SECTION G - ASM # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=###DB_ASM_DISKGROUP### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=###ASM_REDUNDANCY### - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups=###ASM_DG_FAILURE_GROUP### - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asmdisks/asm-racnode-c-disk2,,/dev/asmdisks/asm-racnode-c-disk1,,/dev/asmdisks/asm-racnode-c-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asmdisks/asm-racnode-c-disk2,/dev/asmdisks/asm-racnode-c-disk1,/dev/asmdisks/asm-racnode-c-disk3 -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asmdisks/* -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name=###GIMR_DG_NAME### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy=###GIMR_DG_REDUNDANCY### - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups=###GIMR_DG_FAILURE_GROUP### - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames=###GIMR_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks=###GIMR_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -############################################################################ -# # -# SECTION H - UPGRADE # -# # -############################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -############################################################################ -# # -# MANAGEMENT OPTIONS # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -############################################################################ -# # -# Root script execution configuration # -# # -############################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -############################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid1.rsp deleted file mode 100644 index ebfc119b01..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid1.rsp +++ /dev/null @@ -1,671 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/grid - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=racnode-scan - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=rac01cluster - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB,racnode2:racnode2-vip:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=eth0:192.168.17.0:5,eth1:172.16.1.0:1 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm_* - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_addnode.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_addnode.rsp deleted file mode 100644 index 65aac64c91..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_addnode.rsp +++ /dev/null @@ -1,641 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_ADDNODE - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify a name for SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###PUBLIC_HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_inst.rsp deleted file mode 100644 index ec4b5e10b8..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_inst.rsp +++ /dev/null @@ -1,641 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify a name for SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=###CLUSTER_NAME### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=###HOSTNAME###:###HOSTNAME_VIP###:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=###ETH_CARD1###:###PRIVATE_SUBNET###:5,###ETH_CARD2###:###PUBLIC_SUBNET###:1 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asmdisks/asm-racnode-c-disk2,,/dev/asmdisks/asm-racnode-c-disk1,,/dev/asmdisks/asm-racnode-c-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asmdisks/asm-racnode-c-disk2,/dev/asmdisks/asm-racnode-c-disk1,/dev/asmdisks/asm-racnode-c-disk3 -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asmdisks/* -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=true - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_sw_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_sw_inst.rsp deleted file mode 100644 index 3d3c5d68a3..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/grid_sw_inst.rsp +++ /dev/null @@ -1,668 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=###INSTALL_TYPE### - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=###HOSTNAME### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installDBBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installDBBinaries.sh deleted file mode 100644 index d326459868..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installDBBinaries.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description:Installing Oracle DB software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" -a "$EDITION" != "SE2" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether DB_BASE is set -if [ "$DB_BASE" == "" ]; then - echo "ERROR: DB_BASE has not been set!" - echo "You have to have the DB_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether DB_HOME is set -if [ "$DB_HOME" == "" ]; then - echo "ERROR: DB_HOME has not been set!" - echo "You have to have the DB_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Replace place holders -# --------------------- -sed -i -e "s|###ORACLE_EDITION###|$EDITION|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -# Install Oracle binaries -if [ "${DB_USER}" != "${GRID_USER}" ]; then -mkdir -p /home/${DB_USER}/.ssh && \ -chmod 700 /home/${DB_USER}/.ssh -fi - -cd $INSTALL_SCRIPTS && \ -unzip $INSTALL_FILE_2 && \ -rm -f $INSTALL_SCRIPTS/$INSTALL_FILE_2 && \ -$INSTALL_SCRIPTS/database/runInstaller -silent -force -waitforcompletion -responsefile $INSTALL_SCRIPTS/$DB_INSTALL_RSP -ignoresysprereqs -ignoreprereq && \ -rm -rf $INSTALL_SCRIPTS/database diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installGridBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installGridBinaries.sh deleted file mode 100644 index 60ec28717f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/installGridBinaries.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Install grid software inside the container. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - -export ORACLE_HOME=$GRID_HOME -export PATH=$ORACLE_HOME/bin:$PATH - -temp_var1=`hostname` -# Install Oracle binaries -mkdir -p /home/grid/.ssh && \ -chmod 700 /home/grid/.ssh && \ -unzip -q $INSTALL_SCRIPTS/$INSTALL_FILE_1 -d $GRID_HOME && \ -#rm -f $INSTALL_SCRIPTS/$INSTALL_FILE_1 && \ -$GRID_HOME/perl/bin/perl $GRID_HOME/clone/bin/clone.pl -silent ORACLE_BASE=$GRID_BASE ORACLE_HOME=$GRID_HOME OSDBA_GROUP=asmdba OSASM_GROUP=asmadmin ORACLE_HOME_NAME="grid122_home1" INVENTORY_LOCATION=$INVENTORY LOCAL_NODE="$temp_var1" CRS=TRUE - diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/remoteListener.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/remoteListener.sh deleted file mode 100644 index e08e494a93..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/remoteListener.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Set the Oracle Connection Manager IP as remote listener in oracle DB -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh - -sid=$1 -scan_name=$2 -cman_host=$3 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." -else - echo "Oracle Sid : $sid" -fi; - -if [ -z "${scan_name}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - SCAN Name is not set. Please set SCAN Name before invoking this script." - else - echo " Scan name : $scan_name" -fi; - -if [ -z "${cman_host}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - CMAN Host Name is not set. Please set CMAN Hostname before invoking this script." - echo "Cman Host : $cman_host" -fi; - -ORACLE_HOME=$DB_HOME -ORACLE_SID=$($DB_HOME/bin/srvctl status database -d $sid | grep $(hostname) | awk '{ print $2 }') - -echo "setting Oracle sid to $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -echo "Remote Lisetenr String : remote_listener=$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))" - -status=`$DB_HOME/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; -alter system set remote_listener='$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))' scope=both; - alter system register; -alter system register; -alter system register; -alter system register; - exit; -EOF` - -echo "Register remote listener for ASM instance" - -export ORACLE_SID=+ASM1 -export ORACLE_HOME=$GRID_HOME - -status=`$ORACLE_HOME/bin/sqlplus / as sysasm << EOF - set heading off; - set pagesize 0; - alter system set remote_listener='$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))' scope=both; - alter system register; - alter system register; - alter system register; - alter system register; - exit; -EOF` - -#echo "Stopping Oracle Database" -#$ORACLE_HOME/bin/srvctl stop database -d $sid -#echo "Starting Oracle Database" -#$ORACLE_HOME/bin/srvctl start database -d $sid diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/resetOSPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/resetOSPassword.sh deleted file mode 100644 index 11d72fcea5..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/resetOSPassword.sh +++ /dev/null @@ -1,221 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Reset the password for Grid and oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -declare -a cluster_nodes -GRID_USER='grid' -ORACLE_USER='oracle' -PROGNAME=$(basename $0) -PWD_KEY='pwd.key' -SECRET_VOLUME='/run/secrets' -declare -x REMOVE_OS_PWD_FILES='false' -PASSWD_VALUE="NOPASSWD" -source /etc/rac_env_vars - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -generate_pwd () -{ - -if [ -f "${SECRET_VOLUME}/${PWD_FILE}" ] && [ -f "${SECRET_VOLUME}/${PWD_KEY}" ] ; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${PWD_FILE}" -out /tmp/${PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read PASSWORD < /tmp/${PWD_FILE} -rm -f /tmp/${PWD_FILE} -rm -f /tmp/${PWD_KEY} - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi - -else - print_message "Password file or password key file is empty string! generating random password" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ ! -z ${PASSWORD} ]; then - PASSWD_VALUE="${PASSWORD}" -fi - -} - -setNode () { -if [ ! -f $GRID_HOME/bin/olsnodes ]; then -cluster_nodes=( $(hostname) ) -else -cluster_nodes=( $($GRID_HOME/bin/olsnodes | awk '{ print $1 }') ) -node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -fi -} - -reset_passwd () -{ -user=${1} -password=${2} - -if [ -z "${user}" ]; then -error_exit "user name is not specified. It must be set to oracle|grid" -fi - -if [ -z "${password}" ]; then -error_exit "password string is not specified" -fi - -for node in "${cluster_nodes[@]}" -do -if [ ! -f $GRID_HOME/bin/olsnodes ]; then -print_message "Resetting password for ${user} on the ${node}" -cmd='su - $user -c "echo $password | sudo passwd $user --stdin"' -else -print_message "Resetting password for ${user} on all the ${node}" -cmd='su - $user -c "ssh ${node} \"echo $password | sudo passwd $user --stdin\""' -fi - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password reset seucessfuly on ${node} for $user" -else -print_message "Password reset failed on ${node} for $user" -fi -done -} - -usage() { -cat << EOF -Usage: -o|--op_type Specify the value reset_grid_oracle|reset_grid|reset_oracle - -p|--pwd_file Specify the encrypted password file name - -k|--pwd_key_file Specify password key fle - -s|--secret_volume Specify the secret volume - -r|--remove_os_pwd_files Remove the passwordfiles after resetting the password - -h|--help Show help -EOF -error_exit "Please specify correct parameters" -} - -##################################################################### -### MAIN # -##################################################################### - -SHORTOPTS="o:p:k:s:r:h" -LONGOPTS="help,op_type:,pwd_key_file:,pwd_file:,secret_volume:,remove_os_pwd_files:" - -ARGS=$(getopt -o $SHORTOPTS --long $LONGOPTS --name $PROGNAME -- "$@" ) - -if [ $? != 0 ] ; then -error_exit "Terminating... as error occurred during ARGS computation"; -fi - -print_message "$ARGS" - -eval set -- "$ARGS" - -while true; do -case "$1" in - --help) - usage -;; - -o | --op_type) - if [ "$2" ]; then - RESET_PASSWORD_TYPE=$2 - else - error_exit "--op_type requires non empty option argument" - fi - print_message "RESET_PASSWORD_TYPE=${RESET_PASSWORD_TYPE}" - shift 2 -;; - -p | --pwd_file) - if [ "$2" ]; then - PWD_FILE=$2 - else - print_message "--pwd_file set to empty string. random password will generated" - fi - print_message "PWD_FILE: $PWD_FILE" - shift 2 -;; --k | --pwd_key_file) - if [ "$2" ];then - PWD_KEY=$2 - else - PWD_KEY='pwd.key' - print_message "--pwd_key set to empty string. It will be set to default value ${PWD_KEY}" - fi - print_message "PWD_KEY=$PWD_KEY" - shift 2 -;; - -s | --secret_volume) - echo "Secret Volume Location" - if [ "$2" ];then - SECRET_VOLUME=$2 - else - SECRET_VOLUME='/run/secrets' - print_message "--secret_volume is set to empty string. It will be set to default value ${SECRET_VOLUME}" - fi - shift 2 -;; --r| --remove_os_pwd_files) - echo "Remove OS PWD files after resetting password" - if [ "${2}" == 'true' ]; then - REMOVE_OS_PWD_FILES='true' - else - REMOVE_OS_PWD_FILES='false' - fi - shift 2 -;; - --) - shift; - break; -;; -*) -print_message "Not a valid option" -usage -;; -esac -done - -print_message "generating node name from the cluster" -setNode -print_message "Generating password for grid and oracle user" -generate_pwd - -if [ "${PASSWD_VALUE}" == "NOPASSWD" ]; then - error_exit "Correct password string is not set" -fi - -if [ "${RESET_PASSWORD_TYPE}" == 'reset_grid_oracle' ]; then -print_message "Setting password for $GRID_USER user" -reset_passwd $GRID_USER $PASSWD_VALUE -print_message "Setting password for $ORACLE_USER user" -reset_passwd $ORACLE_USER $PASSWD_VALUE -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_grid' ]; then - print_message "Setting password for $GRID_USER user" - reset_passwd $GRID_USER $PASSWD_VALUE -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_oracle' ]; then - print_message "Setting password for $ORACLE_USER user" - reset_passwd $ORACLE_USER $PASSWD_VALUE -else -error_exit "Please specify correct value for RESET_PASSWORD_TYPE. Correct Values are reset_grid_oracle|reset_grid|reset_oracle" -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runOracle.sh deleted file mode 100644 index 10a64944f2..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runOracle.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs the Oracle RAC Database inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -########################### - -if [ -f $logfile ]; then -mv $logfile $logfile."$(date +%Y%m%d-%H%M%S)" -touch $logfile -else -touch $logfile -fi - -chmod 666 $logfile -progname="$(basename $0)" -grid_install_status="FALSE" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -################################################## - - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -print_message "Process id of the program : $TOP_ID" -# Check whether container has enough memory -if [[ -f /sys/fs/cgroup/cgroup.controllers ]]; then - memory=$(cat /sys/fs/cgroup/memory.max) -else - memory=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) -fi - -# Github issue #219: Prevent integer overflow, -# only check if memory digits are less than 11 (single GB range and below) -if [[ ${memory} != "max" && ${#memory} -lt 11 && ${memory} -lt 8589934592 ]]; then - echo "Error: The container doesn't have enough memory allocated." - echo "A database container needs at least 8 GB of memory." - echo "You currently only have $((memory/1024/1024/1024)) GB allocated to the container." - exit 1; -fi - -print_message "#################################################" -print_message " Starting Grid Installation " -print_message "#################################################" - -print_message "Pre-Grid Setup steps are in process" -$SCRIPT_DIR/$SETUPGRIDENV -stat=$? -if [ $stat -ne 0 ]; then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "###################################################" -print_message "Pre-Grid Setup steps completed" -print_message "###################################################" - -print_message "Checking if grid is already configured" -if [ -d /etc/oracle ]; then -grid_install_status="TRUE" -if [ -f /etc/oracle/olr.loc ];then -grid_install_status="TRUE" -OLR_FILE=$(cat /etc/oracle/olr.loc | grep olrconfig_loc | awk -F "=" '{ print $2 }') -if [ -f $OLR_FILE ]; then -grid_install_status="TRUE" -print_message "Grid is installed on $(hostname). $progname will start the Grid service" -fi -fi -fi - -if [ $grid_install_status == "TRUE" ];then -print_message "Setting up Grid Env for Grid Start" -print_message "##########################################################################################" -print_message "Grid is already installed on this container! Grid will be started by default ohasd scripts" -print_message "############################################################################################" -else -if [ "${OP_TYPE}" == "INSTALL" ]; then -$SCRIPT_DIR/$CONFIGGRID -stat=$? - -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -elif [ "${OP_TYPE}" == "ADDNODE" ]; then -$SCRIPT_DIR/$ADDNODE -stat=$? -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -else -print_message "Usage : $progname INSTALL | ADDNODE" -error_exit "You can perform Cluster Install or Add Node" -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runUserScripts.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runUserScripts.sh deleted file mode 100644 index 0ed26af7fc..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/runUserScripts.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs user shell and SQL scripts -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -SCRIPTS_ROOT="$1"; -SCRIPTS_TYPE="$2"; - -# Check whether parameter has been passed on -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ "${SCRIPTS_TYPE}" == "DB" ] && [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts for ${SCRIPTS_TYPE}" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysdba" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts for ${SCRIPTS_TYPE}" - echo ""; - -fi; - -fi; - -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; - -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ "${SCRIPTS_TYPE}" == "GRID" ] && [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts for ${SCRIPTS_TYPE}" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysasm" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts for ${SCRIPTS_TYPE}" - echo ""; - -fi; - -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setPassword.sh deleted file mode 100644 index dcf692c9d9..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setPassword.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets the password for sys, system and pdb_admin -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -ORACLE_PWD=$1 -#ORACLE_SID="`grep $DB_HOME /etc/oratab | cut -d: -f1`" -#ORACLE_PDB="`ls -dl $DB_BASE/oradata/$ORACLE_SID/*/ | grep -v pdbseed | awk '{print $9}' | cut -d/ -f6`" -ORAENV_ASK=NO - -ORACLE_SID=$2 -ORACLE_PDB=$3 - -source oraenv - -sqlplus / as sysdba << EOF - ALTER USER SYS IDENTIFIED BY "$ORACLE_PWD"; - ALTER USER SYSTEM IDENTIFIED BY "$ORACLE_PWD"; - ALTER SESSION SET CONTAINER=$ORACLE_PDB; - ALTER USER PDBADMIN IDENTIFIED BY "$ORACLE_PWD"; - exit; -EOF - diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupDB.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupDB.sh deleted file mode 100644 index bcce178fab..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupDB.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p $DB_BASE -mkdir -p $DB_HOME - -usermod -g oinstall -G oinstall,dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,racdba,asmadmin ${DB_USER} - -chown -R ${DB_USER}:oinstall $DB_BASE -chown -R ${DB_USER}:oinstall $DB_HOME -chown -R ${DB_USER}:oinstall $INSTALL_SCRIPTS -chmod 775 $INSTALL_SCRIPTS - -echo "export PATH=$DB_PATH" >> /home/${DB_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$DB_LD_LIBRARY_PATH" >> /home/${DB_USER}/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/${DB_USER}/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/${DB_USER}/.bashrc -echo "export DB_BASE=$DB_BASE" >> /home/${DB_USER}/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/${DB_USER}/.bashrc - -if [ ${DB_USER} == ${GRID_USER} ]; then -sed -i '/PATH=/d' /home/${DB_USER}/.bashrc -echo "export PATH=$GRID_HOME/bin:$DB_PATH" >> /home/${DB_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_HOME/lib:$DB_LD_LIBRARY_PATH" >> /home/${DB_USER}/.bashrc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGrid.sh deleted file mode 100644 index 9fedb0d176..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGrid.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for Grid installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Create Directories -mkdir -p $GRID_BASE -mkdir -p $GRID_HOME - -groupadd -g 54334 asmadmin -groupadd -g 54335 asmdba -groupadd -g 54336 asmoper -useradd -u 54332 -g oinstall -G oinstall,asmadmin,asmdba,asmoper,racdba,dba ${GRID_USER} - -chown -R ${GRID_USER}:oinstall $GRID_BASE -chown -R ${GRID_USER}:oinstall $GRID_HOME -mkdir -p $INVENTORY -chown -R ${GRID_USER}:oinstall $INVENTORY - -chmod 666 /etc/sudoers -echo "${DB_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -echo "${GRID_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers - -echo "export PATH=$GRID_PATH" >> /home/${GRID_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_LD_LIBRARY_PATH" >> /home/${GRID_USER}/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/${GRID_USER}/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/${GRID_USER}/.bashrc -echo "export GRID_BASE=$GRID_BASE" >> /home/${GRID_USER}/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/${GRID_USER}/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGridEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGridEnv.sh deleted file mode 100644 index bd31a14421..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupGridEnv.sh +++ /dev/null @@ -1,282 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Pre-grid Setup tasks such as setting up hosts file -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variabes and Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -DNS_SERVER_FLAG='false' # set this variable to true if you have DNS server. Then , it is not required to populate the /etc/hosts. -declare -r ETCHOSTS="/etc/hosts" # -declare -r ETCFSTAB="/etc/fstab" -declare -r GRID_USER='grid' ## Default user for grid installation -declare -r ASMADMIN_GROUP='asmadmin' ## Default group for Grid. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname - -progname="$(basename $0)" -######################## Variable and Constant declaration ends here ###### - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -######################################## Pre-Grid-Deployment Steps Begin here #################################### -pre_grid_deploy_steps () -{ -local systemd_svc -local systemctl_state - -# Setting default gateway -if [ ! -z "${DEFAULT_GATEWAY}" ];then - ip route del default - ip route add default via $DEFAULT_GATEWAY -fi - -# Adding blank ntp.conf -touch /etc/ntp.conf - -# Adding blank /etc/fstab -if [ ! -f ${ETCFSTAB} ]; then - touch /etc/fstab -fi - -# Changing permission for /common_scripts -if [ -d $COMMON_SCRIPTS ]; -then -chown -R grid:oinstall ${COMMON_SCRIPTS} -chmod 775 ${COMMON_SCRIPTS} -fi - -# Removing failed service as we systemd status 'running' - -for systemd_svc in $(systemctl | grep failed | awk '{ print $2}') -do - print_message "Disable failed service $systemd_svc" - systemctl disable $systemd_svc - print_message "Resetting Failed Services" - systemctl reset-failed -done - -print_message "Sleeping for 60 seconds" -sleep 60 - -systemctl_state=$(systemctl status | awk '/State:/{ print $0 }' | grep -v 'awk /State:/' | awk '{ print $2 }') - -if [ "${systemctl_state}" == "running" ]; then - print_message "Systemctl state is running!" -else - error_exit "Systemctl state is $systemctl_state! it must be running state inside the container to proceed further" -fi - -print_message "Setting correct permissions for /bin/ping" -chmod 6755 /bin/ping -chmod 6755 /usr/bin/ping -} - -##################################### Pre-Grid-Deployment steps end here ############################ -######################################### ASM Disk Functions ################################### - -build_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - - -if [ "${OP_TYPE}" == 'INSTALL' -o "${OP_TYPE}" == 'ADDNODE' ]; then -if [ ! -z "${ASM_DEVICE_LIST}" ]; then -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership $device" - if [ -e $device ]; then - chown $GRID_USER:$ASMADMIN_GROUP $device - chmod 660 $device - else - error_exit "Device $device does not exist! Please verify" - fi - count=$[$count+1] - done -fi -else - error_exit "ASM_DEVICE_LIST is set to empty cannot proceed" -fi -fi - - -} - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - -if [ ${OP_TYPE} == 'INSTALL' ]; then - if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - if [ ! -z "${GIMR_DEVICE_LIST}" ]; then - print_message "Preapring Device list" - IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - chown $GRID_USER:$ASMADMIN_GROUP $device - chmod 660 $device - count=$[$count+1] - done - fi -else - error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi -fi -fi -} - -####################################### ETC Host Function ############################################################# -checkHostName () -{ -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi -} - -SetupEtcHosts() -{ -local stat=3 -local HOST_LINE - -if [ "${DNS_SERVER_FLAG}" == 'false' ]; then - -if [ ! -z $HOSTFILE ]; then -cat $COMMON_SCRIPTS/$HOSTFILE > /etc/hosts -else -grep -P "127.0.0.1\tlocalhost.localdomain\tlocalhost" /etc/hosts -stat=$? - -if [ $stat -eq 1 ]; then -echo -e "127.0.0.1\tlocalhost.localdomain\tlocalhost" > /etc/hosts -fi - -for HOSTNAME in $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME $EXISTING_CLS_NODE $CMAN_HOSTNAME $GNSVIP_HOSTNAME; -do -if [ -n "$(grep $HOSTNAME $ETCHOSTS)" ]; then -print_message "$HOSTNAME already exists : $(grep $HOSTNAME $ETCHOSTS), no $ETCHOST update required" -else - print_message "Preparing host line for $HOSTNAME"; - if [ "${HOSTNAME}" == "${PUBLIC_HOSTNAME}" ]; then - unset HOST_LINE - HOST_LINE="\n${PUBLIC_IP}\t${PUBLIC_HOSTNAME}.${DOMAIN}\t${PUBLIC_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${PRIV_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${PRIV_IP}\t${PRIV_HOSTNAME}.${DOMAIN}\t${PRIV_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${VIP_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${NODE_VIP}\t${VIP_HOSTNAME}.${DOMAIN}\t${VIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${EXISTING_CLS_NODE}" ]; then - unset HOST_LINE - HOST_LINE="\n${EXISTING_CLS_NODE_IP}\t${EXISTING_CLS_NODE}.${DOMAIN}\t${EXISTING_CLS_NODE}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS -elif [ "${HOSTNAME}" == "${SCAN_NAME}" ]; then - unset HOST_LINE - if [ ! -z "$SCAN_IP" ];then - HOST_LINE="\n${SCAN_IP}\t${SCAN_NAME}.${DOMAIN}\t${SCAN_NAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${CMAN_HOSTNAME}" ]; then - unset HOST_LINE - if [ ! -z "$CMAN_IP" ];then - HOST_LINE="\n${CMAN_IP}\t${CMAN_HOSTNAME}.${DOMAIN}\t${CMAN_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${GNSVIP_HOSTNAME}" ]; then - unset HOST_LINE - if [ ! -z "$GNS_VIP" ];then - HOST_LINE="\n${GNS_VIP}\t${GNSVIP_HOSTNAME}.${DOMAIN}\t${GNSVIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -else - print_message "HOSTNAME should match any hostname in given hostnames $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME" -fi -fi -done -fi -#### DNS Server check ends below###### -fi -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -pre_grid_deploy_steps -checkHostName -SetupEtcHosts -######### ASM Device Setup ######## -build_block_device_list -build_gimr_block_device_list -print_message "#####################################################################" -print_message " RAC setup will begin in 2 minutes " -print_message "####################################################################" -sleep 2 -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupLinuxEnv.sh deleted file mode 100644 index d10373ae14..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupLinuxEnv.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /asmdisks && \ -mkdir /responsefiles && \ -chmod ug+x /opt/scripts/startup/*.sh && \ -yum -y install systemd oracle-database-server-12cR2-preinstall net-tools which zip unzip tar openssl expect e2fsprogs openssh-server openssh-client vim-minimal passwd which sudo && \ -yum clean all diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupSSH.expect b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupSSH.expect deleted file mode 100644 index dd99bb1e4f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupSSH.expect +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/expect -f -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup SSH between nodes -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -set username [lindex $argv 0]; -set script_loc [lindex $argv 1]; -set cluster_nodes [lindex $argv 2]; -set ssh_pass [lindex $argv 3]; - -set timeout 120 - -# Procedure to setup ssh from server -proc sshproc { ssh_pass } { - expect { - # Send password at 'Password' prompt and tell expect to continue(i.e. exp_continue) - -re "\[P|p]assword:" { exp_send "$ssh_pass\r" - exp_continue } - # Tell expect stay in this 'expect' block and for each character that SCP prints while doing the copy - # reset the timeout counter back to 0. - -re . { exp_continue } - timeout { return 1 } - eof { return 0 } - } -} - -# Execute sshUserSetup.sh Script -set ssh_cmd "$script_loc/sshUserSetup.sh -user $username -hosts \"${cluster_nodes}\" -logfile /tmp/${username}_SetupSSH.log -advanced -exverify -noPromptPassphrase -confirm" - -eval spawn $ssh_cmd -set ssh_results [sshproc $ssh_pass] - -if { $ssh_results == 0 } { - exit 0 -} - -# Error attempting SSH, so exit with non-zero status -exit 1 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupdockeroracleinit.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupdockeroracleinit.sh deleted file mode 100644 index b836bcfedf..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/setupdockeroracleinit.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup Shared Library requirement for dockeroracleinit -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -#Creating Dir under $GRID_HOME for dockeroracleinit to access required libs -mkdir -p $GRID_HOME/dockeroracleinit/lib/ - -ln -s $GRID_HOME/lib/libhasgen12.so $GRID_HOME/dockeroracleinit/lib/libhasgen12.so -ln -s $GRID_HOME/lib/libocr12.so $GRID_HOME/dockeroracleinit/lib/libocr12.so -ln -s $GRID_HOME/lib/libocrb12.so $GRID_HOME/dockeroracleinit/lib/libocrb12.so -ln -s $GRID_HOME/lib/libocrutl12.so $GRID_HOME/dockeroracleinit/lib/libocrutl12.so -ln -s $GRID_HOME/lib/libclntsh.so $GRID_HOME/dockeroracleinit/lib/libclntsh.so -ln -s $GRID_HOME/lib/libclntshcore.so $GRID_HOME/dockeroracleinit/lib/libclntshcore.so -ln -s $GRID_HOME/lib/libskgxn2.so $GRID_HOME/dockeroracleinit/lib/libskgxn2.so -ln -s $GRID_HOME/lib/libasmclntsh12.so $GRID_HOME/dockeroracleinit/lib/libasmclntsh12.so -ln -s $GRID_HOME/lib/libcell12.so $GRID_HOME/dockeroracleinit/lib/libcell12.so -ln -s $GRID_HOME/lib/libskgxp12.so $GRID_HOME/dockeroracleinit/lib/libskgxp12.so -ln -s $GRID_HOME/lib/libnnz12.so $GRID_HOME/dockeroracleinit/lib/libnnz12.so -ln -s $GRID_HOME/lib/libmql1.so $GRID_HOME/dockeroracleinit/lib/libmql1.so -ln -s $GRID_HOME/lib/libipc1.so $GRID_HOME/dockeroracleinit/lib/libipc1.so -ln -s $GRID_HOME/lib/libons.so $GRID_HOME/dockeroracleinit/lib/libons.so -ln -s $GRID_HOME/lib/libclntsh.so.12.1 $GRID_HOME/dockeroracleinit/lib/libclntsh.so.12.1 -ln -s $GRID_HOME/lib/libclntshcore.so.12.1 $GRID_HOME/dockeroracleinit/lib/libclntshcore.so.12.1 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/sshUserSetup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/sshUserSetup.sh deleted file mode 100644 index e23165b271..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/sshUserSetup.sh +++ /dev/null @@ -1,659 +0,0 @@ -#!/bin/sh -# Nitin Jerath - Aug 2005 -#Usage sshUserSetup.sh -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase] -#eg. sshUserSetup.sh -hosts "host1 host2" -user njerath -advanced -#This script is used to setup SSH connectivity from the host on which it is -# run to the specified remote hosts. After this script is run, the user can use # SSH to run commands on the remote hosts or copy files between the local host -# and the remote hosts without being prompted for passwords or confirmations. -# The list of remote hosts and the user name on the remote host is specified as -# a command line parameter to the script. Note that in case the user on the -# remote host has its home directory NFS mounted or shared across the remote -# hosts, this script should be used with -shared option. -#Specifying the -advanced option on the command line would result in SSH -# connectivity being setup among the remote hosts which means that SSH can be -# used to run commands on one remote host from the other remote host or copy -# files between the remote hosts without being prompted for passwords or -# confirmations. -#Please note that the script would remove write permissions on the remote hosts -#for the user home directory and ~/.ssh directory for "group" and "others". This -# is an SSH requirement. The user would be explicitly informed about this by the script and prompted to continue. In case the user presses no, the script would exit. In case the user does not want to be prompted, they can use the -confirm option. -# As a part of the setup, the script would use SSH to create files within ~/.ssh -# directory of the remote node and to setup the requisite permissions. The -#script also uses SCP to copy the local host public key to the remote hosts so -# that the remote hosts trust the local host for SSH. At the time, the script -#performs these steps, SSH connectivity has not been completely setup hence -# the script would prompt the user for the remote host password. -#For each remote host, for remote users with non-shared homes this would be -# done once for SSH and once for SCP. If the number of remote hosts are x, the -# user would be prompted 2x times for passwords. For remote users with shared -# homes, the user would be prompted only twice, once each for SCP and SSH. -#For security reasons, the script does not save passwords and reuse it. Also, -# for security reasons, the script does not accept passwords redirected from a -#file. The user has to key in the confirmations and passwords at the prompts. -#The -verify option means that the user just wants to verify whether SSH has -#been set up. In this case, the script would not setup SSH but would only check -# whether SSH connectivity has been setup from the local host to the remote -# hosts. The script would run the date command on each remote host using SSH. In -# case the user is prompted for a password or sees a warning message for a -#particular host, it means SSH connectivity has not been setup correctly for -# that host. -#In case the -verify option is not specified, the script would setup SSH and -#then do the verification as well. -#In case the user speciies the -exverify option, an exhaustive verification would be done. In that case, the following would be checked: -# 1. SSH connectivity from local host to all remote hosts. -# 2. SSH connectivity from each remote host to itself and other remote hosts. - -#echo Parsing command line arguments -numargs=$# - -ADVANCED=false -HOSTNAME=`hostname` -CONFIRM=no -SHARED=false -i=1 -USR=$USER - -if test -z "$TEMP" -then - TEMP=/tmp -fi - -IDENTITY=id_rsa -LOGFILE=$TEMP/sshUserSetup_`date +%F-%H-%M-%S`.log -VERIFY=false -EXHAUSTIVE_VERIFY=false -HELP=false -PASSPHRASE=no -RERUN_SSHKEYGEN=no -NO_PROMPT_PASSPHRASE=no - -while [ $i -le $numargs ] -do - j=$1 - if [ $j = "-hosts" ] - then - HOSTS=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-user" ] - then - USR=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-logfile" ] - then - LOGFILE=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-confirm" ] - then - CONFIRM=yes - fi - if [ $j = "-hostfile" ] - then - CLUSTER_CONFIGURATION_FILE=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-usePassphrase" ] - then - PASSPHRASE=yes - fi - if [ $j = "-noPromptPassphrase" ] - then - NO_PROMPT_PASSPHRASE=yes - fi - if [ $j = "-shared" ] - then - SHARED=true - fi - if [ $j = "-exverify" ] - then - EXHAUSTIVE_VERIFY=true - fi - if [ $j = "-verify" ] - then - VERIFY=true - fi - if [ $j = "-advanced" ] - then - ADVANCED=true - fi - if [ $j = "-help" ] - then - HELP=true - fi - i=`expr $i + 1` - shift 1 -done - - -if [ $HELP = "true" ] -then - echo "Usage $0 -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase]" -echo "This script is used to setup SSH connectivity from the host on which it is run to the specified remote hosts. After this script is run, the user can use SSH to run commands on the remote hosts or copy files between the local host and the remote hosts without being prompted for passwords or confirmations. The list of remote hosts and the user name on the remote host is specified as a command line parameter to the script. " -echo "-user : User on remote hosts. " -echo "-hosts : Space separated remote hosts list. " -echo "-hostfile : The user can specify the host names either through the -hosts option or by specifying the absolute path of a cluster configuration file. A sample host file contents are below: " -echo -echo " stacg30 stacg30int 10.1.0.0 stacg30v -" -echo " stacg34 stacg34int 10.1.0.1 stacg34v -" -echo -echo " The first column in each row of the host file will be used as the host name." -echo -echo "-usePassphrase : The user wants to set up passphrase to encrypt the private key on the local host. " -echo "-noPromptPassphrase : The user does not want to be prompted for passphrase related questions. This is for users who want the default behavior to be followed." -echo "-shared : In case the user on the remote host has its home directory NFS mounted or shared across the remote hosts, this script should be used with -shared option. " -echo " It is possible for the user to determine whether a user's home directory is shared or non-shared. Let us say we want to determine that user user1's home directory is shared across hosts A, B and C." -echo " Follow the following steps:" -echo " 1. On host A, touch ~user1/checkSharedHome.tmp" -echo " 2. On hosts B and C, ls -al ~user1/checkSharedHome.tmp" -echo " 3. If the file is present on hosts B and C in ~user1 directory and" -echo " is identical on all hosts A, B, C, it means that the user's home " -echo " directory is shared." -echo " 4. On host A, rm -f ~user1/checkSharedHome.tmp" -echo " In case the user accidentally passes -shared option for non-shared homes or viceversa,SSH connectivity would only be set up for a subset of the hosts. The user would have to re-run the setyp script with the correct option to rectify this problem." -echo "-advanced : Specifying the -advanced option on the command line would result in SSH connectivity being setup among the remote hosts which means that SSH can be used to run commands on one remote host from the other remote host or copy files between the remote hosts without being prompted for passwords or confirmations." -echo "-confirm: The script would remove write permissions on the remote hosts for the user home directory and ~/.ssh directory for "group" and "others". This is an SSH requirement. The user would be explicitly informed about this by the script and prompted to continue. In case the user presses no, the script would exit. In case the user does not want to be prompted, they can use the -confirm option." -echo "As a part of the setup, the script would use SSH to create files within ~/.ssh directory of the remote node and to setup the requisite permissions. The script also uses SCP to copy the local host public key to the remote hosts so that the remote hosts trust the local host for SSH. At the time, the script performs these steps, SSH connectivity has not been completely setup hence the script would prompt the user for the remote host password. " -echo "For each remote host, for remote users with non-shared homes this would be done once for SSH and once for SCP. If the number of remote hosts are x, the user would be prompted 2x times for passwords. For remote users with shared homes, the user would be prompted only twice, once each for SCP and SSH. For security reasons, the script does not save passwords and reuse it. Also, for security reasons, the script does not accept passwords redirected from a file. The user has to key in the confirmations and passwords at the prompts. " -echo "-verify : -verify option means that the user just wants to verify whether SSH has been set up. In this case, the script would not setup SSH but would only check whether SSH connectivity has been setup from the local host to the remote hosts. The script would run the date command on each remote host using SSH. In case the user is prompted for a password or sees a warning message for a particular host, it means SSH connectivity has not been setup correctly for that host. In case the -verify option is not specified, the script would setup SSH and then do the verification as well. " -echo "-exverify : In case the user speciies the -exverify option, an exhaustive verification for all hosts would be done. In that case, the following would be checked: " -echo " 1. SSH connectivity from local host to all remote hosts. " -echo " 2. SSH connectivity from each remote host to itself and other remote hosts. " -echo The -exverify option can be used in conjunction with the -verify option as well to do an exhaustive verification once the setup has been done. -echo "Taking some examples: Let us say local host is Z, remote hosts are A,B and C. Local user is njerath. Remote users are racqa(non-shared), aime(shared)." -echo "$0 -user racqa -hosts "A B C" -advanced -exverify -confirm" -echo "Script would set up connectivity from Z -> A, Z -> B, Z -> C, A -> A, A -> B, A -> C, B -> A, B -> B, B -> C, C -> A, C -> B, C -> C." -echo "Since user has given -exverify option, all these scenario would be verified too." -echo -echo "Now the user runs : $0 -user racqa -hosts "A B C" -verify" -echo "Since -verify option is given, no SSH setup would be done, only verification of existing setup. Also, since -exverify or -advanced options are not given, script would only verify connectivity from Z -> A, Z -> B, Z -> C" - -echo "Now the user runs : $0 -user racqa -hosts "A B C" -verify -advanced" -echo "Since -verify option is given, no SSH setup would be done, only verification of existing setup. Also, since -advanced options is given, script would verify connectivity from Z -> A, Z -> B, Z -> C, A-> A, A->B, A->C, A->D" - -echo "Now the user runs:" -echo "$0 -user aime -hosts "A B C" -confirm -shared" -echo "Script would set up connectivity between Z->A, Z->B, Z->C only since advanced option is not given." -echo "All these scenarios would be verified too." - -exit -fi - -if test -z "$HOSTS" -then - if test -n "$CLUSTER_CONFIGURATION_FILE" && test -f "$CLUSTER_CONFIGURATION_FILE" - then - HOSTS=`awk '$1 !~ /^#/ { str = str " " $1 } END { print str }' $CLUSTER_CONFIGURATION_FILE` - elif ! test -f "$CLUSTER_CONFIGURATION_FILE" - then - echo "Please specify a valid and existing cluster configuration file." - fi -fi - -if test -z "$HOSTS" || test -z $USR -then -echo "Either user name or host information is missing" -echo "Usage $0 -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase]" -exit 1 -fi - -if [ -d $LOGFILE ]; then - echo $LOGFILE is a directory, setting logfile to $LOGFILE/ssh.log - LOGFILE=$LOGFILE/ssh.log -fi - -echo The output of this script is also logged into $LOGFILE | tee -a $LOGFILE - -if [ `echo $?` != 0 ]; then - echo Error writing to the logfile $LOGFILE, Exiting - exit 1 -fi - -echo Hosts are $HOSTS | tee -a $LOGFILE -echo user is $USR | tee -a $LOGFILE -SSH="/usr/bin/ssh" -SCP="/usr/bin/scp" -SSH_KEYGEN="/usr/bin/ssh-keygen" -calculateOS() -{ - platform=`uname -s` - case "$platform" - in - "SunOS") os=solaris;; - "Linux") os=linux;; - "HP-UX") os=hpunix;; - "AIX") os=aix;; - *) echo "Sorry, $platform is not currently supported." | tee -a $LOGFILE - exit 1;; - esac - - echo "Platform:- $platform " | tee -a $LOGFILE -} -calculateOS -BITS=1024 -ENCR="rsa" - -deadhosts="" -alivehosts="" -if [ $platform = "Linux" ] -then - PING="/bin/ping" -else - PING="/usr/sbin/ping" -fi -#bug 9044791 -if [ -n "$SSH_PATH" ]; then - SSH=$SSH_PATH -fi -if [ -n "$SCP_PATH" ]; then - SCP=$SCP_PATH -fi -if [ -n "$SSH_KEYGEN_PATH" ]; then - SSH_KEYGEN=$SSH_KEYGEN_PATH -fi -if [ -n "$PING_PATH" ]; then - PING=$PING_PATH -fi -PATH_ERROR=0 -if test ! -x $SSH ; then - echo "ssh not found at $SSH. Please set the variable SSH_PATH to the correct location of ssh and retry." - PATH_ERROR=1 -fi -if test ! -x $SCP ; then - echo "scp not found at $SCP. Please set the variable SCP_PATH to the correct location of scp and retry." - PATH_ERROR=1 -fi -if test ! -x $SSH_KEYGEN ; then - echo "ssh-keygen not found at $SSH_KEYGEN. Please set the variable SSH_KEYGEN_PATH to the correct location of ssh-keygen and retry." - PATH_ERROR=1 -fi -if test ! -x $PING ; then - echo "ping not found at $PING. Please set the variable PING_PATH to the correct location of ping and retry." - PATH_ERROR=1 -fi -if [ $PATH_ERROR = 1 ]; then - echo "ERROR: one or more of the required binaries not found, exiting" - exit 1 -fi -#9044791 end -echo Checking if the remote hosts are reachable | tee -a $LOGFILE -for host in $HOSTS -do - if [ $platform = "SunOS" ]; then - $PING -s $host 5 5 - elif [ $platform = "HP-UX" ]; then - $PING $host -n 5 -m 5 - else - $PING -c 5 -w 5 $host - fi - exitcode=`echo $?` - if [ $exitcode = 0 ] - then - alivehosts="$alivehosts $host" - else - deadhosts="$deadhosts $host" - fi -done - -if test -z "$deadhosts" -then - echo Remote host reachability check succeeded. | tee -a $LOGFILE - echo The following hosts are reachable: $alivehosts. | tee -a $LOGFILE - echo The following hosts are not reachable: $deadhosts. | tee -a $LOGFILE - echo All hosts are reachable. Proceeding further... | tee -a $LOGFILE -else - echo Remote host reachability check failed. | tee -a $LOGFILE - echo The following hosts are reachable: $alivehosts. | tee -a $LOGFILE - echo The following hosts are not reachable: $deadhosts. | tee -a $LOGFILE - echo Please ensure that all the hosts are up and re-run the script. | tee -a $LOGFILE - echo Exiting now... | tee -a $LOGFILE - exit 1 -fi - -firsthost=`echo $HOSTS | awk '{print $1}; END { }'` -echo firsthost $firsthost -numhosts=`echo $HOSTS | awk '{ }; END {print NF}'` -echo numhosts $numhosts - -if [ $VERIFY = "true" ] -then - echo Since user has specified -verify option, SSH setup would not be done. Only, existing SSH setup would be verified. | tee -a $LOGFILE - continue -else -echo The script will setup SSH connectivity from the host ''`hostname`'' to all | tee -a $LOGFILE -echo the remote hosts. After the script is executed, the user can use SSH to run | tee -a $LOGFILE -echo commands on the remote hosts or copy files between this host ''`hostname`'' | tee -a $LOGFILE -echo and the remote hosts without being prompted for passwords or confirmations. | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo NOTE 1: | tee -a $LOGFILE -echo As part of the setup procedure, this script will use 'ssh' and 'scp' to copy | tee -a $LOGFILE -echo files between the local host and the remote hosts. Since the script does not | tee -a $LOGFILE -echo store passwords, you may be prompted for the passwords during the execution of | tee -a $LOGFILE -echo the script whenever 'ssh' or 'scp' is invoked. | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo NOTE 2: | tee -a $LOGFILE -echo "AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY" | tee -a $LOGFILE -echo AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEGES TO THESE | tee -a $LOGFILE -echo "directories." | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo "Do you want to continue and let the script make the above mentioned changes (yes/no)?" | tee -a $LOGFILE - -if [ "$CONFIRM" = "no" ] -then - read CONFIRM -else - echo "Confirmation provided on the command line" | tee -a $LOGFILE -fi - -echo | tee -a $LOGFILE -echo The user chose ''$CONFIRM'' | tee -a $LOGFILE - -if [ -z "$CONFIRM" -o "$CONFIRM" != "yes" -a "$CONFIRM" != "no" ] -then - echo "You haven't specified proper input. Please enter 'yes' or 'no'. Exiting...." - exit 0 -fi -if [ "$CONFIRM" = "no" ] -then - echo "SSH setup is not done." | tee -a $LOGFILE - exit 1 -else - if [ $NO_PROMPT_PASSPHRASE = "yes" ] - then - echo "User chose to skip passphrase related questions." | tee -a $LOGFILE - else - if [ $SHARED = "true" ] - then - hostcount=`expr ${numhosts} + 1` - PASSPHRASE_PROMPT=`expr 2 \* $hostcount` - else - PASSPHRASE_PROMPT=`expr 2 \* ${numhosts}` - fi - echo "Please specify if you want to specify a passphrase for the private key this script will create for the local host. Passphrase is used to encrypt the private key and makes SSH much more secure. Type 'yes' or 'no' and then press enter. In case you press 'yes', you would need to enter the passphrase whenever the script executes ssh or scp. $PASSPHRASE " | tee -a $LOGFILE - echo "The estimated number of times the user would be prompted for a passphrase is $PASSPHRASE_PROMPT. In addition, if the private-public files are also newly created, the user would have to specify the passphrase on one additional occasion. " | tee -a $LOGFILE - echo "Enter 'yes' or 'no'." | tee -a $LOGFILE - if [ "$PASSPHRASE" = "no" ] - then - read PASSPHRASE - else - echo "Confirmation provided on the command line" | tee -a $LOGFILE - fi - - echo | tee -a $LOGFILE - echo The user chose ''$PASSPHRASE'' | tee -a $LOGFILE - if [ -z "$PASSPHRASE" -o "$PASSPHRASE" != "yes" -a "$PASSPHRASE" != "no" ] - then - echo "You haven't specified whether to use Passphrase or not. Please specify 'yes' or 'no'. Exiting..." - exit 0 - fi - - if [ "$PASSPHRASE" = "yes" ] - then - RERUN_SSHKEYGEN="yes" -#Checking for existence of ${IDENTITY} file - if test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} - then - echo "The files containing the client public and private keys already exist on the local host. The current private key may or may not have a passphrase associated with it. In case you remember the passphrase and do not want to re-run ssh-keygen, press 'no' and enter. If you press 'no', the script will not attempt to create any new public/private key pairs. If you press 'yes', the script will remove the old private/public key files existing and create new ones prompting the user to enter the passphrase. If you enter 'yes', any previous SSH user setups would be reset. If you press 'change', the script will associate a new passphrase with the old keys." | tee -a $LOGFILE - echo "Press 'yes', 'no' or 'change'" | tee -a $LOGFILE - read RERUN_SSHKEYGEN - echo The user chose ''$RERUN_SSHKEYGEN'' | tee -a $LOGFILE - if [ -z "$RERUN_SSHKEYGEN" -o "$RERUN_SSHKEYGEN" != "yes" -a "$RERUN_SSHKEYGEN" != "no" -a "$RERUN_SSHKEYGEN" != "change" ] - then - echo "You haven't specified whether to re-run 'ssh-keygen' or not. Please enter 'yes' , 'no' or 'change'. Exiting..." - exit 0; - fi - fi - else - if test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} - then - echo "The files containing the client public and private keys already exist on the local host. The current private key may have a passphrase associated with it. In case you find using passphrase inconvenient(although it is more secure), you can change to it empty through this script. Press 'change' if you want the script to change the passphrase for you. Press 'no' if you want to use your old passphrase, if you had one." - read RERUN_SSHKEYGEN - echo The user chose ''$RERUN_SSHKEYGEN'' | tee -a $LOGFILE - if [ -z "$RERUN_SSHKEYGEN" -o "$RERUN_SSHKEYGEN" != "yes" -a "$RERUN_SSHKEYGEN" != "no" -a "$RERUN_SSHKEYGEN" != "change" ] - then - echo "You haven't specified whether to re-run 'ssh-keygen' or not. Please enter 'yes' , 'no' or 'change'. Exiting..." - exit 0 - fi - fi - fi - fi - echo Creating .ssh directory on local host, if not present already | tee -a $LOGFILE - mkdir -p $HOME/.ssh | tee -a $LOGFILE -echo Creating authorized_keys file on local host | tee -a $LOGFILE -touch $HOME/.ssh/authorized_keys | tee -a $LOGFILE -echo Changing permissions on authorized_keys to 644 on local host | tee -a $LOGFILE -chmod 644 $HOME/.ssh/authorized_keys | tee -a $LOGFILE -mv -f $HOME/.ssh/authorized_keys $HOME/.ssh/authorized_keys.tmp | tee -a $LOGFILE -echo Creating known_hosts file on local host | tee -a $LOGFILE -touch $HOME/.ssh/known_hosts | tee -a $LOGFILE -echo Changing permissions on known_hosts to 644 on local host | tee -a $LOGFILE -chmod 644 $HOME/.ssh/known_hosts | tee -a $LOGFILE -mv -f $HOME/.ssh/known_hosts $HOME/.ssh/known_hosts.tmp | tee -a $LOGFILE - - -echo Creating config file on local host | tee -a $LOGFILE -echo If a config file exists already at $HOME/.ssh/config, it would be backed up to $HOME/.ssh/config.backup. -echo "Host *" > $HOME/.ssh/config.tmp | tee -a $LOGFILE -echo "ForwardX11 no" >> $HOME/.ssh/config.tmp | tee -a $LOGFILE - -if test -f $HOME/.ssh/config -then - cp -f $HOME/.ssh/config $HOME/.ssh/config.backup -fi - -mv -f $HOME/.ssh/config.tmp $HOME/.ssh/config | tee -a $LOGFILE -chmod 644 $HOME/.ssh/config - -if [ "$RERUN_SSHKEYGEN" = "yes" ] -then - echo Removing old private/public keys on local host | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub | tee -a $LOGFILE - echo Running SSH keygen on local host | tee -a $LOGFILE - $SSH_KEYGEN -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - -elif [ "$RERUN_SSHKEYGEN" = "change" ] -then - echo Running SSH Keygen on local host to change the passphrase associated with the existing private key | tee -a $LOGFILE - $SSH_KEYGEN -p -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE -elif test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} -then - continue -else - echo Removing old private/public keys on local host | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub | tee -a $LOGFILE - echo Running SSH keygen on local host with empty passphrase | tee -a $LOGFILE - $SSH_KEYGEN -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} -N '' | tee -a $LOGFILE -fi - -if [ $SHARED = "true" ] -then - if [ $USER = $USR ] - then -#No remote operations required - echo Remote user is same as local user | tee -a $LOGFILE - REMOTEHOSTS="" - chmod og-w $HOME $HOME/.ssh | tee -a $LOGFILE - else - REMOTEHOSTS="${firsthost}" - fi -else - REMOTEHOSTS="$HOSTS" -fi - -for host in $REMOTEHOSTS -do - echo Creating .ssh directory and setting permissions on remote host $host | tee -a $LOGFILE - echo "THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR "group" AND "others" ON THE HOME DIRECTORY FOR $USR. THIS IS AN SSH REQUIREMENT." | tee -a $LOGFILE - echo The script would create ~$USR/.ssh/config file on remote host $host. If a config file exists already at ~$USR/.ssh/config, it would be backed up to ~$USR/.ssh/config.backup. | tee -a $LOGFILE - echo The user may be prompted for a password here since the script would be running SSH on host $host. | tee -a $LOGFILE - $SSH -o StrictHostKeyChecking=no -x -l $USR $host "/bin/sh -c \" mkdir -p .ssh ; chmod og-w . .ssh; touch .ssh/authorized_keys .ssh/known_hosts; chmod 644 .ssh/authorized_keys .ssh/known_hosts; cp .ssh/authorized_keys .ssh/authorized_keys.tmp ; cp .ssh/known_hosts .ssh/known_hosts.tmp; echo \\"Host *\\" > .ssh/config.tmp; echo \\"ForwardX11 no\\" >> .ssh/config.tmp; if test -f .ssh/config ; then cp -f .ssh/config .ssh/config.backup; fi ; mv -f .ssh/config.tmp .ssh/config\"" | tee -a $LOGFILE - echo Done with creating .ssh directory and setting permissions on remote host $host. | tee -a $LOGFILE -done - -for host in $REMOTEHOSTS -do - echo Copying local host public key to the remote host $host | tee -a $LOGFILE - echo The user may be prompted for a password or passphrase here since the script would be using SCP for host $host. | tee -a $LOGFILE - - $SCP $HOME/.ssh/${IDENTITY}.pub $USR@$host:.ssh/authorized_keys | tee -a $LOGFILE - echo Done copying local host public key to the remote host $host | tee -a $LOGFILE -done - -cat $HOME/.ssh/${IDENTITY}.pub >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE - -for host in $HOSTS -do - if [ "$ADVANCED" = "true" ] - then - echo Creating keys on remote host $host if they do not exist already. This is required to setup SSH on host $host. | tee -a $LOGFILE - if [ "$SHARED" = "true" ] - then - IDENTITY_FILE_NAME=${IDENTITY}_$host - COALESCE_IDENTITY_FILES_COMMAND="cat .ssh/${IDENTITY_FILE_NAME}.pub >> .ssh/authorized_keys" - else - IDENTITY_FILE_NAME=${IDENTITY} - fi - - $SSH -o StrictHostKeyChecking=no -x -l $USR $host " /bin/sh -c \"if test -f .ssh/${IDENTITY_FILE_NAME}.pub && test -f .ssh/${IDENTITY_FILE_NAME}; then echo; else rm -f .ssh/${IDENTITY_FILE_NAME} ; rm -f .ssh/${IDENTITY_FILE_NAME}.pub ; $SSH_KEYGEN -t $ENCR -b $BITS -f .ssh/${IDENTITY_FILE_NAME} -N '' ; fi; ${COALESCE_IDENTITY_FILES_COMMAND} \"" | tee -a $LOGFILE - else -#At least get the host keys from all hosts for shared case - advanced option not set - if test $SHARED = "true" && test $ADVANCED = "false" - then - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will fetch the host keys from all hosts. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -o StrictHostKeyChecking=no -x -l $USR $host "/bin/sh -c true" - fi - fi -done - -for host in $REMOTEHOSTS -do - if test $ADVANCED = "true" && test $SHARED = "false" - then - $SCP $USR@$host:.ssh/${IDENTITY}.pub $HOME/.ssh/${IDENTITY}.pub.$host | tee -a $LOGFILE - cat $HOME/.ssh/${IDENTITY}.pub.$host >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub.$host | tee -a $LOGFILE - fi -done - -for host in $REMOTEHOSTS -do - if [ "$ADVANCED" = "true" ] - then - if [ "$SHARED" != "true" ] - then - echo Updating authorized_keys file on remote host $host | tee -a $LOGFILE - $SCP $HOME/.ssh/authorized_keys $USR@$host:.ssh/authorized_keys | tee -a $LOGFILE - fi - echo Updating known_hosts file on remote host $host | tee -a $LOGFILE - $SCP $HOME/.ssh/known_hosts $USR@$host:.ssh/known_hosts | tee -a $LOGFILE - fi - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will run SSH on the remote machine $host. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -x -l $USR $host "/bin/sh -c \"cat .ssh/authorized_keys.tmp >> .ssh/authorized_keys; cat .ssh/known_hosts.tmp >> .ssh/known_hosts; rm -f .ssh/known_hosts.tmp .ssh/authorized_keys.tmp\"" | tee -a $LOGFILE -done - -cat $HOME/.ssh/known_hosts.tmp >> $HOME/.ssh/known_hosts | tee -a $LOGFILE -cat $HOME/.ssh/authorized_keys.tmp >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE -#Added chmod to fix BUG NO 5238814 -chmod 644 $HOME/.ssh/authorized_keys -#Fix for BUG NO 5157782 -chmod 644 $HOME/.ssh/config -rm -f $HOME/.ssh/known_hosts.tmp $HOME/.ssh/authorized_keys.tmp | tee -a $LOGFILE -echo SSH setup is complete. | tee -a $LOGFILE -fi -fi - -echo | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE -echo Verifying SSH setup | tee -a $LOGFILE -echo =================== | tee -a $LOGFILE -echo The script will now run the 'date' command on the remote nodes using ssh | tee -a $LOGFILE -echo to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP, | tee -a $LOGFILE -echo THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR | tee -a $LOGFILE -echo PASSWORDS. If you see any output other than date or are prompted for the | tee -a $LOGFILE -echo password, ssh is not setup correctly and you will need to resolve the | tee -a $LOGFILE -echo issue and set up ssh again. | tee -a $LOGFILE -echo The possible causes for failure could be: | tee -a $LOGFILE -echo 1. The server settings in /etc/ssh/sshd_config file do not allow ssh | tee -a $LOGFILE -echo for user $USR. | tee -a $LOGFILE -echo 2. The server may have disabled public key based authentication. -echo 3. The client public key on the server may be outdated. -echo 4. ~$USR or ~$USR/.ssh on the remote host may not be owned by $USR. | tee -a $LOGFILE -echo 5. User may not have passed -shared option for shared remote users or | tee -a $LOGFILE -echo may be passing the -shared option for non-shared remote users. | tee -a $LOGFILE -echo 6. If there is output in addition to the date, but no password is asked, | tee -a $LOGFILE -echo it may be a security alert shown as part of company policy. Append the | tee -a $LOGFILE -echo "additional text to the /sysman/prov/resources/ignoreMessages.txt file." | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE -#read -t 30 dummy - for host in $HOSTS - do - echo --$host:-- | tee -a $LOGFILE - - echo Running $SSH -x -l $USR $host date to verify SSH connectivity has been setup from local host to $host. | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR." | tee -a $LOGFILE - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will run SSH on the remote machine $host. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -l $USR $host "/bin/sh -c date" | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - - -if [ "$EXHAUSTIVE_VERIFY" = "true" ] -then - for clienthost in $HOSTS - do - - if [ "$SHARED" = "true" ] - then - REMOTESSH="$SSH -i .ssh/${IDENTITY}_${clienthost}" - else - REMOTESSH=$SSH - fi - - for serverhost in $HOSTS - do - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo Verifying SSH connectivity has been setup from $clienthost to $serverhost | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL." | tee -a $LOGFILE - $SSH -l $USR $clienthost "$REMOTESSH $serverhost \"/bin/sh -c date\"" | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - echo -Verification from $clienthost complete- | tee -a $LOGFILE - done -else - if [ "$ADVANCED" = "true" ] - then - if [ "$SHARED" = "true" ] - then - REMOTESSH="$SSH -i .ssh/${IDENTITY}_${firsthost}" - else - REMOTESSH=$SSH - fi - for host in $HOSTS - do - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo Verifying SSH connectivity has been setup from $firsthost to $host | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL." | tee -a $LOGFILE - $SSH -l $USR $firsthost "$REMOTESSH $host \"/bin/sh -c date\"" | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - echo -Verification from $clienthost complete- | tee -a $LOGFILE - fi -fi -echo "SSH verification complete." | tee -a $LOGFILE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/stopOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/stopOracle.sh deleted file mode 100644 index 582d124642..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/12.2.0.1/stopOracle.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Stop Oracle RAC DB and Deconfigure the cluster. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh -touch $logfile -chmod 666 /tmp/orod.log -progname="$(basename $0)" - -########### Stop Svc ############ -stop_svc () { - print_message "Stopping container and performing Grid stop." - $GRID_HOME/bin/crsctl stop crs -f -} - -########### Deconfig Node from the cluster ############ -deconfig_cluster () { - print_message "received, shutting down database!" - node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) - if [ $node_count -gt 1 ]; then - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force - elif [ $node_count -eq 1 ]; then - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force -last - else - print_message "No need to deinstall cluster as it is not configured" - fi - - print_message " Removing entries from /etc/hosts" - sed -i '/$PUBLIC_HOSTNAME/d' /etc/hosts - sed -i '/$PRIVATE_HOSTNAME/d' /etc/hosts - sed -i '/$VIP_HOSTNAME/d' /etc/hosts -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -if [ "${STOP_TYPE}" == "DECONFIGURE" ]; then -deconfig_cluster -else -stop_svc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/AddNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/AddNode.sh deleted file mode 100644 index cba5527b90..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/AddNode.sh +++ /dev/null @@ -1,961 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Add a Grid node and add Oracle Database instance based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variables and Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -r ETCHOSTS="/etc/hosts" ## /etc/hosts file location. -declare -r RAC_ENV_FILE="/etc/rac_env_vars" ## RACENV FILE NAME -declare -x GIMR_DB_FLAG='false' ## GIMR DB Check by default is false -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x EXISTING_CLS_NODE ## Computed during the program execution. -declare -x EXISTING_CLS_NODES ## You must all the exisitng nodes of the cluster in comma separated strings. Otherwise installation will fail. -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS='false' ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_TYPE='STANDARD' ## Default instllation is STANDARD. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -r OSDBA='dba' -declare -r OSASM='asmadmin' -declare -r INSTALL_TYPE='CRS_ADDNODE' -declare -r IPMI_FLAG='false' -declare -r ASM_STORAGE_OPTION='ASM' -declare -r GIMR_ON_NAS='false' -declare -x SCAN_TYPE='LOCAL_SCAN' -declare -x SHARED_SCAN -declare -x DB_ASM_DISKGROUP='DATA' -declare -x CONFIGURE_AFD_FLAG='false' -declare -x CONFIGURE_RHPS_FLAG='false' -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -if [ -f "/etc/rac_env_vars" ]; then -source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -all_check() -{ -check_pub_host_name -check_cls_node_names -check_ip_env_vars -check_passwd_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -#####################Function related to public hostname, IP and domain name check begin here ######## - -check_pub_host_name() -{ -local domain_name -local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - -} - -############### Function related to public hostname, IP and domain checks ends here ########## - -############## Function related to check exisitng cls nodes begin here ####################### -check_cls_node_names() -{ -if [ -z "${EXISTING_CLS_NODES}" ]; then - error_exit "For Node Addition, please provide the existing clustered node name." -else - - if isStringExist ${EXISTING_CLS_NODES} ${PUBLIC_HOSTNAME}; then - error_exit "EXISTING_CLS_NODES ${EXISTING_CLS_NODES} contains new node name ${PUBLIC_HOSTNAME}" - fi - -print_message "Setting Existing Cluster Node for node addition operation. This will be retrieved from ${EXISTING_CLS_NODES}" - -EXISTING_CLS_NODE="$( cut -d ',' -f 1 <<< "$EXISTING_CLS_NODES" )" - -if [ -z "${EXISTING_CLS_NODE}" ]; then - error_exit " Existing Node Name of the cluster not set or set to empty string" -else - print_message "Existing Node Name of the cluster is set to ${EXISTING_CLS_NODE}" - -if resolveip ${EXISTING_CLS_NODE}; then - print_message "Existing Cluster node resolved to IP. Check passed" -else - error_exit "Existing Cluster node does not resolved to IP. Check Failed" -fi -fi -fi -} - -############## Function related to check exisitng cls nodes begin here ####################### - -check_ip_env_vars () -{ -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is not set or set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is not set ot set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi - -if [ -z ${SCAN_NAME} ]; then - print_message "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if resolveip ${SCAN_NAME}; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z ${SCAN_IP} ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is not set ot set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname is not set ot set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - - -if [ -z ${CMAN_HOSTNAME} ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z ${CMAN_IP} ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -} -################check ip env vars function ends here ############################ - -################ Check passwd env vars function begin here ###################### -check_passwd_env_vars() -{ -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read PASSWORD < /tmp/${COMMON_OS_PWD_FILE} -rm -f /tmp/${COMMON_OS_PWD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ ! -z "${GRID_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read GRID_PASSWORD < /tmp/${GRID_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ ! -z "${ORACLE_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read ORACLE_PASSWORD < /tmp/${ORACLE_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi - -} - -############### Check password env vars function ends here ######################## - -############### Check grid Response file function begin here ###################### -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f $COMMON_SCRIPTS/$GRID_RESPONSE_FILE ];then -cp $COMMON_SCRIPTS/$GRID_RESPONSE_FILE $logdir/$GRID_RESPONSE_FILE -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -} - -############ Check responsefile function end here ###################### - -########### Check db env vars function begin here ####################### -check_db_env_vars () -{ -if [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -fi -if [ -z "${ORACLE_SID}" ]; then - print_message "ORACLE_SID is not defined" -else - print_message "ORACLE_SID is set to $ORACLE_SID" -fi - -} - -################# Check db env vars end here ################################## - -################ All Check Functions end here ##################################### - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local password -local ssh_pid -local stat - -if [ -z $CRS_NODES ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - - -IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$CRS_NODES" -CLUSTER_NODES=$(echo $EXISTING_CLS_NODES | tr ',' ' ') - -print_message "Cluster Nodes are $CLUSTER_NODES" -print_message "Running SSH setup for $GRID_USER user between nodes ${CLUSTER_NODES}" -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES}\" \"$GRID_PASSWORD\""' -(eval $cmd) & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Grid user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $GRID_USER user" -fi - -print_message "Running SSH setup for $DB_USER user between nodes ${CLUSTER_NODES[@]}" -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES}\" \"$ORACLE_PASSWORD\""' -(eval $cmd) & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Oracle user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $DB_USER user" -fi -} - -checkSSH () -{ - -local password -local ssh_pid -local stat -local status - -IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$PUBLIC_HOSTNAME" -CLUSTER_NODES=$(echo $EXISTING_CLS_NODES | tr ',' ' ') - -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo $cmd - -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo $cmd -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -###################################### SSH Function End here #################################### - -######################Add Node Functions #################################### -runorainstroot() -{ -$INVENTORY/orainstRoot.sh -} - -runrootsh () -{ - -local ORACLE_HOME=$1 -local USER=$2 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -cmd='su - $USER -c "ssh $node sudo $ORACLE_HOME/root.sh"' -eval $cmd -done - -} - -generate_response_file () -{ -cp $SCRIPT_DIR/$ADDNODE_RSP $logdir/$ADDNODE_RSP -chmod 666 $logdir/$ADDNODE_RSP - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ -z ${CRS_CONFIG_NODES} ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" - print_message "Clustered Nodes are set to $CRS_CONFIG_NODES" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $logdir/$ADDNODE_RSP -sed -i -r "s|###PUBLIC_HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/$ADDNODE_RSP -sed -i -r "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###OSDBA###|$OSDBA|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###OSOPER###|$OSOPER|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###OSASM###|$OSASM|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" $logdir/$ADDNODE_RSP -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" $logdir/$ADDNODE_RSP -fi - -} - -###### Cluster Verification function ####### -CheckRemoteCluster () -{ -local cmd; -local stat; -local node=$EXISTING_CLS_NODE -local oracle_home=$GRID_HOME -local ORACLE_HOME=$GRID_HOME - -print_message "Checking Cluster" - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check crs\""' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Cluster Check on remote node passed" -else -error_exit "Cluster Check on remote node failed" -fi - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check cluster\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - - cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/srvctl status mgmtdb\""' - eval $cmd - - if [ $? -eq 0 ]; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check crsd\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check cssd\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -cmd='su - $GRID_USER -c "ssh $node \"$ORACLE_HOME/bin/crsctl check evmd\""' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -} - -setDevicePermissions () -{ - -local cmd -local state=3 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ ! -z "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ ! -z "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -done - -} - -checkCluster () -{ -local cmd; -local stat; -local oracle_home=$GRID_HOME - -print_message "Checking Cluster" - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crs"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cluster"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - cmd='su - $GRID_USER -c "$GRID_HOME/bin/srvctl status mgmtdb"' - eval $cmd - - if [ $? -eq 0 ]; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crsd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cssd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check evmd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f $logdir/cluvfy_check.txt - -} - -checkClusterClass () -{ -print_message "Checking Cluster Class" -local cluster_class - -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl get cluster class"' -cluster_class=$(eval $cmd) -print_message "Cluster class is $cluster_class" -CLUSTER_TYPE=$(echo $cluster_class | awk -F \' '{ print $2 }' | awk '{ print $1 }') -} - - -###### Grid install & Cluster Verification utility Function ####### -cluvfyCheck() -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP -local hostname=$PUBLIC_HOSTNAME -local vip_hostname=$VIP_HOSTNAME -local cmd -local stat - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv $logdir/cluvfy_check.txt $logdir/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -#cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $hostname -vip $vip_hostname\" | tee -a $logdir/cluvfy_check.txt"' -#eval $cmd - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for cls_node in "${CLUSTER_NODES[@]}"; do -print_message "ssh to the node $node and executing cvu checks on $cls_node" -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $cls_node\" | tee -a $logdir/cluvfy_check.txt"' -eval $cmd -done - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - $logdir/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat $logdir/cluvfy_check.txt > $STD_OUT_FILE - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -addGridNode () -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP -local hostname=$PUBLIC_HOSTNAME -local vip_hostname=$VIP_HOSTNAME -local cmd -local stat - -print_message "Copying $responsefile on remote node $node" -cmd='su - $GRID_USER -c "scp $responsefile $node:$logdir"' -eval $cmd - -print_message "Running GridSetup.sh on $node to add the node to existing cluster" -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/gridSetup.sh -silent -waitForCompletion -noCopy -skipPrereqs -responseFile $responsefile\" | tee -a $logfile"' -eval $cmd - -print_message "Node Addition performed. removing Responsefile" -rm -f $responsefile -cmd='su - $GRID_USER -c "ssh $node \"rm -f $responsefile\""' -#eval $cmd - -} - -###########DB Node Addition Functions############## -addDBNode () -{ -local node=$EXISTING_CLS_NODE - -if [ -z $CRS_NODES ]; then - new_node_hostname=$PUBLIC_HOSTNAME -else - new_node_hostname=$CRS_NODES -fi - -local stat=3 -local cmd - -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/addnode/addnode.sh \"CLUSTER_NEW_NODES={$new_node_hostname}\" -skipPrereqs -waitForCompletion -ignoreSysPrereqs -noCopy -silent\" | tee -a $logfile"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Node Addition went fine for $new_node_hostname" -else -error_exit "Node Addition failed for $new_node_hostname" -fi -} - -addDBInst () -{ -# Check whether ORACLE_SID is passed on -local HOSTNAME=$PUBLIC_HOSTNAME -local node=$EXISTING_CLS_NODE -local stat=3 -local cmd - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo $CRS_NODES | tr ',' ' ' ) -fi - -if [ -z "${ORACLE_SID}" ];then - error_exit "ORACLE SID is not defined. Cannot Add Instance" -fi - -if [ -z "${HOSTNAME}" ]; then -error_exit "Hostname is not defined" -fi - - -for new_node in "${CLUSTER_NODES[@]}"; do -print_message "Adding DB Instance on $node" -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/bin/dbca -addInstance -silent -nodeName $new_node -gdbName $ORACLE_SID\" | tee -a $logfile"' -eval $cmd -done - -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - - -setremotelistener () -{ -local status -local cmd - -if resolveip $CMAN_HOSTNAME; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -########################## DB Functions End here ########################## - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - - -###### Etc Host and other Checks and setup before proceeding installation ##### -all_check -print_message "Setting random password for root/$GRID_USER/$DB_USER user" -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER $GRID_PASSWORD -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER $ORACLE_PASSWORD -print_message "Setting random password for root user" -setpasswd root $PASSWORD - -#### Setting up SSH ####### -setupSSH -checkSSH - -#### Grid Node Addition ##### -print_message "Setting Device permission to grid and asmadmin on all the cluster nodes" -setDevicePermissions -print_message "Checking Cluster Status on $EXISTING_CLS_NODE" -CheckRemoteCluster -print_message "Generating Responsefile for node addition" -generate_response_file -print_message "Running Cluster verification utility for new node $PUBLIC_HOSTNAME on $EXISTING_CLS_NODE" -cluvfyCheck -print_message "Running Node Addition and cluvfy test for node $PUBLIC_HOSTNAME" -addGridNode -print_message "Running root.sh on node $PUBLIC_HOSTNAME" -runrootsh $GRID_HOME $GRID_USER -checkCluster -print_message "Checking Cluster Class" -checkClusterClass -print_message "Running User Script for $GRID_USER user" -su - $GRID_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $GRID_SCRIPT_ROOT GRID" - -###### DB Node Addition ###### -if [ "${CLUSTER_TYPE}" != 'Domain' ]; then -if [ "${RUN_DBCA}" == 'true' ]; then -print_message "Performing DB Node addition" -addDBNode -print_message "Running root.sh" -runrootsh $DB_HOME $DB_USER -print_message "Adding DB Instance" -addDBInst -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script for $DB_USER user" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $DB_SCRIPT_ROOT DB" -print_message "Setting Remote Listener" -setremotelistener -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Checksum b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Checksum deleted file mode 100644 index ddd3b29336..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Checksum +++ /dev/null @@ -1,2 +0,0 @@ -cd42d137fd2a2eeb4e911e8029cc82a9 LINUX.X64_180000_grid_home.zip -99a7c4a088a8a502c261e741a8339ae8 LINUX.X64_180000_db_home.zip diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/DelNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/DelNode.sh deleted file mode 100644 index a2597e65e5..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/DelNode.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Delete a Grid node and add Oracle Database instance. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -declare -a cluster_nodes -DEL_NODE=${1} -NODE_HOSTNAME=$(hostname) -node_count=0 - -source /etc/rac_env_vars - -check_env_vars () -{ - -if [ -z ${DEL_NODE} ];then -echo "Please provide node name which you want to delete"; -exit 1; -else -echo "Deleting node name set to ${DEL_NODE}" -fi -} - -containsNode () { -local nodes match="$1" - shift -nodes=$1 -for e in "${cluster_nodes[@]}" -do - [[ "$e" == "$match" ]] && return 0; -done -return 1 -} - -setNode () { -cluster_nodes=( $($GRID_HOME/bin/olsnodes | awk '{ print $1 }') ) -node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -} - -delNode () { -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster $cluster_nodes" -exit 1 ; -fi - - if [ ${node_count} -eq 1 -a ${DEL_NODE} == ${NODE_HOSTNAME} ] ;then - echo "Stopping the Grid and deconfigure the cluster." - $GRID_HOME/bin/crsctl stop cluster - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force -else - -echo "Stopping Grid on deleting node" -cmd='su - grid -c "ssh ${DEL_NODE} \"sudo ${GRID_HOME}/bin/crsctl stop cluster\""' -eval $cmd - -echo "Deleting the node from the cluster" -$GRID_HOME/bin/crsctl delete node -n ${DEL_NODE} - -echo "getting updated cluster node info from the cluster" -setNode - -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster $cluster_nodes" -exit 0 ; -else -echo "Node ${DEL_NODE} is still a part of cluster." -exit 1; -fi - -fi -} - - -########################################## -############# MAIN######################### -########################################### -check_env_vars -setNode -delNode diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Dockerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Dockerfile deleted file mode 100644 index ac6086a567..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/Dockerfile +++ /dev/null @@ -1,143 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 18c Release 3 Real Application Clusters -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_180000_db_home.zip -# (2) LINUX.X64_180000_grid_home.zip -# Download Oracle Grid 18c Release 3 Enterprise Edition for Linux x64 -# Download Oracle Database 18c Release 3 Enterprise Edition for Linux x64 -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/database:18.3.0-rac . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Paramdeep Saini - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - GRID_BASE=/u01/app/grid \ - GRID_HOME=/u01/app/18.3.0/grid \ - INSTALL_FILE_1="LINUX.X64_180000_grid_home.zip" \ - GRID_INSTALL_RSP="grid.rsp" \ - GRID_SW_INSTALL_RSP="grid_sw_inst.rsp" \ - GRID_SETUP_FILE="setupGrid.sh" \ - FIXUP_PREQ_FILE="fixupPreq.sh" \ - INSTALL_GRID_BINARIES_FILE="installGridBinaries.sh" \ - INSTALL_GRID_PATCH="applyGridPatch.sh" \ - INVENTORY=/u01/app/oraInventory \ - CONFIGGRID="configGrid.sh" \ - ADDNODE="AddNode.sh" \ - DELNODE="DelNode.sh" \ - ADDNODE_RSP="grid_addnode.rsp" \ - SETUPSSH="setupSSH.expect" \ - GRID_PATCH="p28322130_183000OCWRU_Linux-x86-64.zip" \ - PATCH_NUMBER="28322130" \ - DOCKERORACLEINIT="dockeroracleinit" \ - GRID_USER_HOME="/home/grid" \ - SETUPGRIDENV="setupGridEnv.sh" \ - ASM_DISCOVERY_DIR="/dev" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ - DB_USER="oracle" \ - GRID_USER="grid" \ -# RAC DB Env Variables - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/18.3.0/dbhome_1 \ - INSTALL_FILE_2="LINUX.X64_180000_db_home.zip" \ - DB_INSTALL_RSP="db_inst.rsp" \ - DBCA_RSP="dbca.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - PWD_FILE="setPassword.sh" \ - RUN_FILE="runOracle.sh" \ - STOP_FILE="stopOracle.sh" \ - ENABLE_RAC_FILE="enableRAC.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - REMOTE_LISTENER_FILE="remoteListener.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - GRID_HOME_CLEANUP="GridHomeCleanup.sh" \ - ORACLE_HOME_CLEANUP="OracleHomeCleanup.sh" \ -# COMMON ENV Variable - FUNCTIONS="functions.sh" \ - COMMON_SCRIPTS="/common_scripts" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - EXPECT="/usr/bin/expect" \ - BIN="/usr/sbin" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - GRID_PATH=$GRID_HOME/bin:$GRID_HOME/OPatch/:/usr/sbin:$PATH \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - GRID_LD_LIBRARY_PATH=$GRID_HOME/lib:/usr/lib:/lib \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# COPY Binaries -COPY $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $SETUP_LINUX_FILE $GRID_SETUP_FILE $INSTALL_GRID_BINARIES_FILE $FIXUP_PREQ_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $INSTALL_FILE_1 $INSTALL_FILE_2 $GRID_PATCH $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - unzip -q $INSTALL_DIR/install/$GRID_PATCH -d $INSTALL_DIR/install && \ - chown -R grid:oinstall $INSTALL_DIR/install/$PATCH_NUMBER && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-18c.conf && \ - su ${GRID_USER} -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su ${DB_USER} -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su ${DB_USER} -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su ${GRID_USER} -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su ${DB_USER} -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - rm -rf $INSTALL_DIR/install && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 755 $SCRIPT_DIR/*.expect && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - chown root:oinstall $GRID_HOME/bin/$DOCKERORACLEINIT && \ - chmod 4755 $GRID_HOME/bin/$DOCKERORACLEINIT && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-18c-firstboot && \ - ln -s $GRID_HOME/bin/$DOCKERORACLEINIT /usr/sbin/oracleinit && \ - chmod +x /etc/rc.d/rc.local && \ - sed -i 's/#X11UseLocalhost.*/X11UseLocalhost no/' /etc/ssh/sshd_config && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - sync - -USER grid -WORKDIR /home/grid -VOLUME ["/common_scripts"] - -# Define default command to start Oracle Grid and RAC Database setup. - -CMD ["/usr/sbin/oracleinit"] diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/GridHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/GridHomeCleanup.sh deleted file mode 100644 index 3f889a4e99..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/GridHomeCleanup.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $GRID_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/${GRID_USER}/.bashrc - -ORACLE_HOME=${GRID_HOME} - -rm -rf /u01/app/grid/* -rm -rf $GRID_HOME/log -rm -rf $GRID_HOME/logs -rm -rf $GRID_HOME/crs/init -rm -rf $GRID_HOME/crs/install/rhpdata -rm -rf $GRID_HOME/crs/log -rm -rf $GRID_HOME/racg/dump -rm -rf $GRID_HOME/srvm/log -rm -rf $GRID_HOME/cv/log -rm -rf $GRID_HOME/cdata -rm -rf $GRID_HOME/bin/core* -rm -rf $GRID_HOME/bin/diagsnap.pl -rm -rf $GRID_HOME/cfgtoollogs/* -rm -rf $GRID_HOME/network/admin/listener.ora -rm -rf $GRID_HOME/crf -rm -rf $GRID_HOME/ologgerd/init -rm -rf $GRID_HOME/osysmond/init -rm -rf $GRID_HOME/ohasd/init -rm -rf $GRID_HOME/ctss/init -rm -rf $GRID_HOME/dbs/.*.dat -rm -rf $GRID_HOME/oc4j/j2ee/home/log -rm -rf $GRID_HOME/inventory/Scripts/ext/bin/log -rm -rf $GRID_HOME/inventory/backup/* -rm -rf $GRID_HOME/mdns/init -rm -rf $GRID_HOME/gnsd/init -rm -rf $GRID_HOME/evm/init -rm -rf $GRID_HOME/gipc/init -rm -rf $GRID_HOME/gpnp/gpnp_bcp.* -rm -rf $GRID_HOME/gpnp/init -rm -rf $GRID_HOME/auth -rm -rf $GRID_HOME/tfa -rm -rf $GRID_HOME/suptools/tfa/release/diag -rm -rf $GRID_HOME/rdbms/audit/* -rm -rf $GRID_HOME/rdbms/log/* -rm -rf $GRID_HOME/network/log/* -rm -rf $GRID_HOME/inventory/Scripts/comps.xml.* -rm -rf $GRID_HOME/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf $GRID_HOME/inventory/Scripts/oraInst.loc.* -rm -rf $GRID_HOME/inventory/Scripts/inventory.xml.* -rm -rf $GRID_HOME/log_file_client.log diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/MultiNodeInstall.py b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/MultiNodeInstall.py deleted file mode 100644 index 51568c582c..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/MultiNodeInstall.py +++ /dev/null @@ -1,326 +0,0 @@ -#!/usr/bin/python -#!/usr/bin/env python - -########################################################################################################### - - -# stig.py -# -# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. -# -# NAME -# buildImage.py - -# -# DESCRIPTION -# -# -# NOTES - - -# Global Variables -Period = '.' - - -# Import standard python libraries -import subprocess -import sys -import time -import datetime -import os -import commands -import getopt -import shlex -import json -import logging -import socket - - -etchostfile="/etc/hosts" -racenvfile="/etc/rac_env_vars" -domain="none" - -def Usage(): - pass - -def Update_Envfile(common_params): - global racenvfile - global domain - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - - for keys in common_params.keys(): - if keys == 'domain': - domain = common_params[keys] - - env_var_str = "export " + keys.upper() + "=" + common_params[keys] - Redirect_To_File("Env vars for RAC Env set to " + env_var_str, "INFO") - filedata1 = filedata1 + "\n" + env_var_str - - Write_To_File(filedata1,racenvfile) - return "Env file updated sucesfully" - - -def Update_Hostfile(node_list): - counter=0 - global etchostfile - global domain - filedata = None - filedata1 = None - f = open(etchostfile, 'r') - filedata = f.read() - f.close - - global racenvfile - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - host_name=socket.gethostname() - - if domain == 'none': - fqdn_hostname=socket.getfqdn() - domain=fqdn_hostname.split(".")[1] - if not host_name: - Redirect_To_File("Unable to get the container host name! Exiting..", "INFO") - else: - Redirect_To_File("Container Hostname and Domain name : " + host_name + " " + domain, "INFO") - -# Replace and add the target string - for dict_list in node_list: - print dict_list - if "public_hostname" in dict_list.keys(): - pubhost = dict_list['public_hostname'] - if host_name == pubhost: - Redirect_To_File("PUBLIC Hostname set to" + pubhost, "INFO") - PUBLIC_HOSTNAME=pubhost - if counter == 0: - CRS_NODES = pubhost - CRS_CONFIG_NODES = pubhost - counter = counter + 1 - else: - CRS_NODES = CRS_NODES + "," + pubhost - CRS_CONFIG_NODES = CRS_CONFIG_NODES + "," + pubhost - counter = counter + 1 - else: - return "Error: Did not find the key public_hostname" - if "public_ip" in dict_list.keys(): - pubip = dict_list['public_ip'] - if host_name == pubhost: - Redirect_To_File("PUBLIC IP set to" + pubip, "INFO") - PUBLIC_IP=pubip - else: - return "Error: Did not find the key public_ip" - if "private_ip" in dict_list.keys(): - privip = dict_list['private_ip'] - if host_name == pubhost: - Redirect_To_File("Private IP set to" + privip, "INFO") - PRIV_IP=privip - else: - return "Error: Did not find the key private_ip" - if "private_hostname" in dict_list.keys(): - privhost = dict_list['private_hostname'] - if host_name == pubhost: - Redirect_To_File("Private HOSTNAME set to" + privhost, "INFO") - PRIV_HOSTNAME=privhost - else: - return "Error: Did not find the key private_hostname" - if "vip_hostname" in dict_list.keys(): - viphost = dict_list['vip_hostname'] - CRS_CONFIG_NODES = CRS_CONFIG_NODES + ":" + viphost + ":" + "HUB" - if host_name == pubhost: - Redirect_To_File("VIP HOSTNAME set to" + viphost, "INFO") - VIP_HOSTNAME=viphost - else: - return "Error: Did not find the key vip_hostname" - if "vip_ip" in dict_list.keys(): - vipip = dict_list['vip_ip'] - if host_name == pubhost: - Redirect_To_File("NODE VIP set to" + vipip, "INFO") - NODE_VIP=vipip - else: - return "Error: Did not find the key vip_ip" - - delete_entry = [pubhost, privhost, viphost, pubip, privip, vipip] - for hostentry in delete_entry: - print "Processing " + hostentry - cmd=cmd= '""' + "sed " + "'" + "/" + hostentry + "/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - # Removing Empty Lines - cmd=cmd= '""' + "sed " + "'" + "/^$/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - delete_entry [:] - - if pubhost not in filedata: - if pubip not in filedata: - hoststring='%s %s %s' %(pubip, pubhost + "." + domain, pubhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if privhost not in filedata: - if privip not in filedata: - hoststring='%s %s %s' %(privip, privhost + "." + domain, privhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if viphost not in filedata: - if vipip not in filedata: - hoststring='%s %s %s' %(vipip, viphost + "." + domain, viphost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - print filedata - - Write_To_File(filedata,etchostfile) - if CRS_NODES: - Redirect_To_File("Cluster Nodes set to " + CRS_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_NODES=' + CRS_NODES - if CRS_CONFIG_NODES: - Redirect_To_File("CRS CONFIG Variable set to " + CRS_CONFIG_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_CONFIG_NODES=' + CRS_CONFIG_NODES - if NODE_VIP: - filedata1 = filedata1 + '\n' + 'export NODE_VIP=' + NODE_VIP - if PRIV_IP: - filedata1 = filedata1 + '\n' + 'export PRIV_IP=' + PRIV_IP - if PUBLIC_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PUBLIC_HOSTNAME=' + PUBLIC_HOSTNAME - if PUBLIC_IP: - filedata1 = filedata1 + '\n' + 'export PUBLIC_IP=' + PUBLIC_IP - if VIP_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export VIP_HOSTNAME=' + VIP_HOSTNAME - if PRIV_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PRIV_HOSTNAME=' + PRIV_HOSTNAME - - Write_To_File(filedata1,racenvfile) - return "Host and Env file updated sucesfully" - - -def Write_To_File(text,filename): - f = open(filename,'w') - f.write(text) - f.close() - -def Setup_Operation(op_type): - if op_type == 'installrac': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'addnode': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'delnode': - cmd="sudo /opt/scripts/startup/DelNode.sh" - - output,retcode=Execute_Single_Command(cmd,'None','') - if retcode != 0: - return "Error occuurred in setting up env" - else: - return "setup operation completed sucessfully!" - - -def Execute_Single_Command(cmd,env,dir): - try: - if not dir: - dir=os.getcwd() - print shlex.split(cmd) - out = subprocess.Popen(cmd, shell=True, cwd=dir, stdout=subprocess.PIPE) - output, retcode = out.communicate()[0],out.returncode - return output,retcode - except: - Redirect_To_File("Error Occurred in Execute_Single_Command block! Please Check", "ERROR") - sys.exit(2) - -def Redirect_To_File(text,level): - original = sys.stdout - sys.stdout = open('/proc/1/fd/1', 'w') - root = logging.getLogger() - if not root.handlers: - root.setLevel(logging.INFO) - ch = logging.StreamHandler(sys.stdout) - ch.setLevel(logging.INFO) - formatter = logging.Formatter('%(asctime)s :%(message)s', "%Y-%m-%d %T %Z") - ch.setFormatter(formatter) - root.addHandler(ch) - message = os.path.basename(__file__) + " : " + text - root.info(' %s ' % message ) - sys.stdout = original - - -#BEGIN : TO check whether valid arguments are passed for the container ceation or not -def main(argv): - version= '' - type= '' - dir='' - script='' - Redirect_To_File("Passed Parameters " + str(sys.argv[1:]), "INFO") - try: - opts, args = getopt.getopt(sys.argv[1:], '', ['setuptype=','nodeparams=','comparams=','help']) - - except getopt.GetoptError: - Usage() - sys.exit(2) - #Redirect_To_File("Option Arguments are : " + opts , "INFO") - for opt, arg in opts: - if opt in ('--help'): - Usage() - sys.exit(2) - elif opt in ('--nodeparams'): - nodeparams = arg - elif opt in ('--comparams'): - comparams = arg - elif opt in ('--setuptype'): - setuptype = arg - else: - Usage() - sys.exit(2) - - if setuptype == 'installrac': - Redirect_To_File("setup type parameter is set to installrac", "INFO") - elif setuptype == 'addnode': - Redirect_To_File("setup type parameter is set to addnode", "INFO") - elif setuptype == 'delnode': - Redirect_To_File("setup type parameter is set to delnode", "INFO") - else: - setupUsage() - sys.exit(2) - if not nodeparams: - Redirect_To_File("Node Parameters for the Cluster not specified", "Error") - sys.exit(2) - if not comparams: - Redirect_To_File("Common Parameter for the Cluster not specified", "Error") - sys.exit(2) - - - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - - - comparams = comparams.replace('\\"','"') - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - envfile_status=Update_Envfile(json.loads(comparams)) - if 'Error' in envfile_status: - Redirect_To_File(envfile_status, "ERROR") - return sys.exit(2) - - nodeparams = nodeparams.replace('\\"','"') - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - hostfile_status=Update_Hostfile(json.loads(nodeparams)) - if 'Error' in hostfile_status: - Redirect_To_File(hostfile_status, "ERROR") - return sys.exit(2) - - Redirect_To_File("Executing operation" + setuptype, "INFO") - setup_op=Setup_Operation(setuptype) - if 'Error' in setup_op: - Redirect_To_File(setup_op, "ERROR") - return sys.exit(2) - - sys.exit(0) - -if __name__ == '__main__': - main(sys.argv) diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/OracleHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/OracleHomeCleanup.sh deleted file mode 100644 index 8383d98dbf..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/OracleHomeCleanup.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $ORACLE_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/${DB_USER}/.bashrc -ORACLE_HOME=${DB_HOME} - -rm -rf $ORACLE_HOME/bin/extjob -rm -rf $ORACLE_HOME/PAF -rm -rf $ORACLE_HOME/install/oratab -rm -rf $ORACLE_HOME/install/make.log -rm -rf $ORACLE_HOME/network/admin/listener.ora -rm -rf $ORACLE_HOME/network/admin/tnsnames.ora -rm -rf $ORACLE_HOME/bin/nmo -rm -rf $ORACLE_HOME/bin/nmb -rm -rf $ORACLE_HOME/bin/nmhs -rm -rf $ORACLE_HOME/log/.* -rm -rf $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/images/chartCache/* -rm -rf $ORACLE_HOME/rdbms/audit/* -rm -rf $ORACLE_HOME/cfgtoollogs/* -rm -rf $ORACLE_HOME/inventory/Scripts/comps.xml.* -rm -rf $ORACLE_HOME/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf $ORACLE_HOME/inventory/Scripts/oraInst.loc.* -rm -rf $ORACLE_HOME/inventory/Scripts/inventory.xml.* diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/applyGridPatch.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/applyGridPatch.sh deleted file mode 100644 index f50d5726b4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/applyGridPatch.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Apply Patch for Oracle Grid and Databas. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -PATCH=$1 - -# Check whether edition has been passed on -if [ "PATCH" == "" ]; then - echo "ERROR: No Patch has been passed on!" - echo "Please specify the correct PATCH!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - -temp_var1=`hostname` -# Install Oracle binaries - -unzip -q $INSTALL_SCRIPTS/$PATCH -d $GRID_USER_HOME && \ -rm -f $INSTALL_SCRIPTS/$GRID_PATCH && \ -cd $GRID_USER_HOME/$PATCH_NUMBER/$PATCH_NUMBER && \ -$GRID_HOME/OPatch/opatch napply -silent -local -oh $GRID_HOME -id $PATCH_NUMBER && \ -cd $GRID_USER_HOME && \ -rm -rf $GRID_USER_HOME/$PATCH_NUMBER diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkDBStatus.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkDBStatus.sh deleted file mode 100644 index 4f0706018e..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkDBStatus.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the status of Oracle Database. -# The ORACLE_HOME, ORACLE_SID and the PATH has to be set. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh -export ORACLE_HOME=$DB_HOME -export PATH=$ORACLE_HOME/bin:$PATH -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib - -sid=$1 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." - exit 3; -fi; - -ORACLE_SID=$($DB_HOME/bin/srvctl status database -d $sid | grep $(hostname) | awk '{ print $2 }') - -echo "Checking $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -status=`$DB_HOME/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; - select status from v\\$instance; - exit; -EOF` - -echo $status > /tmp/db_status.txt diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkSpace.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkSpace.sh deleted file mode 100644 index 39ebaca649..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=35 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/configGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/configGrid.sh deleted file mode 100644 index a115a9cc61..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/configGrid.sh +++ /dev/null @@ -1,1248 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup grid and Creates an Oracle Database based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# $ORACLE_SID -# $ORACLE_PDB -# Note : -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variables and Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -declare -r RAC_ENV_FILE="/etc/rac_env_vars" -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -r ETCHOSTS="/etc/hosts" ## /etc/hosts file location. -declare -r OSDBA='dba' ## OSDBA group -declare -r OSASM='asmadmin' ## OSASM group -declare -r INSTALL_TYPE='CRS_CONFIG' ## INSTALL TYPE default set to CRS_CONFIG -declare -r IPMI_FLAG='false' ## IPMI Flag by default to set false -declare -r ASM_STORAGE_OPTION='ASM' ## ASM_STORAGE_OPTION set to ASM -declare -r GIMR_ON_NAS='false' ## GIMR on NAS set to false -declare -x GIMR_DB_FLAG='false' # Disabled GIMR DB FLAG -declare -x ASM_DISKGROUP_DISKS ## Computed during program Execution -declare -x ASM_DISKGROUP_FG_DISKS ## Computing During program execution. -declare -x GIMR_DISKGROUP_DISKS ## Computed During Program Execution -declare -x GIMR_DISKGROUP_FG_DISKS ## Computed During program Execution. -declare -x GIMR_DEVICE_LIST ## Pass as env variable and it must contain device name with location if using DSC. Default DG name is MGMT. -declare -x ASM_DEVICE_LIST ## Pass as env variable and it must contain device name with location for DATA DG. -declare -x ETH_CARD_1 ## Computed During program Execution -declare -x ETH_CARD_2 ## Computed During Program Execution -declare -x PUBLIC_NETWORK ## Computed During program execution. -declare -x PRIVATE_NETWORK ## Computed During program execution. -declare -x NETWORK_STRING ## Do not pass as env variable. Computed during program execution. -declare -x GIMR_DG_FLAG ## Default set to FALSE. If under DSC, set to true. -declare -x GIMR_DG_NAME ## Default set to MGMT. -declare -x GIMR_DG_REDUNDANCY ## Used if you will use DSC. Default set to EXTERNAL. -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_PORT ## Default SCAN_PORT set to 1521. Pass some other value if need some other PORT. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x GNS_OPTIONS ## By Default value will be CREATE_NEW_GNS -declare -x GNSVIP_HOSTNAME ## If you are using DSC or DHCP for grid. -declare -x GNS_SUBDOMAIN ## If you are using DHCP. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_NAME ## if not passed as env variable. It will be set to "hostname-c". -declare -x CLUSTER_TYPE='STANDALONE' ## Default instllation is STANDALONE. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -x STORAGE_OPTIONS_FOR_MEMBERDB ##Pass it as env variable if you want to specify storage options for MEMBER DB Cluster. -declare -x DB_ASM_DISKGROUP='DATA' ## Pass it env variable when using Member DB cluster. Default value is DATA. Another vakue can be MGMT. -declare -x MEMBERDB_FILE ## Mandatory Parameter for MEMBER DB CLUSTER. Pass the Manifest file name. Copy it under COMMON_SCRIPTS. -declare -x ORACLE_CHARACTERSET ## If not passed as env variable then default value is AL32UTF8. -declare -x ORACLE_PWD ## If not passed as env variable then default value is set to PASSWORD -declare -x ORACLE_PDB ## If not passed then oraclepdb is default pdb name -declare -x ORACLE_SID ## If not passed then default db name is oraclecdb. -declare -x CONTAINER_DB_FLAG='true' ## default database will be created as container. Set it to false to create Non-CDB -declare -r OSOPER ## OSOPER group -declare -x IPMI_USERNAME ## Specify IPMI Username -declare -x IPMI_PASSWORD ## IPMI_PASSWORD -declare -x ASM_REDUNDANCY='EXTERNAL' ## ASM REDUNDANCY default to EXTERNAL -declare -x SCAN_TYPE='LOCAL_SCAN' ## SCAN TYPE set to LOCAL -declare -x SHARED_SCAN ## SHARED_SCAN. define file for SHARED SCAN -declare -x EXTENDED_CLUSTER=false ## EXTENDED CLUSTER DEFAULT set to false -declare -x SHARED_GNS_FILE ## Specify SHARED GNS -declare -x EXTENDED_CLUSTER_SITES ## Specify Extended Cluster Sites -declare -x ASM_DG_FAILURE_GROUP ## ASM DG Failure groups -declare -x ASM_ON_NAS ## Specify ASM on NAS -declare -x ASM_ON_NAS_LOCATION ## Specify ASM on NAS Location -declare -x FAILURE_GROUP_SITE_NAME ## Specify Failure Group Site Name -declare -x QUORUM_FAILURE_GROUP ## Specify QUORUM Failure Group name -declare -x GIMR_DG_FAILURE_GROUP ## Specufy DG Failure name -declare -x CONFIGURE_AFD_FLAG='false' ##Specify Configure AFD Flag -declare -x CONFIGURE_RHPS_FLAG='false' ## Speicfy Configure RHPS Flag -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' ## Specify ROOT Script Flag -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' ## Specify Execute Root Script methid -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x TOTAL_MEMORY=5000 ## Total Memory need to be allocated to SGA Instance -declare -x DATABASE_CONFIG_TYPE='RAC' ## DB COnfig TYPE -declare -x PDB_COUNT=1 ## PDB COUNTS -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x DB_PWD_FILE -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_NODES -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x GIMR_FLAG='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -if [ -f "/etc/rac_env_vars" ]; then -source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -####### all_check function to validate all the required variable before proceeding for the installation ####### - -all_check() -{ -check_pub_host_name -check_ip_env_vars -check_passwd_env_vars -check_dsc_env_vars -check_dhcp_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -############## Public Hostname, IP and Domain begin here ############## - -check_pub_host_name() -{ -local domain_name -local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname).$DOMAIN") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - - -} - -############## Public Hostname, IP and Domain end here ############## - -############## IP Related Checks Begins here ############## -check_ip_env_vars () -{ -local domain_name - -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi -fi - - -if [ -z "${SCAN_NAME}" ]; then - error_exit "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if [ -z "${SCAN_PORT}" ]; then - print_message "SCAN PORT is set to empty string. Setting it to 1521 port." - SCAN_PORT=1521 -else - print_message "SCAN_PORT name is ${SCAN_PORT}" -fi - -if resolveip "${SCAN_NAME}"; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z "${SCAN_IP}" ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -### DHCP Check ENDS Here ###### -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - -fi - -if [ -z "${CMAN_HOSTNAME}" ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z "${CMAN_IP}" ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -if [ -z "${CLUSTER_NAME}" ]; then - print_message "Cluster Name is not defined" - print_message "Cluster name is set to 'racnode-c'" - CLUSTER_NAME="$(hostname)-c" -else - print_message "Cluset name is set to $CLUSTER_NAME" -fi - -} - -############## IP Related Checks end here ############## - -############## Checks for password brgins here ######### -check_passwd_env_vars () -{ - -################## Checks for Password and Clustername and clustertype begins here ########### -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read PASSWORD < /tmp/${COMMON_OS_PWD_FILE} -rm -f /tmp/${COMMON_OS_PWD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ ! -z "${GRID_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read GRID_PASSWORD < /tmp/${GRID_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ ! -z "${ORACLE_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read ORACLE_PASSWORD < /tmp/${ORACLE_PWD_FILE} -rm -f /tmp/${GRID_PWD_FILE} -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ ! -z "${DB_PWD_FILE}" ]; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${DB_PWD_FILE}" -out "/tmp/${DB_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common database password file generation" -fi - -read ORACLE_PWD < /tmp/${DB_PWD_FILE} -rm -f /tmp/${DB_PWD_FILE} -else - ORACLE_PWD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle Database" -fi - - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi -} - -############ Checks for password ends here################ - -############## Checks for Domain Service Cluster ######### -check_dsc_env_vars () -{ -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - print_message "Setting GIMR_DG_FLAG to TRUE" - GIMR_DG_FLAG="true" - print_message "Setting GIMR_DG_NAME to MGMT" - GIMR_DG_NAME="MGMT" - print_message "Setting GIMR_DG_REDUNDANCY to External" - GIMR_DG_REDUNDANCY="EXTERNAL" - print_message "Setting Configure GNS options to true" - CONFIGURE_GNS=true - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi -else - print_message "Setting CONFIGURE_GNS to false" - CONFIGURE_GNS='false' -fi -} -############## Checks for DSC ends here #################################################### - -############## Checks for DHCP Begin here ######################################## -check_dhcp_env_vars () -{ -if [ "${DHCP_CONF}" == 'true' ];then - - if [ -z "${GNS_SUBDOMAIN}" ]; then - error_exit "GNS_SUBDOMAIN is not set or set to empty string" - else - print_message "GNS SUBDOMAIN is set to ${GNS_SUBDOMAIN} " - fi - - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi - -fi -} - -############# Checks for DHCP Ends here ########################################### - -############### Check for Existing Grid Response file based on user settings begin here######## - -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f "${COMMON_SCRIPTS}/${GRID_RESPONSE_FILE}" ];then -cp "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE" "$logdir/$GRID_INSTALL_RSP" -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -print_message "IGNORE_CVU_CHECKS is set to ${IGNORE_CVU_CHECKS}" - -} - -############### Check for Existing Grid Response file based on user settings end here######## - -############## Check for Member Cluster and DB related parameters Begin here ########################## -check_db_env_vars () -{ -if [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to CLIENT_ASM_STORAGE" - STORAGE_OPTIONS_FOR_MEMBERDB=CLIENT_ASM_STORAGE -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -if [ -z "${MEMBERDB_FILE}" ];then - error_exit "Manifest File is not provided for MEMBERDB cluster. Exiting.." -else - print_message "Manifest File is set to $MEMBERDB_FILE" - if [ -f "${COMMON_SCRIPTS}"/"${MEMBERDB_FILE}" ]; then - print_message "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}" - else - error_exit "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}. Check Failed!" - fi -fi - -if [ -z "${DB_ASM_DISKGROUP}" ];then -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -else -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -fi - -fi - -############## Following Checks are applicable only if CLUSTER TYPE is STANDALONE######### - -if [ $CLUSTER_TYPE == 'STANDALONE' ] || [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -if [ -z "${ORACLE_SID}" ]; then -export ORACLE_SID="ORCLCDB" -print_message "Oracle SID is set to $ORACLE_SID" -else -print_message "Oracle SID is set to $ORACLE_SID" -fi - -if [ -z "${ORACLE_PDB}" ]; then -export ORACLE_PDB="ORCLPDB" -print_message "Oracle PDB name is set to $ORACLE_PDB" -else -print_message "Oracle PDB name is set to $ORACLE_PDB" -fi - -if [ -z "${ORACLE_CHARACTERSET}" ]; then -export ORACLE_CHARACTERSET="AL32UTF8" -else -print_message "DB characterset set to $ORACLE_CHARACTERSET" -fi -fi -} - -############## Check for Member Cluster Begin here ######################## -################ all_check function related tasks ends here ################# - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local CLUSTER_NODES -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo $CRS_NODES | tr ',' ' ' ) -fi - -print_message "SSh will be setup among $CLUSTER_NODES nodes" - -print_message "Running SSH setup for $GRID_USER user between nodes $CLUSTER_NODES" -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES\" \"$GRID_PASSWORD\""' -eval $cmd -sleep 30 -print_message "Running SSH setup for $DB_USER user between nodes $CLUSTER_NODES" -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES\" \"$ORACLE_PASSWORD\""' -eval $cmd -} - -checkSSH () -{ - -local password -local ssh_pid -local stat -local status -local CLUSTER_NODES - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo $CRS_NODES | tr ',' ' ' ) -fi - -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo $cmd - -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo $cmd -for node in ${CLUSTER_NODES} -do - -status=$(eval $cmd) - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -######################################## SSH Function end here ############################# - -######################################### ASM Disk Functions ################################### -build_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ ! -z "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - ASM_DISKGROUP_FG_DISKS+="$device,," - ASM_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin $device - chmod 660 $device - count=$[$count+1] - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "ASM_DEVICE_LIST is set to empty canot proceed" -fi - -temp_str=$(echo -n $ASM_DISKGROUP_FG_DISKS | head -c -1) -export ASM_DISKGROUP_FG_DISKS=$temp_str -print_message "ASM Device list will be with failure groups $ASM_DISKGROUP_FG_DISKS" -temp_str=$(echo -n $ASM_DISKGROUP_DISKS | head -c -1) -export ASM_DISKGROUP_DISKS=$temp_str -print_message "ASM Device list will be groups $ASM_DISKGROUP_DISKS" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### ASM Disk Functions #################################### - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - -if [ -z "${GRID_RESPONSE_FILE}" ]; then -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then -if [ ! -z "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - GIMR_DISKGROUP_FG_DISKS+="$device,," - GIMR_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin $device - chmod 660 $device - count=$[$count+1] - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi - -temp_str=$(echo -n $GIMR_DISKGROUP_FG_DISKS | head -c -1) -export GIMR_DISKGROUP_FG_DISKS=$temp_str -print_message "GIMR Device list will be with failure groups $GIMR_DISKGROUP_FG_DISKS" -temp_str=$(echo -n $GIMR_DISKGROUP_DISKS | head -c -1) -export GIMR_DISKGROUP_DISKS=$temp_str -print_message "GIMR Device list will be set to $GIMR_DISKGROUP_DISKS" -else -print_message "CLUSTER_TYPE env variable is set to ${CLUSTER_TYPE}, will not process GIMR DEVICE list as default Diskgroup is set to DATA. GIMR DEVICE List will be processed when CLUSTER_TYPE is set to DOMAIN for DSC" -fi -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so GIMR_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### GIMR Block Device List Computation ends here ############ - -######################################## Set Device Permissions on all the nodes ####################### -setDevicePermissions () -{ - -local cmd -local state=3 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ ! -z "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ ! -z "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -done - -} - -######################################## Set Device Permission Ends Here ################################ - -####################################### Network Function Begin here ############################# -build_network () -{ - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -####### Building Public IP Details ########### -ETH_CARD_2=$(ifconfig | awk "/${PUBLIC_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface $ETH_CARD_2 ; then - print_message "Check passed for network card $ETH_CARD_2 for public IP $PUBLIC_IP" - else - error_exit "Check failed for network card for $ETH_CARD_2 for public IP $PUBLIC_IP" - fi - -PUBLIC_NETMASK=$(ifconfig $ETH_CARD_2 | awk '/netmask/ {print $4}') -print_message "Public Netmask : $PUBLIC_NETMASK" -PUBLIC_NETWORK=$(ipcalc -np $PUBLIC_IP $PUBLIC_NETMASK | grep NETWORK | awk -F '=' '{ print $2 }') - -##### Building Private Network Detail ######### - -ETH_CARD_1=$(ifconfig | awk "/${PRIV_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface $ETH_CARD_1 ; then - print_message "Check passed for network card $ETH_CARD_1 for private IP $PRIV_IP" -else - error_exit "Check failed for network card for $ETH_CARD_1 for private IP $PRIV_IP" -fi - -PRIVATE_NETMASK=$(ifconfig $ETH_CARD_1 | awk '/netmask/ {print $4}') -PRIVATE_NETWORK=$(ipcalc -np $PRIV_IP $PRIVATE_NETMASK | grep NETWORK | awk -F '=' '{ print $2 }') - -print_message "Building NETWORK_STRING to set networkInterfaceList in Grid Response File" - -if [ "${SINGLENIC}" == "true" ]; then -NETWORK_STRING="$ETH_CARD_1:$PUBLIC_NETWORK:1" -else -NETWORK_STRING="$ETH_CARD_2:$PUBLIC_NETWORK:1,$ETH_CARD_1:$PRIVATE_NETWORK:5" -fi - -print_message "Network InterfaceList set to $NETWORK_STRING" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi - -} - -########################################## Network Function End here ################################ - -######### Grid setup Function########################### -grid_response_file () -{ - -if [ -z $GRID_RESPONSE_FILE ]; then -cp $SCRIPT_DIR/$GRID_INSTALL_RSP $logdir/$GRID_INSTALL_RSP -#chmod 777 $logdir - -if [ -z $CRS_CONFIG_NODES ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CLUSTER_NAME###|$CLUSTER_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SCAN_NAME###|$SCAN_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DISKGROUP_FG_DISKS###|$ASM_DISKGROUP_FG_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DISKGROUP_DISKS###|$ASM_DISKGROUP_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DISCOVERY_STRING###|$ASM_DISCOVERY_DIR/*|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###PASSWORD###|$ORACLE_PWD|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###STORAGE_OPTIONS_FOR_MEMBERDB###|$STORAGE_OPTIONS_FOR_MEMBERDB|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SCAN_PORT###|$SCAN_PORT|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CLUSTER_TYPE###|$CLUSTER_TYPE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_REDUNDANCY###|$GIMR_DG_REDUNDANCY|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DISKGROUP_FG_DISKS###|$GIMR_DISKGROUP_FG_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DISKGROUP_DISKS###|$GIMR_DISKGROUP_DISKS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_FLAG###|$GIMR_DG_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_NAME###|$GIMR_DG_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GNS_SUBDOMAIN###|$GNS_SUBDOMAIN|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GNSVIP_HOSTNAME###|$GNSVIP_HOSTNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GNS_OPTIONS###|$GNS_OPTIONS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###DHCP_CONF###|$DHCP_CONF|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CONFIGURE_GNS###|$CONFIGURE_GNS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###MEMBERDB_FILE###|$COMMON_SCRIPTS\/$MEMBERDB_FILE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###OSDBA###|$OSDBA|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###OSOPER###|$OSOPER|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###OSASM###|$OSASM|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXTENDED_CLUSTER###|$EXTENDED_CLUSTER|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###SHARED_GNS_FILE###|$SHARED_GNS_FILE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXTENDED_CLUSTER_SITES###|$EXTENDED_CLUSTER_SITES|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###IPMI_FLAG###|$IPMI_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###IPMI_USERNAME###|$IPMI_USERNAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###IPMI_PASSWORD###|$IPMI_PASSWORD|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_STORAGE_OPTION###|$ASM_STORAGE_OPTION|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_ON_NAS###|$ASM_ON_NAS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_ON_NAS###|$GIMR_ON_NAS|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_ON_NAS_LOCATION###|$ASM_ON_NAS_LOCATION|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_REDUNDANCY###|$ASM_REDUNDANCY|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###AU_SIZE###|$AU_SIZE|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###FAILURE_GROUP_SITE_NAME###|$FAILURE_GROUP_SITE_NAME|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###QUORUM_FAILURE_GROUP###|$QUORUM_FAILURE_GROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_DG_FAILURE_GROUP###|$GIMR_DG_FAILURE_GROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###ASM_DG_FAILURE_GROUP###|$ASM_DG_FAILURE_GROUP|g" $logdir/$GRID_INSTALL_RSP -sed -i -e "s|###GIMR_FLAG###|$GIMR_DB_FLAG|g" $logdir/$GRID_INSTALL_RSP -fi - -} - -cluvfy_checks () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP -local password=$PASSWORD -local stat=3 -local cmd -local FAILED_CMDS -local TIMESTAMP=$(date +%s) - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv $logdir/cluvfy_check.txt $logdir/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -print_message "Performing Cluvfy Checks" -cmd='su - $GRID_USER -c "$GRID_HOME/runcluvfy.sh stage -pre crsinst -responseFile $responsefile | tee -a $logdir/cluvfy_check.txt"' -eval $cmd - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - $logdir/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat $logdir/cluvfy_check.txt > $STD_OUT_FILE - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -RunConfigGrid() -{ -local responsefile=$logdir/$GRID_INSTALL_RSP -local password=$PASSWORD -local stat=3 -local cmd - -if [ "${SINGLENIC}" == 'true' ];then - error_exit "SINGLE NIC is not supported"; -else -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -waitforcompletion -ignorePrereq -silent -responseFile $responsefile"' -eval $cmd -fi -} - -runrootsh () -{ -local cmd -local state=3 - -if [ -z $CRS_NODES ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Running root.sh on $node" -cmd='su - $GRID_USER -c "ssh $node sudo $GRID_HOME/root.sh"' -eval $cmd -done -} - -runpostrootsetps () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP -local password=$PASSWORD -local stat=3 -local cmd - -print_message "Running post root.sh steps to setup Grid env" - -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -executeConfigTools -responseFile $responsefile -silent"' -eval $cmd - -#rm -f $responsefile -} - -checkCluster () -{ -local cmd; -local stat; -local oracle_home=$GRID_HOME - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" - - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Checking Cluster on $node" - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crs"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cluster"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - - cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/srvctl status mgmtdb"' - eval $cmd - - if [ $? -eq 0 ]; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crsd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cssd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check evmd"' -eval $cmd - -if [ $? -eq 0 ]; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -done - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f $logdir/cluvfy_check.txt - -} - -installCrontab() -{ -print_message "Installing crontab to monitor systemd and reset the failed units" -local cmd; -local stat; - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[@]}" - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Copying file $RESET_FAILED_UNITS from $SCRIPT_DIR to /tmp" - -cmd='su - $GRID_USER -c "ssh $node sudo cp $SCRIPT_DIR/$RESET_FAILED_UNITS /tmp/$RESET_FAILED_UNITS"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Copied the $RESET_FAILED_UNITS under /tmp" -else -error_exit "Error occurred during file copy" -fi - -print_message "Setting Crontab" -cmd='su - $GRID_USER -c "ssh $node sudo crontab $SCRIPT_DIR/$CRONTAB_ENTRY"' -eval $cmd - -if [ $? -eq 0 ];then -print_message "Sucessfully installed $CRONTAB_ENTRY using crontab" -else -error_exit "Error occurred in crontab setup" -fi - -done - -} - -#############DB Setup Functions######################################## - -dbca_response_file () -{ - -if [ -z $DBCA_RESPONSE_FILE ]; then -cp $SCRIPT_DIR/$DBCA_RSP $logdir/$DBCA_RSP -chmod 666 $logdir/$DBCA_RSP - -if [ -z $CRS_NODES ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - -sed -i -e "s|###ORACLE_SID###|$ORACLE_SID|g" $logdir/$DBCA_RSP -sed -i -e "s|###ORACLE_PDB###|$ORACLE_PDB|g" $logdir/$DBCA_RSP -sed -i -e "s|###ORACLE_PWD###|$ORACLE_PWD|g" $logdir/$DBCA_RSP -sed -i -e "s|###ORACLE_CHARACTERSET###|$ORACLE_CHARACTERSET|g" $logdir/$DBCA_RSP -sed -i -e "s|###DB_NODES###|$CRS_NODES|g" $logdir/$DBCA_RSP -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $logdir/$DBCA_RSP -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $logdir/$DBCA_RSP -sed -i -e "s|###CONTAINER_DB_FLAG###|$CONTAINER_DB_FLAG|g" $logdir/$DBCA_RSP -sed -i -e "s|###PDB_COUNT###|$PDB_COUNT|g" $logdir/$DBCA_RSP -sed -i -e "s|###DATABASE_CONFIG_TYPE###|$DATABASE_CONFIG_TYPE|g" $logdir/$DBCA_RSP -sed -i -e "s|###TOTAL_MEMORY###|$TOTAL_MEMORY|g" $logdir/$DBCA_RSP -else - -if [ -f $COMMON_SCRIPTS/$DBCA_RESPONSE_FILE ];then -cp $COMMON_SCRIPTS/$DBCA_RESPONSE_FILE $logdir/$DBCA_RSP -chmod 666 $logdir/$DBCA_RSP -else -error_exit "$COMMON_SCRIPTS/$DBCA_RESPONSE_FILE does not exist" -fi - -fi -} - -createRACDB() -{ -local responsefile=$logdir/$DBCA_RSP -local cmd -# Replace place holders in response file -cmd='su - $DB_USER -c "$DB_HOME/bin/dbca -silent -ignorePreReqs -createDatabase -responseFile $responsefile"' -eval $cmd -#rm -f $responsefile -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - -setremotelistener () -{ -local status -local cmd - -if resolveip $CMAN_HOSTNAME; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -############################# DB Functions End here ########################################### - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -all_check -build_network -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER $GRID_PASSWORD -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER $ORACLE_PASSWORD - -print_message "Calling setupSSH function" -setupSSH -checkSSH - -######### ASM Disk Setup ####### -if [ "${CLUSTER_TYPE}" == 'DOMAIN' ] || [ "${CLUSTER_TYPE}" == 'STANDALONE' ]; then -build_block_device_list -build_gimr_block_device_list -setDevicePermissions -fi - -####### Grid Setup ########## -print_message "Generating Reponsefile" -grid_response_file -print_message "Running cluvfy Checks" -cluvfy_checks -print_message "Running Grid Installation" -RunConfigGrid -print_message "Running root.sh" -runrootsh -print_message "Running post root.sh steps" -runpostrootsetps -print_message "Checking Cluster Status" -checkCluster -print_message "Running User Script for $GRID_USER user" -su - $GRID_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $GRID_SCRIPT_ROOT GRID" - -####### DB Setup ########## -if [ "${CLUSTER_TYPE}" == 'STANDALONE' ] || [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -if [ "${RUN_DBCA}" == "true" ]; then -print_message "Generating DB Responsefile Running DB creation" -dbca_response_file -print_message "Running DB creation" -createRACDB -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script for $DB_USER user" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $DB_SCRIPT_ROOT DB" -print_message "Setting Remote Listener" -setremotelistener -fi -fi - -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/db_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/db_inst.rsp deleted file mode 100644 index 90ff555e5d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/db_inst.rsp +++ /dev/null @@ -1,125 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -#------------------------------------------------------------------------------- -oracle.install.option=INSTALL_DB_SWONLY - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME=oinstall - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1 - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/oracle - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 - - -#------------------------------------------------------------------------------- - -oracle.install.db.InstallEdition=EE -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP=oper - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP=backupdba - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP=dgdba - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP=kmdba - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP=racdba -#------------------------------------------------------------------------------ -# Specify whether to enable the user to set the password for -# My Oracle Support credentials. The value can be either true or false. -# If left blank it will be assumed to be false. -# -# Example : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true -#------------------------------------------------------------------------------ -SECURITY_UPDATES_VIA_MYORACLESUPPORT=false - -#------------------------------------------------------------------------------ -# Specify whether user doesn't want to configure Security Updates. -# The value for this variable should be true if you don't want to configure -# Security Updates, false otherwise. -# -# The value can be either true or false. If left blank it will be assumed -# to be true. -# -# Example : DECLINE_SECURITY_UPDATES=false -#------------------------------------------------------------------------------ -DECLINE_SECURITY_UPDATES=true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca.rsp deleted file mode 100644 index 08a903985d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca.rsp +++ /dev/null @@ -1,604 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=###DATABASE_CONFIG_TYPE### -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=###CONTAINER_DB_FLAG### - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=###PDB_COUNT### - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=###ORACLE_PDB### - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=###DB_NODES### - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName={ORACLE_HOME}/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=###ORACLE_SID###,ORACLE_BASE=###DB_BASE###,PDB_NAME=###ORACLE_PDB###,DB_NAME=###ORACLE_SID###,ORACLE_HOME=###DB_HOME###,SID=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=###TOTAL_MEMORY### diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca1.rsp deleted file mode 100644 index c3d07dedf0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/dbca1.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=true - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=ORCLPDB - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=racnode1 - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName=/u01/app/oracle/product/18.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=ORCLCDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=ORCLPDB,DB_NAME=ORCLCDB,ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1,SID=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/enableRAC.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/enableRAC.sh deleted file mode 100644 index 1409e8f2e4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/enableRAC.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Enable RAC feature in Oracle Software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -source /home/${DB_USER}/.bashrc - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -make -f $DB_HOME/rdbms/lib/ins_rdbms.mk rac_on -make -f $DB_HOME/rdbms/lib/ins_rdbms.mk ioracle diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/fixupPreq.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/fixupPreq.sh deleted file mode 100644 index 7b42ced77d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/fixupPreq.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup the Linux kernel parameter inside the container. Note that some parameter need to be set on Docker host. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -rpm -Uvh "$GRID_HOME/cv/rpm/cvuqdisk*" -echo "oracle soft nofile 1024" > /etc/security/limits.conf -echo "oracle hard nofile 65536" >> /etc/security/limits.conf -echo "oracle soft nproc 16384" >> /etc/security/limits.conf -echo "oracle hard nproc 16384" >> /etc/security/limits.conf -echo "oracle soft stack 10240" >> /etc/security/limits.conf -echo "oracle hard stack 32768" >> /etc/security/limits.conf -echo "oracle hard memlock 134217728" >> /etc/security/limits.conf -echo "oracle soft memlock 134217728" >> /etc/security/limits.conf -echo "grid soft nofile 1024" >> /etc/security/limits.conf -echo "grid hard nofile 65536" >> /etc/security/limits.conf -echo "grid soft nproc 16384" >> /etc/security/limits.conf -echo "grid hard nproc 16384" >> /etc/security/limits.conf -echo "grid soft stack 10240" >> /etc/security/limits.conf -echo "grid hard stack 32768" >> /etc/security/limits.conf -echo "grid hard memlock 134217728" >> /etc/security/limits.conf -echo "grid soft memlock 134217728" >> /etc/security/limits.conf -echo "ulimit -S -s 10240" >> /home/grid/.bashrc -echo "ulimit -S -s 10240" >> /home/oracle/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/functions.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/functions.sh deleted file mode 100644 index d7c4677148..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/functions.sh +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Common Function File -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -export logfile=/tmp/orod.log -export logdir=/tmp -export STD_OUT_FILE="/proc/1/fd/1" -export STD_ERR_FILE="/proc/1/fd/2" -export TOP_PID=$$ - -###### Function Related to printing messages and exit the script if error occurred ################## -error_exit() { -local NOW=$(date +"%m-%d-%Y %T %Z") - # Display error message and exit -# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 - echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $logfile > $STD_OUT_FILE - kill -s TERM $TOP_PID -} - -print_message () -{ - local NOW=$(date +"%m-%d-%Y %T %Z") - # Display message and return - echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $logfile > $STD_OUT_FILE - return $? -} - -##################################################################################################### - -####### Function related to IP Checks ############################################################### - -validating_env_vars () -{ -local stat=3 -local ip="${1}" -local alive="${2}" - -print_message "checking IP is in correct format such as xxx.xxx.xxx.xxx" - -if valid_ip $ip; then - print_message "IP $ip format check passed!" -else - error_exit "IP $ip is not in correct format..please check!" -fi - -# Checking if Host is alive - -if [ "${alive}" == "true" ]; then - -print_message "Checking if IP is pingable or not!" - -if host_alive $ip; then - print_message "IP $ip is pingable ...check passed!" -else - error_exit "IP $ip is not pingable..check failed!" -fi - -else - -print_message "Checking if IP is pingable or not!" - -if host_alive $ip; then - error_exit "IP $ip is already allocated...check failed!" -else - print_message "IP $ip is not pingable..check passed!" -fi - -fi -} - -check_interface () -{ -local ethcard=$1 -local output - -ip link show | grep $ethcard - -output=$? - - if [ $output -eq 0 ];then - return 0 - else - return 1 - fi -} - -valid_ip() -{ - local ip=$1 - local stat=1 - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - OIFS=$IFS - IFS='.' - ip=($ip) - IFS=$OIFS - [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ - && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -host_alive() -{ - - local ip_or_hostname=$1 - local stat=1 -ping -c 1 -W 1 $ip_or_hostname >& /dev/null - -if [ $? -eq 0 ]; then - stat=0 - return $stat -else - stat=1 - return $stat -fi - -} - -resolveip(){ - - local host="$1" - if [ -z "$host" ] - then - return 1 - else - local ip=$( getent hosts "$host" | awk '{print $1}' ) - if [ -z "$ip" ] - then - ip=$( dig +short "$host" ) - if [ -z "$ip" ] - then - print_message "unable to resolve '$host'" - return 1 - else - print_message "$ip" - return 0 - fi - else - print_message "$ip" - return 0 - fi - fi -} - -################################################################################################################## - -############################################Match an Array element####################### -isStringExist () -{ -local checkthestring="$1" -local stringtocheck="$2" -local stat=1 - -IFS=', ' read -r -a string_array <<< "$checkthestring" - -for ((i=0; i < ${#string_array[@]}; ++i)); do - if [ ${stringtocheck} == ${string_array[i]} ]; then - stat=0 - fi -done - return $stat -} - - -######################################################################################### - - -##################################################Password function########################## - -setpasswd () -{ - -local user=$1 -local pass=$2 -echo $pass | passwd $user --stdin -} - -############################################################################################## diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid.rsp deleted file mode 100644 index e3172e6ea5..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=###SCAN_TYPE### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile=###SHARED_SCAN_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=###SCAN_PORT### - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=###CLUSTER_TYPE### - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile=###MEMBERDB_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=###CLUSTER_NAME### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=###CONFIGURE_GNS### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=###DHCP_CONF### - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=###GNS_OPTIONS### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain=###GNS_SUBDOMAIN### -oracle.install.crs.config.gpnp.gnsVIPAddress=###GNSVIP_HOSTNAME### - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=###NETWORK_STRING### - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=###GIMR_DG_FLAG### - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption=###STORAGE_OPTIONS_FOR_MEMBERDB### -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=###DB_ASM_DISKGROUP### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=###ASM_REDUNDANCY### - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups=###ASM_DG_FAILURE_GROUP### - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name=###GIMR_DG_NAME### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy=###GIMR_DG_REDUNDANCY### - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups=###GIMR_DG_FAILURE_GROUP### - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames=###GIMR_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks=###GIMR_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid1.rsp deleted file mode 100644 index ebfc119b01..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid1.rsp +++ /dev/null @@ -1,671 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/grid - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=racnode-scan - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=rac01cluster - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB,racnode2:racnode2-vip:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=eth0:192.168.17.0:5,eth1:172.16.1.0:1 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm_* - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_addnode.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_addnode.rsp deleted file mode 100644 index 7692346e3f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_addnode.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_ADDNODE - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###PUBLIC_HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_sw_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_sw_inst.rsp deleted file mode 100644 index 3d3c5d68a3..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/grid_sw_inst.rsp +++ /dev/null @@ -1,668 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=###INSTALL_TYPE### - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=###HOSTNAME### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installDBBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installDBBinaries.sh deleted file mode 100644 index 31f62fc523..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installDBBinaries.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description:Installing Oracle DB software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" -a "$EDITION" != "SE2" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether DB_BASE is set -if [ "$DB_BASE" == "" ]; then - echo "ERROR: DB_BASE has not been set!" - echo "You have to have the DB_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether DB_HOME is set -if [ "$DB_HOME" == "" ]; then - echo "ERROR: DB_HOME has not been set!" - echo "You have to have the DB_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Replace place holders -# --------------------- -sed -i -e "s|###ORACLE_EDITION###|$EDITION|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -# Install Oracle binaries -if [ "${DB_USER}" != "${GRID_USER}" ]; then -mkdir -p /home/${DB_USER}/.ssh && \ -chmod 700 /home/${DB_USER}/.ssh -fi - - -# Install Oracle binaries -unzip -q $INSTALL_SCRIPTS/$INSTALL_FILE_2 -d $DB_HOME && \ -$DB_HOME/runInstaller -silent -force -waitforcompletion -responsefile $INSTALL_SCRIPTS/$DB_INSTALL_RSP -ignorePrereqFailure || true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installGridBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installGridBinaries.sh deleted file mode 100644 index 4546e192fe..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/installGridBinaries.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Install grid software inside the container. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 -PATCH_NUMBER=$2 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - - -temp_var1=`hostname` - -# Replace place holders -# --------------------- -sed -i -e "s|###HOSTNAME###|$temp_var1|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP && \ -sed -i -e "s|###INSTALL_TYPE###|CRS_SWONLY|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP && \ -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP - -# Install Oracle binaries -mkdir -p /home/grid/.ssh && \ -chmod 700 /home/grid/.ssh && \ -unzip -q $INSTALL_SCRIPTS/$INSTALL_FILE_1 -d $GRID_HOME && \ -$GRID_HOME/gridSetup.sh -applyRU $INSTALL_SCRIPTS/$PATCH_NUMBER -silent -responseFile $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP -ignorePrereqFailure || true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/remoteListener.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/remoteListener.sh deleted file mode 100644 index 696bb2bd06..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/remoteListener.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Set the Oracle Connection Manager IP as remote listener in oracle DB -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh - -sid=$1 -scan_name=$2 -cman_host=$3 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." -else - echo "Oracle Sid : $sid" -fi; - -if [ -z "${scan_name}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - SCAN Name is not set. Please set SCAN Name before invoking this script." - else - echo " Scan name : $scan_name" -fi; - -if [ -z "${cman_host}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - CMAN Host Name is not set. Please set CMAN Hostname before invoking this script." - echo "Cman Host : $cman_host" -fi; - -ORACLE_HOME=$DB_HOME -ORACLE_SID=$($DB_HOME/bin/srvctl status database -d $sid | grep $(hostname) | awk '{ print $2 }') - -echo "setting Oracle sid to $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -echo "Remote Lisetenr String : remote_listener=$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))" - -status=`$DB_HOME/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; -alter system set remote_listener='$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))' scope=both; - alter system register; -alter system register; -alter system register; -alter system register; - exit; -EOF` - -#echo "Stopping Oracle Database" -#$ORACLE_HOME/bin/srvctl stop database -d $sid -#echo "Starting Oracle Database" -#$ORACLE_HOME/bin/srvctl start database -d $sid diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/resetOSPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/resetOSPassword.sh deleted file mode 100644 index 11d72fcea5..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/resetOSPassword.sh +++ /dev/null @@ -1,221 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Reset the password for Grid and oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -declare -a cluster_nodes -GRID_USER='grid' -ORACLE_USER='oracle' -PROGNAME=$(basename $0) -PWD_KEY='pwd.key' -SECRET_VOLUME='/run/secrets' -declare -x REMOVE_OS_PWD_FILES='false' -PASSWD_VALUE="NOPASSWD" -source /etc/rac_env_vars - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -generate_pwd () -{ - -if [ -f "${SECRET_VOLUME}/${PWD_FILE}" ] && [ -f "${SECRET_VOLUME}/${PWD_KEY}" ] ; then -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${PWD_FILE}" -out /tmp/${PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read PASSWORD < /tmp/${PWD_FILE} -rm -f /tmp/${PWD_FILE} -rm -f /tmp/${PWD_KEY} - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi - -else - print_message "Password file or password key file is empty string! generating random password" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ ! -z ${PASSWORD} ]; then - PASSWD_VALUE="${PASSWORD}" -fi - -} - -setNode () { -if [ ! -f $GRID_HOME/bin/olsnodes ]; then -cluster_nodes=( $(hostname) ) -else -cluster_nodes=( $($GRID_HOME/bin/olsnodes | awk '{ print $1 }') ) -node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -fi -} - -reset_passwd () -{ -user=${1} -password=${2} - -if [ -z "${user}" ]; then -error_exit "user name is not specified. It must be set to oracle|grid" -fi - -if [ -z "${password}" ]; then -error_exit "password string is not specified" -fi - -for node in "${cluster_nodes[@]}" -do -if [ ! -f $GRID_HOME/bin/olsnodes ]; then -print_message "Resetting password for ${user} on the ${node}" -cmd='su - $user -c "echo $password | sudo passwd $user --stdin"' -else -print_message "Resetting password for ${user} on all the ${node}" -cmd='su - $user -c "ssh ${node} \"echo $password | sudo passwd $user --stdin\""' -fi - -eval $cmd - -if [ $? -eq 0 ]; then -print_message "Password reset seucessfuly on ${node} for $user" -else -print_message "Password reset failed on ${node} for $user" -fi -done -} - -usage() { -cat << EOF -Usage: -o|--op_type Specify the value reset_grid_oracle|reset_grid|reset_oracle - -p|--pwd_file Specify the encrypted password file name - -k|--pwd_key_file Specify password key fle - -s|--secret_volume Specify the secret volume - -r|--remove_os_pwd_files Remove the passwordfiles after resetting the password - -h|--help Show help -EOF -error_exit "Please specify correct parameters" -} - -##################################################################### -### MAIN # -##################################################################### - -SHORTOPTS="o:p:k:s:r:h" -LONGOPTS="help,op_type:,pwd_key_file:,pwd_file:,secret_volume:,remove_os_pwd_files:" - -ARGS=$(getopt -o $SHORTOPTS --long $LONGOPTS --name $PROGNAME -- "$@" ) - -if [ $? != 0 ] ; then -error_exit "Terminating... as error occurred during ARGS computation"; -fi - -print_message "$ARGS" - -eval set -- "$ARGS" - -while true; do -case "$1" in - --help) - usage -;; - -o | --op_type) - if [ "$2" ]; then - RESET_PASSWORD_TYPE=$2 - else - error_exit "--op_type requires non empty option argument" - fi - print_message "RESET_PASSWORD_TYPE=${RESET_PASSWORD_TYPE}" - shift 2 -;; - -p | --pwd_file) - if [ "$2" ]; then - PWD_FILE=$2 - else - print_message "--pwd_file set to empty string. random password will generated" - fi - print_message "PWD_FILE: $PWD_FILE" - shift 2 -;; --k | --pwd_key_file) - if [ "$2" ];then - PWD_KEY=$2 - else - PWD_KEY='pwd.key' - print_message "--pwd_key set to empty string. It will be set to default value ${PWD_KEY}" - fi - print_message "PWD_KEY=$PWD_KEY" - shift 2 -;; - -s | --secret_volume) - echo "Secret Volume Location" - if [ "$2" ];then - SECRET_VOLUME=$2 - else - SECRET_VOLUME='/run/secrets' - print_message "--secret_volume is set to empty string. It will be set to default value ${SECRET_VOLUME}" - fi - shift 2 -;; --r| --remove_os_pwd_files) - echo "Remove OS PWD files after resetting password" - if [ "${2}" == 'true' ]; then - REMOVE_OS_PWD_FILES='true' - else - REMOVE_OS_PWD_FILES='false' - fi - shift 2 -;; - --) - shift; - break; -;; -*) -print_message "Not a valid option" -usage -;; -esac -done - -print_message "generating node name from the cluster" -setNode -print_message "Generating password for grid and oracle user" -generate_pwd - -if [ "${PASSWD_VALUE}" == "NOPASSWD" ]; then - error_exit "Correct password string is not set" -fi - -if [ "${RESET_PASSWORD_TYPE}" == 'reset_grid_oracle' ]; then -print_message "Setting password for $GRID_USER user" -reset_passwd $GRID_USER $PASSWD_VALUE -print_message "Setting password for $ORACLE_USER user" -reset_passwd $ORACLE_USER $PASSWD_VALUE -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_grid' ]; then - print_message "Setting password for $GRID_USER user" - reset_passwd $GRID_USER $PASSWD_VALUE -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_oracle' ]; then - print_message "Setting password for $ORACLE_USER user" - reset_passwd $ORACLE_USER $PASSWD_VALUE -else -error_exit "Please specify correct value for RESET_PASSWORD_TYPE. Correct Values are reset_grid_oracle|reset_grid|reset_oracle" -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runOracle.sh deleted file mode 100644 index 10a64944f2..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runOracle.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs the Oracle RAC Database inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -########################### - -if [ -f $logfile ]; then -mv $logfile $logfile."$(date +%Y%m%d-%H%M%S)" -touch $logfile -else -touch $logfile -fi - -chmod 666 $logfile -progname="$(basename $0)" -grid_install_status="FALSE" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -################################################## - - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -print_message "Process id of the program : $TOP_ID" -# Check whether container has enough memory -if [[ -f /sys/fs/cgroup/cgroup.controllers ]]; then - memory=$(cat /sys/fs/cgroup/memory.max) -else - memory=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) -fi - -# Github issue #219: Prevent integer overflow, -# only check if memory digits are less than 11 (single GB range and below) -if [[ ${memory} != "max" && ${#memory} -lt 11 && ${memory} -lt 8589934592 ]]; then - echo "Error: The container doesn't have enough memory allocated." - echo "A database container needs at least 8 GB of memory." - echo "You currently only have $((memory/1024/1024/1024)) GB allocated to the container." - exit 1; -fi - -print_message "#################################################" -print_message " Starting Grid Installation " -print_message "#################################################" - -print_message "Pre-Grid Setup steps are in process" -$SCRIPT_DIR/$SETUPGRIDENV -stat=$? -if [ $stat -ne 0 ]; then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "###################################################" -print_message "Pre-Grid Setup steps completed" -print_message "###################################################" - -print_message "Checking if grid is already configured" -if [ -d /etc/oracle ]; then -grid_install_status="TRUE" -if [ -f /etc/oracle/olr.loc ];then -grid_install_status="TRUE" -OLR_FILE=$(cat /etc/oracle/olr.loc | grep olrconfig_loc | awk -F "=" '{ print $2 }') -if [ -f $OLR_FILE ]; then -grid_install_status="TRUE" -print_message "Grid is installed on $(hostname). $progname will start the Grid service" -fi -fi -fi - -if [ $grid_install_status == "TRUE" ];then -print_message "Setting up Grid Env for Grid Start" -print_message "##########################################################################################" -print_message "Grid is already installed on this container! Grid will be started by default ohasd scripts" -print_message "############################################################################################" -else -if [ "${OP_TYPE}" == "INSTALL" ]; then -$SCRIPT_DIR/$CONFIGGRID -stat=$? - -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -elif [ "${OP_TYPE}" == "ADDNODE" ]; then -$SCRIPT_DIR/$ADDNODE -stat=$? -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -else -print_message "Usage : $progname INSTALL | ADDNODE" -error_exit "You can perform Cluster Install or Add Node" -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runUserScripts.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runUserScripts.sh deleted file mode 100644 index 0ed26af7fc..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/runUserScripts.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs user shell and SQL scripts -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -SCRIPTS_ROOT="$1"; -SCRIPTS_TYPE="$2"; - -# Check whether parameter has been passed on -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ "${SCRIPTS_TYPE}" == "DB" ] && [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts for ${SCRIPTS_TYPE}" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysdba" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts for ${SCRIPTS_TYPE}" - echo ""; - -fi; - -fi; - -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; - -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ "${SCRIPTS_TYPE}" == "GRID" ] && [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts for ${SCRIPTS_TYPE}" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysasm" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts for ${SCRIPTS_TYPE}" - echo ""; - -fi; - -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setPassword.sh deleted file mode 100644 index dcf692c9d9..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setPassword.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets the password for sys, system and pdb_admin -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -ORACLE_PWD=$1 -#ORACLE_SID="`grep $DB_HOME /etc/oratab | cut -d: -f1`" -#ORACLE_PDB="`ls -dl $DB_BASE/oradata/$ORACLE_SID/*/ | grep -v pdbseed | awk '{print $9}' | cut -d/ -f6`" -ORAENV_ASK=NO - -ORACLE_SID=$2 -ORACLE_PDB=$3 - -source oraenv - -sqlplus / as sysdba << EOF - ALTER USER SYS IDENTIFIED BY "$ORACLE_PWD"; - ALTER USER SYSTEM IDENTIFIED BY "$ORACLE_PWD"; - ALTER SESSION SET CONTAINER=$ORACLE_PDB; - ALTER USER PDBADMIN IDENTIFIED BY "$ORACLE_PWD"; - exit; -EOF - diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupDB.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupDB.sh deleted file mode 100644 index bcce178fab..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupDB.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p $DB_BASE -mkdir -p $DB_HOME - -usermod -g oinstall -G oinstall,dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,racdba,asmadmin ${DB_USER} - -chown -R ${DB_USER}:oinstall $DB_BASE -chown -R ${DB_USER}:oinstall $DB_HOME -chown -R ${DB_USER}:oinstall $INSTALL_SCRIPTS -chmod 775 $INSTALL_SCRIPTS - -echo "export PATH=$DB_PATH" >> /home/${DB_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$DB_LD_LIBRARY_PATH" >> /home/${DB_USER}/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/${DB_USER}/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/${DB_USER}/.bashrc -echo "export DB_BASE=$DB_BASE" >> /home/${DB_USER}/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/${DB_USER}/.bashrc - -if [ ${DB_USER} == ${GRID_USER} ]; then -sed -i '/PATH=/d' /home/${DB_USER}/.bashrc -echo "export PATH=$GRID_HOME/bin:$DB_PATH" >> /home/${DB_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_HOME/lib:$DB_LD_LIBRARY_PATH" >> /home/${DB_USER}/.bashrc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGrid.sh deleted file mode 100644 index 53b59c95c1..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGrid.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for Grid installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Create Directories -mkdir -p $GRID_BASE -mkdir -p $GRID_HOME - -groupadd -g 54334 asmadmin -groupadd -g 54335 asmdba -groupadd -g 54336 asmoper -useradd -u 54332 -g oinstall -G oinstall,asmadmin,asmdba,asmoper,racdba,dba grid - -chown -R grid:oinstall $GRID_BASE -chown -R grid:oinstall $GRID_HOME -mkdir -p $INVENTORY -chown -R grid:oinstall $INVENTORY - -chmod 666 /etc/sudoers -echo "oracle ALL=(ALL) NOPASSWD: /usr/bin/passwd" >> /etc/sudoers -echo "grid ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers - -echo "export ORACLE_HOME=$GRID_HOME" >> /home/grid/.bashrc -echo "export PATH=$GRID_PATH" >> /home/grid/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_LD_LIBRARY_PATH" >> /home/grid/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/grid/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/grid/.bashrc -echo "export GRID_BASE=$GRID_BASE" >> /home/grid/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/grid/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGridEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGridEnv.sh deleted file mode 100644 index bd31a14421..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupGridEnv.sh +++ /dev/null @@ -1,282 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Pre-grid Setup tasks such as setting up hosts file -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variabes and Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -DNS_SERVER_FLAG='false' # set this variable to true if you have DNS server. Then , it is not required to populate the /etc/hosts. -declare -r ETCHOSTS="/etc/hosts" # -declare -r ETCFSTAB="/etc/fstab" -declare -r GRID_USER='grid' ## Default user for grid installation -declare -r ASMADMIN_GROUP='asmadmin' ## Default group for Grid. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname - -progname="$(basename $0)" -######################## Variable and Constant declaration ends here ###### - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -######################################## Pre-Grid-Deployment Steps Begin here #################################### -pre_grid_deploy_steps () -{ -local systemd_svc -local systemctl_state - -# Setting default gateway -if [ ! -z "${DEFAULT_GATEWAY}" ];then - ip route del default - ip route add default via $DEFAULT_GATEWAY -fi - -# Adding blank ntp.conf -touch /etc/ntp.conf - -# Adding blank /etc/fstab -if [ ! -f ${ETCFSTAB} ]; then - touch /etc/fstab -fi - -# Changing permission for /common_scripts -if [ -d $COMMON_SCRIPTS ]; -then -chown -R grid:oinstall ${COMMON_SCRIPTS} -chmod 775 ${COMMON_SCRIPTS} -fi - -# Removing failed service as we systemd status 'running' - -for systemd_svc in $(systemctl | grep failed | awk '{ print $2}') -do - print_message "Disable failed service $systemd_svc" - systemctl disable $systemd_svc - print_message "Resetting Failed Services" - systemctl reset-failed -done - -print_message "Sleeping for 60 seconds" -sleep 60 - -systemctl_state=$(systemctl status | awk '/State:/{ print $0 }' | grep -v 'awk /State:/' | awk '{ print $2 }') - -if [ "${systemctl_state}" == "running" ]; then - print_message "Systemctl state is running!" -else - error_exit "Systemctl state is $systemctl_state! it must be running state inside the container to proceed further" -fi - -print_message "Setting correct permissions for /bin/ping" -chmod 6755 /bin/ping -chmod 6755 /usr/bin/ping -} - -##################################### Pre-Grid-Deployment steps end here ############################ -######################################### ASM Disk Functions ################################### - -build_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - - -if [ "${OP_TYPE}" == 'INSTALL' -o "${OP_TYPE}" == 'ADDNODE' ]; then -if [ ! -z "${ASM_DEVICE_LIST}" ]; then -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership $device" - if [ -e $device ]; then - chown $GRID_USER:$ASMADMIN_GROUP $device - chmod 660 $device - else - error_exit "Device $device does not exist! Please verify" - fi - count=$[$count+1] - done -fi -else - error_exit "ASM_DEVICE_LIST is set to empty cannot proceed" -fi -fi - - -} - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local stat -local count=1 -local temp_str -local asmvol=$ASM_DISCOVERY_DIR -local asmdisk -local disk -local minsize=50 -local size=0 -local cluster_name="oracle" -local disk_name - -if [ ${OP_TYPE} == 'INSTALL' ]; then - if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - if [ ! -z "${GIMR_DEVICE_LIST}" ]; then - print_message "Preapring Device list" - IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - chown $GRID_USER:$ASMADMIN_GROUP $device - chmod 660 $device - count=$[$count+1] - done - fi -else - error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi -fi -fi -} - -####################################### ETC Host Function ############################################################# -checkHostName () -{ -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi -} - -SetupEtcHosts() -{ -local stat=3 -local HOST_LINE - -if [ "${DNS_SERVER_FLAG}" == 'false' ]; then - -if [ ! -z $HOSTFILE ]; then -cat $COMMON_SCRIPTS/$HOSTFILE > /etc/hosts -else -grep -P "127.0.0.1\tlocalhost.localdomain\tlocalhost" /etc/hosts -stat=$? - -if [ $stat -eq 1 ]; then -echo -e "127.0.0.1\tlocalhost.localdomain\tlocalhost" > /etc/hosts -fi - -for HOSTNAME in $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME $EXISTING_CLS_NODE $CMAN_HOSTNAME $GNSVIP_HOSTNAME; -do -if [ -n "$(grep $HOSTNAME $ETCHOSTS)" ]; then -print_message "$HOSTNAME already exists : $(grep $HOSTNAME $ETCHOSTS), no $ETCHOST update required" -else - print_message "Preparing host line for $HOSTNAME"; - if [ "${HOSTNAME}" == "${PUBLIC_HOSTNAME}" ]; then - unset HOST_LINE - HOST_LINE="\n${PUBLIC_IP}\t${PUBLIC_HOSTNAME}.${DOMAIN}\t${PUBLIC_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${PRIV_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${PRIV_IP}\t${PRIV_HOSTNAME}.${DOMAIN}\t${PRIV_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${VIP_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${NODE_VIP}\t${VIP_HOSTNAME}.${DOMAIN}\t${VIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${EXISTING_CLS_NODE}" ]; then - unset HOST_LINE - HOST_LINE="\n${EXISTING_CLS_NODE_IP}\t${EXISTING_CLS_NODE}.${DOMAIN}\t${EXISTING_CLS_NODE}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS -elif [ "${HOSTNAME}" == "${SCAN_NAME}" ]; then - unset HOST_LINE - if [ ! -z "$SCAN_IP" ];then - HOST_LINE="\n${SCAN_IP}\t${SCAN_NAME}.${DOMAIN}\t${SCAN_NAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${CMAN_HOSTNAME}" ]; then - unset HOST_LINE - if [ ! -z "$CMAN_IP" ];then - HOST_LINE="\n${CMAN_IP}\t${CMAN_HOSTNAME}.${DOMAIN}\t${CMAN_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${GNSVIP_HOSTNAME}" ]; then - unset HOST_LINE - if [ ! -z "$GNS_VIP" ];then - HOST_LINE="\n${GNS_VIP}\t${GNSVIP_HOSTNAME}.${DOMAIN}\t${GNSVIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -else - print_message "HOSTNAME should match any hostname in given hostnames $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME" -fi -fi -done -fi -#### DNS Server check ends below###### -fi -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -pre_grid_deploy_steps -checkHostName -SetupEtcHosts -######### ASM Device Setup ######## -build_block_device_list -build_gimr_block_device_list -print_message "#####################################################################" -print_message " RAC setup will begin in 2 minutes " -print_message "####################################################################" -sleep 2 -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupLinuxEnv.sh deleted file mode 100644 index 213831fe3d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupLinuxEnv.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /asmdisks && \ -mkdir /responsefiles && \ -chmod ug+x /opt/scripts/startup/*.sh && \ -yum -y install systemd oracle-database-preinstall-18c net-tools which zip unzip tar openssl expect e2fsprogs openssh-server openssh-client vim-minimal passwd which sudo && \ -yum clean all - -#yum -y install systemd oracle-database-preinstall-18c net-tools ntpd crontab perl gcc hostname which zip unzip tar openssl expect e2fsprogs openssh-server openssh-client vim-minimal passwd which sudo xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupSSH.expect b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupSSH.expect deleted file mode 100644 index dd99bb1e4f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/setupSSH.expect +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/expect -f -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup SSH between nodes -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -set username [lindex $argv 0]; -set script_loc [lindex $argv 1]; -set cluster_nodes [lindex $argv 2]; -set ssh_pass [lindex $argv 3]; - -set timeout 120 - -# Procedure to setup ssh from server -proc sshproc { ssh_pass } { - expect { - # Send password at 'Password' prompt and tell expect to continue(i.e. exp_continue) - -re "\[P|p]assword:" { exp_send "$ssh_pass\r" - exp_continue } - # Tell expect stay in this 'expect' block and for each character that SCP prints while doing the copy - # reset the timeout counter back to 0. - -re . { exp_continue } - timeout { return 1 } - eof { return 0 } - } -} - -# Execute sshUserSetup.sh Script -set ssh_cmd "$script_loc/sshUserSetup.sh -user $username -hosts \"${cluster_nodes}\" -logfile /tmp/${username}_SetupSSH.log -advanced -exverify -noPromptPassphrase -confirm" - -eval spawn $ssh_cmd -set ssh_results [sshproc $ssh_pass] - -if { $ssh_results == 0 } { - exit 0 -} - -# Error attempting SSH, so exit with non-zero status -exit 1 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/sshUserSetup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/sshUserSetup.sh deleted file mode 100644 index e23165b271..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/sshUserSetup.sh +++ /dev/null @@ -1,659 +0,0 @@ -#!/bin/sh -# Nitin Jerath - Aug 2005 -#Usage sshUserSetup.sh -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase] -#eg. sshUserSetup.sh -hosts "host1 host2" -user njerath -advanced -#This script is used to setup SSH connectivity from the host on which it is -# run to the specified remote hosts. After this script is run, the user can use # SSH to run commands on the remote hosts or copy files between the local host -# and the remote hosts without being prompted for passwords or confirmations. -# The list of remote hosts and the user name on the remote host is specified as -# a command line parameter to the script. Note that in case the user on the -# remote host has its home directory NFS mounted or shared across the remote -# hosts, this script should be used with -shared option. -#Specifying the -advanced option on the command line would result in SSH -# connectivity being setup among the remote hosts which means that SSH can be -# used to run commands on one remote host from the other remote host or copy -# files between the remote hosts without being prompted for passwords or -# confirmations. -#Please note that the script would remove write permissions on the remote hosts -#for the user home directory and ~/.ssh directory for "group" and "others". This -# is an SSH requirement. The user would be explicitly informed about this by the script and prompted to continue. In case the user presses no, the script would exit. In case the user does not want to be prompted, they can use the -confirm option. -# As a part of the setup, the script would use SSH to create files within ~/.ssh -# directory of the remote node and to setup the requisite permissions. The -#script also uses SCP to copy the local host public key to the remote hosts so -# that the remote hosts trust the local host for SSH. At the time, the script -#performs these steps, SSH connectivity has not been completely setup hence -# the script would prompt the user for the remote host password. -#For each remote host, for remote users with non-shared homes this would be -# done once for SSH and once for SCP. If the number of remote hosts are x, the -# user would be prompted 2x times for passwords. For remote users with shared -# homes, the user would be prompted only twice, once each for SCP and SSH. -#For security reasons, the script does not save passwords and reuse it. Also, -# for security reasons, the script does not accept passwords redirected from a -#file. The user has to key in the confirmations and passwords at the prompts. -#The -verify option means that the user just wants to verify whether SSH has -#been set up. In this case, the script would not setup SSH but would only check -# whether SSH connectivity has been setup from the local host to the remote -# hosts. The script would run the date command on each remote host using SSH. In -# case the user is prompted for a password or sees a warning message for a -#particular host, it means SSH connectivity has not been setup correctly for -# that host. -#In case the -verify option is not specified, the script would setup SSH and -#then do the verification as well. -#In case the user speciies the -exverify option, an exhaustive verification would be done. In that case, the following would be checked: -# 1. SSH connectivity from local host to all remote hosts. -# 2. SSH connectivity from each remote host to itself and other remote hosts. - -#echo Parsing command line arguments -numargs=$# - -ADVANCED=false -HOSTNAME=`hostname` -CONFIRM=no -SHARED=false -i=1 -USR=$USER - -if test -z "$TEMP" -then - TEMP=/tmp -fi - -IDENTITY=id_rsa -LOGFILE=$TEMP/sshUserSetup_`date +%F-%H-%M-%S`.log -VERIFY=false -EXHAUSTIVE_VERIFY=false -HELP=false -PASSPHRASE=no -RERUN_SSHKEYGEN=no -NO_PROMPT_PASSPHRASE=no - -while [ $i -le $numargs ] -do - j=$1 - if [ $j = "-hosts" ] - then - HOSTS=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-user" ] - then - USR=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-logfile" ] - then - LOGFILE=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-confirm" ] - then - CONFIRM=yes - fi - if [ $j = "-hostfile" ] - then - CLUSTER_CONFIGURATION_FILE=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-usePassphrase" ] - then - PASSPHRASE=yes - fi - if [ $j = "-noPromptPassphrase" ] - then - NO_PROMPT_PASSPHRASE=yes - fi - if [ $j = "-shared" ] - then - SHARED=true - fi - if [ $j = "-exverify" ] - then - EXHAUSTIVE_VERIFY=true - fi - if [ $j = "-verify" ] - then - VERIFY=true - fi - if [ $j = "-advanced" ] - then - ADVANCED=true - fi - if [ $j = "-help" ] - then - HELP=true - fi - i=`expr $i + 1` - shift 1 -done - - -if [ $HELP = "true" ] -then - echo "Usage $0 -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase]" -echo "This script is used to setup SSH connectivity from the host on which it is run to the specified remote hosts. After this script is run, the user can use SSH to run commands on the remote hosts or copy files between the local host and the remote hosts without being prompted for passwords or confirmations. The list of remote hosts and the user name on the remote host is specified as a command line parameter to the script. " -echo "-user : User on remote hosts. " -echo "-hosts : Space separated remote hosts list. " -echo "-hostfile : The user can specify the host names either through the -hosts option or by specifying the absolute path of a cluster configuration file. A sample host file contents are below: " -echo -echo " stacg30 stacg30int 10.1.0.0 stacg30v -" -echo " stacg34 stacg34int 10.1.0.1 stacg34v -" -echo -echo " The first column in each row of the host file will be used as the host name." -echo -echo "-usePassphrase : The user wants to set up passphrase to encrypt the private key on the local host. " -echo "-noPromptPassphrase : The user does not want to be prompted for passphrase related questions. This is for users who want the default behavior to be followed." -echo "-shared : In case the user on the remote host has its home directory NFS mounted or shared across the remote hosts, this script should be used with -shared option. " -echo " It is possible for the user to determine whether a user's home directory is shared or non-shared. Let us say we want to determine that user user1's home directory is shared across hosts A, B and C." -echo " Follow the following steps:" -echo " 1. On host A, touch ~user1/checkSharedHome.tmp" -echo " 2. On hosts B and C, ls -al ~user1/checkSharedHome.tmp" -echo " 3. If the file is present on hosts B and C in ~user1 directory and" -echo " is identical on all hosts A, B, C, it means that the user's home " -echo " directory is shared." -echo " 4. On host A, rm -f ~user1/checkSharedHome.tmp" -echo " In case the user accidentally passes -shared option for non-shared homes or viceversa,SSH connectivity would only be set up for a subset of the hosts. The user would have to re-run the setyp script with the correct option to rectify this problem." -echo "-advanced : Specifying the -advanced option on the command line would result in SSH connectivity being setup among the remote hosts which means that SSH can be used to run commands on one remote host from the other remote host or copy files between the remote hosts without being prompted for passwords or confirmations." -echo "-confirm: The script would remove write permissions on the remote hosts for the user home directory and ~/.ssh directory for "group" and "others". This is an SSH requirement. The user would be explicitly informed about this by the script and prompted to continue. In case the user presses no, the script would exit. In case the user does not want to be prompted, they can use the -confirm option." -echo "As a part of the setup, the script would use SSH to create files within ~/.ssh directory of the remote node and to setup the requisite permissions. The script also uses SCP to copy the local host public key to the remote hosts so that the remote hosts trust the local host for SSH. At the time, the script performs these steps, SSH connectivity has not been completely setup hence the script would prompt the user for the remote host password. " -echo "For each remote host, for remote users with non-shared homes this would be done once for SSH and once for SCP. If the number of remote hosts are x, the user would be prompted 2x times for passwords. For remote users with shared homes, the user would be prompted only twice, once each for SCP and SSH. For security reasons, the script does not save passwords and reuse it. Also, for security reasons, the script does not accept passwords redirected from a file. The user has to key in the confirmations and passwords at the prompts. " -echo "-verify : -verify option means that the user just wants to verify whether SSH has been set up. In this case, the script would not setup SSH but would only check whether SSH connectivity has been setup from the local host to the remote hosts. The script would run the date command on each remote host using SSH. In case the user is prompted for a password or sees a warning message for a particular host, it means SSH connectivity has not been setup correctly for that host. In case the -verify option is not specified, the script would setup SSH and then do the verification as well. " -echo "-exverify : In case the user speciies the -exverify option, an exhaustive verification for all hosts would be done. In that case, the following would be checked: " -echo " 1. SSH connectivity from local host to all remote hosts. " -echo " 2. SSH connectivity from each remote host to itself and other remote hosts. " -echo The -exverify option can be used in conjunction with the -verify option as well to do an exhaustive verification once the setup has been done. -echo "Taking some examples: Let us say local host is Z, remote hosts are A,B and C. Local user is njerath. Remote users are racqa(non-shared), aime(shared)." -echo "$0 -user racqa -hosts "A B C" -advanced -exverify -confirm" -echo "Script would set up connectivity from Z -> A, Z -> B, Z -> C, A -> A, A -> B, A -> C, B -> A, B -> B, B -> C, C -> A, C -> B, C -> C." -echo "Since user has given -exverify option, all these scenario would be verified too." -echo -echo "Now the user runs : $0 -user racqa -hosts "A B C" -verify" -echo "Since -verify option is given, no SSH setup would be done, only verification of existing setup. Also, since -exverify or -advanced options are not given, script would only verify connectivity from Z -> A, Z -> B, Z -> C" - -echo "Now the user runs : $0 -user racqa -hosts "A B C" -verify -advanced" -echo "Since -verify option is given, no SSH setup would be done, only verification of existing setup. Also, since -advanced options is given, script would verify connectivity from Z -> A, Z -> B, Z -> C, A-> A, A->B, A->C, A->D" - -echo "Now the user runs:" -echo "$0 -user aime -hosts "A B C" -confirm -shared" -echo "Script would set up connectivity between Z->A, Z->B, Z->C only since advanced option is not given." -echo "All these scenarios would be verified too." - -exit -fi - -if test -z "$HOSTS" -then - if test -n "$CLUSTER_CONFIGURATION_FILE" && test -f "$CLUSTER_CONFIGURATION_FILE" - then - HOSTS=`awk '$1 !~ /^#/ { str = str " " $1 } END { print str }' $CLUSTER_CONFIGURATION_FILE` - elif ! test -f "$CLUSTER_CONFIGURATION_FILE" - then - echo "Please specify a valid and existing cluster configuration file." - fi -fi - -if test -z "$HOSTS" || test -z $USR -then -echo "Either user name or host information is missing" -echo "Usage $0 -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase]" -exit 1 -fi - -if [ -d $LOGFILE ]; then - echo $LOGFILE is a directory, setting logfile to $LOGFILE/ssh.log - LOGFILE=$LOGFILE/ssh.log -fi - -echo The output of this script is also logged into $LOGFILE | tee -a $LOGFILE - -if [ `echo $?` != 0 ]; then - echo Error writing to the logfile $LOGFILE, Exiting - exit 1 -fi - -echo Hosts are $HOSTS | tee -a $LOGFILE -echo user is $USR | tee -a $LOGFILE -SSH="/usr/bin/ssh" -SCP="/usr/bin/scp" -SSH_KEYGEN="/usr/bin/ssh-keygen" -calculateOS() -{ - platform=`uname -s` - case "$platform" - in - "SunOS") os=solaris;; - "Linux") os=linux;; - "HP-UX") os=hpunix;; - "AIX") os=aix;; - *) echo "Sorry, $platform is not currently supported." | tee -a $LOGFILE - exit 1;; - esac - - echo "Platform:- $platform " | tee -a $LOGFILE -} -calculateOS -BITS=1024 -ENCR="rsa" - -deadhosts="" -alivehosts="" -if [ $platform = "Linux" ] -then - PING="/bin/ping" -else - PING="/usr/sbin/ping" -fi -#bug 9044791 -if [ -n "$SSH_PATH" ]; then - SSH=$SSH_PATH -fi -if [ -n "$SCP_PATH" ]; then - SCP=$SCP_PATH -fi -if [ -n "$SSH_KEYGEN_PATH" ]; then - SSH_KEYGEN=$SSH_KEYGEN_PATH -fi -if [ -n "$PING_PATH" ]; then - PING=$PING_PATH -fi -PATH_ERROR=0 -if test ! -x $SSH ; then - echo "ssh not found at $SSH. Please set the variable SSH_PATH to the correct location of ssh and retry." - PATH_ERROR=1 -fi -if test ! -x $SCP ; then - echo "scp not found at $SCP. Please set the variable SCP_PATH to the correct location of scp and retry." - PATH_ERROR=1 -fi -if test ! -x $SSH_KEYGEN ; then - echo "ssh-keygen not found at $SSH_KEYGEN. Please set the variable SSH_KEYGEN_PATH to the correct location of ssh-keygen and retry." - PATH_ERROR=1 -fi -if test ! -x $PING ; then - echo "ping not found at $PING. Please set the variable PING_PATH to the correct location of ping and retry." - PATH_ERROR=1 -fi -if [ $PATH_ERROR = 1 ]; then - echo "ERROR: one or more of the required binaries not found, exiting" - exit 1 -fi -#9044791 end -echo Checking if the remote hosts are reachable | tee -a $LOGFILE -for host in $HOSTS -do - if [ $platform = "SunOS" ]; then - $PING -s $host 5 5 - elif [ $platform = "HP-UX" ]; then - $PING $host -n 5 -m 5 - else - $PING -c 5 -w 5 $host - fi - exitcode=`echo $?` - if [ $exitcode = 0 ] - then - alivehosts="$alivehosts $host" - else - deadhosts="$deadhosts $host" - fi -done - -if test -z "$deadhosts" -then - echo Remote host reachability check succeeded. | tee -a $LOGFILE - echo The following hosts are reachable: $alivehosts. | tee -a $LOGFILE - echo The following hosts are not reachable: $deadhosts. | tee -a $LOGFILE - echo All hosts are reachable. Proceeding further... | tee -a $LOGFILE -else - echo Remote host reachability check failed. | tee -a $LOGFILE - echo The following hosts are reachable: $alivehosts. | tee -a $LOGFILE - echo The following hosts are not reachable: $deadhosts. | tee -a $LOGFILE - echo Please ensure that all the hosts are up and re-run the script. | tee -a $LOGFILE - echo Exiting now... | tee -a $LOGFILE - exit 1 -fi - -firsthost=`echo $HOSTS | awk '{print $1}; END { }'` -echo firsthost $firsthost -numhosts=`echo $HOSTS | awk '{ }; END {print NF}'` -echo numhosts $numhosts - -if [ $VERIFY = "true" ] -then - echo Since user has specified -verify option, SSH setup would not be done. Only, existing SSH setup would be verified. | tee -a $LOGFILE - continue -else -echo The script will setup SSH connectivity from the host ''`hostname`'' to all | tee -a $LOGFILE -echo the remote hosts. After the script is executed, the user can use SSH to run | tee -a $LOGFILE -echo commands on the remote hosts or copy files between this host ''`hostname`'' | tee -a $LOGFILE -echo and the remote hosts without being prompted for passwords or confirmations. | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo NOTE 1: | tee -a $LOGFILE -echo As part of the setup procedure, this script will use 'ssh' and 'scp' to copy | tee -a $LOGFILE -echo files between the local host and the remote hosts. Since the script does not | tee -a $LOGFILE -echo store passwords, you may be prompted for the passwords during the execution of | tee -a $LOGFILE -echo the script whenever 'ssh' or 'scp' is invoked. | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo NOTE 2: | tee -a $LOGFILE -echo "AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY" | tee -a $LOGFILE -echo AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEGES TO THESE | tee -a $LOGFILE -echo "directories." | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo "Do you want to continue and let the script make the above mentioned changes (yes/no)?" | tee -a $LOGFILE - -if [ "$CONFIRM" = "no" ] -then - read CONFIRM -else - echo "Confirmation provided on the command line" | tee -a $LOGFILE -fi - -echo | tee -a $LOGFILE -echo The user chose ''$CONFIRM'' | tee -a $LOGFILE - -if [ -z "$CONFIRM" -o "$CONFIRM" != "yes" -a "$CONFIRM" != "no" ] -then - echo "You haven't specified proper input. Please enter 'yes' or 'no'. Exiting...." - exit 0 -fi -if [ "$CONFIRM" = "no" ] -then - echo "SSH setup is not done." | tee -a $LOGFILE - exit 1 -else - if [ $NO_PROMPT_PASSPHRASE = "yes" ] - then - echo "User chose to skip passphrase related questions." | tee -a $LOGFILE - else - if [ $SHARED = "true" ] - then - hostcount=`expr ${numhosts} + 1` - PASSPHRASE_PROMPT=`expr 2 \* $hostcount` - else - PASSPHRASE_PROMPT=`expr 2 \* ${numhosts}` - fi - echo "Please specify if you want to specify a passphrase for the private key this script will create for the local host. Passphrase is used to encrypt the private key and makes SSH much more secure. Type 'yes' or 'no' and then press enter. In case you press 'yes', you would need to enter the passphrase whenever the script executes ssh or scp. $PASSPHRASE " | tee -a $LOGFILE - echo "The estimated number of times the user would be prompted for a passphrase is $PASSPHRASE_PROMPT. In addition, if the private-public files are also newly created, the user would have to specify the passphrase on one additional occasion. " | tee -a $LOGFILE - echo "Enter 'yes' or 'no'." | tee -a $LOGFILE - if [ "$PASSPHRASE" = "no" ] - then - read PASSPHRASE - else - echo "Confirmation provided on the command line" | tee -a $LOGFILE - fi - - echo | tee -a $LOGFILE - echo The user chose ''$PASSPHRASE'' | tee -a $LOGFILE - if [ -z "$PASSPHRASE" -o "$PASSPHRASE" != "yes" -a "$PASSPHRASE" != "no" ] - then - echo "You haven't specified whether to use Passphrase or not. Please specify 'yes' or 'no'. Exiting..." - exit 0 - fi - - if [ "$PASSPHRASE" = "yes" ] - then - RERUN_SSHKEYGEN="yes" -#Checking for existence of ${IDENTITY} file - if test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} - then - echo "The files containing the client public and private keys already exist on the local host. The current private key may or may not have a passphrase associated with it. In case you remember the passphrase and do not want to re-run ssh-keygen, press 'no' and enter. If you press 'no', the script will not attempt to create any new public/private key pairs. If you press 'yes', the script will remove the old private/public key files existing and create new ones prompting the user to enter the passphrase. If you enter 'yes', any previous SSH user setups would be reset. If you press 'change', the script will associate a new passphrase with the old keys." | tee -a $LOGFILE - echo "Press 'yes', 'no' or 'change'" | tee -a $LOGFILE - read RERUN_SSHKEYGEN - echo The user chose ''$RERUN_SSHKEYGEN'' | tee -a $LOGFILE - if [ -z "$RERUN_SSHKEYGEN" -o "$RERUN_SSHKEYGEN" != "yes" -a "$RERUN_SSHKEYGEN" != "no" -a "$RERUN_SSHKEYGEN" != "change" ] - then - echo "You haven't specified whether to re-run 'ssh-keygen' or not. Please enter 'yes' , 'no' or 'change'. Exiting..." - exit 0; - fi - fi - else - if test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} - then - echo "The files containing the client public and private keys already exist on the local host. The current private key may have a passphrase associated with it. In case you find using passphrase inconvenient(although it is more secure), you can change to it empty through this script. Press 'change' if you want the script to change the passphrase for you. Press 'no' if you want to use your old passphrase, if you had one." - read RERUN_SSHKEYGEN - echo The user chose ''$RERUN_SSHKEYGEN'' | tee -a $LOGFILE - if [ -z "$RERUN_SSHKEYGEN" -o "$RERUN_SSHKEYGEN" != "yes" -a "$RERUN_SSHKEYGEN" != "no" -a "$RERUN_SSHKEYGEN" != "change" ] - then - echo "You haven't specified whether to re-run 'ssh-keygen' or not. Please enter 'yes' , 'no' or 'change'. Exiting..." - exit 0 - fi - fi - fi - fi - echo Creating .ssh directory on local host, if not present already | tee -a $LOGFILE - mkdir -p $HOME/.ssh | tee -a $LOGFILE -echo Creating authorized_keys file on local host | tee -a $LOGFILE -touch $HOME/.ssh/authorized_keys | tee -a $LOGFILE -echo Changing permissions on authorized_keys to 644 on local host | tee -a $LOGFILE -chmod 644 $HOME/.ssh/authorized_keys | tee -a $LOGFILE -mv -f $HOME/.ssh/authorized_keys $HOME/.ssh/authorized_keys.tmp | tee -a $LOGFILE -echo Creating known_hosts file on local host | tee -a $LOGFILE -touch $HOME/.ssh/known_hosts | tee -a $LOGFILE -echo Changing permissions on known_hosts to 644 on local host | tee -a $LOGFILE -chmod 644 $HOME/.ssh/known_hosts | tee -a $LOGFILE -mv -f $HOME/.ssh/known_hosts $HOME/.ssh/known_hosts.tmp | tee -a $LOGFILE - - -echo Creating config file on local host | tee -a $LOGFILE -echo If a config file exists already at $HOME/.ssh/config, it would be backed up to $HOME/.ssh/config.backup. -echo "Host *" > $HOME/.ssh/config.tmp | tee -a $LOGFILE -echo "ForwardX11 no" >> $HOME/.ssh/config.tmp | tee -a $LOGFILE - -if test -f $HOME/.ssh/config -then - cp -f $HOME/.ssh/config $HOME/.ssh/config.backup -fi - -mv -f $HOME/.ssh/config.tmp $HOME/.ssh/config | tee -a $LOGFILE -chmod 644 $HOME/.ssh/config - -if [ "$RERUN_SSHKEYGEN" = "yes" ] -then - echo Removing old private/public keys on local host | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub | tee -a $LOGFILE - echo Running SSH keygen on local host | tee -a $LOGFILE - $SSH_KEYGEN -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - -elif [ "$RERUN_SSHKEYGEN" = "change" ] -then - echo Running SSH Keygen on local host to change the passphrase associated with the existing private key | tee -a $LOGFILE - $SSH_KEYGEN -p -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE -elif test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} -then - continue -else - echo Removing old private/public keys on local host | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub | tee -a $LOGFILE - echo Running SSH keygen on local host with empty passphrase | tee -a $LOGFILE - $SSH_KEYGEN -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} -N '' | tee -a $LOGFILE -fi - -if [ $SHARED = "true" ] -then - if [ $USER = $USR ] - then -#No remote operations required - echo Remote user is same as local user | tee -a $LOGFILE - REMOTEHOSTS="" - chmod og-w $HOME $HOME/.ssh | tee -a $LOGFILE - else - REMOTEHOSTS="${firsthost}" - fi -else - REMOTEHOSTS="$HOSTS" -fi - -for host in $REMOTEHOSTS -do - echo Creating .ssh directory and setting permissions on remote host $host | tee -a $LOGFILE - echo "THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR "group" AND "others" ON THE HOME DIRECTORY FOR $USR. THIS IS AN SSH REQUIREMENT." | tee -a $LOGFILE - echo The script would create ~$USR/.ssh/config file on remote host $host. If a config file exists already at ~$USR/.ssh/config, it would be backed up to ~$USR/.ssh/config.backup. | tee -a $LOGFILE - echo The user may be prompted for a password here since the script would be running SSH on host $host. | tee -a $LOGFILE - $SSH -o StrictHostKeyChecking=no -x -l $USR $host "/bin/sh -c \" mkdir -p .ssh ; chmod og-w . .ssh; touch .ssh/authorized_keys .ssh/known_hosts; chmod 644 .ssh/authorized_keys .ssh/known_hosts; cp .ssh/authorized_keys .ssh/authorized_keys.tmp ; cp .ssh/known_hosts .ssh/known_hosts.tmp; echo \\"Host *\\" > .ssh/config.tmp; echo \\"ForwardX11 no\\" >> .ssh/config.tmp; if test -f .ssh/config ; then cp -f .ssh/config .ssh/config.backup; fi ; mv -f .ssh/config.tmp .ssh/config\"" | tee -a $LOGFILE - echo Done with creating .ssh directory and setting permissions on remote host $host. | tee -a $LOGFILE -done - -for host in $REMOTEHOSTS -do - echo Copying local host public key to the remote host $host | tee -a $LOGFILE - echo The user may be prompted for a password or passphrase here since the script would be using SCP for host $host. | tee -a $LOGFILE - - $SCP $HOME/.ssh/${IDENTITY}.pub $USR@$host:.ssh/authorized_keys | tee -a $LOGFILE - echo Done copying local host public key to the remote host $host | tee -a $LOGFILE -done - -cat $HOME/.ssh/${IDENTITY}.pub >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE - -for host in $HOSTS -do - if [ "$ADVANCED" = "true" ] - then - echo Creating keys on remote host $host if they do not exist already. This is required to setup SSH on host $host. | tee -a $LOGFILE - if [ "$SHARED" = "true" ] - then - IDENTITY_FILE_NAME=${IDENTITY}_$host - COALESCE_IDENTITY_FILES_COMMAND="cat .ssh/${IDENTITY_FILE_NAME}.pub >> .ssh/authorized_keys" - else - IDENTITY_FILE_NAME=${IDENTITY} - fi - - $SSH -o StrictHostKeyChecking=no -x -l $USR $host " /bin/sh -c \"if test -f .ssh/${IDENTITY_FILE_NAME}.pub && test -f .ssh/${IDENTITY_FILE_NAME}; then echo; else rm -f .ssh/${IDENTITY_FILE_NAME} ; rm -f .ssh/${IDENTITY_FILE_NAME}.pub ; $SSH_KEYGEN -t $ENCR -b $BITS -f .ssh/${IDENTITY_FILE_NAME} -N '' ; fi; ${COALESCE_IDENTITY_FILES_COMMAND} \"" | tee -a $LOGFILE - else -#At least get the host keys from all hosts for shared case - advanced option not set - if test $SHARED = "true" && test $ADVANCED = "false" - then - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will fetch the host keys from all hosts. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -o StrictHostKeyChecking=no -x -l $USR $host "/bin/sh -c true" - fi - fi -done - -for host in $REMOTEHOSTS -do - if test $ADVANCED = "true" && test $SHARED = "false" - then - $SCP $USR@$host:.ssh/${IDENTITY}.pub $HOME/.ssh/${IDENTITY}.pub.$host | tee -a $LOGFILE - cat $HOME/.ssh/${IDENTITY}.pub.$host >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub.$host | tee -a $LOGFILE - fi -done - -for host in $REMOTEHOSTS -do - if [ "$ADVANCED" = "true" ] - then - if [ "$SHARED" != "true" ] - then - echo Updating authorized_keys file on remote host $host | tee -a $LOGFILE - $SCP $HOME/.ssh/authorized_keys $USR@$host:.ssh/authorized_keys | tee -a $LOGFILE - fi - echo Updating known_hosts file on remote host $host | tee -a $LOGFILE - $SCP $HOME/.ssh/known_hosts $USR@$host:.ssh/known_hosts | tee -a $LOGFILE - fi - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will run SSH on the remote machine $host. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -x -l $USR $host "/bin/sh -c \"cat .ssh/authorized_keys.tmp >> .ssh/authorized_keys; cat .ssh/known_hosts.tmp >> .ssh/known_hosts; rm -f .ssh/known_hosts.tmp .ssh/authorized_keys.tmp\"" | tee -a $LOGFILE -done - -cat $HOME/.ssh/known_hosts.tmp >> $HOME/.ssh/known_hosts | tee -a $LOGFILE -cat $HOME/.ssh/authorized_keys.tmp >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE -#Added chmod to fix BUG NO 5238814 -chmod 644 $HOME/.ssh/authorized_keys -#Fix for BUG NO 5157782 -chmod 644 $HOME/.ssh/config -rm -f $HOME/.ssh/known_hosts.tmp $HOME/.ssh/authorized_keys.tmp | tee -a $LOGFILE -echo SSH setup is complete. | tee -a $LOGFILE -fi -fi - -echo | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE -echo Verifying SSH setup | tee -a $LOGFILE -echo =================== | tee -a $LOGFILE -echo The script will now run the 'date' command on the remote nodes using ssh | tee -a $LOGFILE -echo to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP, | tee -a $LOGFILE -echo THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR | tee -a $LOGFILE -echo PASSWORDS. If you see any output other than date or are prompted for the | tee -a $LOGFILE -echo password, ssh is not setup correctly and you will need to resolve the | tee -a $LOGFILE -echo issue and set up ssh again. | tee -a $LOGFILE -echo The possible causes for failure could be: | tee -a $LOGFILE -echo 1. The server settings in /etc/ssh/sshd_config file do not allow ssh | tee -a $LOGFILE -echo for user $USR. | tee -a $LOGFILE -echo 2. The server may have disabled public key based authentication. -echo 3. The client public key on the server may be outdated. -echo 4. ~$USR or ~$USR/.ssh on the remote host may not be owned by $USR. | tee -a $LOGFILE -echo 5. User may not have passed -shared option for shared remote users or | tee -a $LOGFILE -echo may be passing the -shared option for non-shared remote users. | tee -a $LOGFILE -echo 6. If there is output in addition to the date, but no password is asked, | tee -a $LOGFILE -echo it may be a security alert shown as part of company policy. Append the | tee -a $LOGFILE -echo "additional text to the /sysman/prov/resources/ignoreMessages.txt file." | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE -#read -t 30 dummy - for host in $HOSTS - do - echo --$host:-- | tee -a $LOGFILE - - echo Running $SSH -x -l $USR $host date to verify SSH connectivity has been setup from local host to $host. | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR." | tee -a $LOGFILE - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will run SSH on the remote machine $host. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -l $USR $host "/bin/sh -c date" | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - - -if [ "$EXHAUSTIVE_VERIFY" = "true" ] -then - for clienthost in $HOSTS - do - - if [ "$SHARED" = "true" ] - then - REMOTESSH="$SSH -i .ssh/${IDENTITY}_${clienthost}" - else - REMOTESSH=$SSH - fi - - for serverhost in $HOSTS - do - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo Verifying SSH connectivity has been setup from $clienthost to $serverhost | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL." | tee -a $LOGFILE - $SSH -l $USR $clienthost "$REMOTESSH $serverhost \"/bin/sh -c date\"" | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - echo -Verification from $clienthost complete- | tee -a $LOGFILE - done -else - if [ "$ADVANCED" = "true" ] - then - if [ "$SHARED" = "true" ] - then - REMOTESSH="$SSH -i .ssh/${IDENTITY}_${firsthost}" - else - REMOTESSH=$SSH - fi - for host in $HOSTS - do - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo Verifying SSH connectivity has been setup from $firsthost to $host | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL." | tee -a $LOGFILE - $SSH -l $USR $firsthost "$REMOTESSH $host \"/bin/sh -c date\"" | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - echo -Verification from $clienthost complete- | tee -a $LOGFILE - fi -fi -echo "SSH verification complete." | tee -a $LOGFILE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/stopOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/stopOracle.sh deleted file mode 100644 index 582d124642..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/18.3.0/stopOracle.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Stop Oracle RAC DB and Deconfigure the cluster. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh -touch $logfile -chmod 666 /tmp/orod.log -progname="$(basename $0)" - -########### Stop Svc ############ -stop_svc () { - print_message "Stopping container and performing Grid stop." - $GRID_HOME/bin/crsctl stop crs -f -} - -########### Deconfig Node from the cluster ############ -deconfig_cluster () { - print_message "received, shutting down database!" - node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) - if [ $node_count -gt 1 ]; then - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force - elif [ $node_count -eq 1 ]; then - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force -last - else - print_message "No need to deinstall cluster as it is not configured" - fi - - print_message " Removing entries from /etc/hosts" - sed -i '/$PUBLIC_HOSTNAME/d' /etc/hosts - sed -i '/$PRIVATE_HOSTNAME/d' /etc/hosts - sed -i '/$VIP_HOSTNAME/d' /etc/hosts -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -if [ "${STOP_TYPE}" == "DECONFIGURE" ]; then -deconfig_cluster -else -stop_svc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/AddNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/AddNode.sh deleted file mode 100644 index 695ee40b51..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/AddNode.sh +++ /dev/null @@ -1,976 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Add a Grid node and add Oracle Database instance based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variables and Constants ################# -declare -r TRUE=0 -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -x logdir="/tmp" -declare -x GIMR_DB_FLAG='false' ## GIMR DB Check by default is false -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x EXISTING_CLS_NODE ## Computed during the program execution. -declare -x EXISTING_CLS_NODES ## You must all the exisitng nodes of the cluster in comma separated strings. Otherwise installation will fail. -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS='false' ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PASSWORD_FILE='pwdfile' -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_TYPE='STANDARD' ## Default instllation is STANDARD. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -r OSDBA='dba' -declare -r OSASM='asmadmin' -declare -r INSTALL_TYPE='CRS_ADDNODE' -declare -x SCAN_TYPE='LOCAL_SCAN' -declare -x SHARED_SCAN -declare -x DB_ASM_DISKGROUP='DATA' -declare -x CONFIGURE_AFD_FLAG='false' -declare -x CONFIGURE_RHPS_FLAG='false' -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -# shellcheck disable=SC1091 -if [ -f "/etc/rac_env_vars" ]; then - source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -# shellcheck disable=SC1091 -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -all_check() -{ -check_pub_host_name -check_cls_node_names -check_ip_env_vars -check_passwd_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -#####################Function related to public hostname, IP and domain name check begin here ######## - -check_pub_host_name() -{ -local domain_name -local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - -} - -############### Function related to public hostname, IP and domain checks ends here ########## - -############## Function related to check exisitng cls nodes begin here ####################### -check_cls_node_names() -{ -if [ -z "${EXISTING_CLS_NODES}" ]; then - error_exit "For Node Addition, please provide the existing clustered node name." -else - - if isStringExist "${EXISTING_CLS_NODES}" "${PUBLIC_HOSTNAME}"; then - error_exit "EXISTING_CLS_NODES ${EXISTING_CLS_NODES} contains new node name ${PUBLIC_HOSTNAME}" - fi - -print_message "Setting Existing Cluster Node for node addition operation. This will be retrieved from ${EXISTING_CLS_NODES}" - -EXISTING_CLS_NODE="$( cut -d ',' -f 1 <<< "$EXISTING_CLS_NODES" )" - -if [ -z "${EXISTING_CLS_NODE}" ]; then - error_exit " Existing Node Name of the cluster not set or set to empty string" -else - print_message "Existing Node Name of the cluster is set to ${EXISTING_CLS_NODE}" - -if resolveip "${EXISTING_CLS_NODE}"; then - print_message "Existing Cluster node resolved to IP. Check passed" -else - error_exit "Existing Cluster node does not resolved to IP. Check Failed" -fi -fi -fi -} - -############## Function related to check exisitng cls nodes begin here ####################### - -check_ip_env_vars () -{ -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is not set or set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is not set ot set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi - -if [ -z "${SCAN_NAME}" ]; then - print_message "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if resolveip "${SCAN_NAME}"; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z "${SCAN_IP}" ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is not set ot set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname is not set ot set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - - -if [ -z "${CMAN_HOSTNAME}" ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z "${CMAN_IP}" ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -} -################check ip env vars function ends here ############################ - -################ Check passwd env vars function begin here ###################### -check_passwd_env_vars() -{ -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read -r PASSWORD < /tmp/${COMMON_OS_PWD_FILE} -rm -f /tmp/${COMMON_OS_PWD_FILE} - -elif [ -f "${SECRET_VOLUME}/${PASSWORD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl base64 -d -in "${SECRET_VOLUME}/${PASSWORD_FILE}" -out /tmp/"${PASSWORD_FILE}"' - - if eval "$cmd"; then - print_message "Password file generated" - else - error_exit "Error occurred during password file ${PASSWORD_FILE} generation" - fi - - read -r PASSWORD < /tmp/${PASSWORD_FILE} - rm -f /tmp/${PASSWORD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ -n "${GRID_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read -r GRID_PASSWORD < /tmp/"${GRID_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ -n "${ORACLE_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read -r ORACLE_PASSWORD < /tmp/"${ORACLE_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi - -} - -############### Check password env vars function ends here ######################## - -############### Check grid Response file function begin here ###################### -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f "$COMMON_SCRIPTS"/"$GRID_RESPONSE_FILE" ];then -cp "$COMMON_SCRIPTS"/"$GRID_RESPONSE_FILE" "$logdir"/"$GRID_RESPONSE_FILE" -else -error_exit "\"$COMMON_SCRIPTS\"/\"$GRID_RESPONSE_FILE\" does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -} - -############ Check responsefile function end here ###################### - -########### Check db env vars function begin here ####################### -check_db_env_vars () -{ -if [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -fi -if [ -z "${ORACLE_SID}" ]; then - print_message "ORACLE_SID is not defined" -else - print_message "ORACLE_SID is set to $ORACLE_SID" -fi - -} - -################# Check db env vars end here ################################## - -################ All Check Functions end here ##################################### - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local ssh_pid -local stat - -if [ -z "$CRS_NODES" ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - - -IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$CRS_NODES" -# shellcheck disable=SC2086 -CLUSTER_NODES=( "$(echo $EXISTING_CLS_NODES | tr ',' ' ')" ) - -print_message "Cluster Nodes are CLUSTER_NODES[*]" -print_message "Running SSH setup for $GRID_USER user between nodes ${CLUSTER_NODES[*]}" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES}\" \"$GRID_PASSWORD\""' -(eval "$cmd") & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Grid user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $GRID_USER user" -fi - -print_message "Running SSH setup for $DB_USER user between nodes ${CLUSTER_NODES[*]}" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES}\" \"$ORACLE_PASSWORD\""' -(eval "$cmd") & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Oracle user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $DB_USER user" -fi -} - -checkSSH () -{ - -local ssh_pid -local stat -local status - -#IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$PUBLIC_HOSTNAME" -# shellcheck disable=SC2086 -CLUSTER_NODES1=$(echo \"$EXISTING_CLS_NODES\" | tr ',' ' ') - -print_message "Clusters for ssh check set to : $CLUSTER_NODES1" - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo "$cmd" - -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo "$cmd" -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -###################################### SSH Function End here #################################### - -######################Add Node Functions #################################### -runorainstroot() -{ -"$INVENTORY"/orainstRoot.sh -} - -runrootsh () -{ -# shellcheck disable=SC2034 -local ORACLE_HOME=$1 - -local USER=$2 - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "$PUBLIC_HOSTNAME" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -# shellcheck disable=SC2016 -cmd='su - $USER -c "ssh $node sudo $ORACLE_HOME/root.sh"' -eval "$cmd" -done - -} - -generate_response_file () -{ -cp "$SCRIPT_DIR"/"$ADDNODE_RSP" "$logdir"/"$ADDNODE_RSP" -chmod 666 "$logdir"/"$ADDNODE_RSP" - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ -z "${CRS_CONFIG_NODES}" ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" - print_message "Clustered Nodes are set to $CRS_CONFIG_NODES" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -r "s|###PUBLIC_HOSTNAME###|$PUBLIC_HOSTNAME|g" "$logdir"/"$ADDNODE_RSP" -sed -i -r "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###OSDBA###|$OSDBA|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###OSOPER###|$OSOPER|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###OSASM###|$OSASM|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" "$logdir"/"$ADDNODE_RSP" -fi - -} - -###### Cluster Verification function ####### -CheckRemoteCluster () -{ -local cmd; -local stat; -local node=$EXISTING_CLS_NODE - -print_message "Checking Cluster" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check crs\""' - - -if eval "$cmd";then -print_message "Cluster Check on remote node passed" -else -error_exit "Cluster Check on remote node failed" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check cluster\""' - -if eval "$cmd"; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then -# shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/srvctl status mgmtdb\""' - - - if eval "$cmd"; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check crsd\""' - - -if eval "$cmd"; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check cssd\""' - -if eval "$cmd"; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check evmd\""' - -if eval "$cmd"; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -} - -setDevicePermissions () -{ - -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "$PUBLIC_HOSTNAME" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ -n "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ -n "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - # shellcheck disable=SC2034 - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -done - -} - -checkCluster () -{ -local cmd; -local stat; - -print_message "Checking Cluster" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crs"' - -if eval "$cmd";then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cluster"' - -if eval "$cmd"; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then -# shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "$GRID_HOME/bin/srvctl status mgmtdb"' - - if eval "$cmd"; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crsd"' - -if eval "$cmd"; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cssd"' - -if eval "$cmd"; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check evmd"' - -if eval "$cmd"; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f $logdir/cluvfy_check.txt - -} - -checkClusterClass () -{ -print_message "Checking Cluster Class" -local cluster_class -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl get cluster class"' -cluster_class=$(eval "$cmd") -print_message "Cluster class is $cluster_class" -CLUSTER_TYPE=$(echo "$cluster_class" | awk -F \' '{ print $2 }' | awk '{ print $1 }') -} - - -###### Grid install & Cluster Verification utility Function ####### -cluvfyCheck() -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP -local cmd -local stat - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "$PUBLIC_HOSTNAME" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv $logdir/cluvfy_check.txt $logdir/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -#cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $hostname -vip $vip_hostname\" | tee -a $logdir/cluvfy_check.txt"' -#eval $cmd - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for cls_node in "${CLUSTER_NODES[@]}"; do -print_message "ssh to the node $node and executing cvu checks on $cls_node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $cls_node\" | tee -a $logdir/cluvfy_check.txt"' -eval "$cmd" -done - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - $logdir/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat $logdir/cluvfy_check.txt > "$STD_OUT_FILE" - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -addGridNode () -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP - -local cmd -local stat - -print_message "Copying $responsefile on remote node $node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "scp $responsefile $node:$logdir"' -eval "$cmd" - -print_message "Running GridSetup.sh on $node to add the node to existing cluster" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/gridSetup.sh -silent -waitForCompletion -noCopy -skipPrereqs -responseFile $responsefile\" | tee -a $logfile"' -eval "$cmd" - -print_message "Node Addition performed. removing Responsefile" -rm -f "$responsefile" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"rm -f $responsefile\""' -#eval $cmd - -} - -###########DB Node Addition Functions############## -addDBNode () -{ -local node=$EXISTING_CLS_NODE - -if [ -z "$CRS_NODES" ]; then - new_node_hostname=$PUBLIC_HOSTNAME -else - new_node_hostname=$CRS_NODES -fi - -local stat=3 -local cmd -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/addnode/addnode.sh \"CLUSTER_NEW_NODES={$new_node_hostname}\" -skipPrereqs -waitForCompletion -ignoreSysPrereqs -noCopy -silent\" | tee -a $logfile"' - -if eval "$cmd"; then -print_message "Node Addition went fine for $new_node_hostname" -else -error_exit "Node Addition failed for $new_node_hostname" -fi -} - -addDBInst () -{ -# Check whether ORACLE_SID is passed on -local HOSTNAME=$PUBLIC_HOSTNAME -local node=$EXISTING_CLS_NODE -local stat=3 -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "$PUBLIC_HOSTNAME" ) -else -# shellcheck disable=SC2086 - CLUSTER_NODES=( "$( echo $CRS_NODES | tr ',' ' ' )" ) -fi - -if [ -z "${ORACLE_SID}" ];then - error_exit "ORACLE SID is not defined. Cannot Add Instance" -fi - -if [ -z "${HOSTNAME}" ]; then -error_exit "Hostname is not defined" -fi - -# shellcheck disable=SC2034 -for new_node in "${CLUSTER_NODES[@]}"; do -print_message "Adding DB Instance on $node" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/bin/dbca -addInstance -silent -nodeName $new_node -gdbName $ORACLE_SID\" | tee -a $logfile"' -eval "$cmd" -done - -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - - -setremotelistener () -{ -local status -local cmd - -if resolveip "$CMAN_HOSTNAME"; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -########################## DB Functions End here ########################## - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - - -###### Etc Host and other Checks and setup before proceeding installation ##### -all_check -print_message "Setting random password for root/$GRID_USER/$DB_USER user" -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER "$GRID_PASSWORD" -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER "$ORACLE_PASSWORD" -print_message "Setting random password for root user" -setpasswd root "$PASSWORD" - -#### Setting up SSH ####### -setupSSH -checkSSH - -#### Grid Node Addition ##### -print_message "Setting Device permission to grid and asmadmin on all the cluster nodes" -setDevicePermissions -print_message "Checking Cluster Status on $EXISTING_CLS_NODE" -CheckRemoteCluster -print_message "Generating Responsefile for node addition" -generate_response_file -print_message "Running Cluster verification utility for new node $PUBLIC_HOSTNAME on $EXISTING_CLS_NODE" -cluvfyCheck -print_message "Running Node Addition and cluvfy test for node $PUBLIC_HOSTNAME" -addGridNode -print_message "Running root.sh on node $PUBLIC_HOSTNAME" -runrootsh "$GRID_HOME" "$GRID_USER" -checkCluster -print_message "Checking Cluster Class" -checkClusterClass -print_message "Running User Script for $GRID_USER user" -su - $GRID_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $GRID_SCRIPT_ROOT GRID" - -###### DB Node Addition ###### -if [ "${CLUSTER_TYPE}" != 'Domain' ]; then -if [ "${RUN_DBCA}" == 'true' ]; then -print_message "Performing DB Node addition" -addDBNode -print_message "Running root.sh" -runrootsh "$DB_HOME" "$DB_USER" -print_message "Adding DB Instance" -addDBInst -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script for $DB_USER user" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $DB_SCRIPT_ROOT DB" -print_message "Setting Remote Listener" -setremotelistener -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Checksum b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Checksum deleted file mode 100644 index 821d5a3ad9..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Checksum +++ /dev/null @@ -1,2 +0,0 @@ -b7c4c66f801f92d14faa0d791ccda721 LINUX.X64_193000_grid_home.zip -1858bd0d281c60f4ddabd87b1c214a4f LINUX.X64_193000_db_home.zip diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/DelNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/DelNode.sh deleted file mode 100644 index 3b78aeacd4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/DelNode.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Delete a Grid node and add Oracle Database instance. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -declare -a cluster_nodes -DEL_NODE=${1} -NODE_HOSTNAME=$(hostname) -node_count=0 - -check_env_vars () -{ - -if [ -z ${DEL_NODE} ];then -echo "Please provide node name which you want to delete"; -exit 1; -else -echo "Deleting node name set to ${DEL_NODE}" -fi -} - -containsNode () { -local nodes match="$1" - shift -nodes=$1 -for e in "${cluster_nodes[@]}" -do - [[ "$e" == "$match" ]] && return 0; -done -return 1 -} - -setNode () { -cluster_nodes=( $($GRID_HOME/bin/olsnodes | awk '{ print $1 }') ) -node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -} - -delNode () { -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster $cluster_nodes" -exit 1 ; -fi - - if [ ${node_count} -eq 1 -a ${DEL_NODE} == ${NODE_HOSTNAME} ] ;then - echo "Stopping the Grid and deconfigure the cluster." - $GRID_HOME/bin/crsctl stop cluster - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force -else - -echo "Stopping Grid on deleting node" -cmd='su - grid -c "ssh ${DEL_NODE} \"sudo ${GRID_HOME}/bin/crsctl stop cluster\""' -eval $cmd - -echo "Deleting the node from the cluster" -$GRID_HOME/bin/crsctl delete node -n ${DEL_NODE} - -echo "getting updated cluster node info from the cluster" -setNode - -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster $cluster_nodes" -exit 0 ; -else -echo "Node ${DEL_NODE} is still a part of cluster." -exit 1; -fi - -fi -} - - -########################################## -############# MAIN######################### -########################################### -check_env_vars -setNode -delNode diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile deleted file mode 100644 index 76a0870184..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile +++ /dev/null @@ -1,299 +0,0 @@ -# Copyright (c) 2022, Oracle and/or its affiliates -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 19c Release 3 Real Application Clusters -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_193000_grid_home.zip -# (2 LINUX.X64_193000_db_home.zip -# Download Oracle Grid 19c Release 3 Enterprise Edition for Linux x64 -# Download Oracle Database 19c Release 3 Enterprise Edition for Linux x64 -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Run: -# $ docker build -t oracle/database:19.3.0-rac . -# -# Pull base image -# --------------- - -# hadolint ignore=DL3006,DL3025 - -ARG BASE_OL_IMAGE=oraclelinux:7-slim - -# Pull base image -# --------------- -# hadolint ignore=DL3006,DL3025 -FROM $BASE_OL_IMAGE AS base -ARG SLIMMING=false -# Labels -# ------ -LABEL "provider"="Oracle" \ - "issues"="https://github.com/oracle/docker-images/issues" \ - "volume.setup.location1"="/opt/scripts" \ - "volume.startup.location1"="/opt/scripts/startup" \ - "port.listener"="1521" \ - "port.oemexpress"="5500" - -# Argument to control removal of components not needed after db software installation -ARG INSTALL_FILE_1="LINUX.X64_193000_grid_home.zip" -ARG INSTALL_FILE_2="LINUX.X64_193000_db_home.zip" -ARG DB_EDITION="EE" -ARG USER="root" -ARG WORKDIR="/rac-work-dir" - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -# hadolint ignore=DL3044 -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - GRID_BASE=/u01/app/grid \ - GRID_HOME=/u01/app/19.3.0/grid \ - INSTALL_FILE_1=$INSTALL_FILE_1 \ - GRID_INSTALL_RSP="gridsetup_19c.rsp" \ - GRID_SW_INSTALL_RSP="grid_sw_install_19c.rsp" \ - GRID_SETUP_FILE="setupGrid.sh" \ - FIXUP_PREQ_FILE="fixupPreq.sh" \ - INSTALL_GRID_BINARIES_FILE="installGridBinaries.sh" \ - INSTALL_GRID_PATCH="applyGridPatch.sh" \ - INVENTORY=/u01/app/oraInventory \ - CONFIGGRID="configGrid.sh" \ - ADDNODE="AddNode.sh" \ - DELNODE="DelNode.sh" \ - INITSH="initsh" \ - ADDNODE_RSP=""grid_addnode.rsp"" \ - SETUPSSH="setupSSH.expect" \ - DOCKERORACLEINIT="dockeroracleinit" \ - GRID_USER_HOME="/home/grid" \ - SETUPGRIDENV="setupGridEnv.sh" \ - ASM_DISCOVERY_DIR="/dev" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ -# RAC DB Env Variables - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 \ - INSTALL_FILE_2="$INSTALL_FILE_2" \ - DB_INSTALL_RSP="db_sw_install_19c.rsp" \ - DBCA_RSP="dbca_19c.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - PWD_FILE="setPassword.sh" \ - RUN_FILE="runOracle.sh" \ - STOP_FILE="stopOracle.sh" \ - ENABLE_RAC_FILE="enableRAC.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - REMOTE_LISTENER_FILE="remoteListener.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - GRID_HOME_CLEANUP="GridHomeCleanup.sh" \ - ORACLE_HOME_CLEANUP="OracleHomeCleanup.sh" \ - DB_USER="oracle" \ - GRID_USER="grid" \ - WORKDIR=$WORKDIR \ - USER=$USER \ - SLIMMING=$SLIMMING \ -# COMMON ENV Variable - FUNCTIONS="functions.sh" \ - COMMON_SCRIPTS="/common_scripts" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - RESET_FAILED_UNITS="resetFailedUnits.sh" \ - SET_CRONTAB="setCrontab.sh" \ - CRONTAB_ENTRY="crontabEntry" \ - EXPECT="/usr/bin/expect" \ - BIN="/usr/sbin" \ - container="true" - -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - GRID_PATH=$GRID_HOME/bin:$GRID_HOME/OPatch/:$GRID_HOME/perl/bin:/usr/sbin:/bin:/sbin \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:$DB_HOME/perl/bin:/usr/sbin:/bin:/sbin \ - GRID_LD_LIBRARY_PATH=$GRID_HOME/lib:/usr/lib:/lib \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -############################################# -# ------------------------------------------- -# Start new stage for installing the grid and DB for slim image -# ------------------------------------------- -############################################# -FROM base AS rac-image-slim-false -ARG SLIMMING - -COPY $SETUP_LINUX_FILE $GRID_SETUP_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $INSTALL_SCRIPTS/ - -RUN chmod 755 "$INSTALL_SCRIPTS"/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - rm -f "$INSTALL_DIR"/install/* && \ - sync - -############################################# -# ------------------------------------------- -# Start new stage for installing the grid and DB -# ------------------------------------------- -############################################# -FROM base AS rac-image-slim-true -ARG SLIMMING - -COPY $SETUP_LINUX_FILE $GRID_SETUP_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $INSTALL_SCRIPTS/ - -RUN chmod 755 "$INSTALL_SCRIPTS"/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - rm -f "$INSTALL_DIR"/install/* && \ - sync - -############################################# -# ------------------------------------------- -# Start new stage for installing the grid and DB -# ------------------------------------------- -############################################# -# hadolint ignore=DL3006 -FROM rac-image-slim-false AS builder -ARG SLIMMING - -COPY $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $INSTALL_GRID_BINARIES_FILE $INSTALL_FILE_1* $INSTALL_FILE_2* $INSTALL_SCRIPTS/ - -RUN chmod 755 "${INSTALL_SCRIPTS}"/*.sh - -## Install software if SLIMMING is false -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}"x != "truex" ]; then \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - su $GRID_USER -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su $DB_USER -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su $DB_USER -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su $GRID_USER -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su $DB_USER -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - :; \ - fi - -RUN rm -f "${INSTALL_DIR}"/install/* && \ - sync -############################################# -FROM rac-image-slim-true AS builder-slim -ARG SLIMMING - -COPY $FIXUP_PREQ_FILE $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $INSTALL_GRID_BINARIES_FILE $INSTALL_FILE_1* $INSTALL_FILE_2* $INSTALL_SCRIPTS/ - -RUN chmod 755 "${INSTALL_SCRIPTS}"/*.sh - -## Install software if SLIMMING is false -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - su $GRID_USER -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su $DB_USER -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su $DB_USER -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su $GRID_USER -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su $DB_USER -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - :; \ - fi - -RUN rm -f "$INSTALL_DIR"/install/* && \ - sync -############################################# -# ------------------------------------------- -# Start new image for grid & database runtime -# ------------------------------------------- -############################################# -# hadolint ignore=DL3006 -FROM rac-image-slim-false AS final - -# Setup Scripts -COPY $FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ - -COPY $RUN_FILE $INITSH $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_FAILED_UNITS $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SET_CRONTAB $SCRIPT_DIR/ - -COPY --from=builder /u01 /u01 - -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - "$INVENTORY"/orainstRoot.sh && \ - "$GRID_HOME"/root.sh && \ - "$DB_HOME"/root.sh && \ - chmod 666 "${SCRIPT_DIR}"/*.rsp && \ - :; \ - fi && \ - chmod 755 $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - "$INSTALL_DIR"/install/"$FIXUP_PREQ_FILE" && \ - sync && \ - chmod 755 "$SCRIPT_DIR"/*.sh && \ - chmod 666 "$SCRIPT_DIR"/*.rsp && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ - chmod +x /etc/rc.d/rc.local && \ - cp "$SCRIPT_DIR"/"$INITSH" /usr/bin/"$INITSH" && \ - chmod 755 /usr/bin/"$INITSH" && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f "$INSTALL_DIR"/install/* && \ - sync - -USER ${USER} -VOLUME ["/common_scripts"] -WORKDIR $WORKDIR - -# Define default command to start Oracle Grid and RAC Database setup. -# hadolint ignore=DL3006,DL3025 -ENTRYPOINT "/usr/bin/$INITSH" -########################################## -FROM rac-image-slim-true AS final-slim - -# Setup Scripts -COPY $FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ - -COPY $RUN_FILE $INITSH $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_FAILED_UNITS $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SET_CRONTAB $SCRIPT_DIR/ - -COPY --from=builder /u01 /u01 - -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - $DB_HOME/root.sh && \ - :; \ - fi && \ - chmod 755 $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ - chmod +x /etc/rc.d/rc.local && \ - cp $SCRIPT_DIR/$INITSH /usr/bin/$INITSH && \ - chmod 755 /usr/bin/$INITSH && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f $INSTALL_DIR/install/* && \ - sync - -USER ${USER} -VOLUME ["/common_scripts"] -WORKDIR $WORKDIR - -# Define default command to start Oracle Grid and RAC Database setup. -# hadolint ignore=DL3025 -ENTRYPOINT /usr/bin/$INITSH diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile_orig b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile_orig deleted file mode 100644 index abb87f678a..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/Dockerfile_orig +++ /dev/null @@ -1,132 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 19c Release 3 Real Application Clusters -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_180000_db_home.zip -# (2) LINUX.X64_180000_grid_home.zip -# Download Oracle Grid 19c Release 3 Enterprise Edition for Linux x64 -# Download Oracle Database 19c Release 3 Enterprise Edition for Linux x64 -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Run: -# $ docker build -t oracle/database:19.3.0-rac . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Paramdeep Saini - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - GRID_BASE=/u01/app/grid \ - GRID_HOME=/u01/app/19.3.0/grid \ - INSTALL_FILE_1="grid_home.zip" \ - GRID_INSTALL_RSP="gridsetup_19c.rsp" \ - GRID_SW_INSTALL_RSP="grid_sw_install_19c.rsp" \ - GRID_SETUP_FILE="setupGrid.sh" \ - FIXUP_PREQ_FILE="fixupPreq.sh" \ - INSTALL_GRID_BINARIES_FILE="installGridBinaries.sh" \ - INSTALL_GRID_PATCH="applyGridPatch.sh" \ - INVENTORY=/u01/app/oraInventory \ - CONFIGGRID="configGrid.sh" \ - ADDNODE="AddNode.sh" \ - DELNODE="DelNode.sh" \ - ADDNODE_RSP="grid_addnode.rsp" \ - SETUPSSH="setupSSH.expect" \ - DOCKERORACLEINIT="dockeroracleinit" \ - GRID_USER_HOME="/home/grid" \ - SETUPGRIDENV="setupGridEnv.sh" \ - ASM_DISCOVERY_DIR="/dev" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ -# RAC DB Env Variables - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 \ - INSTALL_FILE_2="db_home.zip" \ - DB_INSTALL_RSP="db_sw_install_19c.rsp" \ - DBCA_RSP="dbca_19c.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - PWD_FILE="setPassword.sh" \ - RUN_FILE="runOracle.sh" \ - STOP_FILE="stopOracle.sh" \ - ENABLE_RAC_FILE="enableRAC.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - REMOTE_LISTENER_FILE="remoteListener.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ -# COMMON ENV Variable - FUNCTIONS="functions.sh" \ - COMMON_SCRIPTS="/common_scripts" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - EXPECT="/usr/bin/expect" \ - BIN="/usr/sbin" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - GRID_PATH=$GRID_HOME/bin:$GRID_HOME/OPatch/:/usr/sbin:$PATH \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:/usr/sbin:$PATH \ - GRID_LD_LIBRARY_PATH=$GRID_HOME/lib:/usr/lib:/lib \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# COPY Binaries -COPY $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $SETUP_LINUX_FILE $GRID_SETUP_FILE $INSTALL_GRID_BINARIES_FILE $FIXUP_PREQ_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $INSTALL_FILE_1 $INSTALL_FILE_2 $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-18c.conf && \ - su grid -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su oracle -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - rm -rf $INSTALL_DIR/install && \ - rm -rf $INSTALL_DIR/install && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 755 $SCRIPT_DIR/*.expect && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - chown root:oinstall $GRID_HOME/bin/$DOCKERORACLEINIT && \ - chmod 4755 $GRID_HOME/bin/$DOCKERORACLEINIT && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-18c-firstboot && \ - ln -s $GRID_HOME/bin/$DOCKERORACLEINIT /usr/sbin/oracleinit && \ - chmod +x /etc/rc.d/rc.local && \ - sed -i 's/#X11UseLocalhost.*/X11UseLocalhost no/' /etc/ssh/sshd_config && \ - sync - -USER grid -WORKDIR /home/grid -VOLUME ["/common_scripts"] - -# Define default command to start Oracle Grid and RAC Database setup. - -CMD ["/usr/sbin/oracleinit"] diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/GridHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/GridHomeCleanup.sh deleted file mode 100644 index 3f889a4e99..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/GridHomeCleanup.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $GRID_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/${GRID_USER}/.bashrc - -ORACLE_HOME=${GRID_HOME} - -rm -rf /u01/app/grid/* -rm -rf $GRID_HOME/log -rm -rf $GRID_HOME/logs -rm -rf $GRID_HOME/crs/init -rm -rf $GRID_HOME/crs/install/rhpdata -rm -rf $GRID_HOME/crs/log -rm -rf $GRID_HOME/racg/dump -rm -rf $GRID_HOME/srvm/log -rm -rf $GRID_HOME/cv/log -rm -rf $GRID_HOME/cdata -rm -rf $GRID_HOME/bin/core* -rm -rf $GRID_HOME/bin/diagsnap.pl -rm -rf $GRID_HOME/cfgtoollogs/* -rm -rf $GRID_HOME/network/admin/listener.ora -rm -rf $GRID_HOME/crf -rm -rf $GRID_HOME/ologgerd/init -rm -rf $GRID_HOME/osysmond/init -rm -rf $GRID_HOME/ohasd/init -rm -rf $GRID_HOME/ctss/init -rm -rf $GRID_HOME/dbs/.*.dat -rm -rf $GRID_HOME/oc4j/j2ee/home/log -rm -rf $GRID_HOME/inventory/Scripts/ext/bin/log -rm -rf $GRID_HOME/inventory/backup/* -rm -rf $GRID_HOME/mdns/init -rm -rf $GRID_HOME/gnsd/init -rm -rf $GRID_HOME/evm/init -rm -rf $GRID_HOME/gipc/init -rm -rf $GRID_HOME/gpnp/gpnp_bcp.* -rm -rf $GRID_HOME/gpnp/init -rm -rf $GRID_HOME/auth -rm -rf $GRID_HOME/tfa -rm -rf $GRID_HOME/suptools/tfa/release/diag -rm -rf $GRID_HOME/rdbms/audit/* -rm -rf $GRID_HOME/rdbms/log/* -rm -rf $GRID_HOME/network/log/* -rm -rf $GRID_HOME/inventory/Scripts/comps.xml.* -rm -rf $GRID_HOME/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf $GRID_HOME/inventory/Scripts/oraInst.loc.* -rm -rf $GRID_HOME/inventory/Scripts/inventory.xml.* -rm -rf $GRID_HOME/log_file_client.log diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiNodeInstall.py b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiNodeInstall.py deleted file mode 100644 index 51568c582c..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiNodeInstall.py +++ /dev/null @@ -1,326 +0,0 @@ -#!/usr/bin/python -#!/usr/bin/env python - -########################################################################################################### - - -# stig.py -# -# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. -# -# NAME -# buildImage.py - -# -# DESCRIPTION -# -# -# NOTES - - -# Global Variables -Period = '.' - - -# Import standard python libraries -import subprocess -import sys -import time -import datetime -import os -import commands -import getopt -import shlex -import json -import logging -import socket - - -etchostfile="/etc/hosts" -racenvfile="/etc/rac_env_vars" -domain="none" - -def Usage(): - pass - -def Update_Envfile(common_params): - global racenvfile - global domain - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - - for keys in common_params.keys(): - if keys == 'domain': - domain = common_params[keys] - - env_var_str = "export " + keys.upper() + "=" + common_params[keys] - Redirect_To_File("Env vars for RAC Env set to " + env_var_str, "INFO") - filedata1 = filedata1 + "\n" + env_var_str - - Write_To_File(filedata1,racenvfile) - return "Env file updated sucesfully" - - -def Update_Hostfile(node_list): - counter=0 - global etchostfile - global domain - filedata = None - filedata1 = None - f = open(etchostfile, 'r') - filedata = f.read() - f.close - - global racenvfile - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - host_name=socket.gethostname() - - if domain == 'none': - fqdn_hostname=socket.getfqdn() - domain=fqdn_hostname.split(".")[1] - if not host_name: - Redirect_To_File("Unable to get the container host name! Exiting..", "INFO") - else: - Redirect_To_File("Container Hostname and Domain name : " + host_name + " " + domain, "INFO") - -# Replace and add the target string - for dict_list in node_list: - print dict_list - if "public_hostname" in dict_list.keys(): - pubhost = dict_list['public_hostname'] - if host_name == pubhost: - Redirect_To_File("PUBLIC Hostname set to" + pubhost, "INFO") - PUBLIC_HOSTNAME=pubhost - if counter == 0: - CRS_NODES = pubhost - CRS_CONFIG_NODES = pubhost - counter = counter + 1 - else: - CRS_NODES = CRS_NODES + "," + pubhost - CRS_CONFIG_NODES = CRS_CONFIG_NODES + "," + pubhost - counter = counter + 1 - else: - return "Error: Did not find the key public_hostname" - if "public_ip" in dict_list.keys(): - pubip = dict_list['public_ip'] - if host_name == pubhost: - Redirect_To_File("PUBLIC IP set to" + pubip, "INFO") - PUBLIC_IP=pubip - else: - return "Error: Did not find the key public_ip" - if "private_ip" in dict_list.keys(): - privip = dict_list['private_ip'] - if host_name == pubhost: - Redirect_To_File("Private IP set to" + privip, "INFO") - PRIV_IP=privip - else: - return "Error: Did not find the key private_ip" - if "private_hostname" in dict_list.keys(): - privhost = dict_list['private_hostname'] - if host_name == pubhost: - Redirect_To_File("Private HOSTNAME set to" + privhost, "INFO") - PRIV_HOSTNAME=privhost - else: - return "Error: Did not find the key private_hostname" - if "vip_hostname" in dict_list.keys(): - viphost = dict_list['vip_hostname'] - CRS_CONFIG_NODES = CRS_CONFIG_NODES + ":" + viphost + ":" + "HUB" - if host_name == pubhost: - Redirect_To_File("VIP HOSTNAME set to" + viphost, "INFO") - VIP_HOSTNAME=viphost - else: - return "Error: Did not find the key vip_hostname" - if "vip_ip" in dict_list.keys(): - vipip = dict_list['vip_ip'] - if host_name == pubhost: - Redirect_To_File("NODE VIP set to" + vipip, "INFO") - NODE_VIP=vipip - else: - return "Error: Did not find the key vip_ip" - - delete_entry = [pubhost, privhost, viphost, pubip, privip, vipip] - for hostentry in delete_entry: - print "Processing " + hostentry - cmd=cmd= '""' + "sed " + "'" + "/" + hostentry + "/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - # Removing Empty Lines - cmd=cmd= '""' + "sed " + "'" + "/^$/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - delete_entry [:] - - if pubhost not in filedata: - if pubip not in filedata: - hoststring='%s %s %s' %(pubip, pubhost + "." + domain, pubhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if privhost not in filedata: - if privip not in filedata: - hoststring='%s %s %s' %(privip, privhost + "." + domain, privhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if viphost not in filedata: - if vipip not in filedata: - hoststring='%s %s %s' %(vipip, viphost + "." + domain, viphost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - print filedata - - Write_To_File(filedata,etchostfile) - if CRS_NODES: - Redirect_To_File("Cluster Nodes set to " + CRS_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_NODES=' + CRS_NODES - if CRS_CONFIG_NODES: - Redirect_To_File("CRS CONFIG Variable set to " + CRS_CONFIG_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_CONFIG_NODES=' + CRS_CONFIG_NODES - if NODE_VIP: - filedata1 = filedata1 + '\n' + 'export NODE_VIP=' + NODE_VIP - if PRIV_IP: - filedata1 = filedata1 + '\n' + 'export PRIV_IP=' + PRIV_IP - if PUBLIC_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PUBLIC_HOSTNAME=' + PUBLIC_HOSTNAME - if PUBLIC_IP: - filedata1 = filedata1 + '\n' + 'export PUBLIC_IP=' + PUBLIC_IP - if VIP_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export VIP_HOSTNAME=' + VIP_HOSTNAME - if PRIV_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PRIV_HOSTNAME=' + PRIV_HOSTNAME - - Write_To_File(filedata1,racenvfile) - return "Host and Env file updated sucesfully" - - -def Write_To_File(text,filename): - f = open(filename,'w') - f.write(text) - f.close() - -def Setup_Operation(op_type): - if op_type == 'installrac': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'addnode': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'delnode': - cmd="sudo /opt/scripts/startup/DelNode.sh" - - output,retcode=Execute_Single_Command(cmd,'None','') - if retcode != 0: - return "Error occuurred in setting up env" - else: - return "setup operation completed sucessfully!" - - -def Execute_Single_Command(cmd,env,dir): - try: - if not dir: - dir=os.getcwd() - print shlex.split(cmd) - out = subprocess.Popen(cmd, shell=True, cwd=dir, stdout=subprocess.PIPE) - output, retcode = out.communicate()[0],out.returncode - return output,retcode - except: - Redirect_To_File("Error Occurred in Execute_Single_Command block! Please Check", "ERROR") - sys.exit(2) - -def Redirect_To_File(text,level): - original = sys.stdout - sys.stdout = open('/proc/1/fd/1', 'w') - root = logging.getLogger() - if not root.handlers: - root.setLevel(logging.INFO) - ch = logging.StreamHandler(sys.stdout) - ch.setLevel(logging.INFO) - formatter = logging.Formatter('%(asctime)s :%(message)s', "%Y-%m-%d %T %Z") - ch.setFormatter(formatter) - root.addHandler(ch) - message = os.path.basename(__file__) + " : " + text - root.info(' %s ' % message ) - sys.stdout = original - - -#BEGIN : TO check whether valid arguments are passed for the container ceation or not -def main(argv): - version= '' - type= '' - dir='' - script='' - Redirect_To_File("Passed Parameters " + str(sys.argv[1:]), "INFO") - try: - opts, args = getopt.getopt(sys.argv[1:], '', ['setuptype=','nodeparams=','comparams=','help']) - - except getopt.GetoptError: - Usage() - sys.exit(2) - #Redirect_To_File("Option Arguments are : " + opts , "INFO") - for opt, arg in opts: - if opt in ('--help'): - Usage() - sys.exit(2) - elif opt in ('--nodeparams'): - nodeparams = arg - elif opt in ('--comparams'): - comparams = arg - elif opt in ('--setuptype'): - setuptype = arg - else: - Usage() - sys.exit(2) - - if setuptype == 'installrac': - Redirect_To_File("setup type parameter is set to installrac", "INFO") - elif setuptype == 'addnode': - Redirect_To_File("setup type parameter is set to addnode", "INFO") - elif setuptype == 'delnode': - Redirect_To_File("setup type parameter is set to delnode", "INFO") - else: - setupUsage() - sys.exit(2) - if not nodeparams: - Redirect_To_File("Node Parameters for the Cluster not specified", "Error") - sys.exit(2) - if not comparams: - Redirect_To_File("Common Parameter for the Cluster not specified", "Error") - sys.exit(2) - - - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - - - comparams = comparams.replace('\\"','"') - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - envfile_status=Update_Envfile(json.loads(comparams)) - if 'Error' in envfile_status: - Redirect_To_File(envfile_status, "ERROR") - return sys.exit(2) - - nodeparams = nodeparams.replace('\\"','"') - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - hostfile_status=Update_Hostfile(json.loads(nodeparams)) - if 'Error' in hostfile_status: - Redirect_To_File(hostfile_status, "ERROR") - return sys.exit(2) - - Redirect_To_File("Executing operation" + setuptype, "INFO") - setup_op=Setup_Operation(setuptype) - if 'Error' in setup_op: - Redirect_To_File(setup_op, "ERROR") - return sys.exit(2) - - sys.exit(0) - -if __name__ == '__main__': - main(sys.argv) diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiRACInstall.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiRACInstall.sh deleted file mode 100644 index a24a6fc43e..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/MultiRACInstall.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -while true; do -case "$1" in - --help) - usage -;; - -o | --op_type) - if [ "$2" ]; then - RESET_PASSWORD_TYPE=$2 - else - error_exit "--op_type requires non empty option argument" - fi - print_message "RESET_PASSWORD_TYPE=${RESET_PASSWORD_TYPE}" - shift 2 -;; - -p | --pwd_file) - if [ "$2" ]; then - PWD_FILE=$2 - else - print_message "--pwd_file set to empty string. random password will generated" - fi - print_message "PWD_FILE: $PWD_FILE" - shift 2 -;; --k | --pwd_key_file) - if [ "$2" ];then - PWD_KEY=$2 - else - PWD_KEY='pwd.key' - print_message "--pwd_key set to empty string. It will be set to default value ${PWD_KEY}" - fi - print_message "PWD_KEY=$PWD_KEY" - shift 2 -;; - -s | --secret_volume) - echo "Secret Volume Location" - if [ "$2" ];then - SECRET_VOLUME=$2 - else - SECRET_VOLUME='/run/secrets' - print_message "--secret_volume is set to empty string. It will be set to default value ${SECRET_VOLUME}" - fi - shift 2 -;; --r| --remove_os_pwd_files) - echo "Remove OS PWD files after resetting password" - if [ "${2}" == 'true' ]; then - REMOVE_OS_PWD_FILES='true' - else - REMOVE_OS_PWD_FILES='false' - fi - shift 2 -;; - --) - shift; - break; -;; -*) -print_message "Not a valid option" -usage -;; -esac - diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/OracleHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/OracleHomeCleanup.sh deleted file mode 100644 index 8383d98dbf..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/OracleHomeCleanup.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $ORACLE_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/${DB_USER}/.bashrc -ORACLE_HOME=${DB_HOME} - -rm -rf $ORACLE_HOME/bin/extjob -rm -rf $ORACLE_HOME/PAF -rm -rf $ORACLE_HOME/install/oratab -rm -rf $ORACLE_HOME/install/make.log -rm -rf $ORACLE_HOME/network/admin/listener.ora -rm -rf $ORACLE_HOME/network/admin/tnsnames.ora -rm -rf $ORACLE_HOME/bin/nmo -rm -rf $ORACLE_HOME/bin/nmb -rm -rf $ORACLE_HOME/bin/nmhs -rm -rf $ORACLE_HOME/log/.* -rm -rf $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/images/chartCache/* -rm -rf $ORACLE_HOME/rdbms/audit/* -rm -rf $ORACLE_HOME/cfgtoollogs/* -rm -rf $ORACLE_HOME/inventory/Scripts/comps.xml.* -rm -rf $ORACLE_HOME/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf $ORACLE_HOME/inventory/Scripts/oraInst.loc.* -rm -rf $ORACLE_HOME/inventory/Scripts/inventory.xml.* diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/README.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/applyGridPatch.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/applyGridPatch.sh deleted file mode 100644 index 75d398b85d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/applyGridPatch.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Apply Patch for Oracle Grid and Databas. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -PATCH=$1 - -# Check whether edition has been passed on -if [ "PATCH" == "" ]; then - echo "ERROR: No Patch has been passed on!" - echo "Please specify the correct PATCH!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - -temp_var1=`hostname` -# Install Oracle binaries - -unzip -q $INSTALL_SCRIPTS/$PATCH -d $GRID_USER_HOME && \ -rm -f $INSTALL_SCRIPTS/$GRID_PATCH && \ -cd $GRID_USER_HOME/$PATCH_NUMBER/$PATCH_NUMBER && \ -$GRID_HOME/OPatch/opatch napply -silent -local -oh $GRID_HOME -id $PATCH_NUMBER && \ -cd $GRID_USER_HOME && \ -rm -rf $GRID_USER_HOME/$PATCH_NUMBER diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkDBStatus.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkDBStatus.sh deleted file mode 100644 index 4f0706018e..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkDBStatus.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the status of Oracle Database. -# The ORACLE_HOME, ORACLE_SID and the PATH has to be set. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh -export ORACLE_HOME=$DB_HOME -export PATH=$ORACLE_HOME/bin:$PATH -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib - -sid=$1 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." - exit 3; -fi; - -ORACLE_SID=$($DB_HOME/bin/srvctl status database -d $sid | grep $(hostname) | awk '{ print $2 }') - -echo "Checking $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -status=`$DB_HOME/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; - select status from v\\$instance; - exit; -EOF` - -echo $status > /tmp/db_status.txt diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkSpace.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkSpace.sh deleted file mode 100644 index e1a82b955f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=35 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/configGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/configGrid.sh deleted file mode 100644 index 508757cbef..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/configGrid.sh +++ /dev/null @@ -1,1257 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup grid and Creates an Oracle Database based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# $ORACLE_SID -# $ORACLE_PDB -# Note : -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -####################### Variables and Constants ################# - -declare -r TRUE=0 - -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -x logdir="/tmp" -declare -r OSDBA='dba' ## OSDBA group -declare -r OSASM='asmadmin' ## OSASM group -declare -r INSTALL_TYPE='CRS_CONFIG' ## INSTALL TYPE default set to CRS_CONFIG -declare -r IPMI_FLAG='false' ## IPMI Flag by default to set false -declare -r ASM_STORAGE_OPTION='ASM' ## ASM_STORAGE_OPTION set to ASM -declare -r GIMR_ON_NAS='false' ## GIMR on NAS set to false -declare -x GIMR_DB_FLAG='false' # Disabled GIMR DB FLAG -declare -x ASM_DISKGROUP_DISKS ## Computed during program Execution -declare -x ASM_DISKGROUP_FG_DISKS ## Computing During program execution. -declare -x GIMR_DISKGROUP_DISKS ## Computed During Program Execution -declare -x GIMR_DISKGROUP_FG_DISKS ## Computed During program Execution. -declare -x GIMR_DEVICE_LIST ## Pass as env variable and it must contain device name with location if using DSC. Default DG name is MGMT. -declare -x ASM_DEVICE_LIST ## Pass as env variable and it must contain device name with location for DATA DG. -declare -x ETH_CARD_1 ## Computed During program Execution -declare -x ETH_CARD_2 ## Computed During Program Execution -declare -x PUBLIC_NETWORK ## Computed During program execution. -declare -x PRIVATE_NETWORK ## Computed During program execution. -declare -x NETWORK_STRING ## Do not pass as env variable. Computed during program execution. -declare -x GIMR_DG_FLAG ## Default set to FALSE. If under DSC, set to true. -declare -x GIMR_DG_NAME ## Default set to MGMT. -declare -x GIMR_DG_REDUNDANCY ## Used if you will use DSC. Default set to EXTERNAL. -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_PORT ## Default SCAN_PORT set to 1521. Pass some other value if need some other PORT. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x GNS_OPTIONS ## By Default value will be CREATE_NEW_GNS -declare -x GNSVIP_HOSTNAME ## If you are using DSC or DHCP for grid. -declare -x GNS_SUBDOMAIN ## If you are using DHCP. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PASSWORD_FILE='pwdfile' -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_NAME ## if not passed as env variable. It will be set to "hostname-c". -declare -x CLUSTER_TYPE='STANDALONE' ## Default instllation is STANDALONE. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -x STORAGE_OPTIONS_FOR_MEMBERDB ##Pass it as env variable if you want to specify storage options for MEMBER DB Cluster. -declare -x DB_ASM_DISKGROUP='DATA' ## Pass it env variable when using Member DB cluster. Default value is DATA. Another vakue can be MGMT. -declare -x MEMBERDB_FILE ## Mandatory Parameter for MEMBER DB CLUSTER. Pass the Manifest file name. Copy it under COMMON_SCRIPTS. -declare -x ORACLE_CHARACTERSET ## If not passed as env variable then default value is AL32UTF8. -declare -x ORACLE_PWD ## If not passed as env variable then default value is set to PASSWORD -declare -x ORACLE_PDB ## If not passed then oraclepdb is default pdb name -declare -x ORACLE_SID ## If not passed then default db name is oraclecdb. -declare -x CONTAINER_DB_FLAG='true' ## default database will be created as container. Set it to false to create Non-CDB -declare -r OSOPER ## OSOPER group -declare -x IPMI_USERNAME ## Specify IPMI Username -declare -x IPMI_PASSWORD ## IPMI_PASSWORD -declare -x ASM_REDUNDANCY='EXTERNAL' ## ASM REDUNDANCY default to EXTERNAL -declare -x SCAN_TYPE='LOCAL_SCAN' ## SCAN TYPE set to LOCAL -declare -x SHARED_SCAN ## SHARED_SCAN. define file for SHARED SCAN -declare -x EXTENDED_CLUSTER=false ## EXTENDED CLUSTER DEFAULT set to false -declare -x SHARED_GNS_FILE ## Specify SHARED GNS -declare -x EXTENDED_CLUSTER_SITES ## Specify Extended Cluster Sites -declare -x ASM_DG_FAILURE_GROUP ## ASM DG Failure groups -declare -x ASM_ON_NAS ## Specify ASM on NAS -declare -x ASM_ON_NAS_LOCATION ## Specify ASM on NAS Location -declare -x FAILURE_GROUP_SITE_NAME ## Specify Failure Group Site Name -declare -x QUORUM_FAILURE_GROUP ## Specify QUORUM Failure Group name -declare -x GIMR_DG_FAILURE_GROUP ## Specufy DG Failure name -declare -x CONFIGURE_AFD_FLAG='false' ##Specify Configure AFD Flag -declare -x CONFIGURE_RHPS_FLAG='false' ## Speicfy Configure RHPS Flag -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' ## Specify ROOT Script Flag -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' ## Specify Execute Root Script methid -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x TOTAL_MEMORY=5000 ## Total Memory need to be allocated to SGA Instance -declare -x DATABASE_CONFIG_TYPE='RAC' ## DB COnfig TYPE -declare -x PDB_COUNT=1 ## PDB COUNTS -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x DB_PWD_FILE -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_NODES -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x GIMR_FLAG='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -# shellcheck disable=SC1091 -if [ -f "/etc/rac_env_vars" ]; then -source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -# shellcheck disable=SC1091 -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -####### all_check function to validate all the required variable before proceeding for the installation ####### - -all_check() -{ -check_pub_host_name -check_ip_env_vars -check_passwd_env_vars -check_dsc_env_vars -check_dhcp_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -############## Public Hostname, IP and Domain begin here ############## - -check_pub_host_name() -{ -local domain_name -# local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname).$DOMAIN") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - - -} - -############## Public Hostname, IP and Domain end here ############## - -############## IP Related Checks Begins here ############## -check_ip_env_vars () -{ -local domain_name - -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi -fi - - -if [ -z "${SCAN_NAME}" ]; then - error_exit "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if [ -z "${SCAN_PORT}" ]; then - print_message "SCAN PORT is set to empty string. Setting it to 1521 port." - SCAN_PORT=1521 -else - print_message "SCAN_PORT name is ${SCAN_PORT}" -fi - -if resolveip "${SCAN_NAME}"; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z "${SCAN_IP}" ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -### DHCP Check ENDS Here ###### -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - -fi - -if [ -z "${CMAN_HOSTNAME}" ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z "${CMAN_IP}" ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -if [ -z "${CLUSTER_NAME}" ]; then - print_message "Cluster Name is not defined" - print_message "Cluster name is set to 'racnode-c'" - CLUSTER_NAME="$(hostname)-c" -else - print_message "Cluset name is set to $CLUSTER_NAME" -fi - -} - -############## IP Related Checks end here ############## - -############## Checks for password brgins here ######### -check_passwd_env_vars () -{ - -################## Checks for Password and Clustername and clustertype begins here ########### -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read -r PASSWORD < /tmp/${COMMON_OS_PWD_FILE} -rm -f /tmp/${COMMON_OS_PWD_FILE} - -elif [ -f "${SECRET_VOLUME}/${PASSWORD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl base64 -d -in "${SECRET_VOLUME}/${PASSWORD_FILE}" -out /tmp/"${PASSWORD_FILE}"' - - - if eval "$cmd"; then - print_message "Password file generated" - else - error_exit "Error occurred during password file ${PASSWORD_FILE} generation" - fi - - read -r PASSWORD < /tmp/${PASSWORD_FILE} - rm -f /tmp/${PASSWORD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ -n "${GRID_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read -r GRID_PASSWORD < /tmp/"${GRID_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ -n "${ORACLE_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read -r ORACLE_PASSWORD < /tmp/"${ORACLE_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ -n "${DB_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${DB_PWD_FILE}" -out "/tmp/${DB_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during common database password file generation" -fi - -read -r ORACLE_PWD < /tmp/"${DB_PWD_FILE}" -rm -f /tmp/"${DB_PWD_FILE}" -else - ORACLE_PWD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle Database" -fi - - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi -} - -############ Checks for password ends here################ - -############## Checks for Domain Service Cluster ######### -check_dsc_env_vars () -{ -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - print_message "Setting GIMR_DG_FLAG to TRUE" - GIMR_DG_FLAG="true" - print_message "Setting GIMR_DG_NAME to MGMT" - GIMR_DG_NAME="MGMT" - print_message "Setting GIMR_DG_REDUNDANCY to External" - GIMR_DG_REDUNDANCY="EXTERNAL" - print_message "Setting Configure GNS options to true" - CONFIGURE_GNS=true - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi -else - print_message "Setting CONFIGURE_GNS to false" - CONFIGURE_GNS='false' -fi -} -############## Checks for DSC ends here #################################################### - -############## Checks for DHCP Begin here ######################################## -check_dhcp_env_vars () -{ -if [ "${DHCP_CONF}" == 'true' ];then - - if [ -z "${GNS_SUBDOMAIN}" ]; then - error_exit "GNS_SUBDOMAIN is not set or set to empty string" - else - print_message "GNS SUBDOMAIN is set to ${GNS_SUBDOMAIN} " - fi - - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi - -fi -} - -############# Checks for DHCP Ends here ########################################### - -############### Check for Existing Grid Response file based on user settings begin here######## - -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f "${COMMON_SCRIPTS}/${GRID_RESPONSE_FILE}" ];then -cp "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE" "$logdir/$GRID_INSTALL_RSP" -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -print_message "IGNORE_CVU_CHECKS is set to ${IGNORE_CVU_CHECKS}" - -} - -############### Check for Existing Grid Response file based on user settings end here######## - -############## Check for Member Cluster and DB related parameters Begin here ########################## -check_db_env_vars () -{ -if [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to CLIENT_ASM_STORAGE" - STORAGE_OPTIONS_FOR_MEMBERDB=CLIENT_ASM_STORAGE -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -if [ -z "${MEMBERDB_FILE}" ];then - error_exit "Manifest File is not provided for MEMBERDB cluster. Exiting.." -else - print_message "Manifest File is set to $MEMBERDB_FILE" - if [ -f "${COMMON_SCRIPTS}"/"${MEMBERDB_FILE}" ]; then - print_message "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}" - else - error_exit "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}. Check Failed!" - fi -fi - -if [ -z "${DB_ASM_DISKGROUP}" ];then -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -else -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -fi - -fi - -############## Following Checks are applicable only if CLUSTER TYPE is STANDALONE######### - -if [ $CLUSTER_TYPE == 'STANDALONE' ] || [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -if [ -z "${ORACLE_SID}" ]; then -export ORACLE_SID="ORCLCDB" -print_message "Oracle SID is set to $ORACLE_SID" -else -print_message "Oracle SID is set to $ORACLE_SID" -fi - -if [ -z "${ORACLE_PDB}" ]; then -export ORACLE_PDB="ORCLPDB" -print_message "Oracle PDB name is set to $ORACLE_PDB" -else -print_message "Oracle PDB name is set to $ORACLE_PDB" -fi - -if [ -z "${ORACLE_CHARACTERSET}" ]; then -export ORACLE_CHARACTERSET="AL32UTF8" -else -print_message "DB characterset set to $ORACLE_CHARACTERSET" -fi -fi -} - -############## Check for Member Cluster Begin here ######################## -################ all_check function related tasks ends here ################# - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local CLUSTER_NODES -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - CLUSTER_NODES=$( echo "$CRS_NODES" | tr ',' ' ' ) -fi - -print_message "SSh will be setup among $CLUSTER_NODES nodes" - -print_message "Running SSH setup for $GRID_USER user between nodes $CLUSTER_NODES" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES\" \"$GRID_PASSWORD\""' -eval "$cmd" -sleep 30 -print_message "Running SSH setup for $DB_USER user between nodes $CLUSTER_NODES" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES\" \"$ORACLE_PASSWORD\""' -eval "$cmd" -} - -checkSSH () -{ - -# local password -# local stat -local status -local CLUSTER_NODES1 - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES1=$PUBLIC_HOSTNAME -else - CLUSTER_NODES1=$( echo "$CRS_NODES" | tr ',' ' ' ) -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo "$cmd" - -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo "$cmd" -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -######################################## SSH Function end here ############################# - -######################################### ASM Disk Functions ################################### -build_block_device_list () -{ - -local count=1 -local temp_str - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ -n "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - ASM_DISKGROUP_FG_DISKS+="$device,," - ASM_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin $device - chmod 660 $device - count=$((count+1)) - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "ASM_DEVICE_LIST is set to empty canot proceed" -fi - -temp_str=$(echo -n "$ASM_DISKGROUP_FG_DISKS" | head -c -1) -export ASM_DISKGROUP_FG_DISKS=$temp_str -print_message "ASM Device list will be with failure groups $ASM_DISKGROUP_FG_DISKS" -temp_str=$(echo -n "$ASM_DISKGROUP_DISKS" | head -c -1) -export ASM_DISKGROUP_DISKS=$temp_str -print_message "ASM Device list will be groups $ASM_DISKGROUP_DISKS" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### ASM Disk Functions #################################### - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local count=1 -local temp_str - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then -if [ -n "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - GIMR_DISKGROUP_FG_DISKS+="$device,," - GIMR_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin $device - chmod 660 $device - count=$((count+1)) - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi - -temp_str=$(echo -n "$GIMR_DISKGROUP_FG_DISKS" | head -c -1) -export GIMR_DISKGROUP_FG_DISKS=$temp_str -print_message "GIMR Device list will be with failure groups $GIMR_DISKGROUP_FG_DISKS" -temp_str=$(echo -n "$GIMR_DISKGROUP_DISKS" | head -c -1) -export GIMR_DISKGROUP_DISKS=$temp_str -print_message "GIMR Device list will be set to $GIMR_DISKGROUP_DISKS" -else -print_message "CLUSTER_TYPE env variable is set to ${CLUSTER_TYPE}, will not process GIMR DEVICE list as default Diskgroup is set to DATA. GIMR DEVICE List will be processed when CLUSTER_TYPE is set to DOMAIN for DSC" -fi -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so GIMR_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### GIMR Block Device List Computation ends here ############ - -######################################## Set Device Permissions on all the nodes ####################### -setDevicePermissions () -{ - -local cmd -#local state=3 - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ -n "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ -n "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -done - -} - -######################################## Set Device Permission Ends Here ################################ - -####################################### Network Function Begin here ############################# -#shellcheck disable=SC2120 -build_network () -{ - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -####### Building Public IP Details ########### -ETH_CARD_2=$(ifconfig | awk "/${PUBLIC_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface "$ETH_CARD_2" ; then - print_message "Check passed for network card $ETH_CARD_2 for public IP $PUBLIC_IP" - else - error_exit "Check failed for network card for $ETH_CARD_2 for public IP $PUBLIC_IP" - fi - -PUBLIC_NETMASK=$(ifconfig "$ETH_CARD_2" | awk '/netmask/ {print $4}') -print_message "Public Netmask : $PUBLIC_NETMASK" -PUBLIC_NETWORK=$(ipcalc -np "$PUBLIC_IP" "$PUBLIC_NETMASK" | grep NETWORK | awk -F '=' '{ print $2 }') - -##### Building Private Network Detail ######### - -ETH_CARD_1=$(ifconfig | awk "/${PRIV_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface "$ETH_CARD_1" ; then - print_message "Check passed for network card $ETH_CARD_1 for private IP $PRIV_IP" -else - error_exit "Check failed for network card for $ETH_CARD_1 for private IP $PRIV_IP" -fi - -PRIVATE_NETMASK=$(ifconfig "$ETH_CARD_1" | awk '/netmask/ {print $4}') -PRIVATE_NETWORK=$(ipcalc -np "$PRIV_IP" "$PRIVATE_NETMASK" | grep NETWORK | awk -F '=' '{ print $2 }') - -print_message "Building NETWORK_STRING to set networkInterfaceList in Grid Response File" - -if [ "${SINGLENIC}" == "true" ]; then -NETWORK_STRING="$ETH_CARD_1:$PUBLIC_NETWORK:1" -else -NETWORK_STRING="$ETH_CARD_2:$PUBLIC_NETWORK:1,$ETH_CARD_1:$PRIVATE_NETWORK:5" -fi - -print_message "Network InterfaceList set to $NETWORK_STRING" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi - -} - -########################################## Network Function End here ################################ - -######### Grid setup Function########################### -grid_response_file () -{ - -if [ -z "$GRID_RESPONSE_FILE" ]; then -cp "$SCRIPT_DIR"/"$GRID_INSTALL_RSP" $logdir/"$GRID_INSTALL_RSP" -#chmod 777 $logdir - -if [ -z "$CRS_CONFIG_NODES" ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###CLUSTER_NAME###|$CLUSTER_NAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###SCAN_NAME###|$SCAN_NAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###HOSTNAME###|$PUBLIC_HOSTNAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DISKGROUP_FG_DISKS###|$ASM_DISKGROUP_FG_DISKS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DISKGROUP_DISKS###|$ASM_DISKGROUP_DISKS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DISCOVERY_STRING###|$ASM_DISCOVERY_DIR/*|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###PASSWORD###|$ORACLE_PWD|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###STORAGE_OPTIONS_FOR_MEMBERDB###|$STORAGE_OPTIONS_FOR_MEMBERDB|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###SCAN_PORT###|$SCAN_PORT|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###CLUSTER_TYPE###|$CLUSTER_TYPE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_REDUNDANCY###|$GIMR_DG_REDUNDANCY|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DISKGROUP_FG_DISKS###|$GIMR_DISKGROUP_FG_DISKS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DISKGROUP_DISKS###|$GIMR_DISKGROUP_DISKS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_FLAG###|$GIMR_DG_FLAG|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_NAME###|$GIMR_DG_NAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GNS_SUBDOMAIN###|$GNS_SUBDOMAIN|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GNSVIP_HOSTNAME###|$GNSVIP_HOSTNAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GNS_OPTIONS###|$GNS_OPTIONS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###DHCP_CONF###|$DHCP_CONF|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###CONFIGURE_GNS###|$CONFIGURE_GNS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###MEMBERDB_FILE###|$COMMON_SCRIPTS\/$MEMBERDB_FILE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###OSDBA###|$OSDBA|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###OSOPER###|$OSOPER|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###OSASM###|$OSASM|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXTENDED_CLUSTER###|$EXTENDED_CLUSTER|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###SHARED_GNS_FILE###|$SHARED_GNS_FILE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXTENDED_CLUSTER_SITES###|$EXTENDED_CLUSTER_SITES|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###IPMI_FLAG###|$IPMI_FLAG|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###IPMI_USERNAME###|$IPMI_USERNAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###IPMI_PASSWORD###|$IPMI_PASSWORD|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_STORAGE_OPTION###|$ASM_STORAGE_OPTION|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_ON_NAS###|$ASM_ON_NAS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_ON_NAS###|$GIMR_ON_NAS|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_ON_NAS_LOCATION###|$ASM_ON_NAS_LOCATION|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_REDUNDANCY###|$ASM_REDUNDANCY|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###AU_SIZE###|$AU_SIZE|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###FAILURE_GROUP_SITE_NAME###|$FAILURE_GROUP_SITE_NAME|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###QUORUM_FAILURE_GROUP###|$QUORUM_FAILURE_GROUP|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_FAILURE_GROUP###|$GIMR_DG_FAILURE_GROUP|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DG_FAILURE_GROUP###|$ASM_DG_FAILURE_GROUP|g" $logdir/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_FLAG###|$GIMR_DB_FLAG|g" $logdir/"$GRID_INSTALL_RSP" -fi - -} - -cluvfy_checks () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP - -local cmd -local FAILED_CMDS -TIMESTAMP=$(date +%s) -local TIMESTAMP - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv $logdir/cluvfy_check.txt $logdir/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -print_message "Performing Cluvfy Checks" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/runcluvfy.sh stage -pre crsinst -responseFile $responsefile | tee -a $logdir/cluvfy_check.txt"' -eval "$cmd" - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - $logdir/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat $logdir/cluvfy_check.txt > "$STD_OUT_FILE" - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -RunConfigGrid() -{ -local responsefile=$logdir/$GRID_INSTALL_RSP - -local cmd - -if [ "${SINGLENIC}" == 'true' ];then - error_exit "SINGLE NIC is not supported"; -else -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -waitforcompletion -ignorePrereq -silent -responseFile $responsefile"' -eval "$cmd" -fi -} - -runrootsh () -{ -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "$PUBLIC_HOSTNAME" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Running root.sh on $node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo $GRID_HOME/root.sh"' -eval "$cmd" -done -} - -runpostrootsetps () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP - -local cmd - -print_message "Running post root.sh steps to setup Grid env" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -executeConfigTools -responseFile $responsefile -silent"' -eval "$cmd" - -#rm -f $responsefile -} - -checkCluster () -{ -local cmd; - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" - - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Checking Cluster on $node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crs"' - -if eval "$cmd";then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cluster"' - - -if eval "$cmd"; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then -# shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/srvctl status mgmtdb"' - - if eval "$cmd"; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crsd"' - -if eval "$cmd"; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cssd"' - -if eval "$cmd"; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check evmd"' - -if eval "$cmd"; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -done - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f $logdir/cluvfy_check.txt - -} - -installCrontab() -{ -print_message "Installing crontab to monitor systemd and reset the failed units" -local cmd; - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Copying file $RESET_FAILED_UNITS from $SCRIPT_DIR to /tmp" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo cp $SCRIPT_DIR/$RESET_FAILED_UNITS /tmp/$RESET_FAILED_UNITS"' - - -if eval "$cmd";then -print_message "Copied the $RESET_FAILED_UNITS under /tmp" -else -error_exit "Error occurred during file copy" -fi - -print_message "Setting Crontab" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo crontab $SCRIPT_DIR/$CRONTAB_ENTRY"' - -if eval "$cmd";then -print_message "Sucessfully installed $CRONTAB_ENTRY using crontab" -else -error_exit "Error occurred in crontab setup" -fi - -done - -} - -#############DB Setup Functions######################################## - -dbca_response_file () -{ - -if [ -z "$DBCA_RESPONSE_FILE" ]; then -cp "$SCRIPT_DIR"/"$DBCA_RSP" $logdir/"$DBCA_RSP" -chmod 666 $logdir/"$DBCA_RSP" - -if [ -z "$CRS_NODES" ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - -sed -i -e "s|###ORACLE_SID###|$ORACLE_SID|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###ORACLE_PDB###|$ORACLE_PDB|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###ORACLE_PWD###|$ORACLE_PWD|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###ORACLE_CHARACTERSET###|$ORACLE_CHARACTERSET|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###DB_NODES###|$CRS_NODES|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###CONTAINER_DB_FLAG###|$CONTAINER_DB_FLAG|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###PDB_COUNT###|$PDB_COUNT|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###DATABASE_CONFIG_TYPE###|$DATABASE_CONFIG_TYPE|g" $logdir/"$DBCA_RSP" -sed -i -e "s|###TOTAL_MEMORY###|$TOTAL_MEMORY|g" $logdir/"$DBCA_RSP" -else - -if [ -f "$COMMON_SCRIPTS"/"$DBCA_RESPONSE_FILE" ];then -cp "$COMMON_SCRIPTS"/"$DBCA_RESPONSE_FILE" $logdir/"$DBCA_RSP" -chmod 666 $logdir/"$DBCA_RSP" -else -error_exit "$COMMON_SCRIPTS/$DBCA_RESPONSE_FILE does not exist" -fi - -fi -} - -createRACDB() -{ - -# shellcheck disable=SC2034 -local responsefile=$logdir/$DBCA_RSP - -local cmd -# Replace place holders in response file -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "$DB_HOME/bin/dbca -silent -ignorePreReqs -createDatabase -responseFile $responsefile"' -eval "$cmd" -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - -setremotelistener () -{ -local status -local cmd - -if resolveip "$CMAN_HOSTNAME"; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -############################# DB Functions End here ########################################### - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -all_check -build_network -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER "$GRID_PASSWORD" -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER "$ORACLE_PASSWORD" - -print_message "Calling setupSSH function" -setupSSH -checkSSH - -######### ASM Disk Setup ####### -if [ "${CLUSTER_TYPE}" == 'DOMAIN' ] || [ "${CLUSTER_TYPE}" == 'STANDALONE' ]; then -build_block_device_list -build_gimr_block_device_list -setDevicePermissions -fi - -####### Grid Setup ########## -print_message "Generating Reponsefile" -grid_response_file -print_message "Running cluvfy Checks" -cluvfy_checks -print_message "Running Grid Installation" -RunConfigGrid -print_message "Running root.sh" -runrootsh -print_message "Running post root.sh steps" -runpostrootsetps -print_message "Checking Cluster Status" -checkCluster -print_message "Running User Script for $GRID_USER user" -su - $GRID_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $GRID_SCRIPT_ROOT GRID" - -####### DB Setup ########## -if [ "${CLUSTER_TYPE}" == 'STANDALONE' ] || [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -if [ "${RUN_DBCA}" == "true" ]; then -print_message "Generating DB Responsefile Running DB creation" -dbca_response_file -print_message "Running DB creation" -createRACDB -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script $DB_USER user" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $DB_SCRIPT_ROOT DB" -print_message "Setting Remote Listener" -setremotelistener -fi -fi - -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_inst.rsp deleted file mode 100644 index 90ff555e5d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_inst.rsp +++ /dev/null @@ -1,125 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -#------------------------------------------------------------------------------- -oracle.install.option=INSTALL_DB_SWONLY - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME=oinstall - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1 - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/oracle - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 - - -#------------------------------------------------------------------------------- - -oracle.install.db.InstallEdition=EE -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP=oper - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP=backupdba - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP=dgdba - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP=kmdba - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP=racdba -#------------------------------------------------------------------------------ -# Specify whether to enable the user to set the password for -# My Oracle Support credentials. The value can be either true or false. -# If left blank it will be assumed to be false. -# -# Example : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true -#------------------------------------------------------------------------------ -SECURITY_UPDATES_VIA_MYORACLESUPPORT=false - -#------------------------------------------------------------------------------ -# Specify whether user doesn't want to configure Security Updates. -# The value for this variable should be true if you don't want to configure -# Security Updates, false otherwise. -# -# The value can be either true or false. If left blank it will be assumed -# to be true. -# -# Example : DECLINE_SECURITY_UPDATES=false -#------------------------------------------------------------------------------ -DECLINE_SECURITY_UPDATES=true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_install_19cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_install_19cv1.rsp deleted file mode 100644 index 9aa4cd6136..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_install_19cv1.rsp +++ /dev/null @@ -1,356 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2019. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -#------------------------------------------------------------------------------- -oracle.install.option= - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME= - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION= -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME= - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE= - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 - - -#------------------------------------------------------------------------------- - -oracle.install.db.InstallEdition= -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP= - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.executeRootScript= - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# Applicable only when SUDO configuration method was chosen. -# Note:For Single Instance database installations,the sudo user name must be the username of the user installing the database. -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.sudoUserName= - -############################################################################### -# # -# Grid Options # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# Value is required only if the specified install option is INSTALL_DB_SWONLY -# -# Specify the cluster node names selected during the installation. -# -# Example : oracle.install.db.CLUSTER_NODES=node1,node2 -#------------------------------------------------------------------------------ -oracle.install.db.CLUSTER_NODES= - -############################################################################### -# # -# Database Configuration Options # -# # -############################################################################### - -#------------------------------------------------------------------------------- -# Specify the type of database to create. -# It can be one of the following: -# - GENERAL_PURPOSE -# - DATA_WAREHOUSE -# GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications. -# DATA_WAREHOUSE : A starter database optimized for data warehousing applications. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.type= - -#------------------------------------------------------------------------------- -# Specify the Starter Database Global Database Name. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.globalDBName= - -#------------------------------------------------------------------------------- -# Specify the Starter Database SID. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.SID= - -#------------------------------------------------------------------------------- -# Specify whether the database should be configured as a Container database. -# The value can be either "true" or "false". If left blank it will be assumed -# to be "false". -#------------------------------------------------------------------------------- -oracle.install.db.ConfigureAsContainerDB= - -#------------------------------------------------------------------------------- -# Specify the Pluggable Database name for the pluggable database in Container Database. -#------------------------------------------------------------------------------- -oracle.install.db.config.PDBName= - -#------------------------------------------------------------------------------- -# Specify the Starter Database character set. -# -# One of the following -# AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2, -# EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257, -# BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6, -# AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8, -# IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, -# KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950, -# ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258 -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.characterSet= - -#------------------------------------------------------------------------------ -# This variable should be set to true if Automatic Memory Management -# in Database is desired. -# If Automatic Memory Management is not desired, and memory allocation -# is to be done manually, then set it to false. -#------------------------------------------------------------------------------ -oracle.install.db.config.starterdb.memoryOption= - -#------------------------------------------------------------------------------- -# Specify the total memory allocation for the database. Value(in MB) should be -# at least 256 MB, and should not exceed the total physical memory available -# on the system. -# Example: oracle.install.db.config.starterdb.memoryLimit=512 -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.memoryLimit= - -#------------------------------------------------------------------------------- -# This variable controls whether to load Example Schemas onto -# the starter database or not. -# The value can be either "true" or "false". If left blank it will be assumed -# to be "false". -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.installExampleSchemas= - -############################################################################### -# # -# Passwords can be supplied for the following four schemas in the # -# starter database: # -# SYS # -# SYSTEM # -# DBSNMP (used by Enterprise Manager) # -# # -# Same password can be used for all accounts (not recommended) # -# or different passwords for each account can be provided (recommended) # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# This variable holds the password that is to be used for all schemas in the -# starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.ALL= - -#------------------------------------------------------------------------------- -# Specify the SYS password for the starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.SYS= - -#------------------------------------------------------------------------------- -# Specify the SYSTEM password for the starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.SYSTEM= - -#------------------------------------------------------------------------------- -# Specify the DBSNMP password for the starter database. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.DBSNMP= - -#------------------------------------------------------------------------------- -# Specify the PDBADMIN password required for creation of Pluggable Database in the Container Database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.PDBADMIN= - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing the database. -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your database with Enterprise Manager Cloud Control along with Database Express. -# 2. DEFAULT -If you want to manage your database using the default Database Express option. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.managementOption= - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.omsPort= - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.emAdminPassword= - -############################################################################### -# # -# SPECIFY RECOVERY OPTIONS # -# ------------------------------------ # -# Recovery options for the database can be mentioned using the entries below # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# This variable is to be set to false if database recovery is not required. Else -# this can be set to true. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.enableRecovery= - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for the database. -# It can be one of the following: -# - FILE_SYSTEM_STORAGE -# - ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.storageType= - -#------------------------------------------------------------------------------- -# Specify the database file location which is a directory for datafiles, control -# files, redo logs. -# -# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= - -#------------------------------------------------------------------------------- -# Specify the recovery location. -# -# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= - -#------------------------------------------------------------------------------- -# Specify the existing ASM disk groups to be used for storage. -# -# Applicable only when oracle.install.db.config.starterdb.storageType=ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.asm.diskGroup= - -#------------------------------------------------------------------------------- -# Specify the password for ASMSNMP user of the ASM instance. -# -# Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.asm.ASMSNMPPassword= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_sw_install_19c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_sw_install_19c.rsp deleted file mode 100644 index 51c8650593..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/db_sw_install_19c.rsp +++ /dev/null @@ -1,45 +0,0 @@ -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 -oracle.install.option=INSTALL_DB_SWONLY -UNIX_GROUP_NAME=oinstall -INVENTORY_LOCATION=/u01/app/oraInventory -ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 -ORACLE_BASE=/u01/app/oracle -oracle.install.db.InstallEdition=EE -oracle.install.db.OSDBA_GROUP=dba -oracle.install.db.OSOPER_GROUP=oper -oracle.install.db.OSBACKUPDBA_GROUP=backupdba -oracle.install.db.OSDGDBA_GROUP=dgdba -oracle.install.db.OSKMDBA_GROUP=kmdba -oracle.install.db.OSRACDBA_GROUP=racdba -oracle.install.db.rootconfig.executeRootScript= -oracle.install.db.rootconfig.configMethod= -oracle.install.db.rootconfig.sudoPath= -oracle.install.db.rootconfig.sudoUserName= -oracle.install.db.CLUSTER_NODES= -oracle.install.db.config.starterdb.type= -oracle.install.db.config.starterdb.globalDBName= -oracle.install.db.config.starterdb.SID= -oracle.install.db.ConfigureAsContainerDB= -oracle.install.db.config.PDBName= -oracle.install.db.config.starterdb.characterSet= -oracle.install.db.config.starterdb.memoryOption= -oracle.install.db.config.starterdb.memoryLimit= -oracle.install.db.config.starterdb.installExampleSchemas= -oracle.install.db.config.starterdb.password.ALL= -oracle.install.db.config.starterdb.password.SYS= -oracle.install.db.config.starterdb.password.SYSTEM= -oracle.install.db.config.starterdb.password.DBSNMP= -oracle.install.db.config.starterdb.password.PDBADMIN= -oracle.install.db.config.starterdb.managementOption= -oracle.install.db.config.starterdb.omsHost= -oracle.install.db.config.starterdb.omsPort= -oracle.install.db.config.starterdb.emAdminUser= -oracle.install.db.config.starterdb.emAdminPassword= -oracle.install.db.config.starterdb.enableRecovery= -oracle.install.db.config.starterdb.storageType= -oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= -oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= -oracle.install.db.config.asm.diskGroup= -oracle.install.db.config.asm.ASMSNMPPassword= -SECURITY_UPDATES_VIA_MYORACLESUPPORT=false -DECLINE_SECURITY_UPDATES=true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca.rsp deleted file mode 100644 index 92c74e1eb4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=###CONTAINER_DB_FLAG### - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=###ORACLE_PDB### - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=###PUBLIC_HOSTNAME### - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName=/u01/app/oracle/product/18.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=###ORACLE_SID###,ORACLE_BASE=###DB_BASE###,PDB_NAME=###ORACLE_PDB###,DB_NAME=###ORACLE_SID###,ORACLE_HOME=###DB_HOME###,SID=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca1.rsp deleted file mode 100644 index c3d07dedf0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca1.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=true - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=ORCLPDB - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=racnode1 - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName=/u01/app/oracle/product/18.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=ORCLCDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=ORCLPDB,DB_NAME=ORCLCDB,ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1,SID=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19c.rsp deleted file mode 100644 index 157111d993..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19c.rsp +++ /dev/null @@ -1,58 +0,0 @@ -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 -gdbName=###ORACLE_SID### -sid=###ORACLE_SID### -databaseConfigType=###DATABASE_CONFIG_TYPE### -RACOneNodeServiceName= -policyManaged=false -createServerPool=false -serverPoolName= -cardinality= -force=false -pqPoolName= -pqCardinality= -createAsContainerDatabase=###CONTAINER_DB_FLAG### -numberOfPDBs=###PDB_COUNT### -pdbName=###ORACLE_PDB### -useLocalUndoForPDBs=true -pdbAdminPassword=###ORACLE_PWD### -nodelist=###DB_NODES### -templateName={ORACLE_HOME}/assistants/dbca/templates/General_Purpose.dbc -sysPassword=###ORACLE_PWD### -systemPassword=###ORACLE_PWD### -oracleHomeUserPassword= -emConfiguration=DBEXPRESS -emExpressPort=5500 -runCVUChecks=true -dbsnmpPassword=###ORACLE_PWD### -omsHost= -omsPort= -emUser= -emPassword= -dvConfiguration=false -dvUserName= -dvUserPassword= -dvAccountManagerName= -dvAccountManagerPassword= -olsConfiguration=false -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ -recoveryAreaDestination= -storageType=ASM -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ -asmsnmpPassword= -recoveryGroupName= -characterSet=AL32UTF8 -nationalCharacterSet=AL16UTF16 -registerWithDirService=false -dirServiceUserName= -dirServicePassword= -walletPassword= -listeners=LISTENER -variablesFile= -variables=DB_UNIQUE_NAME=###ORACLE_SID###,ORACLE_BASE=###DB_BASE###,PDB_NAME=###ORACLE_PDB###,DB_NAME=###ORACLE_SID###,ORACLE_HOME=###DB_HOME###,SID=###ORACLE_SID### -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive -sampleSchema=false -memoryPercentage=40 -databaseType=MULTIPURPOSE -automaticMemoryManagement=false -totalMemory=###TOTAL_MEMORY### diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19cv1.rsp deleted file mode 100644 index c584ed74fe..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/dbca_19cv1.rsp +++ /dev/null @@ -1,604 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2019. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName= - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle19c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid= - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType= - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged= - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool= - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force= - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle19c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase= - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 4094 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs= - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName= - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs= - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword= - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist= - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName= - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword= - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword= - -#----------------------------------------------------------------------------- -# Name : oracleHomeUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -oracleHomeUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration= - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle19c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks= - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort= - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration= - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle19c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration= - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation= - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination= - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType= - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName= - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle19c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet= - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle19c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet= - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService= - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners= - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables= - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -initParams= - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema= - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage= - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType= - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement= - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/enableRAC.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/enableRAC.sh deleted file mode 100644 index 1409e8f2e4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/enableRAC.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Enable RAC feature in Oracle Software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -source /home/${DB_USER}/.bashrc - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -make -f $DB_HOME/rdbms/lib/ins_rdbms.mk rac_on -make -f $DB_HOME/rdbms/lib/ins_rdbms.mk ioracle diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/fixupPreq.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/fixupPreq.sh deleted file mode 100644 index b748a04f94..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/fixupPreq.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup the Linux kernel parameter inside the container. Note that some parameter need to be set on Docker host. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -rpm -Uvh "$GRID_HOME/cv/rpm/cvuqdisk*" -echo "oracle soft nofile 1024" > /etc/security/limits.conf -echo "oracle hard nofile 65536" >> /etc/security/limits.conf -echo "oracle soft nproc 16384" >> /etc/security/limits.conf -echo "oracle hard nproc 16384" >> /etc/security/limits.conf -echo "oracle soft stack 10240" >> /etc/security/limits.conf -echo "oracle hard stack 32768" >> /etc/security/limits.conf -echo "oracle hard memlock 134217728" >> /etc/security/limits.conf -echo "oracle soft memlock 134217728" >> /etc/security/limits.conf -echo "grid soft nofile 1024" >> /etc/security/limits.conf -echo "grid hard nofile 65536" >> /etc/security/limits.conf -echo "grid soft nproc 16384" >> /etc/security/limits.conf -echo "grid hard nproc 16384" >> /etc/security/limits.conf -echo "grid soft stack 10240" >> /etc/security/limits.conf -echo "grid hard stack 32768" >> /etc/security/limits.conf -echo "grid hard memlock 134217728" >> /etc/security/limits.conf -echo "grid soft memlock 134217728" >> /etc/security/limits.conf -echo "ulimit -S -s 10240" >> /home/grid/.bashrc -echo "ulimit -S -s 10240" >> /home/oracle/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/functions.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/functions.sh deleted file mode 100644 index f9bf448ff6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/functions.sh +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Common Function File -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -export logfile=/tmp/orod.log -export logdir=/tmp -export STD_OUT_FILE="/proc/1/fd/1" -export STD_ERR_FILE="/proc/1/fd/2" -export TOP_PID=$$ - -###### Function Related to printing messages and exit the script if error occurred ################## -error_exit() { -local NOW=$(date +"%m-%d-%Y %T %Z") - # Display error message and exit -# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 - echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $logfile > $STD_OUT_FILE - kill -s TERM $TOP_PID -} - -print_message () -{ - local NOW=$(date +"%m-%d-%Y %T %Z") - # Display message and return - echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $logfile > $STD_OUT_FILE - return $? -} - -##################################################################################################### - -####### Function related to IP Checks ############################################################### - -validating_env_vars () -{ -local stat=3 -local ip="${1}" -local alive="${2}" - -print_message "checking IP is in correct format such as xxx.xxx.xxx.xxx" - -if valid_ip $ip; then - print_message "IP $ip format check passed!" -else - error_exit "IP $ip is not in correct format..please check!" -fi - -# Checking if Host is alive - -if [ "${alive}" == "true" ]; then - -print_message "Checking if IP is pingable or not!" - -if host_alive $ip; then - print_message "IP $ip is pingable ...check passed!" -else - error_exit "IP $ip is not pingable..check failed!" -fi - -else - -print_message "Checking if IP is pingable or not!" - -if host_alive $ip; then - error_exit "IP $ip is already allocated...check failed!" -else - print_message "IP $ip is not pingable..check passed!" -fi - -fi -} - -check_interface () -{ -local ethcard=$1 -local output - -ip link show | grep $ethcard - -output=$? - - if [ $output -eq 0 ];then - return 0 - else - return 1 - fi -} - -valid_ip() -{ - local ip=$1 - local stat=1 - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - OIFS=$IFS - IFS='.' - ip=($ip) - IFS=$OIFS - [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ - && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -host_alive() -{ - - local ip_or_hostname=$1 - local stat=1 -ping -c 1 -W 1 $ip_or_hostname >& /dev/null - -if [ $? -eq 0 ]; then - stat=0 - return $stat -else - stat=1 - return $stat -fi - -} - -resolveip(){ - - local host="$1" - if [ -z "$host" ] - then - return 1 - else - local ip=$( getent hosts "$host" | awk '{print $1}' ) - if [ -z "$ip" ] - then - ip=$( dig +short "$host" ) - if [ -z "$ip" ] - then - print_message "unable to resolve '$host'" - return 1 - else - print_message "$ip" - return 0 - fi - else - print_message "$ip" - return 0 - fi - fi -} - -################################################################################################################## - -############################################Match an Array element####################### -isStringExist () -{ -local checkthestring="$1" -local stringtocheck="$2" -local stat=1 - -IFS=', ' read -r -a string_array <<< "$checkthestring" - -for ((i=0; i < ${#string_array[@]}; ++i)); do - if [ ${stringtocheck} == ${string_array[i]} ]; then - stat=0 - fi -done - return $stat -} - - -######################################################################################### - - -##################################################Password function########################## - -setpasswd () -{ - -local user=$1 -local pass=$2 -echo $pass | passwd $user --stdin -} - -############################################################################################## diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid.rsp deleted file mode 100644 index 4baedc896d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=###SCAN_TYPE### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile=###SHARED_SCAN_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=###SCAN_PORT### - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=###CLUSTER_TYPE### - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile=###MEMBERDB_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=###CLUSTER_NAME### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=###CONFIGURE_GNS### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=###DHCP_CONF### - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=###GNS_OPTIONS### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain=###GNS_SUBDOMAIN### -oracle.install.crs.config.gpnp.gnsVIPAddress=###GNSVIP_HOSTNAME### - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=###NETWORK_STRING### - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=###GIMR_DG_FLAG### - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption=###STORAGE_OPTIONS_FOR_MEMBERDB### -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=###DB_ASM_DISKGROUP### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name=###GIMR_DG_NAME### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy=###GIMR_DG_REDUNDANCY### - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups=###GIMR_DG_FAILURE_GROUP### - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames=###GIMR_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks=###GIMR_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid1.rsp deleted file mode 100644 index ebfc119b01..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid1.rsp +++ /dev/null @@ -1,671 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/grid - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=racnode-scan - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=rac01cluster - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB,racnode2:racnode2-vip:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=eth0:192.168.17.0:5,eth1:172.16.1.0:1 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm_* - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_addnode.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_addnode.rsp deleted file mode 100644 index d1cbf4fab6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_addnode.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_ADDNODE - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###PUBLIC_HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_sw_install_19c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_sw_install_19c.rsp deleted file mode 100644 index 88e205b33e..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/grid_sw_install_19c.rsp +++ /dev/null @@ -1,668 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=###INSTALL_TYPE### - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=###HOSTNAME### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19c.rsp deleted file mode 100644 index 7f27a11e65..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19c.rsp +++ /dev/null @@ -1,63 +0,0 @@ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 -INVENTORY_LOCATION=###INVENTORY### -oracle.install.option=CRS_CONFIG -ORACLE_BASE=###GRID_BASE### -oracle.install.asm.OSOPER= -oracle.install.asm.OSASM=asmadmin -oracle.install.crs.config.scanType=###SCAN_TYPE### -oracle.install.crs.config.SCANClientDataFile=###SHARED_SCAN_FILE### -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### -oracle.install.crs.config.gpnp.scanPort=###SCAN_PORT### -oracle.install.crs.config.ClusterConfiguration=###CLUSTER_TYPE### -oracle.install.crs.config.configureAsExtendedCluster=false -oracle.install.crs.config.memberClusterManifestFile=###MEMBERDB_FILE### -oracle.install.crs.config.clusterName=###CLUSTER_NAME### -oracle.install.crs.config.gpnp.configureGNS=###CONFIGURE_GNS### -oracle.install.crs.config.autoConfigureClusterNodeVIP=###DHCP_CONF### -oracle.install.crs.config.gpnp.gnsOption=###GNS_OPTIONS### -oracle.install.crs.config.gpnp.gnsClientDataFile= -oracle.install.crs.config.gpnp.gnsSubDomain=###GNS_SUBDOMAIN### -oracle.install.crs.config.gpnp.gnsVIPAddress=###GNSVIP_HOSTNAME### -oracle.install.crs.config.sites= -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### -oracle.install.crs.config.networkInterfaceList=###NETWORK_STRING### -oracle.install.crs.configureGIMR=###GIMR_FLAG### -oracle.install.asm.configureGIMRDataDG=###GIMR_DG_FLAG### -oracle.install.crs.config.storageOption=###STORAGE_OPTIONS_FOR_MEMBERDB### -oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= -oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= -oracle.install.crs.config.useIPMI= -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -oracle.install.asm.SYSASMPassword=###PASSWORD### -oracle.install.asm.diskGroup.name=###DB_ASM_DISKGROUP### -oracle.install.asm.diskGroup.redundancy=###ASM_REDUNDANCY### -oracle.install.asm.diskGroup.AUSize=4 -oracle.install.asm.diskGroup.FailureGroups=###ASM_DG_FAILURE_GROUP### -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### -oracle.install.asm.diskGroup.quorumFailureGroupNames= -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### -oracle.install.asm.monitorPassword=###PASSWORD### -oracle.install.asm.gimrDG.name=###GIMR_DG_NAME### -oracle.install.asm.gimrDG.redundancy=###GIMR_DG_REDUNDANCY### -oracle.install.asm.gimrDG.AUSize=1 -oracle.install.asm.gimrDG.FailureGroups=###GIMR_DG_FAILURE_GROUP### -oracle.install.asm.gimrDG.disksWithFailureGroupNames=###GIMR_DISKGROUP_FG_DISKS### -oracle.install.asm.gimrDG.disks=###GIMR_DISKGROUP_DISKS### -oracle.install.asm.gimrDG.quorumFailureGroupNames= -oracle.install.asm.configureAFD=false -oracle.install.crs.configureRHPS=false -oracle.install.crs.config.ignoreDownNodes=false -oracle.install.config.managementOption=NONE -oracle.install.config.omsHost= -oracle.install.config.omsPort=0 -oracle.install.config.emAdminUser= -oracle.install.config.emAdminPassword= -oracle.install.crs.rootconfig.executeRootScript=false -oracle.install.crs.rootconfig.configMethod=ROOT -oracle.install.crs.rootconfig.sudoPath= -oracle.install.crs.rootconfig.sudoUserName= -oracle.install.crs.config.batchinfo= -oracle.install.crs.app.applicationAddress= -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19cv1.rsp deleted file mode 100644 index ac0ff0ba02..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/gridsetup_19cv1.rsp +++ /dev/null @@ -1,653 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2019. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION= - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option= - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE= - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA= - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM= - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 63 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9) and hyphens (-). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP= - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# Only the 1st field is applicable if you have chosen CRS_SWONLY as installation option -# Only the 1st field is applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:site1,node2:node2-vip:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes= - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Specify 'true' if you would like to configure Grid Infrastructure Management -# Repository (GIMR), else specify 'false'. -# This option is only applicable when CRS_CONFIG is chosen as install option, -# and STANDALONE is chosen as cluster configuration. -#------------------------------------------------------------------------------ -oracle.install.crs.configureGIMR= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG= - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files. Only applicable for Standalone and MemberDB cluster. -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# - FILE_SYSTEM_STORAGE -# -# Option FILE_SYSTEM_STORAGE is only for STANDALONE cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= - -#------------------------------------------------------------------------------- -# These properties are applicable only if FILE_SYSTEM_STORAGE is chosen for -# storing OCR and voting disk -# Specify the location(s) for OCR and voting disks -# Three(3) or one(1) location(s) should be specified for OCR and voting disk, -# separated by commas. -# Example: -# For Unix based Operating System: -# oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=/oradbocfs/storage/vdsk1,/oradbocfs/storage/vdsk2,/oradbocfs/storage/vdsk3 -# oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=/oradbocfs/storage/ocr1,/oradbocfs/storage/ocr2,/oradbocfs/storage/ocr3 -# For Windows based Operating System OCR/VDSK on shared storage is not supported. -#------------------------------------------------------------------------------- -oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= -oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI= - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize= - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize= - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD= -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS= - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes= -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption= - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort= - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript= - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# Applicable only when SUDO configuration method was chosen. -# Note:For Grid Infrastructure for Standalone server installations,the sudo user name must be the username of the user performing the installation. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=Node1:1,Node2:2,Node3:2,Node4:3 -# 2. oracle.install.crs.config.batchinfo=Node1:1,Node2:2,Node3:2,Node4:2 -# 3. oracle.install.crs.config.batchinfo=Node1:1,Node2:1,Node3:2,Node4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/initsh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/initsh deleted file mode 100644 index 27f753d46b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/initsh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Copyright (c) 2022, Oracle and/or its affiliates -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ - -echo "Creating env variables file /etc/rac_env_vars" -/bin/bash -c "cat /proc/1/environ | tr '\0' '\n' > /etc/rac_env_vars" -/bin/bash -c "sed -i -e 's/^/export /' /etc/rac_env_vars" - -echo "Starting Systemd" -exec /lib/systemd/systemd diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installDBBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installDBBinaries.sh deleted file mode 100644 index 31f62fc523..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installDBBinaries.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description:Installing Oracle DB software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" -a "$EDITION" != "SE2" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether DB_BASE is set -if [ "$DB_BASE" == "" ]; then - echo "ERROR: DB_BASE has not been set!" - echo "You have to have the DB_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether DB_HOME is set -if [ "$DB_HOME" == "" ]; then - echo "ERROR: DB_HOME has not been set!" - echo "You have to have the DB_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Replace place holders -# --------------------- -sed -i -e "s|###ORACLE_EDITION###|$EDITION|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_BASE###|$DB_BASE|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###DB_HOME###|$DB_HOME|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$DB_INSTALL_RSP - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -# Install Oracle binaries -if [ "${DB_USER}" != "${GRID_USER}" ]; then -mkdir -p /home/${DB_USER}/.ssh && \ -chmod 700 /home/${DB_USER}/.ssh -fi - - -# Install Oracle binaries -unzip -q $INSTALL_SCRIPTS/$INSTALL_FILE_2 -d $DB_HOME && \ -$DB_HOME/runInstaller -silent -force -waitforcompletion -responsefile $INSTALL_SCRIPTS/$DB_INSTALL_RSP -ignorePrereqFailure || true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installGridBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installGridBinaries.sh deleted file mode 100644 index c047ad3bff..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/installGridBinaries.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Install grid software inside the container. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -EDITION=$1 -# shellcheck disable=SC2034 -PATCH_NUMBER=$2 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - -# shellcheck disable=SC2006 -temp_var1=`hostname` - -# Replace place holders -# --------------------- -# shellcheck disable=SC2086,SC1101 -sed -i -e "s|###HOSTNAME###|$temp_var1|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP && \ -sed -i -e "s|###INSTALL_TYPE###|CRS_SWONLY|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP && \ -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP - -# Install Oracle binaries -# shellcheck disable=SC2015,SC2086 -mkdir -p /home/grid/.ssh && \ -chmod 700 /home/grid/.ssh && \ -unzip -q $INSTALL_SCRIPTS/$INSTALL_FILE_1 -d $GRID_HOME && \ -$GRID_HOME/gridSetup.sh -silent -responseFile $INSTALL_SCRIPTS/$GRID_SW_INSTALL_RSP -ignorePrereqFailure || true \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/remoteListener.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/remoteListener.sh deleted file mode 100644 index dbd9e3130d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/remoteListener.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Set the Oracle Connection Manager IP as remote listener in oracle DB -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh - -sid=$1 -scan_name=$2 -cman_host=$3 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." -else - echo "Oracle Sid : $sid" -fi; - -if [ -z "${scan_name}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - SCAN Name is not set. Please set SCAN Name before invoking this script." - else - echo " Scan name : $scan_name" -fi; - -if [ -z "${cman_host}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - CMAN Host Name is not set. Please set CMAN Hostname before invoking this script." - echo "Cman Host : $cman_host" -fi; - - -export ORACLE_HOME=$DB_HOME -ORACLE_SID=$($DB_HOME/bin/srvctl status database -d $sid | grep $(hostname) | awk '{ print $2 }') - -echo "setting Oracle sid to $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -echo "Remote Lisetenr String : remote_listener=$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))" - -status=`$DB_HOME/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; -alter system set remote_listener='$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))' scope=both; - alter system register; -alter system register; -alter system register; -alter system register; - exit; -EOF` - -#echo "Stopping Oracle Database" -#$ORACLE_HOME/bin/srvctl stop database -d $sid -#echo "Starting Oracle Database" -#$ORACLE_HOME/bin/srvctl start database -d $sid diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetFailedUnits.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetFailedUnits.sh deleted file mode 100644 index a1038ec754..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetFailedUnits.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -############################# -# Copyright 2023, Oracle Corporation and/or affiliates. All rights reserved. -# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl -############################ - -current_time=$(date "+Y.%m.%d-%H.%M.%S") -new_failed_unit_file_name="failed_units_${current_time}" -systemctl_state=$(systemctl status | awk '/State:/{ print $0 }' | grep -v 'awk /State:/' | awk '{ print $2 }') - -if [ "${systemctl_state}" != "running" ]; then - systemctl reset-failed - touch /tmp/"$new_failed_unit_file_name" -fi - diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetOSPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetOSPassword.sh deleted file mode 100644 index 5f184c5231..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/resetOSPassword.sh +++ /dev/null @@ -1,241 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Reset the password for Grid and oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -declare -a cluster_nodes -GRID_USER='grid' -DB_USER='oracle' -PROGNAME=$(basename "$0") -PWD_KEY='pwd.key' -SECRET_VOLUME='/run/secrets' -declare -x REMOVE_OS_PWD_FILES='false' -PASSWD_VALUE="NOPASSWD" -# shellcheck disable=SC1091 -source /etc/rac_env_vars - -###################Capture Process id and source functions.sh############### -# shellcheck disable=SC1091 -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -generate_pwd () -{ - -if [ -f "${SECRET_VOLUME}/${PWD_FILE}" ] && [ -f "${SECRET_VOLUME}/${PWD_KEY}" ] ; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${PWD_FILE}" -out /tmp/${PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during common os password file generation" -fi - -read -r PASSWORD < /tmp/"${PWD_FILE}" -rm -f /tmp/"${PWD_FILE}" -rm -f /tmp/"${PWD_KEY}" - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f "${SECRET_VOLUME}"/"${COMMON_OS_PWD_FILE}" -rm -f "${SECRET_VOLUME}"/"${PWD_KEY}" -fi - -elif [ -f "${SECRET_VOLUME}/${PWD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl base64 -d -in "${SECRET_VOLUME}/${PWD_FILE}" -out /tmp/"${PWD_FILE}"' - - - if eval "$cmd"; then - print_message "Password file generated" - else - error_exit "Error occurred during password file ${PWD_FILE} generation" - fi - - read -r PASSWORD < /tmp/"${PWD_FILE}" - rm -f /tmp/"${PWD_FILE}" -else - print_message "Password file or password key file is empty string! generating random password" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ -n "${PASSWORD}" ]; then - PASSWD_VALUE="${PASSWORD}" -fi - -} - -setNode () { -if [ ! -f "$GRID_HOME"/bin/olsnodes ]; then -cluster_nodes=( "$(hostname)" ) -else -# shellcheck disable=SC2086 -cluster_nodes=( "$(${GRID_HOME}/bin/olsnodes | awk '{ print $1 }')" ) -# shellcheck disable=SC2034 -node_count=$("$GRID_HOME"/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -fi -} - -reset_passwd () -{ -user=${1} -password=${2} - -if [ -z "${user}" ]; then -error_exit "user name is not specified. It must be set to oracle|grid" -fi - -if [ -z "${password}" ]; then -error_exit "password string is not specified" -fi - -for node in "${cluster_nodes[@]}" -do -if [ ! -f "$GRID_HOME"/bin/olsnodes ]; then -print_message "Resetting password for ${user} on the ${node}" -# shellcheck disable=SC2016 -cmd='su - $user -c "echo $password | sudo passwd $user --stdin"' -else -print_message "Resetting password for ${user} on all the ${node}" -# shellcheck disable=SC2016 -cmd='su - $user -c "ssh ${node} \"echo $password | sudo passwd $user --stdin\""' -fi - - -if eval "$cmd"; then -print_message "Password reset seucessfuly on ${node} for $user" -else -print_message "Password reset failed on ${node} for $user" -fi -done -} - -usage() { -cat << EOF -Usage: -o|--op_type Specify the value reset_grid_oracle|reset_grid|reset_oracle - -p|--pwd_file Specify the encrypted password file name - -k|--pwd_key_file Specify password key fle - -s|--secret_volume Specify the secret volume - -r|--remove_os_pwd_files Remove the passwordfiles after resetting the password - -h|--help Show help -EOF -error_exit "Please specify correct parameters" -} - -##################################################################### -### MAIN # -##################################################################### - -SHORTOPTS="o:p:k:s:r:h" -LONGOPTS="help,op_type:,pwd_key_file:,pwd_file:,secret_volume:,remove_os_pwd_files:" - -ARGS=$(getopt -o $SHORTOPTS --long $LONGOPTS --name "$PROGNAME" -- "$@" ) - -# shellcheck disable=SC2181 -if [ $? != 0 ] ; then -error_exit "Terminating... as error occurred during ARGS computation"; -fi - -print_message "$ARGS" - -eval set -- "$ARGS" - -while true; do -case "$1" in - --help) - usage -;; - -o | --op_type) - if [ "$2" ]; then - RESET_PASSWORD_TYPE=$2 - else - error_exit "--op_type requires non empty option argument" - fi - print_message "RESET_PASSWORD_TYPE=${RESET_PASSWORD_TYPE}" - shift 2 -;; - -p | --pwd_file) - if [ "$2" ]; then - PWD_FILE=$2 - else - print_message "--pwd_file set to empty string. random password will generated" - fi - print_message "PWD_FILE: $PWD_FILE" - shift 2 -;; --k | --pwd_key_file) - if [ "$2" ];then - PWD_KEY=$2 - else - PWD_KEY='pwd.key' - print_message "--pwd_key set to empty string. It will be set to default value ${PWD_KEY}" - fi - print_message "PWD_KEY=$PWD_KEY" - shift 2 -;; - -s | --secret_volume) - echo "Secret Volume Location" - if [ "$2" ];then - SECRET_VOLUME=$2 - else - SECRET_VOLUME='/run/secrets' - print_message "--secret_volume is set to empty string. It will be set to default value ${SECRET_VOLUME}" - fi - shift 2 -;; --r| --remove_os_pwd_files) - echo "Remove OS PWD files after resetting password" - if [ "${2}" == 'true' ]; then - REMOVE_OS_PWD_FILES='true' - else - REMOVE_OS_PWD_FILES='false' - fi - shift 2 -;; - --) - shift; - break; -;; -*) -print_message "Not a valid option" -usage -;; -esac -done - -print_message "generating node name from the cluster" -setNode -print_message "Generating password for grid and oracle user" -generate_pwd - -if [ "${PASSWD_VALUE}" == "NOPASSWD" ]; then - error_exit "Correct password string is not set" -fi - -if [ "${RESET_PASSWORD_TYPE}" == 'reset_grid_oracle' ]; then -print_message "Setting password for $GRID_USER user" -reset_passwd $GRID_USER "$PASSWD_VALUE" -print_message "Setting password for $DB_USER user" -reset_passwd $DB_USER "$PASSWD_VALUE" -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_grid' ]; then - print_message "Setting password for $GRID_USER user" - reset_passwd $GRID_USER "$PASSWD_VALUE" -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_oracle' ]; then - print_message "Setting password for $DB_USER user" - reset_passwd $DB_USER "$PASSWD_VALUE" -else -error_exit "Please specify correct value for RESET_PASSWORD_TYPE. Correct Values are reset_grid_oracle|reset_grid|reset_oracle" -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runOracle.sh deleted file mode 100644 index 5b78f43e44..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runOracle.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs the Oracle RAC Database inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -########################### - -if [ -f $logfile ]; then -mv $logfile $logfile."$(date +%Y%m%d-%H%M%S)" -touch $logfile -else -touch $logfile -fi - -chmod 666 $logfile -progname="$(basename $0)" -grid_install_status="FALSE" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -################################################## - - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -print_message "Process id of the program : $TOP_ID" -# Check whether container has enough memory -if [[ -f /sys/fs/cgroup/cgroup.controllers ]]; then - memory=$(cat /sys/fs/cgroup/memory.max) -else - memory=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) -fi - -# Github issue #219: Prevent integer overflow, -# only check if memory digits are less than 11 (single GB range and below) -if [[ ${memory} != "max" && ${#memory} -lt 11 && ${memory} -lt 8589934592 ]]; then - echo "Error: The container doesn't have enough memory allocated." - echo "A database container needs at least 8 GB of memory." - echo "You currently only have $((memory/1024/1024/1024)) GB allocated to the container." - exit 1; -fi - -print_message "#################################################" -print_message " Starting Grid Installation " -print_message "#################################################" - -print_message "Pre-Grid Setup steps are in process" -$SCRIPT_DIR/$SETUPGRIDENV -stat=$? -if [ $stat -ne 0 ]; then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "###################################################" -print_message "Pre-Grid Setup steps completed" -print_message "###################################################" - -print_message "Checking if grid is already configured" -if [ -d /etc/oracle ]; then -grid_install_status="TRUE" -if [ -f /etc/oracle/olr.loc ];then -grid_install_status="TRUE" -OLR_FILE=$(cat /etc/oracle/olr.loc | grep olrconfig_loc | awk -F "=" '{ print $2 }') -if [ -f $OLR_FILE ]; then -grid_install_status="TRUE" -print_message "Grid is installed on $(hostname). $progname will start the Grid service" -fi -fi -fi - -if [ $grid_install_status == "TRUE" ];then -print_message "Setting up Grid Env for Grid Start" -print_message "##########################################################################################" -print_message "Grid is already installed on this container! Grid will be started by default ohasd scripts" -print_message "############################################################################################" -else -if [ "${OP_TYPE}" == "INSTALL" ]; then -$SCRIPT_DIR/$CONFIGGRID -stat=$? - -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -elif [ "${OP_TYPE}" == "ADDNODE" ]; then -$SCRIPT_DIR/$ADDNODE -stat=$? -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -else -print_message "Usage : $progname INSTALL | ADDNODE" -error_exit "You can perform Cluster Install or Add Node" -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runUserScripts.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runUserScripts.sh deleted file mode 100644 index 0ed26af7fc..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/runUserScripts.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs user shell and SQL scripts -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -SCRIPTS_ROOT="$1"; -SCRIPTS_TYPE="$2"; - -# Check whether parameter has been passed on -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ "${SCRIPTS_TYPE}" == "DB" ] && [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts for ${SCRIPTS_TYPE}" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysdba" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts for ${SCRIPTS_TYPE}" - echo ""; - -fi; - -fi; - -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; - -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ "${SCRIPTS_TYPE}" == "GRID" ] && [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts for ${SCRIPTS_TYPE}" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysasm" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts for ${SCRIPTS_TYPE}" - echo ""; - -fi; - -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sample_19c.ccf b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sample_19c.ccf deleted file mode 100644 index e8118c918f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sample_19c.ccf +++ /dev/null @@ -1,53 +0,0 @@ -# -# Cluster nodes configuration specification file -# -# Format: -# node [vip] [role-identifier] [site-name] -# -# node - Node's public host name -# vip - Node's virtual host name -# role-identifier - Node's role with "/" prefix - should be "/HUB" or "/LEAF" -# site-name - Node's assigned site -# -# Specify details of one node per line. -# Lines starting with '#' will be skipped. -# -# (1) vip and role are not required for Oracle Grid Infrastructure software only -# installs and Oracle Member cluster for Applications -# (2) vip should be specified as AUTO if Node Virtual host names are Dynamically -# assigned -# (3) role-identifier can be specified as "/LEAF" only for "Oracle Standalone Cluster" -# (4) site-name should be specified only when configuring Oracle Grid Infrastructure with "Extended Cluster" option -# -# Examples: -# -------- -# For installing GI software only on a cluster: -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# node1 -# node2 -# -# For Standalone Cluster: -# ^^^^^^^^^^^^^^^^^^^^^^ -# node1 node1-vip /HUB -# node2 node2-vip /LEAF -# -# For Standalone Extended Cluster: -# ^^^^^^^^^^^^^^^^^^^^^^ -# node1 node1-vip /HUB sitea -# node2 node2-vip /LEAF siteb -# -# For Domain Services Cluster: -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# node1 node1-vip /HUB -# node2 node2-vip /HUB -# -# For Member Cluster for Oracle Database: -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# node1 node1-vip /HUB -# node2 node2-vip /HUB -# -# For Member Cluster for Applications: -# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# node1 -# node2 -# diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/scripts b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/scripts deleted file mode 120000 index 3c4aafe2bb..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/scripts +++ /dev/null @@ -1 +0,0 @@ -../../common/scripts \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setCrontab.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setCrontab.sh deleted file mode 100644 index a9b483c648..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setCrontab.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# shellcheck disable=SC2211 -# shellcheck disable=SC2035 -* * * * * /var/tmp/resetFailedUnits.sh diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setPassword.sh deleted file mode 100644 index d8abb189a0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setPassword.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets the password for sys, system and pdb_admin -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -ORACLE_PWD=$1 -#ORACLE_SID="`grep $DB_HOME /etc/oratab | cut -d: -f1`" -#ORACLE_PDB="`ls -dl $DB_BASE/oradata/$ORACLE_SID/*/ | grep -v pdbseed | awk '{print $9}' | cut -d/ -f6`" -ORAENV_ASK=NO - -ORACLE_SID=$2 -ORACLE_PDB=$3 - -source oraenv - -sqlplus / as sysdba << EOF - ALTER USER SYS IDENTIFIED BY "$ORACLE_PWD"; - ALTER USER SYSTEM IDENTIFIED BY "$ORACLE_PWD"; - ALTER SESSION SET CONTAINER=$ORACLE_PDB; - ALTER USER PDBADMIN IDENTIFIED BY "$ORACLE_PWD"; - exit; -EOF diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupDB.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupDB.sh deleted file mode 100644 index bcce178fab..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupDB.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p $DB_BASE -mkdir -p $DB_HOME - -usermod -g oinstall -G oinstall,dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,racdba,asmadmin ${DB_USER} - -chown -R ${DB_USER}:oinstall $DB_BASE -chown -R ${DB_USER}:oinstall $DB_HOME -chown -R ${DB_USER}:oinstall $INSTALL_SCRIPTS -chmod 775 $INSTALL_SCRIPTS - -echo "export PATH=$DB_PATH" >> /home/${DB_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$DB_LD_LIBRARY_PATH" >> /home/${DB_USER}/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/${DB_USER}/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/${DB_USER}/.bashrc -echo "export DB_BASE=$DB_BASE" >> /home/${DB_USER}/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/${DB_USER}/.bashrc - -if [ ${DB_USER} == ${GRID_USER} ]; then -sed -i '/PATH=/d' /home/${DB_USER}/.bashrc -echo "export PATH=$GRID_HOME/bin:$DB_PATH" >> /home/${DB_USER}/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_HOME/lib:$DB_LD_LIBRARY_PATH" >> /home/${DB_USER}/.bashrc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGrid.sh deleted file mode 100644 index 72739eb276..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGrid.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for Grid installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -# Create Directories -mkdir -p "${GRID_BASE}" -mkdir -p "${GRID_HOME}" - -groupadd -g 54334 asmadmin -groupadd -g 54335 asmdba -groupadd -g 54336 asmoper -useradd -u 54332 -g oinstall -G oinstall,asmadmin,asmdba,asmoper,racdba,dba "${GRID_USER}" - -chown -R "${GRID_USER}":oinstall "$GRID_BASE" -chown -R "${GRID_USER}":oinstall "$GRID_HOME" -mkdir -p "$INVENTORY" -chown -R "${GRID_USER}":oinstall "$INVENTORY" - -chmod 666 /etc/sudoers -echo "${DB_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -echo "${GRID_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers - -# shellcheck disable=SC2129 -echo "export PATH=$GRID_PATH" >> /home/"${GRID_USER}"/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_LD_LIBRARY_PATH" >> /home/"${GRID_USER}"/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/"${GRID_USER}"/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/"${GRID_USER}"/.bashrc -echo "export GRID_BASE=$GRID_BASE" >> /home/"${GRID_USER}"/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/"${GRID_USER}"/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGridEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGridEnv.sh deleted file mode 100644 index 24e1159bbd..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupGridEnv.sh +++ /dev/null @@ -1,357 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Pre-grid Setup tasks such as setting up hosts file -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# shellcheck disable=SC2181,SC2016,SC1091,SC2086 -####################### Variabes and Constants ################# - -declare -r TRUE=0 -DNS_SERVER_FLAG='false' # set this variable to true if you have DNS server. Then , it is not required to populate the /etc/hosts. -declare -r ETCHOSTS="/etc/hosts" # -declare -r ETCFSTAB="/etc/fstab" -declare -x GRID_USER='grid' ## Default user for grid installation -declare -r ASMADMIN_GROUP='asmadmin' ## Default group for Grid. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x NTPD_START='false' -declare -x RESOLV_CONF_FILE='/etc/resolv.conf' -declare -x RESET_FAILED_SYSTEMD='false' -declare -x SET_CRONTAB="setCrontab.sh" -declare -x RESET_FAILED_UNITS="resetFailedUnits.sh" - -######################## Variable and Constant declaration ends here ###### - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -######################################## Pre-Grid-Deployment Steps Begin here #################################### -pre_grid_deploy_steps () -{ -local systemd_svc -local systemctl_state - -# Setting default gateway -if [ -n "${DEFAULT_GATEWAY}" ];then - ip route del default - ip route add default via $DEFAULT_GATEWAY -fi - -# Adding blank ntp.conf -touch /etc/ntp.conf - -# Adding blank /etc/fstab -if [ ! -f ${ETCFSTAB} ]; then - touch /etc/fstab -fi - -# Changing permission for /common_scripts -if [ -d $COMMON_SCRIPTS ]; -then -chown -R grid:oinstall ${COMMON_SCRIPTS} -chmod 775 ${COMMON_SCRIPTS} -fi - -# Removing failed service as we systemd status 'running' - -for systemd_svc in $(systemctl | grep failed | awk '{ print $2}') -do - print_message "Disable failed service $systemd_svc" - systemctl disable $systemd_svc - print_message "Resetting Failed Services" - systemctl reset-failed -done - -print_message "Sleeping for 60 seconds" -sleep 60 - -systemctl_state=$(systemctl status | awk '/State:/{ print $0 }' | grep -v 'awk /State:/' | awk '{ print $2 }') - -if [ "${systemctl_state}" == "running" ]; then - print_message "Systemctl state is running!" -else - error_exit "Systemctl state is $systemctl_state! it must be running state inside the container to proceed further" -fi - -print_message "Setting correct permissions for /bin/ping" -chmod 6755 /bin/ping -chmod 6755 /usr/bin/ping -} - -##################################### Pre-Grid-Deployment steps end here ############################ -######################################### ASM Disk Functions ################################### - -build_block_device_list () -{ -local stat -local count=1 - - -#if [ "${OP_TYPE}" == 'INSTALL' -o "${OP_TYPE}" == 'ADDNODE' ]; then -if [ -n "${ASM_DEVICE_LIST}" ]; then -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership $device" - if [ -e $device ]; then - chown $GRID_USER:$ASMADMIN_GROUP $device - chmod 660 $device - else - error_exit "Device $device does not exist! Please verify" - fi - count=$((count+1)) - done -fi -else - error_exit "ASM_DEVICE_LIST is set to empty cannot proceed" -fi -#fi - - -} - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local stat -local count=1 - - -#if [ ${OP_TYPE} == 'INSTALL' ]; then - if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - if [ -n "${GIMR_DEVICE_LIST}" ]; then - print_message "Preapring Device list" - IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - chown $GRID_USER:$ASMADMIN_GROUP $device - chmod 660 $device - count=$((count +1 )) - done - fi -else - error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi -fi -#fi -} - -###################################### Setup Resolve.conf ########################################################### -setupResolvconf () -{ -local stat -local count=1 - - if [ -n "${DNS_SERVERS}" ]; then - print_message "Preapring Dns Servers list" - IFS=', ' read -r -a dns_servers <<< "$DNS_SERVERS" - local arr_dns=${#dns_servers[@]} - echo "search ${DOMAIN}" > ${RESOLV_CONF_FILE} -# sed -i '/127.0.0.11/d' ${RESOLV_CONF_FILE} - if [ $arr_dns -ne 0 ]; then - for dns in "${dns_servers[@]}" - do - print_message "Setting DNS Servers" - if grep -Fxq "${dns}" ${RESOLV_CONF_FILE} - then - print_message "nameserver ${dns} exist in ${RESOLV_CONF_FILE}. No need to modify the ${RESOLV_CONF_FILE}." - else - print_message "Adding nameserver ${dns} in ${RESOLV_CONF_FILE}." - echo "nameserver ${dns}" >> ${RESOLV_CONF_FILE} - fi - done - fi -else - print_message "DNS_SERVERS is set to empty. /etc/resolv.conf will use default dns docker embedded server." -fi - -} - -####################################### Set Resetting Failed Units ########################## -resetFailedUnits() -{ - if [ "${RESET_FAILED_SYSTEMD}" != 'false' ]; then - # Define the service name - SERVICE_NAME="rhnsd" - - # Check if the service is running - if pgrep -x "$SERVICE_NAME" >/dev/null; then - print_message "$SERVICE_NAME is running." - - # Check if the service is responding - if ! systemctl is-active --quiet "$SERVICE_NAME"; then - print_message "$SERVICE_NAME is not responding. Stopping the service." - systemctl stop "$SERVICE_NAME" - systemctl disable "$SERVICE_NAME" - print_message "$SERVICE_NAME stopped." - else - print_message "$SERVICE_NAME is responsive. No action needed." - fi - else - print_message "$SERVICE_NAME is not running." - fi - - cp "$SCRIPT_DIR/$RESET_FAILED_UNITS" "/var/tmp/$RESET_FAILED_UNITS" - chmod 755 "/var/tmp/$RESET_FAILED_UNITS" - print_message "Setting Crontab" - cmd="su - $GRID_USER -c \"sudo crontab $SCRIPT_DIR/$SET_CRONTAB\"" - eval "$cmd" - if [ $? ]; then - print_message "Sucessfully installed $SET_CRONTAB using crontab" - else - error_exit "Error occurred in crontab setup" - fi - - fi -} - - -############################################################################################# - -####################################### Start NTPD ################################################################### -startNTPD() -{ -if [ "${NTPD_START}" != 'false' ]; then -systemctl start ntpd -fi -} -####################################### ETC Host Function ############################################################# -checkHostName () -{ -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi -} - -SetupEtcHosts() -{ -local stat=3 -local HOST_LINE - -if [ "${DNS_SERVER_FLAG}" == 'false' ]; then - -if [ -n "$HOSTFILE" ]; then -cat $COMMON_SCRIPTS/$HOSTFILE > /etc/hosts -else -grep -P "127.0.0.1\tlocalhost.localdomain\tlocalhost" /etc/hosts -stat=$? - -if [ $stat -eq 1 ]; then -echo -e "127.0.0.1\tlocalhost.localdomain\tlocalhost" > /etc/hosts -fi - -for HOSTNAME in $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME $EXISTING_CLS_NODE $CMAN_HOSTNAME $GNSVIP_HOSTNAME; -do -#shellcheck disable=SC2143 -if [ -n "$(grep $HOSTNAME $ETCHOSTS)" ]; then -print_message "$HOSTNAME already exists : $(grep $HOSTNAME $ETCHOSTS), no $ETCHOSTS update required" -else - print_message "Preparing host line for $HOSTNAME"; - if [ "${HOSTNAME}" == "${PUBLIC_HOSTNAME}" ]; then - unset HOST_LINE - HOST_LINE="\n${PUBLIC_IP}\t${PUBLIC_HOSTNAME}.${DOMAIN}\t${PUBLIC_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${PRIV_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${PRIV_IP}\t${PRIV_HOSTNAME}.${DOMAIN}\t${PRIV_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${VIP_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${NODE_VIP}\t${VIP_HOSTNAME}.${DOMAIN}\t${VIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${EXISTING_CLS_NODE}" ]; then - unset HOST_LINE - HOST_LINE="\n${EXISTING_CLS_NODE_IP}\t${EXISTING_CLS_NODE}.${DOMAIN}\t${EXISTING_CLS_NODE}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS -elif [ "${HOSTNAME}" == "${SCAN_NAME}" ]; then - unset HOST_LINE - if [ -n "$SCAN_IP" ];then - HOST_LINE="\n${SCAN_IP}\t${SCAN_NAME}.${DOMAIN}\t${SCAN_NAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${CMAN_HOSTNAME}" ]; then - unset HOST_LINE - if [ -n "$CMAN_IP" ];then - HOST_LINE="\n${CMAN_IP}\t${CMAN_HOSTNAME}.${DOMAIN}\t${CMAN_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${GNSVIP_HOSTNAME}" ]; then - unset HOST_LINE - if [ -n "$GNS_VIP" ];then - HOST_LINE="\n${GNS_VIP}\t${GNSVIP_HOSTNAME}.${DOMAIN}\t${GNSVIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e $HOST_LINE >> $ETCHOSTS - fi -else - print_message "HOSTNAME should match any hostname in given hostnames $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME" -fi -fi -done -fi -#### DNS Server check ends below###### -fi -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -##### start ntpd ####### -startNTPD -resetFailedUnits -pre_grid_deploy_steps -checkHostName -SetupEtcHosts -######### ASM Device Setup ######## -build_block_device_list -build_gimr_block_device_list -####### Setup /etc/resolv.conf ###### -resetFailedUnits -setupResolvconf -print_message "#####################################################################" -print_message " RAC setup will begin in 2 minutes " -print_message "####################################################################" -sleep 2 -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupLinuxEnv.sh deleted file mode 100644 index d2d2062321..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupLinuxEnv.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /asmdisks && \ -mkdir /responsefiles && \ -yum -y install systemd oracle-database-preinstall-19c net-tools which zip unzip tar crontabs openssl expect e2fsprogs openssh-server vim-minimal passwd which sudo hostname policycoreutils-python-utils && \ -yum clean all - -## Custom install to install xorg, perl, ntpd,crontab and hostname inside the container - -#yum -y install systemd oracle-database-preinstall-19c net-tools ntpd crontab perl gcc hostname which zip unzip tar openssl expect e2fsprogs openssh-server openssh-client vim-minimal passwd which sudo xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupSSH.expect b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupSSH.expect deleted file mode 100644 index dd99bb1e4f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/setupSSH.expect +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/expect -f -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2018 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup SSH between nodes -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -set username [lindex $argv 0]; -set script_loc [lindex $argv 1]; -set cluster_nodes [lindex $argv 2]; -set ssh_pass [lindex $argv 3]; - -set timeout 120 - -# Procedure to setup ssh from server -proc sshproc { ssh_pass } { - expect { - # Send password at 'Password' prompt and tell expect to continue(i.e. exp_continue) - -re "\[P|p]assword:" { exp_send "$ssh_pass\r" - exp_continue } - # Tell expect stay in this 'expect' block and for each character that SCP prints while doing the copy - # reset the timeout counter back to 0. - -re . { exp_continue } - timeout { return 1 } - eof { return 0 } - } -} - -# Execute sshUserSetup.sh Script -set ssh_cmd "$script_loc/sshUserSetup.sh -user $username -hosts \"${cluster_nodes}\" -logfile /tmp/${username}_SetupSSH.log -advanced -exverify -noPromptPassphrase -confirm" - -eval spawn $ssh_cmd -set ssh_results [sshproc $ssh_pass] - -if { $ssh_results == 0 } { - exit 0 -} - -# Error attempting SSH, so exit with non-zero status -exit 1 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sshUserSetup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sshUserSetup.sh deleted file mode 100644 index 094e8934ad..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/sshUserSetup.sh +++ /dev/null @@ -1,659 +0,0 @@ -#!/bin/sh -# Nitin Jerath - Aug 2005 -#Usage sshUserSetup.sh -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase] -#eg. sshUserSetup.sh -hosts "host1 host2" -user njerath -advanced -#This script is used to setup SSH connectivity from the host on which it is -# run to the specified remote hosts. After this script is run, the user can use # SSH to run commands on the remote hosts or copy files between the local host -# and the remote hosts without being prompted for passwords or confirmations. -# The list of remote hosts and the user name on the remote host is specified as -# a command line parameter to the script. Note that in case the user on the -# remote host has its home directory NFS mounted or shared across the remote -# hosts, this script should be used with -shared option. -#Specifying the -advanced option on the command line would result in SSH -# connectivity being setup among the remote hosts which means that SSH can be -# used to run commands on one remote host from the other remote host or copy -# files between the remote hosts without being prompted for passwords or -# confirmations. -#Please note that the script would remove write permissions on the remote hosts -#for the user home directory and ~/.ssh directory for "group" and "others". This -# is an SSH requirement. The user would be explicitly informed about this by the script and prompted to continue. In case the user presses no, the script would exit. In case the user does not want to be prompted, he can use -confirm option. -# As a part of the setup, the script would use SSH to create files within ~/.ssh -# directory of the remote node and to setup the requisite permissions. The -#script also uses SCP to copy the local host public key to the remote hosts so -# that the remote hosts trust the local host for SSH. At the time, the script -#performs these steps, SSH connectivity has not been completely setup hence -# the script would prompt the user for the remote host password. -#For each remote host, for remote users with non-shared homes this would be -# done once for SSH and once for SCP. If the number of remote hosts are x, the -# user would be prompted 2x times for passwords. For remote users with shared -# homes, the user would be prompted only twice, once each for SCP and SSH. -#For security reasons, the script does not save passwords and reuse it. Also, -# for security reasons, the script does not accept passwords redirected from a -#file. The user has to key in the confirmations and passwords at the prompts. -#The -verify option means that the user just wants to verify whether SSH has -#been set up. In this case, the script would not setup SSH but would only check -# whether SSH connectivity has been setup from the local host to the remote -# hosts. The script would run the date command on each remote host using SSH. In -# case the user is prompted for a password or sees a warning message for a -#particular host, it means SSH connectivity has not been setup correctly for -# that host. -#In case the -verify option is not specified, the script would setup SSH and -#then do the verification as well. -#In case the user speciies the -exverify option, an exhaustive verification would be done. In that case, the following would be checked: -# 1. SSH connectivity from local host to all remote hosts. -# 2. SSH connectivity from each remote host to itself and other remote hosts. - -#echo Parsing command line arguments -numargs=$# - -ADVANCED=false -HOSTNAME=`hostname` -CONFIRM=no -SHARED=false -i=1 -USR=$USER - -if test -z "$TEMP" -then - TEMP=/tmp -fi - -IDENTITY=id_rsa -LOGFILE=$TEMP/sshUserSetup_`date +%F-%H-%M-%S`.log -VERIFY=false -EXHAUSTIVE_VERIFY=false -HELP=false -PASSPHRASE=no -RERUN_SSHKEYGEN=no -NO_PROMPT_PASSPHRASE=no - -while [ $i -le $numargs ] -do - j=$1 - if [ $j = "-hosts" ] - then - HOSTS=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-user" ] - then - USR=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-logfile" ] - then - LOGFILE=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-confirm" ] - then - CONFIRM=yes - fi - if [ $j = "-hostfile" ] - then - CLUSTER_CONFIGURATION_FILE=$2 - shift 1 - i=`expr $i + 1` - fi - if [ $j = "-usePassphrase" ] - then - PASSPHRASE=yes - fi - if [ $j = "-noPromptPassphrase" ] - then - NO_PROMPT_PASSPHRASE=yes - fi - if [ $j = "-shared" ] - then - SHARED=true - fi - if [ $j = "-exverify" ] - then - EXHAUSTIVE_VERIFY=true - fi - if [ $j = "-verify" ] - then - VERIFY=true - fi - if [ $j = "-advanced" ] - then - ADVANCED=true - fi - if [ $j = "-help" ] - then - HELP=true - fi - i=`expr $i + 1` - shift 1 -done - - -if [ $HELP = "true" ] -then - echo "Usage $0 -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase]" -echo "This script is used to setup SSH connectivity from the host on which it is run to the specified remote hosts. After this script is run, the user can use SSH to run commands on the remote hosts or copy files between the local host and the remote hosts without being prompted for passwords or confirmations. The list of remote hosts and the user name on the remote host is specified as a command line parameter to the script. " -echo "-user : User on remote hosts. " -echo "-hosts : Space separated remote hosts list. " -echo "-hostfile : The user can specify the host names either through the -hosts option or by specifying the absolute path of a cluster configuration file. A sample host file contents are below: " -echo -echo " stacg30 stacg30int 10.1.0.0 stacg30v -" -echo " stacg34 stacg34int 10.1.0.1 stacg34v -" -echo -echo " The first column in each row of the host file will be used as the host name." -echo -echo "-usePassphrase : The user wants to set up passphrase to encrypt the private key on the local host. " -echo "-noPromptPassphrase : The user does not want to be prompted for passphrase related questions. This is for users who want the default behavior to be followed." -echo "-shared : In case the user on the remote host has its home directory NFS mounted or shared across the remote hosts, this script should be used with -shared option. " -echo " It is possible for the user to determine whether a user's home directory is shared or non-shared. Let us say we want to determine that user user1's home directory is shared across hosts A, B and C." -echo " Follow the following steps:" -echo " 1. On host A, touch ~user1/checkSharedHome.tmp" -echo " 2. On hosts B and C, ls -al ~user1/checkSharedHome.tmp" -echo " 3. If the file is present on hosts B and C in ~user1 directory and" -echo " is identical on all hosts A, B, C, it means that the user's home " -echo " directory is shared." -echo " 4. On host A, rm -f ~user1/checkSharedHome.tmp" -echo " In case the user accidentally passes -shared option for non-shared homes or viceversa,SSH connectivity would only be set up for a subset of the hosts. The user would have to re-run the setyp script with the correct option to rectify this problem." -echo "-advanced : Specifying the -advanced option on the command line would result in SSH connectivity being setup among the remote hosts which means that SSH can be used to run commands on one remote host from the other remote host or copy files between the remote hosts without being prompted for passwords or confirmations." -echo "-confirm: The script would remove write permissions on the remote hosts for the user home directory and ~/.ssh directory for "group" and "others". This is an SSH requirement. The user would be explicitly informed about this by the script and prompted to continue. In case the user presses no, the script would exit. In case the user does not want to be prompted, he can use -confirm option." -echo "As a part of the setup, the script would use SSH to create files within ~/.ssh directory of the remote node and to setup the requisite permissions. The script also uses SCP to copy the local host public key to the remote hosts so that the remote hosts trust the local host for SSH. At the time, the script performs these steps, SSH connectivity has not been completely setup hence the script would prompt the user for the remote host password. " -echo "For each remote host, for remote users with non-shared homes this would be done once for SSH and once for SCP. If the number of remote hosts are x, the user would be prompted 2x times for passwords. For remote users with shared homes, the user would be prompted only twice, once each for SCP and SSH. For security reasons, the script does not save passwords and reuse it. Also, for security reasons, the script does not accept passwords redirected from a file. The user has to key in the confirmations and passwords at the prompts. " -echo "-verify : -verify option means that the user just wants to verify whether SSH has been set up. In this case, the script would not setup SSH but would only check whether SSH connectivity has been setup from the local host to the remote hosts. The script would run the date command on each remote host using SSH. In case the user is prompted for a password or sees a warning message for a particular host, it means SSH connectivity has not been setup correctly for that host. In case the -verify option is not specified, the script would setup SSH and then do the verification as well. " -echo "-exverify : In case the user speciies the -exverify option, an exhaustive verification for all hosts would be done. In that case, the following would be checked: " -echo " 1. SSH connectivity from local host to all remote hosts. " -echo " 2. SSH connectivity from each remote host to itself and other remote hosts. " -echo The -exverify option can be used in conjunction with the -verify option as well to do an exhaustive verification once the setup has been done. -echo "Taking some examples: Let us say local host is Z, remote hosts are A,B and C. Local user is njerath. Remote users are racqa(non-shared), aime(shared)." -echo "$0 -user racqa -hosts "A B C" -advanced -exverify -confirm" -echo "Script would set up connectivity from Z -> A, Z -> B, Z -> C, A -> A, A -> B, A -> C, B -> A, B -> B, B -> C, C -> A, C -> B, C -> C." -echo "Since user has given -exverify option, all these scenario would be verified too." -echo -echo "Now the user runs : $0 -user racqa -hosts "A B C" -verify" -echo "Since -verify option is given, no SSH setup would be done, only verification of existing setup. Also, since -exverify or -advanced options are not given, script would only verify connectivity from Z -> A, Z -> B, Z -> C" - -echo "Now the user runs : $0 -user racqa -hosts "A B C" -verify -advanced" -echo "Since -verify option is given, no SSH setup would be done, only verification of existing setup. Also, since -advanced options is given, script would verify connectivity from Z -> A, Z -> B, Z -> C, A-> A, A->B, A->C, A->D" - -echo "Now the user runs:" -echo "$0 -user aime -hosts "A B C" -confirm -shared" -echo "Script would set up connectivity between Z->A, Z->B, Z->C only since advanced option is not given." -echo "All these scenarios would be verified too." - -exit -fi - -if test -z "$HOSTS" -then - if test -n "$CLUSTER_CONFIGURATION_FILE" && test -f "$CLUSTER_CONFIGURATION_FILE" - then - HOSTS=`awk '$1 !~ /^#/ { str = str " " $1 } END { print str }' $CLUSTER_CONFIGURATION_FILE` - elif ! test -f "$CLUSTER_CONFIGURATION_FILE" - then - echo "Please specify a valid and existing cluster configuration file." - fi -fi - -if test -z "$HOSTS" || test -z $USR -then -echo "Either user name or host information is missing" -echo "Usage $0 -user [ -hosts \"\" | -hostfile ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase]" -exit 1 -fi - -if [ -d $LOGFILE ]; then - echo $LOGFILE is a directory, setting logfile to $LOGFILE/ssh.log - LOGFILE=$LOGFILE/ssh.log -fi - -echo The output of this script is also logged into $LOGFILE | tee -a $LOGFILE - -if [ `echo $?` != 0 ]; then - echo Error writing to the logfile $LOGFILE, Exiting - exit 1 -fi - -echo Hosts are $HOSTS | tee -a $LOGFILE -echo user is $USR | tee -a $LOGFILE -SSH="/usr/bin/ssh" -SCP="/usr/bin/scp" -SSH_KEYGEN="/usr/bin/ssh-keygen" -calculateOS() -{ - platform=`uname -s` - case "$platform" - in - "SunOS") os=solaris;; - "Linux") os=linux;; - "HP-UX") os=hpunix;; - "AIX") os=aix;; - *) echo "Sorry, $platform is not currently supported." | tee -a $LOGFILE - exit 1;; - esac - - echo "Platform:- $platform " | tee -a $LOGFILE -} -calculateOS -BITS=1024 -ENCR="rsa" - -deadhosts="" -alivehosts="" -if [ $platform = "Linux" ] -then - PING="/bin/ping" -else - PING="/usr/sbin/ping" -fi -#bug 9044791 -if [ -n "$SSH_PATH" ]; then - SSH=$SSH_PATH -fi -if [ -n "$SCP_PATH" ]; then - SCP=$SCP_PATH -fi -if [ -n "$SSH_KEYGEN_PATH" ]; then - SSH_KEYGEN=$SSH_KEYGEN_PATH -fi -if [ -n "$PING_PATH" ]; then - PING=$PING_PATH -fi -PATH_ERROR=0 -if test ! -x $SSH ; then - echo "ssh not found at $SSH. Please set the variable SSH_PATH to the correct location of ssh and retry." - PATH_ERROR=1 -fi -if test ! -x $SCP ; then - echo "scp not found at $SCP. Please set the variable SCP_PATH to the correct location of scp and retry." - PATH_ERROR=1 -fi -if test ! -x $SSH_KEYGEN ; then - echo "ssh-keygen not found at $SSH_KEYGEN. Please set the variable SSH_KEYGEN_PATH to the correct location of ssh-keygen and retry." - PATH_ERROR=1 -fi -if test ! -x $PING ; then - echo "ping not found at $PING. Please set the variable PING_PATH to the correct location of ping and retry." - PATH_ERROR=1 -fi -if [ $PATH_ERROR = 1 ]; then - echo "ERROR: one or more of the required binaries not found, exiting" - exit 1 -fi -#9044791 end -echo Checking if the remote hosts are reachable | tee -a $LOGFILE -for host in $HOSTS -do - if [ $platform = "SunOS" ]; then - $PING -s $host 5 5 - elif [ $platform = "HP-UX" ]; then - $PING $host -n 5 -m 5 - else - $PING -c 5 -w 5 $host - fi - exitcode=`echo $?` - if [ $exitcode = 0 ] - then - alivehosts="$alivehosts $host" - else - deadhosts="$deadhosts $host" - fi -done - -if test -z "$deadhosts" -then - echo Remote host reachability check succeeded. | tee -a $LOGFILE - echo The following hosts are reachable: $alivehosts. | tee -a $LOGFILE - echo The following hosts are not reachable: $deadhosts. | tee -a $LOGFILE - echo All hosts are reachable. Proceeding further... | tee -a $LOGFILE -else - echo Remote host reachability check failed. | tee -a $LOGFILE - echo The following hosts are reachable: $alivehosts. | tee -a $LOGFILE - echo The following hosts are not reachable: $deadhosts. | tee -a $LOGFILE - echo Please ensure that all the hosts are up and re-run the script. | tee -a $LOGFILE - echo Exiting now... | tee -a $LOGFILE - exit 1 -fi - -firsthost=`echo $HOSTS | awk '{print $1}; END { }'` -echo firsthost $firsthost -numhosts=`echo $HOSTS | awk '{ }; END {print NF}'` -echo numhosts $numhosts - -if [ $VERIFY = "true" ] -then - echo Since user has specified -verify option, SSH setup would not be done. Only, existing SSH setup would be verified. | tee -a $LOGFILE - continue -else -echo The script will setup SSH connectivity from the host ''`hostname`'' to all | tee -a $LOGFILE -echo the remote hosts. After the script is executed, the user can use SSH to run | tee -a $LOGFILE -echo commands on the remote hosts or copy files between this host ''`hostname`'' | tee -a $LOGFILE -echo and the remote hosts without being prompted for passwords or confirmations. | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo NOTE 1: | tee -a $LOGFILE -echo As part of the setup procedure, this script will use 'ssh' and 'scp' to copy | tee -a $LOGFILE -echo files between the local host and the remote hosts. Since the script does not | tee -a $LOGFILE -echo store passwords, you may be prompted for the passwords during the execution of | tee -a $LOGFILE -echo the script whenever 'ssh' or 'scp' is invoked. | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo NOTE 2: | tee -a $LOGFILE -echo "AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY" | tee -a $LOGFILE -echo AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEGES TO THESE | tee -a $LOGFILE -echo "directories." | tee -a $LOGFILE -echo | tee -a $LOGFILE -echo "Do you want to continue and let the script make the above mentioned changes (yes/no)?" | tee -a $LOGFILE - -if [ "$CONFIRM" = "no" ] -then - read CONFIRM -else - echo "Confirmation provided on the command line" | tee -a $LOGFILE -fi - -echo | tee -a $LOGFILE -echo The user chose ''$CONFIRM'' | tee -a $LOGFILE - -if [ -z "$CONFIRM" -o "$CONFIRM" != "yes" -a "$CONFIRM" != "no" ] -then - echo "You haven't specified proper input. Please enter 'yes' or 'no'. Exiting...." - exit 0 -fi -if [ "$CONFIRM" = "no" ] -then - echo "SSH setup is not done." | tee -a $LOGFILE - exit 1 -else - if [ $NO_PROMPT_PASSPHRASE = "yes" ] - then - echo "User chose to skip passphrase related questions." | tee -a $LOGFILE - else - if [ $SHARED = "true" ] - then - hostcount=`expr ${numhosts} + 1` - PASSPHRASE_PROMPT=`expr 2 \* $hostcount` - else - PASSPHRASE_PROMPT=`expr 2 \* ${numhosts}` - fi - echo "Please specify if you want to specify a passphrase for the private key this script will create for the local host. Passphrase is used to encrypt the private key and makes SSH much more secure. Type 'yes' or 'no' and then press enter. In case you press 'yes', you would need to enter the passphrase whenever the script executes ssh or scp. $PASSPHRASE " | tee -a $LOGFILE - echo "The estimated number of times the user would be prompted for a passphrase is $PASSPHRASE_PROMPT. In addition, if the private-public files are also newly created, the user would have to specify the passphrase on one additional occasion. " | tee -a $LOGFILE - echo "Enter 'yes' or 'no'." | tee -a $LOGFILE - if [ "$PASSPHRASE" = "no" ] - then - read PASSPHRASE - else - echo "Confirmation provided on the command line" | tee -a $LOGFILE - fi - - echo | tee -a $LOGFILE - echo The user chose ''$PASSPHRASE'' | tee -a $LOGFILE - if [ -z "$PASSPHRASE" -o "$PASSPHRASE" != "yes" -a "$PASSPHRASE" != "no" ] - then - echo "You haven't specified whether to use Passphrase or not. Please specify 'yes' or 'no'. Exiting..." - exit 0 - fi - - if [ "$PASSPHRASE" = "yes" ] - then - RERUN_SSHKEYGEN="yes" -#Checking for existence of ${IDENTITY} file - if test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} - then - echo "The files containing the client public and private keys already exist on the local host. The current private key may or may not have a passphrase associated with it. In case you remember the passphrase and do not want to re-run ssh-keygen, press 'no' and enter. If you press 'no', the script will not attempt to create any new public/private key pairs. If you press 'yes', the script will remove the old private/public key files existing and create new ones prompting the user to enter the passphrase. If you enter 'yes', any previous SSH user setups would be reset. If you press 'change', the script will associate a new passphrase with the old keys." | tee -a $LOGFILE - echo "Press 'yes', 'no' or 'change'" | tee -a $LOGFILE - read RERUN_SSHKEYGEN - echo The user chose ''$RERUN_SSHKEYGEN'' | tee -a $LOGFILE - if [ -z "$RERUN_SSHKEYGEN" -o "$RERUN_SSHKEYGEN" != "yes" -a "$RERUN_SSHKEYGEN" != "no" -a "$RERUN_SSHKEYGEN" != "change" ] - then - echo "You haven't specified whether to re-run 'ssh-keygen' or not. Please enter 'yes' , 'no' or 'change'. Exiting..." - exit 0; - fi - fi - else - if test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} - then - echo "The files containing the client public and private keys already exist on the local host. The current private key may have a passphrase associated with it. In case you find using passphrase inconvenient(although it is more secure), you can change to it empty through this script. Press 'change' if you want the script to change the passphrase for you. Press 'no' if you want to use your old passphrase, if you had one." - read RERUN_SSHKEYGEN - echo The user chose ''$RERUN_SSHKEYGEN'' | tee -a $LOGFILE - if [ -z "$RERUN_SSHKEYGEN" -o "$RERUN_SSHKEYGEN" != "yes" -a "$RERUN_SSHKEYGEN" != "no" -a "$RERUN_SSHKEYGEN" != "change" ] - then - echo "You haven't specified whether to re-run 'ssh-keygen' or not. Please enter 'yes' , 'no' or 'change'. Exiting..." - exit 0 - fi - fi - fi - fi - echo Creating .ssh directory on local host, if not present already | tee -a $LOGFILE - mkdir -p $HOME/.ssh | tee -a $LOGFILE -echo Creating authorized_keys file on local host | tee -a $LOGFILE -touch $HOME/.ssh/authorized_keys | tee -a $LOGFILE -echo Changing permissions on authorized_keys to 644 on local host | tee -a $LOGFILE -chmod 644 $HOME/.ssh/authorized_keys | tee -a $LOGFILE -mv -f $HOME/.ssh/authorized_keys $HOME/.ssh/authorized_keys.tmp | tee -a $LOGFILE -echo Creating known_hosts file on local host | tee -a $LOGFILE -touch $HOME/.ssh/known_hosts | tee -a $LOGFILE -echo Changing permissions on known_hosts to 644 on local host | tee -a $LOGFILE -chmod 644 $HOME/.ssh/known_hosts | tee -a $LOGFILE -mv -f $HOME/.ssh/known_hosts $HOME/.ssh/known_hosts.tmp | tee -a $LOGFILE - - -echo Creating config file on local host | tee -a $LOGFILE -echo If a config file exists already at $HOME/.ssh/config, it would be backed up to $HOME/.ssh/config.backup. -echo "Host *" > $HOME/.ssh/config.tmp | tee -a $LOGFILE -echo "ForwardX11 no" >> $HOME/.ssh/config.tmp | tee -a $LOGFILE - -if test -f $HOME/.ssh/config -then - cp -f $HOME/.ssh/config $HOME/.ssh/config.backup -fi - -mv -f $HOME/.ssh/config.tmp $HOME/.ssh/config | tee -a $LOGFILE -chmod 644 $HOME/.ssh/config - -if [ "$RERUN_SSHKEYGEN" = "yes" ] -then - echo Removing old private/public keys on local host | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub | tee -a $LOGFILE - echo Running SSH keygen on local host | tee -a $LOGFILE - $SSH_KEYGEN -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - -elif [ "$RERUN_SSHKEYGEN" = "change" ] -then - echo Running SSH Keygen on local host to change the passphrase associated with the existing private key | tee -a $LOGFILE - $SSH_KEYGEN -p -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE -elif test -f $HOME/.ssh/${IDENTITY}.pub && test -f $HOME/.ssh/${IDENTITY} -then - continue -else - echo Removing old private/public keys on local host | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY} | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub | tee -a $LOGFILE - echo Running SSH keygen on local host with empty passphrase | tee -a $LOGFILE - $SSH_KEYGEN -t $ENCR -b $BITS -f $HOME/.ssh/${IDENTITY} -N '' | tee -a $LOGFILE -fi - -if [ $SHARED = "true" ] -then - if [ $USER = $USR ] - then -#No remote operations required - echo Remote user is same as local user | tee -a $LOGFILE - REMOTEHOSTS="" - chmod og-w $HOME $HOME/.ssh | tee -a $LOGFILE - else - REMOTEHOSTS="${firsthost}" - fi -else - REMOTEHOSTS="$HOSTS" -fi - -for host in $REMOTEHOSTS -do - echo Creating .ssh directory and setting permissions on remote host $host | tee -a $LOGFILE - echo "THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR "group" AND "others" ON THE HOME DIRECTORY FOR $USR. THIS IS AN SSH REQUIREMENT." | tee -a $LOGFILE - echo The script would create ~$USR/.ssh/config file on remote host $host. If a config file exists already at ~$USR/.ssh/config, it would be backed up to ~$USR/.ssh/config.backup. | tee -a $LOGFILE - echo The user may be prompted for a password here since the script would be running SSH on host $host. | tee -a $LOGFILE - $SSH -o StrictHostKeyChecking=no -x -l $USR $host "/bin/sh -c \" mkdir -p .ssh ; chmod og-w . .ssh; touch .ssh/authorized_keys .ssh/known_hosts; chmod 644 .ssh/authorized_keys .ssh/known_hosts; cp .ssh/authorized_keys .ssh/authorized_keys.tmp ; cp .ssh/known_hosts .ssh/known_hosts.tmp; echo \\"Host *\\" > .ssh/config.tmp; echo \\"ForwardX11 no\\" >> .ssh/config.tmp; if test -f .ssh/config ; then cp -f .ssh/config .ssh/config.backup; fi ; mv -f .ssh/config.tmp .ssh/config\"" | tee -a $LOGFILE - echo Done with creating .ssh directory and setting permissions on remote host $host. | tee -a $LOGFILE -done - -for host in $REMOTEHOSTS -do - echo Copying local host public key to the remote host $host | tee -a $LOGFILE - echo The user may be prompted for a password or passphrase here since the script would be using SCP for host $host. | tee -a $LOGFILE - - $SCP $HOME/.ssh/${IDENTITY}.pub $USR@$host:.ssh/authorized_keys | tee -a $LOGFILE - echo Done copying local host public key to the remote host $host | tee -a $LOGFILE -done - -cat $HOME/.ssh/${IDENTITY}.pub >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE - -for host in $HOSTS -do - if [ "$ADVANCED" = "true" ] - then - echo Creating keys on remote host $host if they do not exist already. This is required to setup SSH on host $host. | tee -a $LOGFILE - if [ "$SHARED" = "true" ] - then - IDENTITY_FILE_NAME=${IDENTITY}_$host - COALESCE_IDENTITY_FILES_COMMAND="cat .ssh/${IDENTITY_FILE_NAME}.pub >> .ssh/authorized_keys" - else - IDENTITY_FILE_NAME=${IDENTITY} - fi - - $SSH -o StrictHostKeyChecking=no -x -l $USR $host " /bin/sh -c \"if test -f .ssh/${IDENTITY_FILE_NAME}.pub && test -f .ssh/${IDENTITY_FILE_NAME}; then echo; else rm -f .ssh/${IDENTITY_FILE_NAME} ; rm -f .ssh/${IDENTITY_FILE_NAME}.pub ; $SSH_KEYGEN -t $ENCR -b $BITS -f .ssh/${IDENTITY_FILE_NAME} -N '' ; fi; ${COALESCE_IDENTITY_FILES_COMMAND} \"" | tee -a $LOGFILE - else -#At least get the host keys from all hosts for shared case - advanced option not set - if test $SHARED = "true" && test $ADVANCED = "false" - then - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will fetch the host keys from all hosts. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -o StrictHostKeyChecking=no -x -l $USR $host "/bin/sh -c true" - fi - fi -done - -for host in $REMOTEHOSTS -do - if test $ADVANCED = "true" && test $SHARED = "false" - then - $SCP $USR@$host:.ssh/${IDENTITY}.pub $HOME/.ssh/${IDENTITY}.pub.$host | tee -a $LOGFILE - cat $HOME/.ssh/${IDENTITY}.pub.$host >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE - rm -f $HOME/.ssh/${IDENTITY}.pub.$host | tee -a $LOGFILE - fi -done - -for host in $REMOTEHOSTS -do - if [ "$ADVANCED" = "true" ] - then - if [ "$SHARED" != "true" ] - then - echo Updating authorized_keys file on remote host $host | tee -a $LOGFILE - $SCP $HOME/.ssh/authorized_keys $USR@$host:.ssh/authorized_keys | tee -a $LOGFILE - fi - echo Updating known_hosts file on remote host $host | tee -a $LOGFILE - $SCP $HOME/.ssh/known_hosts $USR@$host:.ssh/known_hosts | tee -a $LOGFILE - fi - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will run SSH on the remote machine $host. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -x -l $USR $host "/bin/sh -c \"cat .ssh/authorized_keys.tmp >> .ssh/authorized_keys; cat .ssh/known_hosts.tmp >> .ssh/known_hosts; rm -f .ssh/known_hosts.tmp .ssh/authorized_keys.tmp\"" | tee -a $LOGFILE -done - -cat $HOME/.ssh/known_hosts.tmp >> $HOME/.ssh/known_hosts | tee -a $LOGFILE -cat $HOME/.ssh/authorized_keys.tmp >> $HOME/.ssh/authorized_keys | tee -a $LOGFILE -#Added chmod to fix BUG NO 5238814 -chmod 644 $HOME/.ssh/authorized_keys -#Fix for BUG NO 5157782 -chmod 644 $HOME/.ssh/config -rm -f $HOME/.ssh/known_hosts.tmp $HOME/.ssh/authorized_keys.tmp | tee -a $LOGFILE -echo SSH setup is complete. | tee -a $LOGFILE -fi -fi - -echo | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE -echo Verifying SSH setup | tee -a $LOGFILE -echo =================== | tee -a $LOGFILE -echo The script will now run the 'date' command on the remote nodes using ssh | tee -a $LOGFILE -echo to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP, | tee -a $LOGFILE -echo THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR | tee -a $LOGFILE -echo PASSWORDS. If you see any output other than date or are prompted for the | tee -a $LOGFILE -echo password, ssh is not setup correctly and you will need to resolve the | tee -a $LOGFILE -echo issue and set up ssh again. | tee -a $LOGFILE -echo The possible causes for failure could be: | tee -a $LOGFILE -echo 1. The server settings in /etc/ssh/sshd_config file do not allow ssh | tee -a $LOGFILE -echo for user $USR. | tee -a $LOGFILE -echo 2. The server may have disabled public key based authentication. -echo 3. The client public key on the server may be outdated. -echo 4. ~$USR or ~$USR/.ssh on the remote host may not be owned by $USR. | tee -a $LOGFILE -echo 5. User may not have passed -shared option for shared remote users or | tee -a $LOGFILE -echo may be passing the -shared option for non-shared remote users. | tee -a $LOGFILE -echo 6. If there is output in addition to the date, but no password is asked, | tee -a $LOGFILE -echo it may be a security alert shown as part of company policy. Append the | tee -a $LOGFILE -echo "additional text to the /sysman/prov/resources/ignoreMessages.txt file." | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE -#read -t 30 dummy - for host in $HOSTS - do - echo --$host:-- | tee -a $LOGFILE - - echo Running $SSH -x -l $USR $host date to verify SSH connectivity has been setup from local host to $host. | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR." | tee -a $LOGFILE - if [ "$PASSPHRASE" = "yes" ] - then - echo "The script will run SSH on the remote machine $host. The user may be prompted for a passphrase here in case the private key has been encrypted with a passphrase." | tee -a $LOGFILE - fi - $SSH -l $USR $host "/bin/sh -c date" | tee -a $LOGFILE -echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - - -if [ "$EXHAUSTIVE_VERIFY" = "true" ] -then - for clienthost in $HOSTS - do - - if [ "$SHARED" = "true" ] - then - REMOTESSH="$SSH -i .ssh/${IDENTITY}_${clienthost}" - else - REMOTESSH=$SSH - fi - - for serverhost in $HOSTS - do - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo Verifying SSH connectivity has been setup from $clienthost to $serverhost | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL." | tee -a $LOGFILE - $SSH -l $USR $clienthost "$REMOTESSH $serverhost \"/bin/sh -c date\"" | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - echo -Verification from $clienthost complete- | tee -a $LOGFILE - done -else - if [ "$ADVANCED" = "true" ] - then - if [ "$SHARED" = "true" ] - then - REMOTESSH="$SSH -i .ssh/${IDENTITY}_${firsthost}" - else - REMOTESSH=$SSH - fi - for host in $HOSTS - do - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - echo Verifying SSH connectivity has been setup from $firsthost to $host | tee -a $LOGFILE - echo "IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL." | tee -a $LOGFILE - $SSH -l $USR $firsthost "$REMOTESSH $host \"/bin/sh -c date\"" | tee -a $LOGFILE - echo ------------------------------------------------------------------------ | tee -a $LOGFILE - done - echo -Verification from $clienthost complete- | tee -a $LOGFILE - fi -fi -echo "SSH verification complete." | tee -a $LOGFILE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/stopOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/stopOracle.sh deleted file mode 100644 index 6a5e26a8f6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/stopOracle.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Stop Oracle RAC DB and Deconfigure the cluster. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source $SCRIPT_DIR/functions.sh -touch $logfile -chmod 666 /tmp/orod.log -progname="$(basename $0)" - -########### Stop Svc ############ -stop_svc () { - print_message "Stopping container and performing Grid stop." - $GRID_HOME/bin/crsctl stop crs -f -} - -########### Deconfig Node from the cluster ############ -deconfig_cluster () { - print_message "received, shutting down database!" - node_count=$($GRID_HOME/bin/olsnodes -a | awk '{ print $1 }' | wc -l) - if [ $node_count -gt 1 ]; then - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force - elif [ $node_count -eq 1 ]; then - $GRID_HOME/crs/install/rootcrs.sh -deconfig -force -last - else - print_message "No need to deinstall cluster as it is not configured" - fi - - print_message " Removing entries from /etc/hosts" - sed -i '/$PUBLIC_HOSTNAME/d' /etc/hosts - sed -i '/$PRIVATE_HOSTNAME/d' /etc/hosts - sed -i '/$VIP_HOSTNAME/d' /etc/hosts -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -if [ "${STOP_TYPE}" == "DECONFIGURE" ]; then -deconfig_cluster -else -stop_svc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/tempfile b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/19.3.0/tempfile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/AddNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/AddNode.sh deleted file mode 100644 index ef50668bd1..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/AddNode.sh +++ /dev/null @@ -1,997 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Add a Grid node and add Oracle Database instance based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variables and Constants ################# -declare -r TRUE=0 -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x logdir="/tmp" ## Logdir location -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -x GIMR_DB_FLAG='false' ## GIMR DB Check by default is false -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x logfile="/var/tmp" -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x EXISTING_CLS_NODE ## Computed during the program execution. -declare -x EXISTING_CLS_NODES ## You must all the exisitng nodes of the cluster in comma separated strings. Otherwise installation will fail. -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS='false' ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PASSWORD_FILE='pwdfile' -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_TYPE='STANDARD' ## Default instllation is STANDARD. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -r OSDBA='dba' -declare -r OSASM='asmadmin' -declare -r INSTALL_TYPE='CRS_ADDNODE' -declare -x SCAN_TYPE='LOCAL_SCAN' -declare -x SHARED_SCAN -declare -x DB_ASM_DISKGROUP='DATA' -declare -x CONFIGURE_AFD_FLAG='false' -declare -x CONFIGURE_RHPS_FLAG='false' -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x PASSWORD_FILE='pwdfile' -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -if [ -f "/etc/rac_env_vars" ]; then - # shellcheck source=/dev/null - source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -# shellcheck source=/dev/null -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -all_check() -{ -check_pub_host_name -check_cls_node_names -check_ip_env_vars -check_passwd_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -#####################Function related to public hostname, IP and domain name check begin here ######## - -check_pub_host_name() -{ -local domain_name -local stat - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - -} - -############### Function related to public hostname, IP and domain checks ends here ########## - -############## Function related to check exisitng cls nodes begin here ####################### -check_cls_node_names() -{ -if [ -z "${EXISTING_CLS_NODES}" ]; then - error_exit "For Node Addition, please provide the existing clustered node name." -else - - if isStringExist "${EXISTING_CLS_NODES}" "${PUBLIC_HOSTNAME}"; then - error_exit "EXISTING_CLS_NODES ${EXISTING_CLS_NODES} contains new node name ${PUBLIC_HOSTNAME}" - fi - -print_message "Setting Existing Cluster Node for node addition operation. This will be retrieved from ${EXISTING_CLS_NODES}" - -EXISTING_CLS_NODE="$( cut -d ',' -f 1 <<< "$EXISTING_CLS_NODES" )" - -if [ -z "${EXISTING_CLS_NODE}" ]; then - error_exit " Existing Node Name of the cluster not set or set to empty string" -else - print_message "Existing Node Name of the cluster is set to ${EXISTING_CLS_NODE}" - -if resolveip "${EXISTING_CLS_NODE}"; then - print_message "Existing Cluster node resolved to IP. Check passed" -else - error_exit "Existing Cluster node does not resolved to IP. Check Failed" -fi -fi -fi -} - -############## Function related to check exisitng cls nodes begin here ####################### - -check_ip_env_vars () -{ -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is not set or set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is not set ot set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi - -if [ -z "${SCAN_NAME}" ]; then - print_message "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if resolveip "${SCAN_NAME}"; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z "${SCAN_IP}" ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is not set ot set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname is not set ot set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - - -if [ -z "${CMAN_HOSTNAME}" ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z "${CMAN_IP}" ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -} -################check ip env vars function ends here ############################ - -################ Check passwd env vars function begin here ###################### -check_passwd_env_vars() -{ -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then - # shellcheck disable=SC2016 - cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - - eval "${cmd}" - - # shellcheck disable=SC2181 - if [ $? -eq 0 ]; then - print_message "Password file generated" - else - error_exit "Error occurred during common os password file generation" - fi - - read -r PASSWORD < /tmp/${COMMON_OS_PWD_FILE} - rm -f /tmp/${COMMON_OS_PWD_FILE} - -elif [ -f "${SECRET_VOLUME}/${PASSWORD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl base64 -d -in "${SECRET_VOLUME}/${PASSWORD_FILE}" -out /tmp/"${PASSWORD_FILE}"' - eval "${cmd}" - - # shellcheck disable=SC2181 - if [ $? -eq 0 ]; then - print_message "Password file generated" - else - error_exit "Error occurred during password file ${PASSWORD_FILE} generation" - fi - - read -r PASSWORD < /tmp/${PASSWORD_FILE} - rm -f /tmp/${PASSWORD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ -n "${GRID_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval "${cmd}" - -# shellcheck disable=SC2181 -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read -r GRID_PASSWORD < /tmp/"${GRID_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ -n "${ORACLE_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -eval "${cmd}" - -# shellcheck disable=SC2181 -if [ $? -eq 0 ]; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read -r ORACLE_PASSWORD < /tmp/"${ORACLE_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f "${SECRET_VOLUME}"/"${COMMON_OS_PWD_FILE}" -rm -f "${SECRET_VOLUME}"/"${PWD_KEY}" -fi - -} - -############### Check password env vars function ends here ######################## - -############### Check grid Response file function begin here ###################### -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f "$COMMON_SCRIPTS"/"$GRID_RESPONSE_FILE" ];then -cp "${COMMON_SCRIPTS}"/"${GRID_RESPONSE_FILE}" "${logdir}"/"${GRID_RESPONSE_FILE}" -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT="$COMMON_SCRIPTS" -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -} - -############ Check responsefile function end here ###################### - -########### Check db env vars function begin here ####################### -check_db_env_vars () -{ -if [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -fi -if [ -z "${ORACLE_SID}" ]; then - print_message "ORACLE_SID is not defined" -else - print_message "ORACLE_SID is set to $ORACLE_SID" -fi - -} - -################# Check db env vars end here ################################## - -################ All Check Functions end here ##################################### - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local ssh_pid -local stat - -if [ -z "$CRS_NODES" ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - - -IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$CRS_NODES" -CLUSTER_NODES1=$( echo "$EXISTING_CLS_NODES" | tr ',' ' ' ) - -print_message "Cluster Nodes are ${CLUSTER_NODES1}" -print_message "Running SSH setup for $GRID_USER user between nodes ${CLUSTER_NODES1}" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES1}\" \"$GRID_PASSWORD\""' -(eval "${cmd}") & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Grid user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $GRID_USER user" -fi - -print_message "Running SSH setup for $DB_USER user between nodes ${CLUSTER_NODES1}" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"${CLUSTER_NODES1}\" \"$ORACLE_PASSWORD\""' -(eval "${cmd}") & -ssh_pid=$! -wait $ssh_pid -stat=$? - -if [ "${stat}" -ne 0 ]; then -error_exit "ssh setup for Oracle user failed!, please make sure you have pass the corect password. You need to make sure that password must be same on all the clustered nodes or the nodes set in existing_cls_nodes env variable for $DB_USER user" -fi -} - -checkSSH () -{ - -local ssh_pid -local stat -local status - -#IFS=', ' read -r -a CLUSTER_NODES <<< "$EXISTING_CLS_NODES" -EXISTING_CLS_NODES+=",$PUBLIC_HOSTNAME" -CLUSTER_NODES1=$(echo "$EXISTING_CLS_NODES" | tr ',' ' ') - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo "$cmd" - -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "${cmd}") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo "$cmd" -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -###################################### SSH Function End here #################################### - -######################Add Node Functions #################################### -runorainstroot() -{ -"$INVENTORY"/orainstRoot.sh -} - -runrootsh () -{ - -local ORACLE_HOME=$1 -local USER=$2 - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "${PUBLIC_HOSTNAME}" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -cmd="su - $USER -c 'ssh $node sudo $ORACLE_HOME/root.sh'" -eval "${cmd}" -done - -} - -generate_response_file () -{ -cp "$SCRIPT_DIR"/"$ADDNODE_RSP" "$logdir"/"$ADDNODE_RSP" -chmod 666 "$logdir"/"$ADDNODE_RSP" - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ -z "${CRS_CONFIG_NODES}" ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" - print_message "Clustered Nodes are set to $CRS_CONFIG_NODES" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -r "s|###PUBLIC_HOSTNAME###|$PUBLIC_HOSTNAME|g" "$logdir"/"$ADDNODE_RSP" -sed -i -r "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###OSDBA###|$OSDBA|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###OSOPER###|$OSOPER|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###OSASM###|$OSASM|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" "$logdir"/"$ADDNODE_RSP" -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" "$logdir"/"$ADDNODE_RSP" -else -print_message "Copying $COMMON_SCRIPTS/$GRID_RESPONSE_FILE $logdir/$ADDNODE_RSP" -cp "$COMMON_SCRIPTS"/"$GRID_RESPONSE_FILE" "$logdir"/"$ADDNODE_RSP" -chmod 666 "$logdir"/"$ADDNODE_RSP" -fi - -} - -###### Cluster Verification function ####### -CheckRemoteCluster () -{ -local cmd; -local stat; -local node=$EXISTING_CLS_NODE - -print_message "Checking Cluster" -# shellcheck disable=2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check crs\""' - - -if eval "$cmd" ;then -print_message "Cluster Check on remote node passed" -else -error_exit "Cluster Check on remote node failed" -fi - -# shellcheck disable=2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check cluster\""' - -if eval "$cmd"; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then - # shellcheck disable=2016 - cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/srvctl status mgmtdb\""' - - - if eval "$cmd"; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check crsd\""' - -if eval "$cmd"; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check cssd\""' - -if eval "$cmd"; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/bin/crsctl check evmd\""' - - -if eval "$cmd"; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -} - -setDevicePermissions () -{ - -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "$PUBLIC_HOSTNAME" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ -n "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - -# shellcheck disable=SC2086 -if [ ${arr_device} -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - done -fi - -fi - -if [ -n "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} - -# shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - # shellcheck disable=SC2034 - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval "${cmd}" - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - done -fi - -fi - -done - -} - -checkCluster () -{ -local cmd; -local stat; - -print_message "Checking Cluster" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crs"' - - -if eval "$cmd";then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cluster"' - - -if eval "$cmd"; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then -# shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "$GRID_HOME/bin/srvctl status mgmtdb"' - - - if eval "$cmd"; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check crsd"' - - -if eval "$cmd"; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check cssd"' - - -if eval "$cmd"; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl check evmd"' - - -if eval "$cmd"; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f "$logdir"/cluvfy_check.txt - -} - -checkClusterClass () -{ -print_message "Checking Cluster Class" -local cluster_class -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/bin/crsctl get cluster class"' -cluster_class=$(eval "$cmd") -print_message "Cluster class is $cluster_class" -CLUSTER_TYPE=$(echo "$cluster_class" | awk -F \' '{ print $2 }' | awk '{ print $1 }') -} - - -###### Grid install & Cluster Verification utility Function ####### -cluvfyCheck() -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP - -local cmd -local stat - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "${PUBLIC_HOSTNAME}" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv "$logdir"/cluvfy_check.txt "$logdir"/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -#cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $hostname -vip $vip_hostname\" | tee -a $logdir/cluvfy_check.txt"' -#eval $cmd - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for cls_node in "${CLUSTER_NODES[@]}"; do -print_message "ssh to the node $node and executing cvu checks on $cls_node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/runcluvfy.sh stage -pre nodeadd -n $cls_node\" | tee -a $logdir/cluvfy_check.txt"' -eval "$cmd" -done - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - "$logdir"/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat "$logdir"/cluvfy_check.txt > "$STD_OUT_FILE" - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -addGridNode () -{ - -local node=$EXISTING_CLS_NODE -local responsefile=$logdir/$ADDNODE_RSP -#=$VIP_HOSTNAME -local cmd -local stat - -print_message "Copying $responsefile on remote node $node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "scp $responsefile $node:$logdir"' -eval "$cmd" - -print_message "Running GridSetup.sh on $node to add the node to existing cluster" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"$GRID_HOME/gridSetup.sh -silent -waitForCompletion -noCopy -skipPrereqs -responseFile $responsefile\" | tee -a $logfile"' -eval "$cmd" - -print_message "Node Addition performed. removing Responsefile" -rm -f "$responsefile" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node \"rm -f $responsefile\""' -#eval $cmd - -} - -###########DB Node Addition Functions############## -addDBNode () -{ -local node=$EXISTING_CLS_NODE - -if [ -z "$CRS_NODES" ]; then - new_node_hostname=$PUBLIC_HOSTNAME -else - new_node_hostname=$CRS_NODES -fi - -local stat=3 -local cmd -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/addnode/addnode.sh \"CLUSTER_NEW_NODES={$new_node_hostname}\" -skipPrereqs -waitForCompletion -ignoreSysPrereqs -noCopy -silent\" | tee -a $logfile"' - - -if eval "$cmd"; then -print_message "Node Addition went fine for $new_node_hostname" -else -error_exit "Node Addition failed for $new_node_hostname" -fi -} - -addDBInst () -{ -# Check whether ORACLE_SID is passed on -local HOSTNAME=$PUBLIC_HOSTNAME -local node=$EXISTING_CLS_NODE -local stat=3 -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "${PUBLIC_HOSTNAME}" ) -else - CLUSTER_NODES=( "$( echo "$CRS_NODES" | tr ',' ' ' )" ) -fi - -if [ -z "${ORACLE_SID}" ];then - error_exit "ORACLE SID is not defined. Cannot Add Instance" -fi - -if [ -z "${HOSTNAME}" ]; then -error_exit "Hostname is not defined" -fi - - # shellcheck disable=SC2034 -for new_node in "${CLUSTER_NODES[@]}"; do -print_message "Adding DB Instance on $node" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh $node \"$DB_HOME/bin/dbca -addInstance -silent -nodeName $new_node -gdbName $ORACLE_SID\" | tee -a ${logfile}"' -eval "${cmd}" -done - -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - - -setremotelistener () -{ -local status -local cmd - -if resolveip "$CMAN_HOSTNAME"; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -########################## DB Functions End here ########################## - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - - -###### Etc Host and other Checks and setup before proceeding installation ##### -all_check -print_message "Setting random password for root/$GRID_USER/$DB_USER user" -print_message "Setting random password for $GRID_USER user" -setpasswd "$GRID_USER" "$GRID_PASSWORD" -print_message "Setting random password for $DB_USER user" -setpasswd "$DB_USER" "$ORACLE_PASSWORD" -print_message "Setting random password for root user" -setpasswd root "$PASSWORD" - -#### Setting up SSH ####### -setupSSH -checkSSH - -#### Grid Node Addition ##### -print_message "Setting Device permission to grid and asmadmin on all the cluster nodes" -setDevicePermissions -print_message "Checking Cluster Status on $EXISTING_CLS_NODE" -CheckRemoteCluster -print_message "Generating Responsefile for node addition" -generate_response_file -print_message "Running Cluster verification utility for new node $PUBLIC_HOSTNAME on $EXISTING_CLS_NODE" -cluvfyCheck -print_message "Running Node Addition and cluvfy test for node $PUBLIC_HOSTNAME" -addGridNode -print_message "Running root.sh on node $PUBLIC_HOSTNAME" -runrootsh "$GRID_HOME" "$GRID_USER" -checkCluster -print_message "Checking Cluster Class" -checkClusterClass - -###### DB Node Addition ###### -if [ "${CLUSTER_TYPE}" != 'Domain' ]; then -if [ "${RUN_DBCA}" == 'true' ]; then -print_message "Performing DB Node addition" -addDBNode -print_message "Running root.sh" -runrootsh "$DB_HOME" "$DB_USER" -print_message "Adding DB Instance" -addDBInst -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $SCRIPT_ROOT" -print_message "Setting Remote Listener" -setremotelistener -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Checksum b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Checksum deleted file mode 100644 index 4d576785e0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Checksum +++ /dev/null @@ -1,2 +0,0 @@ -8ac915a800800ddf16a382506d3953db LINUX.X64_213000_db_home.zip -b3fbdb7621ad82cbd4f40943effdd1be LINUX.X64_213000_grid_home.zip diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/DelNode.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/DelNode.sh deleted file mode 100644 index 95547513a6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/DelNode.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Delete a Grid node and add Oracle Database instance. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -declare -a cluster_nodes -DEL_NODE=${1} -NODE_HOSTNAME=$(hostname) -node_count=0 - -check_env_vars () -{ - -if [ -z "${DEL_NODE}" ];then -echo "Please provide node name which you want to delete"; -exit 1; -else -echo "Deleting node name set to ${DEL_NODE}" -fi -} - -containsNode () { -local nodes match="$1" - shift -nodes=$1 -for e in "${cluster_nodes[@]}" -do - [[ "$e" == "$match" ]] && return 0; -done -return 1 -} - -setNode () { -cluster_nodes=( $("$GRID_HOME"/bin/olsnodes | awk '{ print $1 }') ) -node_count=$("$GRID_HOME"/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -} - -delNode () { -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster ${cluster_nodes[@]}" -exit 1 ; -fi - - if [ ${node_count} -eq 1 -a "${DEL_NODE}" == "${NODE_HOSTNAME}" ] ;then - echo "Stopping the Grid and deconfigure the cluster." - "$GRID_HOME"/bin/crsctl stop cluster - "$GRID_HOME"/crs/install/rootcrs.sh -deconfig -force -else - -echo "Stopping Grid on deleting node" -cmd='su - grid -c "ssh ${DEL_NODE} \"sudo ${GRID_HOME}/bin/crsctl stop cluster\""' -eval $cmd - -echo "Deleting the node from the cluster" -"$GRID_HOME"/bin/crsctl delete node -n "${DEL_NODE}" - -echo "getting updated cluster node info from the cluster" -setNode - -echo "Checking if node exist in the cluster or not!" -containsNode "${DEL_NODE}" "${cluster_nodes[@]}" -ret=$? - -if [ $ret -eq 1 ]; then -echo "Node ${DEL_NODE} is not a part of cluster. These Nodes are part of the cluster ${cluster_nodes[@]}" -exit 0 ; -else -echo "Node ${DEL_NODE} is still a part of cluster." -exit 1; -fi - -fi -} - - -########################################## -############# MAIN######################### -########################################### -check_env_vars -setNode -delNode diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile deleted file mode 100644 index 2f8c98d44a..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile +++ /dev/null @@ -1,300 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2022 Oracle and/or its affiliates. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 21c Release 3 Real Application Clusters to build the container image -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_213000_db_home.zip -# (2) LINUX.X64_213000_grid_home.zip -# Download Oracle Grid 21c Release 3 Enterprise Edition for Linux x64 -# Download Oracle Database 21c Release 3 Enterprise Edition for Linux x64 -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Run: -# $ docker build -t oracle/database:21.3.0-rac . - - -ARG BASE_OL_IMAGE=oraclelinux:7-slim - -# Pull base image -# --------------- -# hadolint ignore=DL3006,DL3025 -FROM $BASE_OL_IMAGE AS base -ARG SLIMMING=false - -# Labels -# ------ -LABEL "provider"="Oracle" \ - "issues"="https://github.com/oracle/docker-images/issues" \ - "volume.setup.location1"="/opt/scripts" \ - "volume.startup.location1"="/opt/scripts/startup" \ - "port.listener"="1521" \ - "port.oemexpress"="5500" - -# Argument to control removal of components not needed after db software installation -ARG INSTALL_FILE_1="LINUX.X64_213000_grid_home.zip" -ARG INSTALL_FILE_2="LINUX.X64_213000_db_home.zip" -ARG DB_EDITION="EE" -ARG USER="root" -ARG WORKDIR="/rac-work-dir" - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -# hadolint ignore=DL3044 -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - GRID_BASE=/u01/app/grid \ - GRID_HOME=/u01/app/21.3.0/grid \ - INSTALL_FILE_1="LINUX.X64_213000_grid_home.zip" \ - GRID_INSTALL_RSP="gridsetup_21c.rsp" \ - GRID_SW_INSTALL_RSP="grid_sw_install_21c.rsp" \ - GRID_SETUP_FILE="setupGrid.sh" \ - FIXUP_PREQ_FILE="fixupPreq.sh" \ - INSTALL_GRID_BINARIES_FILE="installGridBinaries.sh" \ - INSTALL_GRID_PATCH="applyGridPatch.sh" \ - INVENTORY=/u01/app/oraInventory \ - CONFIGGRID="configGrid.sh" \ - ADDNODE="AddNode.sh" \ - DELNODE="DelNode.sh" \ - INITSH="initsh" \ - ADDNODE_RSP="grid_addnode_21c.rsp" \ - SETUPSSH="setupSSH.expect" \ - DOCKERORACLEINIT="dockeroracleinit" \ - GRID_USER_HOME="/home/grid" \ - SETUPGRIDENV="setupGridEnv.sh" \ - ASM_DISCOVERY_DIR="/dev" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ -# RAC DB Env Variables - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/21.3.0/dbhome_1 \ - INSTALL_FILE_2="LINUX.X64_213000_db_home.zip" \ - DB_INSTALL_RSP="db_sw_install_21c.rsp" \ - DBCA_RSP="dbca_21c.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - PWD_FILE="setPassword.sh" \ - RUN_FILE="runOracle.sh" \ - STOP_FILE="stopOracle.sh" \ - ENABLE_RAC_FILE="enableRAC.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - REMOTE_LISTENER_FILE="remoteListener.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - GRID_HOME_CLEANUP="GridHomeCleanup.sh" \ - ORACLE_HOME_CLEANUP="OracleHomeCleanup.sh" \ - DB_USER="oracle" \ - GRID_USER="grid" \ - WORKDIR=$WORKDIR \ - USER=$USER \ - SLIMMING=$SLIMMING \ -# COMMON ENV Variable - FUNCTIONS="functions.sh" \ - COMMON_SCRIPTS="/common_scripts" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - RESET_FAILED_UNITS="resetFailedUnits.sh" \ - SET_CRONTAB="setCrontab.sh" \ - CRONTAB_ENTRY="crontabEntry" \ - EXPECT="/usr/bin/expect" \ - BIN="/usr/sbin" \ - container="true" -# Use second ENV so that variable get substituted -# hadolint ignore=DL3044 -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - GRID_PATH=$GRID_HOME/bin:$GRID_HOME/OPatch/:$GRID_HOME/perl/bin:/usr/sbin:/bin:/sbin \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:$DB_HOME/perl/bin:/usr/sbin:/bin:/sbin \ - GRID_LD_LIBRARY_PATH=$GRID_HOME/lib:/usr/lib:/lib \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# ------------- - -############################################# -# ------------------------------------------- -# Start new stage for installing the grid and DB for slim image -# ------------------------------------------- -############################################# -FROM base AS rac-image-slim-false -ARG SLIMMING - -COPY $SETUP_LINUX_FILE $GRID_SETUP_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $INSTALL_SCRIPTS/ - -RUN chmod 755 "$INSTALL_SCRIPTS"/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - rm -f "$INSTALL_DIR"/install/* && \ - sync - -############################################# -# ------------------------------------------- -# Start new stage for installing the grid and DB for slim image -# ------------------------------------------- -############################################# - -FROM base AS rac-image-slim-true -ARG SLIMMING - -COPY $SETUP_LINUX_FILE $GRID_SETUP_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $INSTALL_SCRIPTS/ - -RUN chmod 755 "$INSTALL_SCRIPTS"/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - rm -f "$INSTALL_DIR"/install/* && \ - sync - -############################################# -# ------------------------------------------- -# Start new stage for installing the grid and DB -# ------------------------------------------- -############################################# -# hadolint ignore=DL3006,DL3025 -FROM rac-image-slim-false AS builder -ARG SLIMMING - -COPY $FIXUP_PREQ_FILE $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $INSTALL_GRID_BINARIES_FILE $INSTALL_FILE_1* $INSTALL_FILE_2* $INSTALL_SCRIPTS/ - -RUN chmod 755 "${INSTALL_SCRIPTS}"/*.sh - -## Install software if SLIMMING is false -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - su $GRID_USER -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su $DB_USER -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su $DB_USER -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su $GRID_USER -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su $DB_USER -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - :; \ - fi - -RUN rm -f "$INSTALL_DIR"/install/* && \ - sync -############################################# -FROM rac-image-slim-true AS builder-slim -ARG SLIMMING - -COPY $FIXUP_PREQ_FILE $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $INSTALL_GRID_BINARIES_FILE $INSTALL_FILE_1* $INSTALL_FILE_2* $INSTALL_SCRIPTS/ - -RUN chmod 755 "${INSTALL_SCRIPTS}"/*.sh - -## Install software if SLIMMING is false -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - su $GRID_USER -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su $DB_USER -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su $DB_USER -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su $GRID_USER -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su $DB_USER -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - :; \ - fi - -RUN rm -f "$INSTALL_DIR"/install/* && \ - sync -############################################# -# ------------------------------------------- -# Start new image for grid & database runtime -# ------------------------------------------- -############################################# -# hadolint ignore=DL3006,DL3025 -FROM rac-image-slim-false AS final - -# Setup Scripts -COPY $FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ - -COPY $RUN_FILE $INITSH $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_FAILED_UNITS $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SET_CRONTAB $SCRIPT_DIR/ - -COPY --from=builder /u01 /u01 - -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - $DB_HOME/root.sh && \ - :; \ - fi && \ - chmod 755 $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-21c-firstboot && \ - chmod +x /etc/rc.d/rc.local && \ - cp $SCRIPT_DIR/$INITSH /usr/bin/$INITSH && \ - chmod 755 /usr/bin/$INITSH && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f $INSTALL_DIR/install/* && \ - sync - -USER ${USER} -VOLUME ["/common_scripts"] -WORKDIR $WORKDIR - -# Define default command to start Oracle Grid and RAC Database setup. -# hadolint ignore=DL3025 -ENTRYPOINT /usr/bin/$INITSH -############################################# -FROM rac-image-slim-true AS final-slim - -# Setup Scripts -COPY $FIXUP_PREQ_FILE $INSTALL_SCRIPTS/ - -COPY $RUN_FILE $INITSH $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_FAILED_UNITS $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SET_CRONTAB $SCRIPT_DIR/ - -COPY --from=builder /u01 /u01 - -# hadolint ignore=SC2086 -RUN if [ "${SLIMMING}x" != 'truex' ]; then \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - $DB_HOME/root.sh && \ - :; \ - fi && \ - chmod 755 $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-21c-firstboot && \ - chmod +x /etc/rc.d/rc.local && \ - cp $SCRIPT_DIR/$INITSH /usr/bin/$INITSH && \ - chmod 755 /usr/bin/$INITSH && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - rm -f $INSTALL_DIR/install/* && \ - sync - -USER ${USER} -VOLUME ["/common_scripts"] -WORKDIR $WORKDIR - -# Define default command to start Oracle Grid and RAC Database setup. -# hadolint ignore=DL3025 -ENTRYPOINT /usr/bin/$INITSH \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile.ORG b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile.ORG deleted file mode 100644 index 9baec43dc5..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/Dockerfile.ORG +++ /dev/null @@ -1,146 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Database 21c Release 3 Real Application Clusters to build the container image -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) LINUX.X64_213000_db_home.zip -# (2) LINUX.X64_213000_grid_home.zip -# Download Oracle Grid 21c Release 3 Enterprise Edition for Linux x64 -# Download Oracle Database 21c Release 3 Enterprise Edition for Linux x64 -# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Run: -# $ docker build -t oracle/database:21.3.0-rac . -# -# Pull base image -# --------------- -FROM oraclelinux:7-slim - -# Maintainer -# ---------- -MAINTAINER Paramdeep Saini - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- -# Linux Env Variable -ENV SETUP_LINUX_FILE="setupLinuxEnv.sh" \ - INSTALL_DIR=/opt/scripts \ -# Grid Env variables - GRID_BASE=/u01/app/grid \ - GRID_HOME=/u01/app/21.3.0/grid \ - INSTALL_FILE_1="LINUX.X64_213000_grid_home.zip" \ - GRID_INSTALL_RSP="gridsetup_21c.rsp" \ - GRID_SW_INSTALL_RSP="grid_sw_install_21c.rsp" \ - GRID_SETUP_FILE="setupGrid.sh" \ - FIXUP_PREQ_FILE="fixupPreq.sh" \ - INSTALL_GRID_BINARIES_FILE="installGridBinaries.sh" \ - INSTALL_GRID_PATCH="applyGridPatch.sh" \ - INVENTORY=/u01/app/oraInventory \ - CONFIGGRID="configGrid.sh" \ - ADDNODE="AddNode.sh" \ - DELNODE="DelNode.sh" \ - ADDNODE_RSP="grid_addnode_21c.rsp" \ - SETUPSSH="setupSSH.expect" \ - DOCKERORACLEINIT="dockeroracleinit" \ - GRID_USER_HOME="/home/grid" \ - SETUPGRIDENV="setupGridEnv.sh" \ - ASM_DISCOVERY_DIR="/dev" \ - RESET_OS_PASSWORD="resetOSPassword.sh" \ - MULTI_NODE_INSTALL="MultiNodeInstall.py" \ -# RAC DB Env Variables - DB_BASE=/u01/app/oracle \ - DB_HOME=/u01/app/oracle/product/21.3.0/dbhome_1 \ - INSTALL_FILE_2="LINUX.X64_213000_db_home.zip" \ - DB_INSTALL_RSP="db_sw_install_21c.rsp" \ - DBCA_RSP="dbca_21c.rsp" \ - DB_SETUP_FILE="setupDB.sh" \ - PWD_FILE="setPassword.sh" \ - RUN_FILE="runOracle.sh" \ - STOP_FILE="stopOracle.sh" \ - ENABLE_RAC_FILE="enableRAC.sh" \ - CHECK_DB_FILE="checkDBStatus.sh" \ - USER_SCRIPTS_FILE="runUserScripts.sh" \ - REMOTE_LISTENER_FILE="remoteListener.sh" \ - INSTALL_DB_BINARIES_FILE="installDBBinaries.sh" \ - GRID_HOME_CLEANUP="GridHomeCleanup.sh" \ - ORACLE_HOME_CLEANUP="OracleHomeCleanup.sh" \ - DB_USER="oracle" \ - GRID_USER="grid" \ -# COMMON ENV Variable - FUNCTIONS="functions.sh" \ - COMMON_SCRIPTS="/common_scripts" \ - CHECK_SPACE_FILE="checkSpace.sh" \ - RESET_FAILED_UNITS="resetFailedUnits.sh" \ - SET_CRONTAB="setCrontab.sh" \ - CRONTAB_ENTRY="crontabEntry" \ - EXPECT="/usr/bin/expect" \ - BIN="/usr/sbin" \ - container="true" -# Use second ENV so that variable get substituted -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - SCRIPT_DIR=$INSTALL_DIR/startup \ - GRID_PATH=$GRID_HOME/bin:$GRID_HOME/OPatch/:$GRID_HOME/perl/bin:/usr/sbin:/bin:/sbin \ - DB_PATH=$DB_HOME/bin:$DB_HOME/OPatch/:$DB_HOME/perl/bin:/usr/sbin:/bin:/sbin \ - GRID_LD_LIBRARY_PATH=$GRID_HOME/lib:/usr/lib:/lib \ - DB_LD_LIBRARY_PATH=$DB_HOME/lib:/usr/lib:/lib - -# Copy binaries -# ------------- -# COPY Binaries -COPY $GRID_SW_INSTALL_RSP $INSTALL_GRID_PATCH $SETUP_LINUX_FILE $GRID_SETUP_FILE $INSTALL_GRID_BINARIES_FILE $FIXUP_PREQ_FILE $DB_SETUP_FILE $CHECK_SPACE_FILE $DB_INSTALL_RSP $INSTALL_DB_BINARIES_FILE $ENABLE_RAC_FILE $GRID_HOME_CLEANUP $ORACLE_HOME_CLEANUP $INSTALL_FILE_1 $INSTALL_FILE_2 $INSTALL_SCRIPTS/ - -# Setup Scripts -COPY $RUN_FILE $ADDNODE $ADDNODE_RSP $SETUPSSH $FUNCTIONS $CONFIGGRID $GRID_INSTALL_RSP $DBCA_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $STOP_FILE $CHECK_DB_FILE $REMOTE_LISTENER_FILE $SETUPGRIDENV $DELNODE $RESET_OS_PASSWORD $MULTI_NODE_INSTALL $SCRIPT_DIR/ - -RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ - sync && \ - $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ - $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GRID_SETUP_FILE && \ - $INSTALL_DIR/install/$DB_SETUP_FILE && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - su $GRID_USER -c "$INSTALL_DIR/install/$INSTALL_GRID_BINARIES_FILE EE $PATCH_NUMBER" && \ - $INVENTORY/orainstRoot.sh && \ - $GRID_HOME/root.sh && \ - su $DB_USER -c "$INSTALL_DIR/install/$INSTALL_DB_BINARIES_FILE EE" && \ - su $DB_USER -c "$INSTALL_DIR/install/$ENABLE_RAC_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $DB_HOME/root.sh && \ - su $GRID_USER -c "$INSTALL_SCRIPTS/$GRID_HOME_CLEANUP" && \ - su $DB_USER -c "$INSTALL_SCRIPTS/$ORACLE_HOME_CLEANUP" && \ - $INSTALL_DIR/install/$FIXUP_PREQ_FILE && \ - rm -rf $INSTALL_DIR/install && \ - rm -rf $INSTALL_DIR/install && \ - sync && \ - chmod 755 $SCRIPT_DIR/*.sh && \ - chmod 755 $SCRIPT_DIR/*.expect && \ - chmod 666 $SCRIPT_DIR/*.rsp && \ - echo "nohup $SCRIPT_DIR/runOracle.sh &" >> /etc/rc.local && \ - rm -f /etc/rc.d/init.d/oracle-database-preinstall-21c-firstboot && \ - mkdir -p $GRID_HOME/dockerinit && \ - cp $GRID_HOME/bin/$DOCKERORACLEINIT $GRID_HOME/dockerinit/ && \ - chown $GRID_USER:oinstall $GRID_HOME/dockerinit && \ - chown root:oinstall $GRID_HOME/dockerinit/$DOCKERORACLEINIT && \ - chmod 4755 $GRID_HOME/dockerinit/$DOCKERORACLEINIT && \ - ln -s $GRID_HOME/dockerinit/$DOCKERORACLEINIT /usr/sbin/oracleinit && \ - chmod +x /etc/rc.d/rc.local && \ - rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ - rm -f /etc/sysctl.d/99-sysctl.conf && \ - sync - -USER grid -WORKDIR /home/grid -VOLUME ["/common_scripts"] - -# Define default command to start Oracle Grid and RAC Database setup. - -CMD ["/usr/sbin/oracleinit"] diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/GridHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/GridHomeCleanup.sh deleted file mode 100644 index d5e8b4b0f4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/GridHomeCleanup.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019,2021 Oracle and/or its affiliates. -# -# Since: January, 2019 -# Author: paramdeep.saini@oracle.com -# Description: Cleanup the $GRID_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/"${GRID_USER}"/.bashrc - -ORACLE_HOME=${GRID_HOME} - -rm -rf /u01/app/grid/* -rm -rf "$GRID_HOME"/log -rm -rf "$GRID_HOME"/logs -rm -rf "$GRID_HOME"/crs/init -rm -rf "$GRID_HOME"/crs/install/rhpdata -rm -rf "$GRID_HOME"/crs/log -rm -rf "$GRID_HOME"/racg/dump -rm -rf "$GRID_HOME"/srvm/log -rm -rf "$GRID_HOME"/cv/log -rm -rf "$GRID_HOME"/cdata -rm -rf "$GRID_HOME"/bin/core* -rm -rf "$GRID_HOME"/bin/diagsnap.pl -rm -rf "$GRID_HOME"/cfgtoollogs/* -rm -rf "$GRID_HOME"/network/admin/listener.ora -rm -rf "$GRID_HOME"/crf -rm -rf "$GRID_HOME"/ologgerd/init -rm -rf "$GRID_HOME"/osysmond/init -rm -rf "$GRID_HOME"/ohasd/init -rm -rf "$GRID_HOME"/ctss/init -rm -rf "$GRID_HOME"/dbs/.*.dat -rm -rf "$GRID_HOME"/oc4j/j2ee/home/log -rm -rf "$GRID_HOME"/inventory/Scripts/ext/bin/log -rm -rf "$GRID_HOME"/inventory/backup/* -rm -rf "$GRID_HOME"/mdns/init -rm -rf "$GRID_HOME"/gnsd/init -rm -rf "$GRID_HOME"/evm/init -rm -rf "$GRID_HOME"/gipc/init -rm -rf "$GRID_HOME"/gpnp/gpnp_bcp.* -rm -rf "$GRID_HOME"/gpnp/init -rm -rf "$GRID_HOME"/auth -rm -rf "$GRID_HOME"/tfa -rm -rf "$GRID_HOME"/suptools/tfa/release/diag -rm -rf "$GRID_HOME"/rdbms/audit/* -rm -rf "$GRID_HOME"/rdbms/log/* -rm -rf "$GRID_HOME"/network/log/* -rm -rf "$GRID_HOME"/inventory/Scripts/comps.xml.* -rm -rf "$GRID_HOME"/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf "$GRID_HOME"/inventory/Scripts/oraInst.loc.* -rm -rf "$GRID_HOME"/inventory/Scripts/inventory.xml.* -rm -rf "$GRID_HOME"/log_file_client.log -rm -rf "$INVENTORY"/logs/* diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiNodeInstall.py b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiNodeInstall.py deleted file mode 100644 index 45144061a4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiNodeInstall.py +++ /dev/null @@ -1,324 +0,0 @@ -#!/usr/bin/python -#!/usr/bin/env python - -########################################################################################################### - -# LICENSE UPL 1.0 -# Copyright (c) 2019,2021, Oracle and/or its affiliates. -# Since: January, 2019 -# NAME -# buildImage.py - -# -# DESCRIPTION -# -# -# NOTES - - -# Global Variables -Period = '.' - - -# Import standard python libraries -import subprocess -import sys -import time -import datetime -import os -import commands -import getopt -import shlex -import json -import logging -import socket - - -etchostfile="/etc/hosts" -racenvfile="/etc/rac_env_vars" -domain="none" - -def Usage(): - pass - -def Update_Envfile(common_params): - global racenvfile - global domain - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - - for keys in common_params.keys(): - if keys == 'domain': - domain = common_params[keys] - - env_var_str = "export " + keys.upper() + "=" + common_params[keys] - Redirect_To_File("Env vars for RAC Env set to " + env_var_str, "INFO") - filedata1 = filedata1 + "\n" + env_var_str - - Write_To_File(filedata1,racenvfile) - return "Env file updated sucesfully" - - -def Update_Hostfile(node_list): - counter=0 - global etchostfile - global domain - filedata = None - filedata1 = None - f = open(etchostfile, 'r') - filedata = f.read() - f.close - - global racenvfile - filedata1 = None - f1 = open(racenvfile, 'r') - filedata1 = f1.read() - f1.close - host_name=socket.gethostname() - - if domain == 'none': - fqdn_hostname=socket.getfqdn() - domain=fqdn_hostname.split(".")[1] - if not host_name: - Redirect_To_File("Unable to get the container host name! Exiting..", "INFO") - else: - Redirect_To_File("Container Hostname and Domain name : " + host_name + " " + domain, "INFO") - -# Replace and add the target string - for dict_list in node_list: - print dict_list - if "public_hostname" in dict_list.keys(): - pubhost = dict_list['public_hostname'] - if host_name == pubhost: - Redirect_To_File("PUBLIC Hostname set to" + pubhost, "INFO") - PUBLIC_HOSTNAME=pubhost - if counter == 0: - CRS_NODES = pubhost - CRS_CONFIG_NODES = pubhost - counter = counter + 1 - else: - CRS_NODES = CRS_NODES + "," + pubhost - CRS_CONFIG_NODES = CRS_CONFIG_NODES + "," + pubhost - counter = counter + 1 - else: - return "Error: Did not find the key public_hostname" - if "public_ip" in dict_list.keys(): - pubip = dict_list['public_ip'] - if host_name == pubhost: - Redirect_To_File("PUBLIC IP set to" + pubip, "INFO") - PUBLIC_IP=pubip - else: - return "Error: Did not find the key public_ip" - if "private_ip" in dict_list.keys(): - privip = dict_list['private_ip'] - if host_name == pubhost: - Redirect_To_File("Private IP set to" + privip, "INFO") - PRIV_IP=privip - else: - return "Error: Did not find the key private_ip" - if "private_hostname" in dict_list.keys(): - privhost = dict_list['private_hostname'] - if host_name == pubhost: - Redirect_To_File("Private HOSTNAME set to" + privhost, "INFO") - PRIV_HOSTNAME=privhost - else: - return "Error: Did not find the key private_hostname" - if "vip_hostname" in dict_list.keys(): - viphost = dict_list['vip_hostname'] - CRS_CONFIG_NODES = CRS_CONFIG_NODES + ":" + viphost + ":" + "HUB" - if host_name == pubhost: - Redirect_To_File("VIP HOSTNAME set to" + viphost, "INFO") - VIP_HOSTNAME=viphost - else: - return "Error: Did not find the key vip_hostname" - if "vip_ip" in dict_list.keys(): - vipip = dict_list['vip_ip'] - if host_name == pubhost: - Redirect_To_File("NODE VIP set to" + vipip, "INFO") - NODE_VIP=vipip - else: - return "Error: Did not find the key vip_ip" - - delete_entry = [pubhost, privhost, viphost, pubip, privip, vipip] - for hostentry in delete_entry: - print "Processing " + hostentry - cmd=cmd= '""' + "sed " + "'" + "/" + hostentry + "/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - # Removing Empty Lines - cmd=cmd= '""' + "sed " + "'" + "/^$/d" + "'" + " <<<" + '"' + filedata + '"' + '""' - output,retcode=Execute_Single_Command(cmd,'None','') - filedata=output - print "New Contents of Host file " + filedata - - delete_entry [:] - - if pubhost not in filedata: - if pubip not in filedata: - hoststring='%s %s %s' %(pubip, pubhost + "." + domain, pubhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if privhost not in filedata: - if privip not in filedata: - hoststring='%s %s %s' %(privip, privhost + "." + domain, privhost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - - if viphost not in filedata: - if vipip not in filedata: - hoststring='%s %s %s' %(vipip, viphost + "." + domain, viphost) - Redirect_To_File(hoststring, "INFO") - filedata = filedata + '\n' + hoststring - print filedata - - Write_To_File(filedata,etchostfile) - if CRS_NODES: - Redirect_To_File("Cluster Nodes set to " + CRS_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_NODES=' + CRS_NODES - if CRS_CONFIG_NODES: - Redirect_To_File("CRS CONFIG Variable set to " + CRS_CONFIG_NODES, "INFO") - filedata1 = filedata1 + '\n' + 'export CRS_CONFIG_NODES=' + CRS_CONFIG_NODES - if NODE_VIP: - filedata1 = filedata1 + '\n' + 'export NODE_VIP=' + NODE_VIP - if PRIV_IP: - filedata1 = filedata1 + '\n' + 'export PRIV_IP=' + PRIV_IP - if PUBLIC_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PUBLIC_HOSTNAME=' + PUBLIC_HOSTNAME - if PUBLIC_IP: - filedata1 = filedata1 + '\n' + 'export PUBLIC_IP=' + PUBLIC_IP - if VIP_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export VIP_HOSTNAME=' + VIP_HOSTNAME - if PRIV_HOSTNAME: - filedata1 = filedata1 + '\n' + 'export PRIV_HOSTNAME=' + PRIV_HOSTNAME - - Write_To_File(filedata1,racenvfile) - return "Host and Env file updated sucesfully" - - -def Write_To_File(text,filename): - f = open(filename,'w') - f.write(text) - f.close() - -def Setup_Operation(op_type): - if op_type == 'installrac': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'addnode': - cmd="sudo /opt/scripts/startup/runOracle.sh" - - if op_type == 'delnode': - cmd="sudo /opt/scripts/startup/DelNode.sh" - - output,retcode=Execute_Single_Command(cmd,'None','') - if retcode != 0: - return "Error occuurred in setting up env" - else: - return "setup operation completed sucessfully!" - - -def Execute_Single_Command(cmd,env,dir): - try: - if not dir: - dir=os.getcwd() - print shlex.split(cmd) - out = subprocess.Popen(cmd, shell=True, cwd=dir, stdout=subprocess.PIPE) - output, retcode = out.communicate()[0],out.returncode - return output,retcode - except: - Redirect_To_File("Error Occurred in Execute_Single_Command block! Please Check", "ERROR") - sys.exit(2) - -def Redirect_To_File(text,level): - original = sys.stdout - sys.stdout = open('/proc/1/fd/1', 'w') - root = logging.getLogger() - if not root.handlers: - root.setLevel(logging.INFO) - ch = logging.StreamHandler(sys.stdout) - ch.setLevel(logging.INFO) - formatter = logging.Formatter('%(asctime)s :%(message)s', "%Y-%m-%d %T %Z") - ch.setFormatter(formatter) - root.addHandler(ch) - message = os.path.basename(__file__) + " : " + text - root.info(' %s ' % message ) - sys.stdout = original - - -#BEGIN : TO check whether valid arguments are passed for the container ceation or not -def main(argv): - version= '' - type= '' - dir='' - script='' - Redirect_To_File("Passed Parameters " + str(sys.argv[1:]), "INFO") - try: - opts, args = getopt.getopt(sys.argv[1:], '', ['setuptype=','nodeparams=','comparams=','help']) - - except getopt.GetoptError: - Usage() - sys.exit(2) - #Redirect_To_File("Option Arguments are : " + opts , "INFO") - for opt, arg in opts: - if opt in ('--help'): - Usage() - sys.exit(2) - elif opt in ('--nodeparams'): - nodeparams = arg - elif opt in ('--comparams'): - comparams = arg - elif opt in ('--setuptype'): - setuptype = arg - else: - Usage() - sys.exit(2) - - if setuptype == 'installrac': - Redirect_To_File("setup type parameter is set to installrac", "INFO") - elif setuptype == 'addnode': - Redirect_To_File("setup type parameter is set to addnode", "INFO") - elif setuptype == 'delnode': - Redirect_To_File("setup type parameter is set to delnode", "INFO") - else: - setupUsage() - sys.exit(2) - if not nodeparams: - Redirect_To_File("Node Parameters for the Cluster not specified", "Error") - sys.exit(2) - if not comparams: - Redirect_To_File("Common Parameter for the Cluster not specified", "Error") - sys.exit(2) - - - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - - - comparams = comparams.replace('\\"','"') - Redirect_To_File("Comparams set to" + comparams , "INFO" ) - envfile_status=Update_Envfile(json.loads(comparams)) - if 'Error' in envfile_status: - Redirect_To_File(envfile_status, "ERROR") - return sys.exit(2) - - nodeparams = nodeparams.replace('\\"','"') - Redirect_To_File("NodeParams set to" + nodeparams , "INFO" ) - hostfile_status=Update_Hostfile(json.loads(nodeparams)) - if 'Error' in hostfile_status: - Redirect_To_File(hostfile_status, "ERROR") - return sys.exit(2) - - Redirect_To_File("Executing operation" + setuptype, "INFO") - setup_op=Setup_Operation(setuptype) - if 'Error' in setup_op: - Redirect_To_File(setup_op, "ERROR") - return sys.exit(2) - - sys.exit(0) - -if __name__ == '__main__': - main(sys.argv) diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiRACInstall.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiRACInstall.sh deleted file mode 100644 index e882f565b6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/MultiRACInstall.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019,2021 Oracle and/or its affiliates. -# -# Since: January, 2019 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -while true; do -case "$1" in - --help) - usage -;; - -o | --op_type) - if [ "$2" ]; then - RESET_PASSWORD_TYPE=$2 - else - error_exit "--op_type requires non empty option argument" - fi - print_message "RESET_PASSWORD_TYPE=${RESET_PASSWORD_TYPE}" - shift 2 -;; - -p | --pwd_file) - if [ "$2" ]; then - PWD_FILE=$2 - else - print_message "--pwd_file set to empty string. random password will generated" - fi - print_message "PWD_FILE: $PWD_FILE" - shift 2 -;; --k | --pwd_key_file) - if [ "$2" ];then - PWD_KEY=$2 - else - PWD_KEY='pwd.key' - print_message "--pwd_key set to empty string. It will be set to default value ${PWD_KEY}" - fi - print_message "PWD_KEY=$PWD_KEY" - shift 2 -;; - -s | --secret_volume) - echo "Secret Volume Location" - if [ "$2" ];then - SECRET_VOLUME=$2 - else - SECRET_VOLUME='/run/secrets' - print_message "--secret_volume is set to empty string. It will be set to default value ${SECRET_VOLUME}" - fi - shift 2 -;; --r| --remove_os_pwd_files) - echo "Remove OS PWD files after resetting password" - if [ "${2}" == 'true' ]; then - REMOVE_OS_PWD_FILES='true' - else - REMOVE_OS_PWD_FILES='false' - fi - shift 2 -;; - --) - shift; - break; -;; -*) -print_message "Not a valid option" -usage -;; -esac -done diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/OracleHomeCleanup.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/OracleHomeCleanup.sh deleted file mode 100644 index 355209f4ef..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/OracleHomeCleanup.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2019,2021 Oracle and/or its affiliates. -# -# Since: January, 2019 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Cleanup the $ORACLE_HOME and ORACLE_BASE after Grid confguration in the image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Image Cleanup Script - -source /home/"${DB_USER}"/.bashrc -ORACLE_HOME=${DB_HOME} - -rm -rf "$ORACLE_HOME"/bin/extjob -rm -rf "$ORACLE_HOME"/PAF -rm -rf "$ORACLE_HOME"/install/oratab -rm -rf "$ORACLE_HOME"/install/make.log -rm -rf "$ORACLE_HOME"/network/admin/listener.ora -rm -rf "$ORACLE_HOME"/network/admin/tnsnames.ora -rm -rf "$ORACLE_HOME"/bin/nmo -rm -rf "$ORACLE_HOME"/bin/nmb -rm -rf "$ORACLE_HOME"/bin/nmhs -rm -rf "$ORACLE_HOME"/log/.* -rm -rf "$ORACLE_HOME"/oc4j/j2ee/oc4j_applications/applications/em/em/images/chartCache/* -rm -rf "$ORACLE_HOME"/rdbms/audit/* -rm -rf "$ORACLE_HOME"/cfgtoollogs/* -rm -rf "$ORACLE_HOME"/inventory/Scripts/comps.xml.* -rm -rf "$ORACLE_HOME"/inventory/Scripts/oraclehomeproperties.xml.* -rm -rf "$ORACLE_HOME"/inventory/Scripts/oraInst.loc.* -rm -rf "$ORACLE_HOME"/inventory/Scripts/inventory.xml.* -rm -rf "$INVENTORY"/logs/* diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/applyGridPatch.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/applyGridPatch.sh deleted file mode 100644 index 21f3d8399b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/applyGridPatch.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Apply Patch for Oracle Grid and Databas. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -PATCH=$1 - -# Check whether edition has been passed on -if [ "$PATCH" == "" ]; then - echo "ERROR: No Patch has been passed on!" - echo "Please specify the correct PATCH!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Install Oracle binaries - -unzip -q "$INSTALL_SCRIPTS"/"$PATCH" -d "$GRID_USER_HOME" && \ -rm -f "$INSTALL_SCRIPTS"/"$GRID_PATCH" && \ -cd "$GRID_USER_HOME"/"$PATCH_NUMBER"/"$PATCH_NUMBER" && \ -"$GRID_HOME"/OPatch/opatch napply -silent -local -oh "$GRID_HOME" -id "$PATCH_NUMBER" && \ -cd "$GRID_USER_HOME" && \ -rm -rf "$GRID_USER_HOME"/"$PATCH_NUMBER" diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkDBStatus.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkDBStatus.sh deleted file mode 100644 index 023b3a9689..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkDBStatus.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the status of Oracle Database. -# The ORACLE_HOME, ORACLE_SID and the PATH has to be set. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source "$SCRIPT_DIR"/functions.sh -export ORACLE_HOME=$DB_HOME -export PATH=$ORACLE_HOME/bin:$PATH -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib - -sid=$1 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." - exit 3; -fi; - -ORACLE_SID=$("$DB_HOME"/bin/srvctl status database -d "$sid" | grep "$(hostname)" | awk '{ print $2 }') - -echo "Checking $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -status=`"$DB_HOME"/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; - select status from v\\$instance; - exit; -EOF` - -echo "$status" > /tmp/db_status.txt diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkSpace.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkSpace.sh deleted file mode 100644 index 0480158b95..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/checkSpace.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Checks the available space of the system. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -REQUIRED_SPACE_GB=35 -AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{print $4}'` - -if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then - script_name=`basename "$0"` - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo "$script_name: ERROR - There is not enough space available in the docker container." - echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB , but only $AVAILABLE_SPACE_GB available." - echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - exit 1; -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/configGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/configGrid.sh deleted file mode 100755 index 700fa270e8..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/configGrid.sh +++ /dev/null @@ -1,1270 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup grid and Creates an Oracle Database based on following parameters: -# $PUBLIC_HOSTNAME -# $PUBLIC_IP -# $ORACLE_SID -# $ORACLE_PDB -# Note : -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - - -####################### Variables and Constants ################# -declare -r TRUE=0 -declare -x GRID_USER='grid' ## Default gris user is grid. -declare -x DB_USER='oracle' ## default oracle user is oracle. -declare -r OSDBA='dba' ## OSDBA group -declare -r OSASM='asmadmin' ## OSASM group -declare -r INSTALL_TYPE='CRS_CONFIG' ## INSTALL TYPE default set to CRS_CONFIG -declare -r IPMI_FLAG='false' ## IPMI Flag by default to set false -declare -r ASM_STORAGE_OPTION='ASM' ## ASM_STORAGE_OPTION set to ASM -declare -x logdir="/tmp" -declare -r GIMR_ON_NAS='false' ## GIMR on NAS set to false -declare -x GIMR_DB_FLAG='false' # Disabled GIMR DB FLAG -declare -x ASM_DISKGROUP_DISKS ## Computed during program Execution -declare -x ASM_DISKGROUP_FG_DISKS ## Computing During program execution. -declare -x GIMR_DISKGROUP_DISKS ## Computed During Program Execution -declare -x GIMR_DISKGROUP_FG_DISKS ## Computed During program Execution. -declare -x GIMR_DEVICE_LIST ## Pass as env variable and it must contain device name with location if using DSC. Default DG name is MGMT. -declare -x ASM_DEVICE_LIST ## Pass as env variable and it must contain device name with location for DATA DG. -declare -x ETH_CARD_1 ## Computed During program Execution -declare -x ETH_CARD_2 ## Computed During Program Execution -declare -x PUBLIC_NETWORK ## Computed During program execution. -declare -x PRIVATE_NETWORK ## Computed During program execution. -declare -x NETWORK_STRING ## Do not pass as env variable. Computed during program execution. -declare -x GIMR_DG_FLAG ## Default set to FALSE. If under DSC, set to true. -declare -x GIMR_DG_NAME ## Default set to MGMT. -declare -x GIMR_DG_REDUNDANCY ## Used if you will use DSC. Default set to EXTERNAL. -declare -x DOMAIN ## Domain name will be computed based on hostname -d, otherwise pass it as env variable. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x DHCP_CONF='false' ## Pass env variable where value set to true for DHCP based installation. -declare -x NODE_VIP ## Pass it as env variable. -declare -x VIP_HOSTNAME ## Pass as env variable. -declare -x SCAN_NAME ## Pass it as env variable. -declare -x SCAN_PORT ## Default SCAN_PORT set to 1521. Pass some other value if need some other PORT. -declare -x SCAN_IP ## Pass as env variable if you do not have DNS server. Otherwise, do not pass this variable. -declare -x SINGLENIC='false' ## Default value is false as we should use 2 nics if possible for better performance. -declare -x PRIV_IP ## Pass PRIV_IP is not using SINGLE NIC -declare -x CONFIGURE_GNS ## Default value set to false. However, under DSC checks, it is reverted to true. -declare -x GNS_OPTIONS ## By Default value will be CREATE_NEW_GNS -declare -x GNSVIP_HOSTNAME ## If you are using DSC or DHCP for grid. -declare -x GNS_SUBDOMAIN ## If you are using DHCP. -declare -x COMMON_SCRIPTS ## COMMON SCRIPT Locations. Pass this env variable if you have custom responsefile for grid and other scripts for DB. -declare -x PRIV_HOSTNAME ## if SINGLENIC=true then PRIV and PUB hostname will be same. Otherise pass it as env variable. -declare -x CMAN_HOSTNAME ## If you want to use connection manager to proxy the DB connections -declare -x CMAN_IP ## CMAN_IP if you want to use connection manager to proxy the DB connections -declare -x OS_PASSWORD ## if not passed as env variable, it will be set to PASSWORD -declare -x GRID_PASSWORD ## if not passed as env variable , it will be set to OS_PASSWORD -declare -x ORACLE_PASSWORD ## if not passed as env variable, it will be set to OS_PASSWORD -declare -x PASSWORD ## If not passed as env variable , it will be set as system generated password -declare -x CLUSTER_NAME ## if not passed as env variable. It will be set to "hostname-c". -declare -x CLUSTER_TYPE='STANDALONE' ## Default instllation is STANDALONE. You can pass DOMAIn or MEMBERDB. -declare -x GRID_RESPONSE_FILE ## IF you pass this env variable then user based responsefile will be used. default location is COMMON_SCRIPTS. -declare -x SCRIPT_ROOT ## SCRIPT_ROOT will be set as per your COMMON_SCRIPTS.Do not Pass env variable SCRIPT_ROOT. -declare -x STORAGE_OPTIONS_FOR_MEMBERDB ##Pass it as env variable if you want to specify storage options for MEMBER DB Cluster. -declare -x DB_ASM_DISKGROUP='DATA' ## Pass it env variable when using Member DB cluster. Default value is DATA. Another vakue can be MGMT. -declare -x MEMBERDB_FILE ## Mandatory Parameter for MEMBER DB CLUSTER. Pass the Manifest file name. Copy it under COMMON_SCRIPTS. -declare -x ORACLE_CHARACTERSET ## If not passed as env variable then default value is AL32UTF8. -declare -x ORACLE_PWD ## If not passed as env variable then default value is set to PASSWORD -declare -x ORACLE_PDB ## If not passed then oraclepdb is default pdb name -declare -x ORACLE_SID ## If not passed then default db name is oraclecdb. -declare -x CONTAINER_DB_FLAG='true' ## default database will be created as container. Set it to false to create Non-CDB -declare -r OSOPER ## OSOPER group -declare -x IPMI_USERNAME ## Specify IPMI Username -declare -x IPMI_PASSWORD ## IPMI_PASSWORD -declare -x ASM_REDUNDANCY='EXTERNAL' ## ASM REDUNDANCY default to EXTERNAL -declare -x SCAN_TYPE='LOCAL_SCAN' ## SCAN TYPE set to LOCAL -declare -x SHARED_SCAN ## SHARED_SCAN. define file for SHARED SCAN -declare -x EXTENDED_CLUSTER=false ## EXTENDED CLUSTER DEFAULT set to false -declare -x SHARED_GNS_FILE ## Specify SHARED GNS -declare -x EXTENDED_CLUSTER_SITES ## Specify Extended Cluster Sites -declare -x ASM_DG_FAILURE_GROUP ## ASM DG Failure groups -declare -x ASM_ON_NAS ## Specify ASM on NAS -declare -x ASM_ON_NAS_LOCATION ## Specify ASM on NAS Location -declare -x FAILURE_GROUP_SITE_NAME ## Specify Failure Group Site Name -declare -x QUORUM_FAILURE_GROUP ## Specify QUORUM Failure Group name -declare -x GIMR_DG_FAILURE_GROUP ## Specufy DG Failure name -declare -x CONFIGURE_AFD_FLAG='false' ##Specify Configure AFD Flag -declare -x CONFIGURE_RHPS_FLAG='false' ## Speicfy Configure RHPS Flag -declare -x EXECUTE_ROOT_SCRIPT_FLAG='fasle' ## Specify ROOT Script Flag -declare -x EXECUTE_ROOT_SCRIPT_METHOD='ROOT' ## Specify Execute Root Script methid -declare -x IGNORE_CVU_CHECKS='true' ## Ignore CVU Checks -declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume -declare -x PWD_KEY='pwd.key' ## PWD Key File -declare -x TOTAL_MEMORY=5000 ## Total Memory need to be allocated to SGA Instance -declare -x DATABASE_CONFIG_TYPE='RAC' ## DB COnfig TYPE -declare -x PDB_COUNT=1 ## PDB COUNTS -declare -x ORACLE_PWD_FILE -declare -x GRID_PWD_FILE -declare -x REMOVE_OS_PWD_FILES='false' -declare -x DB_PWD_FILE -declare -x PASSWORD_FILE='pwdfile' -declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' -declare -x CRS_NODES -declare -x CRS_CONFIG_NODES -declare -x ANSIBLE_INSTALL='false' -declare -x GIMR_FLAG='false' -declare -x RUN_DBCA='true' - -progname=$(basename "$0") -###################### Variabes and Constants declaration ends here #################### - - -############Sourcing Env file########## -# shellcheck disable=SC1091 -if [ -f "/etc/rac_env_vars" ]; then - source "/etc/rac_env_vars" -fi -##########Source ENV file ends here#### - - -###################Capture Process id and source functions.sh############### -# shellcheck disable=SC1091 -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -####### all_check function to validate all the required variable before proceeding for the installation ####### - -all_check() -{ -check_pub_host_name -check_ip_env_vars -check_passwd_env_vars -check_dsc_env_vars -check_dhcp_env_vars -check_rspfile_env_vars -check_db_env_vars -} - -############## Public Hostname, IP and Domain begin here ############## - -check_pub_host_name() -{ -local domain_name - -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname).$DOMAIN") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi - -if [ -z "${DOMAIN}" ]; then -domain_name=$(hostname -d) - if [ -z "${domain_name}" ];then - print_message "Domain name is not defined. Setting Domain to 'example.com'" - DOMAIN="example.com" - else - DOMAIN=${domain_name} -fi - else - print_message "Domain is defined to $DOMAIN" -fi - - -} - -############## Public Hostname, IP and Domain end here ############## - -############## IP Related Checks Begins here ############## -check_ip_env_vars () -{ -local domain_name - -if [ "${DHCP_CONF}" != 'true' ]; then - print_message "Default setting of AUTO GNS VIP set to false. If you want to use AUTO GNS VIP, please pass DHCP_CONF as an env parameter set to true" - DHCP_CONF=false -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${NODE_VIP}" ]; then - error_exit "RAC Node ViP is set to empty string" -else - print_message "RAC VIP set to ${NODE_VIP}" -fi - -if [ -z "${VIP_HOSTNAME}" ]; then - error_exit "RAC Node Vip hostname is set to empty string" -else - print_message "RAC Node VIP hostname is set to ${VIP_HOSTNAME} " -fi -fi - - -if [ -z "${SCAN_NAME}" ]; then - error_exit "SCAN_NAME set to the empty string" -else - print_message "SCAN_NAME name is ${SCAN_NAME}" -fi - -if [ -z "${SCAN_PORT}" ]; then - print_message "SCAN PORT is set to empty string. Setting it to 1521 port." - SCAN_PORT=1521 -else - print_message "SCAN_PORT name is ${SCAN_PORT}" -fi - -if resolveip "${SCAN_NAME}"; then - print_message "SCAN Name resolving to IP. Check Passed!" -else - error_exit "SCAN Name not resolving to IP. Check Failed!" -fi - -if [ -z "${SCAN_IP}" ]; then - print_message "SCAN_IP set to the empty string" -else - print_message "SCAN_IP name is ${SCAN_IP}" -fi -### DHCP Check ENDS Here ###### -fi - -if [ "${SINGLENIC}" == 'true' ];then -PRIV_IP=${PUBLIC_IP} -PRIV_HOSTNAME=${PUBLIC_HOSTNAME} -fi - -if [ ${ANSIBLE_INSTALL} == 'false' ]; then - -if [ -z "${PRIV_IP}" ]; then - error_exit "RAC Node private ip is set to empty string" -else - print_message "RAC Node PRIV IP is set to ${PRIV_IP} " -fi - -if [ -z "${PRIV_HOSTNAME}" ]; then - error_exit "RAC Node private hostname set to empty string" -else - print_message "RAC Node private hostname is set to ${PRIV_HOSTNAME}" -fi - -fi - -if [ -z "${CMAN_HOSTNAME}" ]; then - print_message "CMAN_NAME set to the empty string" -else - print_message "CMAN_HOSTNAME name is ${CMAN_HOSTNAME}" -fi - -if [ -z "${CMAN_IP}" ]; then - print_message "CMAN_IP set to the empty string" -else - print_message "CMAN_IP name is ${CMAN_IP}" -fi - -if [ -z "${CLUSTER_NAME}" ]; then - print_message "Cluster Name is not defined" - print_message "Cluster name is set to 'racnode-c'" - CLUSTER_NAME="$(hostname)-c" -else - print_message "Cluset name is set to $CLUSTER_NAME" -fi - -} - -############## IP Related Checks end here ############## - -############## Checks for password brgins here ######### -check_passwd_env_vars () -{ - -################## Checks for Password and Clustername and clustertype begins here ########### -if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then - print_message "Password file generated" -else - error_exit "Error occurred during common os password file generation" -fi - read -r PASSWORD < /tmp/${COMMON_OS_PWD_FILE} - rm -f /tmp/${COMMON_OS_PWD_FILE} - -elif [ -f "${SECRET_VOLUME}/${PASSWORD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl base64 -d -in "${SECRET_VOLUME}/${PASSWORD_FILE}" -out /tmp/"${PASSWORD_FILE}"' - - if eval "$cmd"; then - print_message "Password file generated" - else - error_exit "Error occurred during password file ${PASSWORD_FILE} generation" - fi - - read -r PASSWORD < /tmp/${PASSWORD_FILE} - rm -f /tmp/${PASSWORD_FILE} -else - print_message "Password is empty string" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - - -if [ -n "${GRID_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${GRID_PWD_FILE}" -out "/tmp/${GRID_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during Grid password file generation" -fi - -read -r GRID_PASSWORD < /tmp/"${GRID_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - GRID_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Grid user" -fi - -if [ -n "${ORACLE_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${ORACLE_PWD_FILE}" -out "/tmp/${ORACLE_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during Oracle password file generation" -fi - -read -r ORACLE_PASSWORD < /tmp/"${ORACLE_PWD_FILE}" -rm -f /tmp/"${GRID_PWD_FILE}" -else - ORACLE_PASSWORD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle user" -fi - -if [ -n "${DB_PWD_FILE}" ]; then -# shellcheck disable=SC2016 -cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${DB_PWD_FILE}" -out "/tmp/${DB_PWD_FILE}" -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - -if eval "$cmd"; then -print_message "Password file generated" -else -error_exit "Error occurred during common database password file generation" -fi - -read -r ORACLE_PWD < /tmp/"${DB_PWD_FILE}" -rm -f /tmp/"${DB_PWD_FILE}" -else - ORACLE_PWD="${PASSWORD}" - print_message "Common OS Password string is set for Oracle Database" -fi - - -if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then -rm -f ${SECRET_VOLUME}/${COMMON_OS_PWD_FILE} -rm -f ${SECRET_VOLUME}/${PWD_KEY} -fi -} - -############ Checks for password ends here################ - -############## Checks for Domain Service Cluster ######### -check_dsc_env_vars () -{ -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - print_message "Setting GIMR_DG_FLAG to TRUE" - GIMR_DG_FLAG="true" - print_message "Setting GIMR_DG_NAME to MGMT" - GIMR_DG_NAME="MGMT" - print_message "Setting GIMR_DG_REDUNDANCY to External" - GIMR_DG_REDUNDANCY="EXTERNAL" - print_message "Setting Configure GNS options to true" - CONFIGURE_GNS=true - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi -else - print_message "Setting CONFIGURE_GNS to false" - CONFIGURE_GNS='false' -fi -} -############## Checks for DSC ends here #################################################### - -############## Checks for DHCP Begin here ######################################## -check_dhcp_env_vars () -{ -if [ "${DHCP_CONF}" == 'true' ];then - - if [ -z "${GNS_SUBDOMAIN}" ]; then - error_exit "GNS_SUBDOMAIN is not set or set to empty string" - else - print_message "GNS SUBDOMAIN is set to ${GNS_SUBDOMAIN} " - fi - - if [ -z "${GNSVIP_HOSTNAME}" ]; then - error_exit "GNS IP is not set or set to empty string" - else - print_message "GNS IP is set to ${GNSVIP_HOSTNAME} " - fi - - if [ -z "${GNS_OPTIONS}" ]; then - print_message "GNS OPTIONS set to empty string. Setting GNS OPTIONS to CREATE_NEW_GNS" - GNS_OPTIONS="CREATE_NEW_GNS" - else - print_message "GNS OPTIONS is set to ${GNS_OPTIONS} " - fi - -fi -} - -############# Checks for DHCP Ends here ########################################### - -############### Check for Existing Grid Response file based on user settings begin here######## - -check_rspfile_env_vars () -{ -if [ -z "${GRID_RESPONSE_FILE}" ];then -print_message "GRID_RESPONSE_FILE env variable set to empty. $progname will use standard cluster responsefile" -else -if [ -f "${COMMON_SCRIPTS}/${GRID_RESPONSE_FILE}" ];then -cp "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE" "$logdir/$GRID_INSTALL_RSP" -else -error_exit "$COMMON_SCRIPTS/$GRID_RESPONSE_FILE does not exist" -fi -fi - -if [ -z "${SCRIPT_ROOT}" ]; then -SCRIPT_ROOT=$COMMON_SCRIPTS -print_message "Location for User script SCRIPT_ROOT set to $COMMON_SCRIPTS" -else -print_message "Location for User script SCRIPT_ROOT set to $SCRIPT_ROOT" -fi - -print_message "IGNORE_CVU_CHECKS is set to ${IGNORE_CVU_CHECKS}" - -} - -############### Check for Existing Grid Response file based on user settings end here######## - -############## Check for Member Cluster and DB related parameters Begin here ########################## -check_db_env_vars () -{ -if [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -print_message "Checking StorageOption for MEMBERDB Cluster" - -if [ -z "${STORAGE_OPTIONS_FOR_MEMBERDB}" ]; then -print_message "Storage Options is set to CLIENT_ASM_STORAGE" - STORAGE_OPTIONS_FOR_MEMBERDB=CLIENT_ASM_STORAGE -else -print_message "Storage Options is set to STORAGE_OPTIONS_FOR_MEMBERDB" -fi - -if [ -z "${MEMBERDB_FILE}" ];then - error_exit "Manifest File is not provided for MEMBERDB cluster. Exiting.." -else - print_message "Manifest File is set to $MEMBERDB_FILE" - if [ -f "${COMMON_SCRIPTS}"/"${MEMBERDB_FILE}" ]; then - print_message "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}" - else - error_exit "Manifest File exist at ${COMMON_SCRIPTS}/${MEMBERDB_FILE}. Check Failed!" - fi -fi - -if [ -z "${DB_ASM_DISKGROUP}" ];then -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -else -print_message "ASM Diskgroup name for MemberDB is set to $DB_ASM_DISKGROUP" -fi - -fi - -############## Following Checks are applicable only if CLUSTER TYPE is STANDALONE######### - -if [ $CLUSTER_TYPE == 'STANDALONE' ] || [ $CLUSTER_TYPE == 'MEMBERDB' ]; then -if [ -z "${ORACLE_SID}" ]; then -export ORACLE_SID="ORCLCDB" -print_message "Oracle SID is set to $ORACLE_SID" -else -print_message "Oracle SID is set to $ORACLE_SID" -fi - -if [ -z "${ORACLE_PDB}" ]; then -export ORACLE_PDB="ORCLPDB" -print_message "Oracle PDB name is set to $ORACLE_PDB" -else -print_message "Oracle PDB name is set to $ORACLE_PDB" -fi - -if [ -z "${ORACLE_CHARACTERSET}" ]; then -export ORACLE_CHARACTERSET="AL32UTF8" -else -print_message "DB characterset set to $ORACLE_CHARACTERSET" -fi -fi -} - -############## Check for Member Cluster Begin here ######################## -################ all_check function related tasks ends here ################# - - -########################################### SSH Function begin here ######################## -setupSSH() -{ -local CLUSTER_NODES -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES1=$PUBLIC_HOSTNAME -else - CLUSTER_NODES1=$( echo "$CRS_NODES" | tr ',' ' ' ) -fi - -print_message "SSh will be setup among $CLUSTER_NODES1 nodes" - -print_message "Running SSH setup for $GRID_USER user between nodes $CLUSTER_NODES1" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $GRID_USER \"$GRID_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES1\" \"$GRID_PASSWORD\""' -eval "$cmd" -sleep 30 -print_message "Running SSH setup for $DB_USER user between nodes $CLUSTER_NODES1" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "$EXPECT $SCRIPT_DIR/$SETUPSSH $DB_USER \"$DB_HOME/oui/prov/resources/scripts\" \"$CLUSTER_NODES1\" \"$ORACLE_PASSWORD\""' -eval "$cmd" -} - -checkSSH () -{ - -local status -local CLUSTER_NODES1 - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES1=$PUBLIC_HOSTNAME -else - CLUSTER_NODES1=$( echo "$CRS_NODES" | tr ',' ' ' ) -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $GRID_USER@$node echo ok 2>&1"' -echo "$cmd" - -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $node" - -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $GRID_USER@$node beuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $GRID_USER@$node! Error occurred during SSH setup" -fi - -done - -status="NA" -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "ssh -o BatchMode=yes -o ConnectTimeout=5 $DB_USER@$node echo ok 2>&1"' - echo "$cmd" -for node in $( echo "${CLUSTER_NODES1}" | tr '\r\n' ' ' | tr -d \" ) -do - -status=$(eval "$cmd") - -if [[ $status == ok ]] ; then - print_message "SSH check fine for the $DB_USER@$node" -elif [[ $status == "Permission denied"* ]] ; then - error_exit "SSH check failed for the $DB_USER@$node becuase of permission denied error! SSH setup did not complete sucessfully" -else - error_exit "SSH check failed for the $DB_USER@$node! Error occurred during SSH setup" -fi - -done - -} - -######################################## SSH Function end here ############################# - -######################################### ASM Disk Functions ################################### -build_block_device_list () -{ - -local count=1 -local temp_str - -local size=0 - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -if [ -n "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -# shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - ASM_DISKGROUP_FG_DISKS+="$device,," - ASM_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin "$device" - chmod 660 "$device" - count=$((count+1)) - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "ASM_DEVICE_LIST is set to empty canot proceed" -fi - -temp_str=$(echo -n "$ASM_DISKGROUP_FG_DISKS" | head -c -1) -export ASM_DISKGROUP_FG_DISKS=$temp_str -print_message "ASM Device list will be with failure groups $ASM_DISKGROUP_FG_DISKS" -temp_str=$(echo -n "$ASM_DISKGROUP_DISKS" | head -c -1) -export ASM_DISKGROUP_DISKS=$temp_str -print_message "ASM Device list will be groups $ASM_DISKGROUP_DISKS" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### ASM Disk Functions #################################### - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ - -local count=1 -local temp_str - -local size=0 - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then -if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then -if [ -n "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -# shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - GIMR_DISKGROUP_FG_DISKS+="$device,," - GIMR_DISKGROUP_DISKS+="$device," - # ((size+=$(blockdev --getsize64 $device))) - # print_message "Disks size (bytes) : $size" - print_message "Changing Disk permission and ownership" - chown $GRID_USER:asmadmin "$device" - chmod 660 "$device" - count=$((count+1)) - done -fi -size=$(echo "$size" | awk '{byte =$1 /1024/1024**2 ; print byte}') -print_message "ASM Disk size : $size" -else -error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi - -temp_str=$(echo -n "$GIMR_DISKGROUP_FG_DISKS" | head -c -1) -export GIMR_DISKGROUP_FG_DISKS=$temp_str -print_message "GIMR Device list will be with failure groups $GIMR_DISKGROUP_FG_DISKS" -temp_str=$(echo -n "$GIMR_DISKGROUP_DISKS" | head -c -1) -export GIMR_DISKGROUP_DISKS=$temp_str -print_message "GIMR Device list will be set to $GIMR_DISKGROUP_DISKS" -else -print_message "CLUSTER_TYPE env variable is set to ${CLUSTER_TYPE}, will not process GIMR DEVICE list as default Diskgroup is set to DATA. GIMR DEVICE List will be processed when CLUSTER_TYPE is set to DOMAIN for DSC" -fi -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so GIMR_DEVICE_LIST env variable will be ignored" -fi -} - -######################################### GIMR Block Device List Computation ends here ############ - -######################################## Set Device Permissions on all the nodes ####################### -setDevicePermissions () -{ - -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=$PUBLIC_HOSTNAME -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Setting Device permissions for RAC Install on $node" - -if [ -n "${GIMR_DEVICE_LIST}" ];then - -print_message "Preapring GIMR Device list" -IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} -# shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export GIMR_DEVICE_LIST=${GIMR_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - done -fi - -fi - -if [ -n "${ASM_DEVICE_LIST}" ];then - -print_message "Preapring ASM Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -# shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chown $GRID_USER:asmadmin $device"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo chmod 660 $device"' - print_message "Command : $cmd execute on $node" - eval $cmd - unset cmd - print_message "Populate Rac Env Vars on Remote Hosts" - # shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node sudo echo \"export ASM_DEVICE_LIST=${ASM_DEVICE_LIST}\" >> /etc/rac_env_vars"' - print_message "Command : $cmd execute on $node" - eval "$cmd" - unset cmd - done -fi - -fi - -done - -} - -######################################## Set Device Permission Ends Here ################################ - -####################################### Network Function Begin here ############################# -# shellcheck disable=SC2120 -build_network () -{ - - -if [ -z "${GRID_RESPONSE_FILE}" ]; then - -####### Building Public IP Details ########### -ETH_CARD_2=$(ifconfig | awk "/${PUBLIC_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface "$ETH_CARD_2" ; then - print_message "Check passed for network card $ETH_CARD_2 for public IP $PUBLIC_IP" - else - error_exit "Check failed for network card for $ETH_CARD_2 for public IP $PUBLIC_IP" - fi - -PUBLIC_NETMASK=$(ifconfig "$ETH_CARD_2" | awk '/netmask/ {print $4}') -print_message "Public Netmask : $PUBLIC_NETMASK" -PUBLIC_NETWORK=$(ipcalc -np "$PUBLIC_IP" "$PUBLIC_NETMASK" | grep NETWORK | awk -F '=' '{ print $2 }') - -##### Building Private Network Detail ######### - -ETH_CARD_1=$(ifconfig | awk "/${PRIV_IP}/ {print $1}" RS="\n\n" | awk -F ":" '{ print $1 }' | head -1) - -if check_interface "$ETH_CARD_1" ; then - print_message "Check passed for network card $ETH_CARD_1 for private IP $PRIV_IP" -else - error_exit "Check failed for network card for $ETH_CARD_1 for private IP $PRIV_IP" -fi - -PRIVATE_NETMASK=$(ifconfig "$ETH_CARD_1" | awk '/netmask/ {print $4}') -PRIVATE_NETWORK=$(ipcalc -np "$PRIV_IP" "$PRIVATE_NETMASK" | grep NETWORK | awk -F '=' '{ print $2 }') - -print_message "Building NETWORK_STRING to set networkInterfaceList in Grid Response File" - -if [ "${SINGLENIC}" == "true" ]; then -NETWORK_STRING="$ETH_CARD_1:$PUBLIC_NETWORK:1" -else -NETWORK_STRING="$ETH_CARD_2:$PUBLIC_NETWORK:1,$ETH_CARD_1:$PRIVATE_NETWORK:5" -fi - -print_message "Network InterfaceList set to $NETWORK_STRING" -else -print_message "GRID_RESPONSE_FILE is set to ${GRID_RESPONSE_FILE}, so ASM_DEVICE_LIST env variable will be ignored" -fi - -} - -########################################## Network Function End here ################################ - -######### Grid setup Function########################### -grid_response_file () -{ - -if [ -z "$GRID_RESPONSE_FILE" ]; then -cp "$SCRIPT_DIR"/"$GRID_INSTALL_RSP" "$logdir"/"$GRID_INSTALL_RSP" -#chmod 777 $logdir - -if [ -z "$CRS_CONFIG_NODES" ]; then - CRS_CONFIG_NODES="$PUBLIC_HOSTNAME:$VIP_HOSTNAME:HUB" -fi - -sed -i -e "s|###INVENTORY###|$INVENTORY|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###CLUSTER_NAME###|$CLUSTER_NAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###SCAN_NAME###|$SCAN_NAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###HOSTNAME###|$PUBLIC_HOSTNAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###HOSTNAME_VIP###|$VIP_HOSTNAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DISKGROUP_FG_DISKS###|$ASM_DISKGROUP_FG_DISKS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DISKGROUP_DISKS###|$ASM_DISKGROUP_DISKS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DISCOVERY_STRING###|$ASM_DISCOVERY_DIR/*|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###PASSWORD###|$ORACLE_PWD|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###STORAGE_OPTIONS_FOR_MEMBERDB###|$STORAGE_OPTIONS_FOR_MEMBERDB|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###SCAN_PORT###|$SCAN_PORT|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###CLUSTER_TYPE###|$CLUSTER_TYPE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_REDUNDANCY###|$GIMR_DG_REDUNDANCY|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DISKGROUP_FG_DISKS###|$GIMR_DISKGROUP_FG_DISKS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DISKGROUP_DISKS###|$GIMR_DISKGROUP_DISKS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_FLAG###|$GIMR_DG_FLAG|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###NETWORK_STRING###|$NETWORK_STRING|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_NAME###|$GIMR_DG_NAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GNS_SUBDOMAIN###|$GNS_SUBDOMAIN|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GNSVIP_HOSTNAME###|$GNSVIP_HOSTNAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GNS_OPTIONS###|$GNS_OPTIONS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###DHCP_CONF###|$DHCP_CONF|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###CONFIGURE_GNS###|$CONFIGURE_GNS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###MEMBERDB_FILE###|$COMMON_SCRIPTS\/$MEMBERDB_FILE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###DB_ASM_DISKGROUP###|$DB_ASM_DISKGROUP|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###INSTALL_TYPE###|$INSTALL_TYPE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###OSDBA###|$OSDBA|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###OSOPER###|$OSOPER|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###OSASM###|$OSASM|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###SCAN_TYPE###|$SCAN_TYPE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###SHARED_SCAN_FILE###|$SHARED_SCAN_FILE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXTENDED_CLUSTER###|$EXTENDED_CLUSTER|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###SHARED_GNS_FILE###|$SHARED_GNS_FILE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXTENDED_CLUSTER_SITES###|$EXTENDED_CLUSTER_SITES|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###IPMI_FLAG###|$IPMI_FLAG|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###IPMI_USERNAME###|$IPMI_USERNAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###IPMI_PASSWORD###|$IPMI_PASSWORD|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_STORAGE_OPTION###|$ASM_STORAGE_OPTION|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_ON_NAS###|$ASM_ON_NAS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_ON_NAS###|$GIMR_ON_NAS|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_ON_NAS_LOCATION###|$ASM_ON_NAS_LOCATION|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_REDUNDANCY###|$ASM_REDUNDANCY|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###AU_SIZE###|$AU_SIZE|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###FAILURE_GROUP_SITE_NAME###|$FAILURE_GROUP_SITE_NAME|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###QUORUM_FAILURE_GROUP###|$QUORUM_FAILURE_GROUP|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_DG_FAILURE_GROUP###|$GIMR_DG_FAILURE_GROUP|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###CONFIGURE_AFD_FLAG###|$CONFIGURE_AFD_FLAG|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###CONFIGURE_RHPS_FLAG###|$CONFIGURE_RHPS_FLAG|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_FLAG###|$EXECUTE_ROOT_SCRIPT_FLAG|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###EXECUTE_ROOT_SCRIPT_METHOD###|$EXECUTE_ROOT_SCRIPT_METHOD|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###CRS_CONFIG_NODES###|$CRS_CONFIG_NODES|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###ASM_DG_FAILURE_GROUP###|$ASM_DG_FAILURE_GROUP|g" "$logdir"/"$GRID_INSTALL_RSP" -sed -i -e "s|###GIMR_FLAG###|$GIMR_FLAG|g" "$logdir"/"$GRID_INSTALL_RSP" -fi - -} - -cluvfy_checks () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP - -local cmd -local FAILED_CMDS -TIMESTAMP="$(date +%s)" -local TIMESTAMP - -if [ -f "$logdir/cluvfy_check.txt" ]; then -print_message "Moving any exisiting cluvfy $logdir/cluvfy_check.txt to $logdir/cluvfy_check_$TIMESTAMP.txt" -mv "$logdir"/cluvfy_check.txt "$logdir"/cluvfy_check."$(date +%Y%m%d-%H%M%S)".txt -fi - -print_message "Performing Cluvfy Checks" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/runcluvfy.sh stage -pre crsinst -responseFile $responsefile | tee -a $logdir/cluvfy_check.txt"' -eval "$cmd" - -print_message "Checking $logdir/cluvfy_check.txt if there is any failed check." -FAILED_CMDS=$(sed -n -f - "$logdir"/cluvfy_check.txt << EOF - /.*FAILED.*/ { -p -} -EOF -) - -cat "$logdir"/cluvfy_check.txt > "$STD_OUT_FILE" - -if [[ ${IGNORE_CVU_CHECKS} == 'true' ]]; then -print_message "CVU Checks are ignored as IGNORE_CVU_CHECKS set to true. It is recommended to set IGNORE_CVU_CHECKS to false and meet all the cvu checks requirement. RAC installation might fail, if there are failed cvu checks." -else -if [[ $FAILED_CMDS =~ .*FAILED*. ]] -then -print_message "cluvfy failed for following \n $FAILED_CMDS" -error_exit "Pre Checks failed for Grid installation, please check $logdir/cluvfy_check.txt" -fi -fi -} - -RunConfigGrid() -{ -local responsefile=$logdir/$GRID_INSTALL_RSP - -local cmd - -if [ "${SINGLENIC}" == 'true' ];then - error_exit "SINGLE NIC is not supported"; -else -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -waitforcompletion -ignorePrereq -silent -responseFile $responsefile"' -eval "$cmd" -fi -} - -runrootsh () -{ -local cmd - -if [ -z "$CRS_NODES" ]; then - CLUSTER_NODES=( "${PUBLIC_HOSTNAME}" ) -else - IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" -fi - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" -for node in "${CLUSTER_NODES[@]}"; do -print_message "Running root.sh on $node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo systemctl reset-failed"' -eval "$cmd" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo $GRID_HOME/root.sh"' -eval "$cmd" -done -} - -runpostrootsetps () -{ -local responsefile=$logdir/$GRID_INSTALL_RSP - -local cmd - -print_message "Running post root.sh steps to setup Grid env" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "$GRID_HOME/gridSetup.sh -executeConfigTools -responseFile $responsefile -silent"' -eval "$cmd" - -#rm -f $responsefile -} - -checkCluster () -{ -local cmd; - - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" - - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Checking Cluster on $node" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crs"' - -if eval "$cmd";then -print_message "Cluster Check passed" -else -error_exit "Cluster Check failed" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cluster"' - - -if eval "$cmd"; then -print_message "Cluster Check went fine" -else -error_exit "Cluster Check failed!" -fi - -if [ ${GIMR_DB_FLAG} == 'true' ]; then -# shellcheck disable=SC2016 - cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/srvctl status mgmtdb"' - - if eval "$cmd"; then - print_message "MGMTDB Check went fine" - else - error_exit "MGMTDB Check failed!" - fi -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check crsd"' - -if eval "$cmd"; then -print_message "CRSD Check went fine" -else -error_exit "CRSD Check failed!" -fi -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check cssd"' - -if eval "$cmd"; then -print_message "CSSD Check went fine" -else -error_exit "CSSD Check failed!" -fi - -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node $GRID_HOME/bin/crsctl check evmd"' - -if eval "$cmd"; then -print_message "EVMD Check went fine" -else -error_exit "EVMD Check failed" -fi - -done - -print_message "Removing $logdir/cluvfy_check.txt as cluster check has passed" -rm -f "$logdir"/cluvfy_check.txt - -} - -installCrontab() -{ -print_message "Installing crontab to monitor systemd and reset the failed units" -local cmd; - -IFS=', ' read -r -a CLUSTER_NODES <<< "$CRS_NODES" - -print_message "Nodes in the cluster ${CLUSTER_NODES[*]}" - -for node in "${CLUSTER_NODES[@]}"; do - -print_message "Copying file $RESET_FAILED_UNITS from $SCRIPT_DIR to /tmp" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo cp $SCRIPT_DIR/$RESET_FAILED_UNITS /tmp/$RESET_FAILED_UNITS"' - -if eval "$cmd";then -print_message "Copied the $RESET_FAILED_UNITS under /tmp" -else -error_exit "Error occurred during file copy" -fi - -print_message "Setting Crontab" -# shellcheck disable=SC2016 -cmd='su - $GRID_USER -c "ssh $node sudo crontab $SCRIPT_DIR/$CRONTAB_ENTRY"' - -if eval "$cmd";then -print_message "Sucessfully installed $CRONTAB_ENTRY using crontab" -else -error_exit "Error occurred in crontab setup" -fi - -done - -} - -#############DB Setup Functions######################################## - -dbca_response_file () -{ - -if [ -z "$DBCA_RESPONSE_FILE" ]; then -cp "$SCRIPT_DIR"/"$DBCA_RSP" "$logdir"/"$DBCA_RSP" -chmod 666 "$logdir"/"$DBCA_RSP" - -if [ -z "$CRS_NODES" ]; then - CRS_NODES=$PUBLIC_HOSTNAME -fi - -sed -i -e "s|###ORACLE_SID###|$ORACLE_SID|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###ORACLE_PDB###|$ORACLE_PDB|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###ORACLE_PWD###|$ORACLE_PWD|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###ORACLE_CHARACTERSET###|$ORACLE_CHARACTERSET|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###DB_NODES###|$CRS_NODES|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###DB_BASE###|$DB_BASE|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###DB_HOME###|$DB_HOME|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###CONTAINER_DB_FLAG###|$CONTAINER_DB_FLAG|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###PDB_COUNT###|$PDB_COUNT|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###DATABASE_CONFIG_TYPE###|$DATABASE_CONFIG_TYPE|g" "$logdir"/"$DBCA_RSP" -sed -i -e "s|###TOTAL_MEMORY###|$TOTAL_MEMORY|g" "$logdir"/"$DBCA_RSP" -else - -if [ -f "$COMMON_SCRIPTS"/"$DBCA_RESPONSE_FILE" ];then -cp "$COMMON_SCRIPTS"/"$DBCA_RESPONSE_FILE" "$logdir"/"$DBCA_RSP" -else -error_exit "$COMMON_SCRIPTS/$DBCA_RESPONSE_FILE does not exist" -fi - -fi - -# Modify StorageType if db-datafile in nfs and grid on asm -if [ "${DB_STORAGE_TYPE}" == "FS" ] || [ "${DB_STORAGE_TYPE}" == "fs" ]; then - sed -i -e 's/storageType=.*/storageType=FS/' "$logdir"/"$DBCA_RSP" - sed -i -e 's/datafileDestination=.*/datafileDestination=\/oradbnas\/{DB_UNIQUE_NAME}\//' "$logdir"/"$DBCA_RSP" -fi - -} - -createRACDB() -{ -local responsefile=$logdir/$DBCA_RSP -local cmd - -## Bug 32449232 .. Workaround is cleanup of $GRID_BASE/kfod directory. Will remove the workaround after this bug is fixed. -print_message "Workaround for Bug 32449232 : Removing $GRID_BASE/kfod" -rm -rf "$GRID_BASE"/diag/kfod -sleep 1 - -# Replace place holders in response file -# shellcheck disable=SC2016 -cmd='su - $DB_USER -c "$DB_HOME/bin/dbca -silent -ignorePreReqs -createDatabase -responseFile $responsefile"' -eval "$cmd" -rm -f "$responsefile" -} - -checkDBStatus () -{ -local status - -if [ -f "/tmp/db_status.txt" ]; then -status=$(cat /tmp/db_status.txt) -else -status="NOT OPEN" -fi - -rm -f /tmp/db_status.txt - -# SQL Plus execution was successful and database is open -if [ "$status" = "OPEN" ]; then - print_message "#################################################################" - print_message " Oracle Database $ORACLE_SID is up and running on $(hostname) " - print_message "#################################################################" -# Database is not open -else - error_exit "$ORACLE_SID is not up and running on $(hostname)" -fi - -} - -setremotelistener () -{ -local status -local cmd - -if resolveip "$CMAN_HOSTNAME"; then -print_message "Executing script to set the remote listener" -su - $DB_USER -c "$SCRIPT_DIR/$REMOTE_LISTENER_FILE $ORACLE_SID $SCAN_NAME $CMAN_HOSTNAME.$DOMAIN" -fi - -} - -############################# DB Functions End here ########################################### - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -all_check -build_network -print_message "Setting random password for $GRID_USER user" -setpasswd $GRID_USER "$GRID_PASSWORD" -print_message "Setting random password for $DB_USER user" -setpasswd $DB_USER "$ORACLE_PASSWORD" - -print_message "Calling setupSSH function" -setupSSH -checkSSH - -######### ASM Disk Setup ####### -if [ "${CLUSTER_TYPE}" == 'DOMAIN' ] || [ "${CLUSTER_TYPE}" == 'STANDALONE' ]; then -build_block_device_list -build_gimr_block_device_list -setDevicePermissions -fi - -####### Grid Setup ########## -print_message "Generating Reponsefile" -grid_response_file -print_message "Running cluvfy Checks" -cluvfy_checks -print_message "Running Grid Installation" -RunConfigGrid -print_message "Running root.sh" -runrootsh -print_message "Running post root.sh steps" -runpostrootsetps -print_message "Checking Cluster Status" -checkCluster -# print_message "Instaling Crontab to monitor Systemd units" -# installCrontab - -####### DB Setup ########## -if [ "${CLUSTER_TYPE}" == 'STANDALONE' ] || [ "${CLUSTER_TYPE}" == 'MEMBERDB' ]; then -if [ "${RUN_DBCA}" == "true" ]; then -print_message "Generating DB Responsefile Running DB creation" -dbca_response_file -print_message "Running DB creation" -createRACDB -print_message "Checking DB status" -su - $DB_USER -c "$SCRIPT_DIR/$CHECK_DB_FILE $ORACLE_SID" -checkDBStatus -print_message "Running User Script" -su - $DB_USER -c "$SCRIPT_DIR/$USER_SCRIPTS_FILE $SCRIPT_ROOT" -print_message "Setting Remote Listener" -setremotelistener -fi -fi - -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_inst.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_inst.rsp deleted file mode 100644 index 90ff555e5d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_inst.rsp +++ /dev/null @@ -1,125 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -#------------------------------------------------------------------------------- -oracle.install.option=INSTALL_DB_SWONLY - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME=oinstall - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1 - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/oracle - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 - - -#------------------------------------------------------------------------------- - -oracle.install.db.InstallEdition=EE -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP=dba - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP=oper - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP=backupdba - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP=dgdba - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP=kmdba - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP=racdba -#------------------------------------------------------------------------------ -# Specify whether to enable the user to set the password for -# My Oracle Support credentials. The value can be either true or false. -# If left blank it will be assumed to be false. -# -# Example : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true -#------------------------------------------------------------------------------ -SECURITY_UPDATES_VIA_MYORACLESUPPORT=false - -#------------------------------------------------------------------------------ -# Specify whether user doesn't want to configure Security Updates. -# The value for this variable should be true if you don't want to configure -# Security Updates, false otherwise. -# -# The value can be either true or false. If left blank it will be assumed -# to be true. -# -# Example : DECLINE_SECURITY_UPDATES=false -#------------------------------------------------------------------------------ -DECLINE_SECURITY_UPDATES=true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_install_21cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_install_21cv1.rsp deleted file mode 100644 index e67829179e..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_install_21cv1.rsp +++ /dev/null @@ -1,356 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2019. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -#------------------------------------------------------------------------------- -oracle.install.option= - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME= - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION= -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME= - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE= - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 - - -#------------------------------------------------------------------------------- - -oracle.install.db.InstallEdition= -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP= - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.executeRootScript= - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# Applicable only when SUDO configuration method was chosen. -# Note:For Single Instance database installations,the sudo user name must be the username of the user installing the database. -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.sudoUserName= - -############################################################################### -# # -# Grid Options # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# Value is required only if the specified install option is INSTALL_DB_SWONLY -# -# Specify the cluster node names selected during the installation. -# -# Example : oracle.install.db.CLUSTER_NODES=node1,node2 -#------------------------------------------------------------------------------ -oracle.install.db.CLUSTER_NODES= - -############################################################################### -# # -# Database Configuration Options # -# # -############################################################################### - -#------------------------------------------------------------------------------- -# Specify the type of database to create. -# It can be one of the following: -# - GENERAL_PURPOSE -# - DATA_WAREHOUSE -# GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications. -# DATA_WAREHOUSE : A starter database optimized for data warehousing applications. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.type= - -#------------------------------------------------------------------------------- -# Specify the Starter Database Global Database Name. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.globalDBName= - -#------------------------------------------------------------------------------- -# Specify the Starter Database SID. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.SID= - -#------------------------------------------------------------------------------- -# Specify whether the database should be configured as a Container database. -# The value can be either "true" or "false". If left blank it will be assumed -# to be "false". -#------------------------------------------------------------------------------- -oracle.install.db.ConfigureAsContainerDB= - -#------------------------------------------------------------------------------- -# Specify the Pluggable Database name for the pluggable database in Container Database. -#------------------------------------------------------------------------------- -oracle.install.db.config.PDBName= - -#------------------------------------------------------------------------------- -# Specify the Starter Database character set. -# -# One of the following -# AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2, -# EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257, -# BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6, -# AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8, -# IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, -# KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950, -# ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258 -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.characterSet= - -#------------------------------------------------------------------------------ -# This variable should be set to true if Automatic Memory Management -# in Database is desired. -# If Automatic Memory Management is not desired, and memory allocation -# is to be done manually, then set it to false. -#------------------------------------------------------------------------------ -oracle.install.db.config.starterdb.memoryOption= - -#------------------------------------------------------------------------------- -# Specify the total memory allocation for the database. Value(in MB) should be -# at least 256 MB, and should not exceed the total physical memory available -# on the system. -# Example: oracle.install.db.config.starterdb.memoryLimit=512 -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.memoryLimit= - -#------------------------------------------------------------------------------- -# This variable controls whether to load Example Schemas onto -# the starter database or not. -# The value can be either "true" or "false". If left blank it will be assumed -# to be "false". -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.installExampleSchemas= - -############################################################################### -# # -# Passwords can be supplied for the following four schemas in the # -# starter database: # -# SYS # -# SYSTEM # -# DBSNMP (used by Enterprise Manager) # -# # -# Same password can be used for all accounts (not recommended) # -# or different passwords for each account can be provided (recommended) # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# This variable holds the password that is to be used for all schemas in the -# starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.ALL= - -#------------------------------------------------------------------------------- -# Specify the SYS password for the starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.SYS= - -#------------------------------------------------------------------------------- -# Specify the SYSTEM password for the starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.SYSTEM= - -#------------------------------------------------------------------------------- -# Specify the DBSNMP password for the starter database. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.DBSNMP= - -#------------------------------------------------------------------------------- -# Specify the PDBADMIN password required for creation of Pluggable Database in the Container Database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.PDBADMIN= - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing the database. -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your database with Enterprise Manager Cloud Control along with Database Express. -# 2. DEFAULT -If you want to manage your database using the default Database Express option. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.managementOption= - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.omsPort= - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.emAdminPassword= - -############################################################################### -# # -# SPECIFY RECOVERY OPTIONS # -# ------------------------------------ # -# Recovery options for the database can be mentioned using the entries below # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# This variable is to be set to false if database recovery is not required. Else -# this can be set to true. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.enableRecovery= - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for the database. -# It can be one of the following: -# - FILE_SYSTEM_STORAGE -# - ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.storageType= - -#------------------------------------------------------------------------------- -# Specify the database file location which is a directory for datafiles, control -# files, redo logs. -# -# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= - -#------------------------------------------------------------------------------- -# Specify the recovery location. -# -# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= - -#------------------------------------------------------------------------------- -# Specify the existing ASM disk groups to be used for storage. -# -# Applicable only when oracle.install.db.config.starterdb.storageType=ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.asm.diskGroup= - -#------------------------------------------------------------------------------- -# Specify the password for ASMSNMP user of the ASM instance. -# -# Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.asm.ASMSNMPPassword= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21c.rsp deleted file mode 100644 index 04d570b091..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21c.rsp +++ /dev/null @@ -1,41 +0,0 @@ -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0 -oracle.install.option=INSTALL_DB_SWONLY -UNIX_GROUP_NAME=oinstall -INVENTORY_LOCATION=/u01/app/oraInventory -ORACLE_HOME=/u01/app/oracle/product/21.3.0/dbhome_1 -ORACLE_BASE=/u01/app/oracle -oracle.install.db.InstallEdition=EE -oracle.install.db.OSDBA_GROUP=dba -oracle.install.db.OSOPER_GROUP=oper -oracle.install.db.OSBACKUPDBA_GROUP=backupdba -oracle.install.db.OSDGDBA_GROUP=dgdba -oracle.install.db.OSKMDBA_GROUP=kmdba -oracle.install.db.OSRACDBA_GROUP=racdba -oracle.install.db.rootconfig.executeRootScript= -oracle.install.db.rootconfig.configMethod= -oracle.install.db.rootconfig.sudoPath= -oracle.install.db.rootconfig.sudoUserName= -oracle.install.db.CLUSTER_NODES= -oracle.install.db.config.starterdb.type= -oracle.install.db.config.starterdb.globalDBName= -oracle.install.db.config.starterdb.SID= -oracle.install.db.config.PDBName= -oracle.install.db.config.starterdb.characterSet= -oracle.install.db.config.starterdb.memoryOption= -oracle.install.db.config.starterdb.memoryLimit= -oracle.install.db.config.starterdb.password.ALL= -oracle.install.db.config.starterdb.password.SYS= -oracle.install.db.config.starterdb.password.SYSTEM= -oracle.install.db.config.starterdb.password.DBSNMP= -oracle.install.db.config.starterdb.password.PDBADMIN= -oracle.install.db.config.starterdb.managementOption= -oracle.install.db.config.starterdb.omsHost= -oracle.install.db.config.starterdb.omsPort= -oracle.install.db.config.starterdb.emAdminUser= -oracle.install.db.config.starterdb.emAdminPassword= -oracle.install.db.config.starterdb.enableRecovery= -oracle.install.db.config.starterdb.storageType= -oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= -oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= -oracle.install.db.config.asm.diskGroup= -oracle.install.db.config.asm.ASMSNMPPassword= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21cv1.rsp deleted file mode 100644 index a3be38d7fd..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/db_sw_install_21cv1.rsp +++ /dev/null @@ -1,341 +0,0 @@ -#################################################################### -## Copyright(c) Oracle Corporation 1998,2020. All rights reserved.## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -#################################################################### - - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0 - -#------------------------------------------------------------------------------- -# Specify the installation option. -# It can be one of the following: -# - INSTALL_DB_SWONLY -# - INSTALL_DB_AND_CONFIG -#------------------------------------------------------------------------------- -oracle.install.option= - -#------------------------------------------------------------------------------- -# Specify the Unix group to be set for the inventory directory. -#------------------------------------------------------------------------------- -UNIX_GROUP_NAME= - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION= -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Home. -#------------------------------------------------------------------------------- -ORACLE_HOME= - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE= - -#------------------------------------------------------------------------------- -# Specify the installation edition of the component. -# -# The value should contain only one of these choices. -# - EE : Enterprise Edition -# - SE2 : Standard Edition 2 - - -#------------------------------------------------------------------------------- - -oracle.install.db.InstallEdition= -############################################################################### -# # -# PRIVILEGED OPERATING SYSTEM GROUPS # -# ------------------------------------------ # -# Provide values for the OS groups to which SYSDBA and SYSOPER privileges # -# needs to be granted. If the install is being performed as a member of the # -# group "dba", then that will be used unless specified otherwise below. # -# # -# The value to be specified for OSDBA and OSOPER group is only for UNIX based # -# Operating System. # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.db.OSDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -#------------------------------------------------------------------------------ -oracle.install.db.OSOPER_GROUP= - -#------------------------------------------------------------------------------ -# The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSBACKUPDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSDGDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSKMDBA_GROUP= - -#------------------------------------------------------------------------------ -# The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges. -#------------------------------------------------------------------------------ -oracle.install.db.OSRACDBA_GROUP= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.executeRootScript= - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# Applicable only when SUDO configuration method was chosen. -# Note:For Single Instance database installations,the sudo user name must be the username of the user installing the database. -#-------------------------------------------------------------------------------------- -oracle.install.db.rootconfig.sudoUserName= - -############################################################################### -# # -# Grid Options # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# Value is required only if the specified install option is INSTALL_DB_SWONLY -# -# Specify the cluster node names selected during the installation. -# -# Example : oracle.install.db.CLUSTER_NODES=node1,node2 -#------------------------------------------------------------------------------ -oracle.install.db.CLUSTER_NODES= - -############################################################################### -# # -# Database Configuration Options # -# # -############################################################################### - -#------------------------------------------------------------------------------- -# Specify the type of database to create. -# It can be one of the following: -# - GENERAL_PURPOSE -# - DATA_WAREHOUSE -# GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications. -# DATA_WAREHOUSE : A starter database optimized for data warehousing applications. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.type= - -#------------------------------------------------------------------------------- -# Specify the Starter Database Global Database Name. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.globalDBName= - -#------------------------------------------------------------------------------- -# Specify the Starter Database SID. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.SID= - -#------------------------------------------------------------------------------- -# Specify the Pluggable Database name for the pluggable database in Container Database. -#------------------------------------------------------------------------------- -oracle.install.db.config.PDBName= - -#------------------------------------------------------------------------------- -# Specify the Starter Database character set. -# -# One of the following -# AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2, -# EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257, -# BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6, -# AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8, -# IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, -# KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950, -# ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258 -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.characterSet= - -#------------------------------------------------------------------------------ -# This variable should be set to true if Automatic Memory Management -# in Database is desired. -# If Automatic Memory Management is not desired, and memory allocation -# is to be done manually, then set it to false. -#------------------------------------------------------------------------------ -oracle.install.db.config.starterdb.memoryOption= - -#------------------------------------------------------------------------------- -# Specify the total memory allocation for the database. Value(in MB) should be -# at least 256 MB, and should not exceed the total physical memory available -# on the system. -# Example: oracle.install.db.config.starterdb.memoryLimit=512 -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.memoryLimit= - -############################################################################### -# # -# Passwords can be supplied for the following four schemas in the # -# starter database: # -# SYS # -# SYSTEM # -# DBSNMP (used by Enterprise Manager) # -# # -# Same password can be used for all accounts (not recommended) # -# or different passwords for each account can be provided (recommended) # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# This variable holds the password that is to be used for all schemas in the -# starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.ALL= - -#------------------------------------------------------------------------------- -# Specify the SYS password for the starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.SYS= - -#------------------------------------------------------------------------------- -# Specify the SYSTEM password for the starter database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.SYSTEM= - -#------------------------------------------------------------------------------- -# Specify the DBSNMP password for the starter database. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.DBSNMP= - -#------------------------------------------------------------------------------- -# Specify the PDBADMIN password required for creation of Pluggable Database in the Container Database. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.password.PDBADMIN= - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing the database. -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your database with Enterprise Manager Cloud Control along with Database Express. -# 2. DEFAULT -If you want to manage your database using the default Database Express option. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.managementOption= - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.omsPort= - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.emAdminPassword= - -############################################################################### -# # -# SPECIFY RECOVERY OPTIONS # -# ------------------------------------ # -# Recovery options for the database can be mentioned using the entries below # -# # -############################################################################### - -#------------------------------------------------------------------------------ -# This variable is to be set to false if database recovery is not required. Else -# this can be set to true. -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.enableRecovery= - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for the database. -# It can be one of the following: -# - FILE_SYSTEM_STORAGE -# - ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.storageType= - -#------------------------------------------------------------------------------- -# Specify the database file location which is a directory for datafiles, control -# files, redo logs. -# -# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= - -#------------------------------------------------------------------------------- -# Specify the recovery location. -# -# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= - -#------------------------------------------------------------------------------- -# Specify the existing ASM disk groups to be used for storage. -# -# Applicable only when oracle.install.db.config.starterdb.storageType=ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.asm.diskGroup= - -#------------------------------------------------------------------------------- -# Specify the password for ASMSNMP user of the ASM instance. -# -# Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE -#------------------------------------------------------------------------------- -oracle.install.db.config.asm.ASMSNMPPassword= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca.rsp deleted file mode 100644 index 92c74e1eb4..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=###CONTAINER_DB_FLAG### - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=###ORACLE_PDB### - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=###PUBLIC_HOSTNAME### - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName=/u01/app/oracle/product/18.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=###ORACLE_PWD### - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=###ORACLE_SID###,ORACLE_BASE=###DB_BASE###,PDB_NAME=###ORACLE_PDB###,DB_NAME=###ORACLE_SID###,ORACLE_HOME=###DB_HOME###,SID=###ORACLE_SID### - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca1.rsp deleted file mode 100644 index c3d07dedf0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca1.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=true - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=ORCLPDB - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=racnode1 - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName=/u01/app/oracle/product/18.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=Oracle_12c - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=ORCLCDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=ORCLPDB,DB_NAME=ORCLCDB,ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1,SID=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21c.rsp deleted file mode 100644 index 4b81467bcb..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21c.rsp +++ /dev/null @@ -1,59 +0,0 @@ -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v21.0.0 -gdbName=###ORACLE_SID### -sid=###ORACLE_SID### -databaseConfigType=###DATABASE_CONFIG_TYPE### -RACOneNodeServiceName= -policyManaged=false -managementPolicy= -createServerPool=false -serverPoolName= -cardinality= -force=false -pqPoolName= -pqCardinality= -createAsContainerDatabase=###CONTAINER_DB_FLAG### -numberOfPDBs=###PDB_COUNT### -pdbName=###ORACLE_PDB### -useLocalUndoForPDBs=true -pdbAdminPassword=###ORACLE_PWD### -nodelist=###DB_NODES### -templateName={ORACLE_HOME}/assistants/dbca/templates/General_Purpose.dbc -sysPassword=###ORACLE_PWD### -systemPassword=###ORACLE_PWD### -oracleHomeUserPassword= -emConfiguration=DBEXPRESS -emExpressPort=5500 -runCVUChecks=true -dbsnmpPassword=###ORACLE_PWD### -omsHost= -omsPort= -emUser= -emPassword= -dvConfiguration=false -dvUserName= -dvUserPassword= -dvAccountManagerName= -dvAccountManagerPassword= -olsConfiguration=false -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ -recoveryAreaDestination= -storageType=ASM -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ -asmsnmpPassword= -recoveryGroupName= -characterSet=AL32UTF8 -nationalCharacterSet=AL16UTF16 -registerWithDirService=false -dirServiceUserName= -dirServicePassword= -walletPassword= -listeners=LISTENER -variablesFile= -variables=DB_UNIQUE_NAME=###ORACLE_SID###,ORACLE_BASE=###DB_BASE###,PDB_NAME=###ORACLE_PDB###,DB_NAME=###ORACLE_SID###,ORACLE_HOME=###DB_HOME###,SID=###ORACLE_SID### -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive -sampleSchema=false -memoryPercentage=40 -databaseType=MULTIPURPOSE -automaticMemoryManagement=false -totalMemory=###TOTAL_MEMORY### diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21cv1.rsp deleted file mode 100644 index e93f436c08..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/dbca_21cv1.rsp +++ /dev/null @@ -1,613 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2020. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v21.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName= - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle21c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid= - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType= - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged= - -#----------------------------------------------------------------------------- -## Name : managementPolicy -## Datatype : String -## Description : Set to AUTOMATIC or RANK based on management policy value -## Valid values : AUTOMATIC\RANK -## Default value : AUTOMATIC -## Mandatory : No -##----------------------------------------------------------------------------- -managementPolicy= - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool= - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force= - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle21c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase= - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 4094 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs= - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName= - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs= - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword= - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist= - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName= - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword= - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword= - -#----------------------------------------------------------------------------- -# Name : oracleHomeUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -oracleHomeUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration= - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle21c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks= - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort= - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration= - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle21c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration= - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation= - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination= - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType= - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName= - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle21c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet= - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle21c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet= - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService= - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners= - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables= - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -initParams= - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema= - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage= - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType= - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement= - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/enableRAC.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/enableRAC.sh deleted file mode 100644 index 88cab2c245..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/enableRAC.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Enable RAC feature in Oracle Software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -source /home/"${DB_USER}"/.bashrc - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -make -f "$DB_HOME"/rdbms/lib/ins_rdbms.mk rac_on -make -f "$DB_HOME"/rdbms/lib/ins_rdbms.mk ioracle diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/fixupPreq.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/fixupPreq.sh deleted file mode 100644 index 978f0b49e6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/fixupPreq.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup the Linux kernel parameter inside the container. Note that some parameter need to be set on container host. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -rpm -Uvh "$GRID_HOME/cv/rpm/cvuqdisk*" -echo "oracle soft nofile 1024" > /etc/security/limits.conf -echo "oracle hard nofile 65536" >> /etc/security/limits.conf -echo "oracle soft nproc 16384" >> /etc/security/limits.conf -echo "oracle hard nproc 16384" >> /etc/security/limits.conf -echo "oracle soft stack 10240" >> /etc/security/limits.conf -echo "oracle hard stack 32768" >> /etc/security/limits.conf -echo "oracle hard memlock 134217728" >> /etc/security/limits.conf -echo "oracle soft memlock 134217728" >> /etc/security/limits.conf -echo "grid soft nofile 1024" >> /etc/security/limits.conf -echo "grid hard nofile 65536" >> /etc/security/limits.conf -echo "grid soft nproc 16384" >> /etc/security/limits.conf -echo "grid hard nproc 16384" >> /etc/security/limits.conf -echo "grid soft stack 10240" >> /etc/security/limits.conf -echo "grid hard stack 32768" >> /etc/security/limits.conf -echo "grid hard memlock 134217728" >> /etc/security/limits.conf -echo "grid soft memlock 134217728" >> /etc/security/limits.conf -echo "ulimit -S -s 10240" >> /home/grid/.bashrc -echo "ulimit -S -s 10240" >> /home/oracle/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/functions.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/functions.sh deleted file mode 100644 index f760a7c844..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/functions.sh +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Common Function File -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -export logfile=/tmp/orod.log -export logdir=/tmp -export STD_OUT_FILE="/proc/1/fd/1" -export STD_ERR_FILE="/proc/1/fd/2" -export TOP_PID=$$ - -###### Function Related to printing messages and exit the script if error occurred ################## -error_exit() { -local NOW=$(date +"%m-%d-%Y %T %Z") - # Display error message and exit -# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 - echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $logfile > $STD_OUT_FILE - kill -s TERM $TOP_PID -} - -print_message () -{ - local NOW=$(date +"%m-%d-%Y %T %Z") - # Display message and return - echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $logfile > $STD_OUT_FILE - return $? -} - -##################################################################################################### - -####### Function related to IP Checks ############################################################### - -validating_env_vars () -{ -local stat=3 -local ip="${1}" -local alive="${2}" - -print_message "checking IP is in correct format such as xxx.xxx.xxx.xxx" - -if valid_ip "$ip"; then - print_message "IP $ip format check passed!" -else - error_exit "IP $ip is not in correct format..please check!" -fi - -# Checking if Host is alive - -if [ "${alive}" == "true" ]; then - -print_message "Checking if IP is pingable or not!" - -if host_alive "$ip"; then - print_message "IP $ip is pingable ...check passed!" -else - error_exit "IP $ip is not pingable..check failed!" -fi - -else - -print_message "Checking if IP is pingable or not!" - -if host_alive "$ip"; then - error_exit "IP $ip is already allocated...check failed!" -else - print_message "IP $ip is not pingable..check passed!" -fi - -fi -} - -check_interface () -{ -local ethcard=$1 -local output - -ip link show | grep "$ethcard" - -output=$? - - if [ $output -eq 0 ];then - return 0 - else - return 1 - fi -} - -valid_ip() -{ - local ip=$1 - local stat=1 - if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then - OIFS=$IFS - IFS='.' - ip=($ip) - IFS=$OIFS - [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ - && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] - stat=$? - fi - return $stat -} - -host_alive() -{ - - local ip_or_hostname=$1 - local stat=1 -ping -c 1 -W 1 "$ip_or_hostname" >& /dev/null - -if [ $? -eq 0 ]; then - stat=0 - return $stat -else - stat=1 - return $stat -fi - -} - -resolveip(){ - - local host="$1" - if [ -z "$host" ] - then - return 1 - else - local ip=$( getent hosts "$host" | awk '{print $1}' ) - if [ -z "$ip" ] - then - ip=$( dig +short "$host" ) - if [ -z "$ip" ] - then - print_message "unable to resolve '$host'" - return 1 - else - print_message "$ip" - return 0 - fi - else - print_message "$ip" - return 0 - fi - fi -} - -################################################################################################################## - -############################################Match an Array element####################### -isStringExist () -{ -local checkthestring="$1" -local stringtocheck="$2" -local stat=1 - -IFS=', ' read -r -a string_array <<< "$checkthestring" - -for ((i=0; i < ${#string_array[@]}; ++i)); do - if [ "${stringtocheck}" == "${string_array[i]}" ]; then - stat=0 - fi -done - return $stat -} - - -######################################################################################### - - -##################################################Password function########################## - -setpasswd () -{ - -local user=$1 -local pass=$2 -echo "$pass" | passwd "$user" --stdin -} - -############################################################################################## diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid.rsp deleted file mode 100644 index 4baedc896d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=###SCAN_TYPE### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile=###SHARED_SCAN_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=###SCAN_PORT### - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=###CLUSTER_TYPE### - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile=###MEMBERDB_FILE### - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=###CLUSTER_NAME### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=###CONFIGURE_GNS### - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=###DHCP_CONF### - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=###GNS_OPTIONS### - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain=###GNS_SUBDOMAIN### -oracle.install.crs.config.gpnp.gnsVIPAddress=###GNSVIP_HOSTNAME### - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=###NETWORK_STRING### - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=###GIMR_DG_FLAG### - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption=###STORAGE_OPTIONS_FOR_MEMBERDB### -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=###DB_ASM_DISKGROUP### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=###PASSWORD### - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name=###GIMR_DG_NAME### - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy=###GIMR_DG_REDUNDANCY### - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups=###GIMR_DG_FAILURE_GROUP### - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames=###GIMR_DISKGROUP_FG_DISKS### - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks=###GIMR_DISKGROUP_DISKS### - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid1.rsp deleted file mode 100644 index ebfc119b01..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid1.rsp +++ /dev/null @@ -1,671 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/grid - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=racnode-scan - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=rac01cluster - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB,racnode2:racnode2-vip:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=eth0:192.168.17.0:5,eth1:172.16.1.0:1 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=/oradata/asm_* - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=Oracle_12c - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode.rsp deleted file mode 100644 index 7692346e3f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_ADDNODE - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=###PUBLIC_HOSTNAME###:###HOSTNAME_VIP###:HUB -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG=false - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode_21c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode_21c.rsp deleted file mode 100644 index 9aa74d2c44..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_addnode_21c.rsp +++ /dev/null @@ -1,67 +0,0 @@ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0 -INVENTORY_LOCATION=###INVENTORY### -oracle.install.option=CRS_ADDNODE -ORACLE_BASE=###GRID_BASE### -oracle.install.asm.OSDBA=asmdba -oracle.install.asm.OSOPER=asmoper -oracle.install.asm.OSASM=asmadmin -oracle.install.crs.config.scanType= -oracle.install.crs.config.SCANClientDataFile= -oracle.install.crs.config.gpnp.scanName= -oracle.install.crs.config.gpnp.scanPort= -oracle.install.crs.config.ClusterConfiguration= -oracle.install.crs.config.configureAsExtendedCluster=false -oracle.install.crs.config.clusterName= -oracle.install.crs.config.gpnp.configureGNS=false -oracle.install.crs.config.autoConfigureClusterNodeVIP=false -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -oracle.install.crs.config.gpnp.gnsClientDataFile= -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= -oracle.install.crs.config.sites= -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### -oracle.install.crs.config.networkInterfaceList= -oracle.install.crs.config.storageOption= -oracle.install.crs.exascale.vault.name= -oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= -oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= -oracle.install.asm.ClientDataFile= -oracle.install.crs.config.useIPMI=false -oracle.install.crs.config.ipmi.bmcBinpath= -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -oracle.install.asm.SYSASMPassword= -oracle.install.asm.diskGroup.name=DATA -oracle.install.asm.diskGroup.redundancy= -oracle.install.asm.diskGroup.AUSize=1 -oracle.install.asm.diskGroup.FailureGroups= -oracle.install.asm.diskGroup.disksWithFailureGroupNames= -oracle.install.asm.diskGroup.disks= -oracle.install.asm.diskGroup.quorumFailureGroupNames= -oracle.install.asm.diskGroup.diskDiscoveryString= -oracle.install.asm.monitorPassword= -oracle.install.asm.configureAFD=false -oracle.install.crs.configureRHPS=false -oracle.install.crs.config.ignoreDownNodes=false -oracle.install.crs.configureGIMR= -oracle.install.crs.configureRemoteGIMR= -oracle.install.crs.RemoteGIMRCredFile= -oracle.install.asm.configureGIMRDataDG= -oracle.install.asm.gimrDG.name= -oracle.install.asm.gimrDG.redundancy= -oracle.install.asm.gimrDG.AUSize=1 -oracle.install.asm.gimrDG.FailureGroups= -oracle.install.asm.gimrDG.disksWithFailureGroupNames= -oracle.install.asm.gimrDG.disks= -oracle.install.asm.gimrDG.quorumFailureGroupNames= -oracle.install.config.managementOption=NONE -oracle.install.config.omsHost= -oracle.install.config.omsPort=0 -oracle.install.config.emAdminUser= -oracle.install.config.emAdminPassword= -oracle.install.crs.rootconfig.executeRootScript=false -oracle.install.crs.rootconfig.configMethod=ROOT -oracle.install.crs.rootconfig.sudoPath= -oracle.install.crs.rootconfig.sudoUserName= -oracle.install.crs.config.batchinfo= -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_sw_install_21c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_sw_install_21c.rsp deleted file mode 100644 index d93b93820b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/grid_sw_install_21c.rsp +++ /dev/null @@ -1,661 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2020. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=###INVENTORY### - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=###INSTALL_TYPE### - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=###GRID_BASE### - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=asmdba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER=asmoper - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 63 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9) and hyphens (-). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 2 fields if configuring a Flex Cluster -# - 2 fields if adding more nodes to the configured cluster, or -# - 3 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# Only the 1st field is applicable if you have chosen CRS_SWONLY as installation option - -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:site1,node2:node2-vip:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes=###HOSTNAME### - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files. Only applicable for Standalone cluster. -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# - FILE_SYSTEM_STORAGE -# - EXASCALE_STORAGE -# -# Option FILE_SYSTEM_STORAGE is only for STANDALONE cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -#------------------------------------------------------------------------------- -# Specify the vault name if EXASCALE_STORAGE is selected as storage option. -# Example: -# oracle.install.crs.exascale.vault.name=myvault -#------------------------------------------------------------------------------- -oracle.install.crs.exascale.vault.name= -#------------------------------------------------------------------------------- -# These properties are applicable only if FILE_SYSTEM_STORAGE is chosen for -# storing OCR and voting disk -# Specify the location(s) for OCR and voting disks -# Three(3) or one(1) location(s) should be specified for OCR and voting disk, -# separated by commas. -# Example: -# For Unix based Operating System: -# oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=/oradbocfs/storage/vdsk1,/oradbocfs/storage/vdsk2,/oradbocfs/storage/vdsk3 -# oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=/oradbocfs/storage/ocr1,/oradbocfs/storage/ocr2,/oradbocfs/storage/ocr3 -# For Windows based Operating System OCR/VDSK on shared storage is not supported. -#------------------------------------------------------------------------------- -oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= -oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= - -#------------------------------------------------------------------------------- -# Applicable only if configuring CLIENT_ASM_STORAGE for OCR/Voting Disk storage -# Specify the path to Client ASM Data file -#------------------------------------------------------------------------------- -oracle.install.asm.ClientDataFile= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the location of the ipmiutil binary -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcBinpath= -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= - -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX -# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes= - -################################################################################ -# # -# SECTION I - GIMR # -# # -################################################################################ - -#------------------------------------------------------------------------------ -# Specify 'true' if you would like to configure Grid Infrastructure Management -# Repository (GIMR), else specify 'false'. Applicable only if CRS_CONFIG is -# chosen as install option and STANDALONE is chosen as cluster configuration. -# If you want to use or configure -# Local GIMR : oracle.install.crs.configureGIMR=true and oracle.install.crs.configureRemoteGIMR=false -# Remote GIMR : oracle.install.crs.configureGIMR=true, oracle.install.crs.configureRemoteGIMR=true -# and oracle.install.crs.RemoteGIMRCredFile= path of the GIMR cred file -# No GIMR : oracle.install.crs.configureGIMR=false -#------------------------------------------------------------------------------ -oracle.install.crs.configureGIMR= -oracle.install.crs.configureRemoteGIMR= -oracle.install.crs.RemoteGIMRCredFile= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX -# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# Applicable only when SUDO configuration method was chosen. -# Note:For Grid Infrastructure for Standalone server installations,the sudo user name must be the username of the user performing the installation. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Examples: -# 1. oracle.install.crs.config.batchinfo=Node1:1,Node2:2,Node3:2,Node4:3 -# 2. oracle.install.crs.config.batchinfo=Node1:1,Node2:2,Node3:2,Node4:2 -# 3. oracle.install.crs.config.batchinfo=Node1:1,Node2:1,Node3:2,Node4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21c.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21c.rsp deleted file mode 100644 index d982d76f52..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21c.rsp +++ /dev/null @@ -1,67 +0,0 @@ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0 -INVENTORY_LOCATION=###INVENTORY### -oracle.install.option=CRS_CONFIG -ORACLE_BASE=###GRID_BASE### -oracle.install.asm.OSDBA=asmdba -oracle.install.asm.OSOPER= -oracle.install.asm.OSASM=asmadmin -oracle.install.crs.config.scanType=###SCAN_TYPE### -oracle.install.crs.config.SCANClientDataFile=###SHARED_SCAN_FILE### -oracle.install.crs.config.gpnp.scanName=###SCAN_NAME### -oracle.install.crs.config.gpnp.scanPort=###SCAN_PORT### -oracle.install.crs.config.ClusterConfiguration=###CLUSTER_TYPE### -oracle.install.crs.config.configureAsExtendedCluster=false -oracle.install.crs.config.clusterName=###CLUSTER_NAME### -oracle.install.crs.config.gpnp.configureGNS=###CONFIGURE_GNS### -oracle.install.crs.config.autoConfigureClusterNodeVIP=###DHCP_CONF### -oracle.install.crs.config.gpnp.gnsOption=###GNS_OPTIONS### -oracle.install.crs.config.gpnp.gnsClientDataFile= -oracle.install.crs.config.gpnp.gnsSubDomain=###GNS_SUBDOMAIN### -oracle.install.crs.config.gpnp.gnsVIPAddress=###GNSVIP_HOSTNAME### -oracle.install.crs.config.sites= -oracle.install.crs.config.clusterNodes=###CRS_CONFIG_NODES### -oracle.install.crs.config.networkInterfaceList=###NETWORK_STRING### -oracle.install.crs.config.storageOption=###STORAGE_OPTIONS_FOR_MEMBERDB### -oracle.install.crs.exascale.vault.name= -oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= -oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= -oracle.install.asm.ClientDataFile= -oracle.install.crs.config.useIPMI= -oracle.install.crs.config.ipmi.bmcBinpath= -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -oracle.install.asm.SYSASMPassword=###PASSWORD### -oracle.install.asm.diskGroup.name=###DB_ASM_DISKGROUP### -oracle.install.asm.diskGroup.redundancy=###ASM_REDUNDANCY### -oracle.install.asm.diskGroup.AUSize=4 -oracle.install.asm.diskGroup.FailureGroups=###ASM_DG_FAILURE_GROUP### -oracle.install.asm.diskGroup.disksWithFailureGroupNames=###ASM_DISKGROUP_FG_DISKS### -oracle.install.asm.diskGroup.disks=###ASM_DISKGROUP_DISKS### -oracle.install.asm.diskGroup.quorumFailureGroupNames= -oracle.install.asm.diskGroup.diskDiscoveryString=###ASM_DISCOVERY_STRING### -oracle.install.asm.monitorPassword=###PASSWORD### -oracle.install.asm.configureAFD=false -oracle.install.crs.configureRHPS=false -oracle.install.crs.config.ignoreDownNodes= -oracle.install.crs.configureGIMR= -oracle.install.crs.configureRemoteGIMR= -oracle.install.crs.RemoteGIMRCredFile= -oracle.install.asm.configureGIMRDataDG= -oracle.install.asm.gimrDG.name=###GIMR_DG_NAME### -oracle.install.asm.gimrDG.redundancy=###GIMR_DG_REDUNDANCY### -oracle.install.asm.gimrDG.AUSize=1 -oracle.install.asm.gimrDG.FailureGroups=###GIMR_DG_FAILURE_GROUP### -oracle.install.asm.gimrDG.disksWithFailureGroupNames=###GIMR_DISKGROUP_FG_DISKS### -oracle.install.asm.gimrDG.disks=###GIMR_DISKGROUP_DISKS### -oracle.install.asm.gimrDG.quorumFailureGroupNames= -oracle.install.config.managementOption=NONE -oracle.install.config.omsHost= -oracle.install.config.omsPort=0 -oracle.install.config.emAdminUser= -oracle.install.config.emAdminPassword= -oracle.install.crs.rootconfig.executeRootScript=false -oracle.install.crs.rootconfig.configMethod=ROOT -oracle.install.crs.rootconfig.sudoPath= -oracle.install.crs.rootconfig.sudoUserName= -oracle.install.crs.config.batchinfo= -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21cv1.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21cv1.rsp deleted file mode 100644 index a2f14c610f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/gridsetup_21cv1.rsp +++ /dev/null @@ -1,653 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2019. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v21.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION= - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option= - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE= - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA= - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM= - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 63 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9) and hyphens (-). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP= - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# Only the 1st field is applicable if you have chosen CRS_SWONLY as installation option -# Only the 1st field is applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:site1,node2:node2-vip:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes= - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Specify 'true' if you would like to configure Grid Infrastructure Management -# Repository (GIMR), else specify 'false'. -# This option is only applicable when CRS_CONFIG is chosen as install option, -# and STANDALONE is chosen as cluster configuration. -#------------------------------------------------------------------------------ -oracle.install.crs.configureGIMR= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG= - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files. Only applicable for Standalone and MemberDB cluster. -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# - FILE_SYSTEM_STORAGE -# -# Option FILE_SYSTEM_STORAGE is only for STANDALONE cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= - -#------------------------------------------------------------------------------- -# These properties are applicable only if FILE_SYSTEM_STORAGE is chosen for -# storing OCR and voting disk -# Specify the location(s) for OCR and voting disks -# Three(3) or one(1) location(s) should be specified for OCR and voting disk, -# separated by commas. -# Example: -# For Unix based Operating System: -# oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=/oradbocfs/storage/vdsk1,/oradbocfs/storage/vdsk2,/oradbocfs/storage/vdsk3 -# oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=/oradbocfs/storage/ocr1,/oradbocfs/storage/ocr2,/oradbocfs/storage/ocr3 -# For Windows based Operating System OCR/VDSK on shared storage is not supported. -#------------------------------------------------------------------------------- -oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations= -oracle.install.crs.config.sharedFileSystemStorage.ocrLocations= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI= - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize= - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize= - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD= -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS= - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes= -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption= - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort= - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript= - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# Applicable only when SUDO configuration method was chosen. -# Note:For Grid Infrastructure for Standalone server installations,the sudo user name must be the username of the user performing the installation. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=Node1:1,Node2:2,Node3:2,Node4:3 -# 2. oracle.install.crs.config.batchinfo=Node1:1,Node2:2,Node3:2,Node4:2 -# 3. oracle.install.crs.config.batchinfo=Node1:1,Node2:1,Node3:2,Node4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/initsh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/initsh deleted file mode 100644 index 27f753d46b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/initsh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Copyright (c) 2022, Oracle and/or its affiliates -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ - -echo "Creating env variables file /etc/rac_env_vars" -/bin/bash -c "cat /proc/1/environ | tr '\0' '\n' > /etc/rac_env_vars" -/bin/bash -c "sed -i -e 's/^/export /' /etc/rac_env_vars" - -echo "Starting Systemd" -exec /lib/systemd/systemd diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installDBBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installDBBinaries.sh deleted file mode 100644 index 1d68b411ac..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installDBBinaries.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description:Installing Oracle DB software -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" -a "$EDITION" != "SE2" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether DB_BASE is set -if [ "$DB_BASE" == "" ]; then - echo "ERROR: DB_BASE has not been set!" - echo "You have to have the DB_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether DB_HOME is set -if [ "$DB_HOME" == "" ]; then - echo "ERROR: DB_HOME has not been set!" - echo "You have to have the DB_HOME environment variable set to a valid value!" - exit 1; -fi; - -# Replace place holders -# --------------------- -sed -i -e "s|###ORACLE_EDITION###|$EDITION|g" "$INSTALL_SCRIPTS"/"$DB_INSTALL_RSP" && \ -sed -i -e "s|###DB_BASE###|$DB_BASE|g" "$INSTALL_SCRIPTS"/"$DB_INSTALL_RSP" && \ -sed -i -e "s|###DB_HOME###|$DB_HOME|g" "$INSTALL_SCRIPTS"/"$DB_INSTALL_RSP" && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" "$INSTALL_SCRIPTS"/"$DB_INSTALL_RSP" - -export ORACLE_HOME=${DB_HOME} -export PATH=${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin -export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/lib:/usr/lib - -# Install Oracle binaries -if [ "${DB_USER}" != "${GRID_USER}" ]; then -mkdir -p /home/"${DB_USER}"/.ssh && \ -chmod 700 /home/"${DB_USER}"/.ssh -fi - - -# Install Oracle binaries -unzip -q "$INSTALL_SCRIPTS"/"$INSTALL_FILE_2" -d "$DB_HOME" && \ -"$DB_HOME"/runInstaller -silent -force -waitforcompletion -responsefile "$INSTALL_SCRIPTS"/"$DB_INSTALL_RSP" -ignorePrereqFailure || true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installGridBinaries.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installGridBinaries.sh deleted file mode 100644 index 51a1981597..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/installGridBinaries.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: December, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Install grid software inside the container. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -EDITION=$1 -PATCH_NUMBER=$2 - -# Check whether edition has been passed on -if [ "$EDITION" == "" ]; then - echo "ERROR: No edition has been passed on!" - echo "Please specify the correct edition!" - exit 1; -fi; - -# Check whether correct edition has been passed on -if [ "$EDITION" != "EE" ]; then - echo "ERROR: Wrong edition has been passed on!" - echo "Edition $EDITION is no a valid edition!" - exit 1; -fi; - -# Check whether GRID_BASE is set -if [ "$GRID_BASE" == "" ]; then - echo "ERROR: GRID_BASE has not been set!" - echo "You have to have the GRID_BASE environment variable set to a valid value!" - exit 1; -fi; - -# Check whether GRID_HOME is set -if [ "$GRID_HOME" == "" ]; then - echo "ERROR: GRID_HOME has not been set!" - echo "You have to have the GRID_HOME environment variable set to a valid value!" - exit 1; -fi; - - -temp_var1=`hostname` - -# Replace place holders -# --------------------- -sed -i -e "s|###HOSTNAME###|$temp_var1|g" "$INSTALL_SCRIPTS"/"$GRID_SW_INSTALL_RSP" && \ -sed -i -e "s|###INSTALL_TYPE###|CRS_SWONLY|g" "$INSTALL_SCRIPTS"/"$GRID_SW_INSTALL_RSP" && \ -sed -i -e "s|###GRID_BASE###|$GRID_BASE|g" "$INSTALL_SCRIPTS"/"$GRID_SW_INSTALL_RSP" && \ -sed -i -e "s|###INVENTORY###|$INVENTORY|g" "$INSTALL_SCRIPTS"/"$GRID_SW_INSTALL_RSP" - -# Install Oracle binaries -mkdir -p /home/grid/.ssh && \ -chmod 700 /home/grid/.ssh && \ -unzip -q "$INSTALL_SCRIPTS"/"$INSTALL_FILE_1" -d "$GRID_HOME" && \ -"$GRID_HOME"/gridSetup.sh -silent -responseFile "$INSTALL_SCRIPTS"/"$GRID_SW_INSTALL_RSP" -ignorePrereqFailure || true diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/remoteListener.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/remoteListener.sh deleted file mode 100644 index 0b28c2ca3f..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/remoteListener.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Set the Oracle Connection Manager IP as remote listener in oracle DB -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Check that ORACLE_HOME is set - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source "$SCRIPT_DIR"/functions.sh - -sid=$1 -scan_name=$2 -cman_host=$3 - -# Check that ORACLE_SID is set -if [ -z "${sid}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - ORACLE_SID is not set. Please set ORACLE_SID before invoking this script." -else - echo "Oracle Sid : $sid" -fi; - -if [ -z "${scan_name}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - SCAN Name is not set. Please set SCAN Name before invoking this script." - else - echo " Scan name : $scan_name" -fi; - -if [ -z "${cman_host}" ]; then - script_name=`basename "$0"` - error_exit "$script_name: ERROR - CMAN Host Name is not set. Please set CMAN Hostname before invoking this script." - echo "Cman Host : $cman_host" -fi; - -export ORACLE_HOME=$DB_HOME -ORACLE_SID=$("$DB_HOME"/bin/srvctl status database -d "$sid" | grep "$(hostname)" | awk '{ print $2 }') - -echo "setting Oracle sid to $ORACLE_SID on $(hostname)" -export ORACLE_SID=$ORACLE_SID - -# Check Oracle DB status and store it in status -echo "Remote Lisetenr String : remote_listener=$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))" - -status=`"$DB_HOME"/bin/sqlplus -s / as sysdba << EOF - set heading off; - set pagesize 0; -alter system set remote_listener='$scan_name:1521,(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$cman_host)(PORT=1521))))' scope=both; - alter system register; -alter system register; -alter system register; -alter system register; - exit; -EOF` - -#echo "Stopping Oracle Database" -#$ORACLE_HOME/bin/srvctl stop database -d $sid -#echo "Starting Oracle Database" -#$ORACLE_HOME/bin/srvctl start database -d $sid diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetFailedUnits.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetFailedUnits.sh deleted file mode 100644 index a1038ec754..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetFailedUnits.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -############################# -# Copyright 2023, Oracle Corporation and/or affiliates. All rights reserved. -# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl -############################ - -current_time=$(date "+Y.%m.%d-%H.%M.%S") -new_failed_unit_file_name="failed_units_${current_time}" -systemctl_state=$(systemctl status | awk '/State:/{ print $0 }' | grep -v 'awk /State:/' | awk '{ print $2 }') - -if [ "${systemctl_state}" != "running" ]; then - systemctl reset-failed - touch /tmp/"$new_failed_unit_file_name" -fi - diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetOSPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetOSPassword.sh deleted file mode 100644 index 4fac1f41ff..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/resetOSPassword.sh +++ /dev/null @@ -1,239 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Reset the password for Grid and oracle user -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -declare -a cluster_nodes -GRID_USER='grid' -DB_USER='oracle' -PROGNAME=$(basename "$0") -PWD_KEY='pwd.key' -SECRET_VOLUME='/run/secrets' -declare -x REMOVE_OS_PWD_FILES='false' -PASSWD_VALUE="NOPASSWD" -# shellcheck disable=SC1091 -source /etc/rac_env_vars - -###################Capture Process id and source functions.sh############### -# shellcheck disable=SC1091 -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -generate_pwd () -{ - -if [ -f "${SECRET_VOLUME}/${PWD_FILE}" ] && [ -f "${SECRET_VOLUME}/${PWD_KEY}" ] ; then -# shellcheck disable=SC2016 - cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${PWD_FILE}" -out /tmp/${PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' - - - if eval "$cmd"; then - print_message "Password file generated" - else - error_exit "Error occurred during common os password file generation" - fi - - read -r PASSWORD < /tmp/"${PWD_FILE}" - rm -f /tmp/"${PWD_FILE}" - rm -f /tmp/"${PWD_KEY}" - - if [ "${REMOVE_OS_PWD_FILES}" == 'true' ]; then - rm -f "${SECRET_VOLUME}"/"${COMMON_OS_PWD_FILE}" - rm -f "${SECRET_VOLUME}"/"${PWD_KEY}" - fi - -elif [ -f "${SECRET_VOLUME}/${PWD_FILE}" ]; then -# shellcheck disable=SC2016 - cmd='openssl base64 -d -in "${SECRET_VOLUME}/${PWD_FILE}" -out /tmp/"${PWD_FILE}"' - - if eval "$cmd"; then - print_message "Password file generated" - else - error_exit "Error occurred during password file ${PWD_FILE} generation" - fi - - read -r PASSWORD < /tmp/"${PWD_FILE}" - rm -f /tmp/"${PWD_FILE}" - -else - print_message "Password file or password key file is empty string! generating random password" - PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 -fi - -if [ -n "${PASSWORD}" ]; then - PASSWD_VALUE="${PASSWORD}" -fi - -} - -setNode () { -if [ ! -f "$GRID_HOME"/bin/olsnodes ]; then -cluster_nodes=( "$(hostname)" ) -else -# shellcheck disable=SC2086 -cluster_nodes=("$(\"$GRID_HOME\"/bin/olsnodes | awk '{ print $1 }')" ) -# shellcheck disable=SC2034 -node_count=$("$GRID_HOME"/bin/olsnodes -a | awk '{ print $1 }' | wc -l) -fi -} - -reset_passwd () -{ -user=${1} -password=${2} - -if [ -z "${user}" ]; then -error_exit "user name is not specified. It must be set to oracle|grid" -fi - -if [ -z "${password}" ]; then -error_exit "password string is not specified" -fi - -for node in "${cluster_nodes[@]}" -do -if [ ! -f "$GRID_HOME"/bin/olsnodes ]; then -print_message "Resetting password for ${user} on the ${node}" -# shellcheck disable=SC2016 -cmd='su - ${user} -c "sudo /usr/sbin/chpasswd <<<\"$user:$password\""' -else -print_message "Resetting password for ${user} on all the ${node}" -# shellcheck disable=SC2016 -cmd='su - ${user} -c "ssh ${node} sudo /usr/sbin/chpasswd <<<\"$user:$password\""' -fi - -if eval "$cmd"; then -print_message "Password reset seucessfuly on ${node} for $user" -else -print_message "Password reset failed on ${node} for $user" -fi -done -} - -usage() { -cat << EOF -Usage: -o|--op_type Specify the value reset_grid_oracle|reset_grid|reset_oracle - -p|--pwd_file Specify the encrypted password file name - -k|--pwd_key_file Specify password key fle - -s|--secret_volume Specify the secret volume - -r|--remove_os_pwd_files Remove the passwordfiles after resetting the password - -h|--help Show help -EOF -error_exit "Please specify correct parameters" -} - -##################################################################### -### MAIN # -##################################################################### - -SHORTOPTS="o:p:k:s:r:h" -LONGOPTS="help,op_type:,pwd_key_file:,pwd_file:,secret_volume:,remove_os_pwd_files:" - -ARGS=$(getopt -o $SHORTOPTS --long $LONGOPTS --name "$PROGNAME" -- "$@" ) - -# shellcheck disable=SC2181 -if [ $? != 0 ] ; then -error_exit "Terminating... as error occurred during ARGS computation"; -fi - -print_message "$ARGS" - -eval set -- "$ARGS" - -while true; do -case "$1" in - --help) - usage -;; - -o | --op_type) - if [ "$2" ]; then - RESET_PASSWORD_TYPE=$2 - else - error_exit "--op_type requires non empty option argument" - fi - print_message "RESET_PASSWORD_TYPE=${RESET_PASSWORD_TYPE}" - shift 2 -;; - -p | --pwd_file) - if [ "$2" ]; then - PWD_FILE=$2 - else - print_message "--pwd_file set to empty string. random password will generated" - fi - print_message "PWD_FILE: $PWD_FILE" - shift 2 -;; --k | --pwd_key_file) - if [ "$2" ];then - PWD_KEY=$2 - else - PWD_KEY='pwd.key' - print_message "--pwd_key set to empty string. It will be set to default value ${PWD_KEY}" - fi - print_message "PWD_KEY=$PWD_KEY" - shift 2 -;; - -s | --secret_volume) - echo "Secret Volume Location" - if [ "$2" ];then - SECRET_VOLUME=$2 - else - SECRET_VOLUME='/run/secrets' - print_message "--secret_volume is set to empty string. It will be set to default value ${SECRET_VOLUME}" - fi - shift 2 -;; --r| --remove_os_pwd_files) - echo "Remove OS PWD files after resetting password" - if [ "${2}" == 'true' ]; then - REMOVE_OS_PWD_FILES='true' - else - REMOVE_OS_PWD_FILES='false' - fi - shift 2 -;; - --) - shift; - break; -;; -*) -print_message "Not a valid option" -usage -;; -esac -done - -print_message "generating node name from the cluster" -setNode -print_message "Generating password for grid and oracle user" -generate_pwd - -if [ "${PASSWD_VALUE}" == "NOPASSWD" ]; then - error_exit "Correct password string is not set" -fi - -if [ "${RESET_PASSWORD_TYPE}" == 'reset_grid_oracle' ]; then -print_message "Setting password for $GRID_USER user" -reset_passwd $GRID_USER "$PASSWD_VALUE" -print_message "Setting password for $DB_USER user" -reset_passwd $DB_USER "$PASSWD_VALUE" -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_grid' ]; then - print_message "Setting password for $GRID_USER user" - reset_passwd $GRID_USER "$PASSWD_VALUE" -elif [ "${RESET_PASSWORD_TYPE}" == 'reset_oracle' ]; then - print_message "Setting password for $DB_USER user" - reset_passwd $DB_USER "$PASSWD_VALUE" -else -error_exit "Please specify correct value for RESET_PASSWORD_TYPE. Correct Values are reset_grid_oracle|reset_grid|reset_oracle" -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runOracle.sh deleted file mode 100644 index ba4806646b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runOracle.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs the Oracle RAC Database inside the container -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - -########################### - -if [ -f "$logfile" ]; then -mv "$logfile" "$logfile"."$(date +%Y%m%d-%H%M%S)" -touch "$logfile" -else -touch "$logfile" -fi - -chmod 666 "$logfile" -progname=$(basename "$0") -grid_install_status="FALSE" - -####################### Constants ################# -declare -r FALSE=1 -declare -r TRUE=0 -################################################## - - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -print_message "Process id of the program : $TOP_ID" -# Check whether container has enough memory -# Github issue #219: Prevent integer overflow, -# only check if memory digits are less than 11 (single GB range and below) -if [ `cat /sys/fs/cgroup/memory/memory.limit_in_bytes | wc -c` -lt 11 ]; then - if [ `cat /sys/fs/cgroup/memory/memory.limit_in_bytes` -lt 8589934592 ]; then - print_message "Error: The container doesn't have enough memory allocated." - print_message "A database container needs at least 8 GB of memory." - print_message "You currently only have $((`cat /sys/fs/cgroup/memory/memory.limit_in_bytes`/1024/1024/1024)) GB allocated to the container." - error_exit "Existing.."; - fi -fi - -print_message "#################################################" -print_message " Starting Grid Installation " -print_message "#################################################" - -print_message "Pre-Grid Setup steps are in process" -"$SCRIPT_DIR"/"$SETUPGRIDENV" -stat=$? -if [ $stat -ne 0 ]; then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "###################################################" -print_message "Pre-Grid Setup steps completed" -print_message "###################################################" - -print_message "Checking if grid is already configured" -if [ -d /etc/oracle ]; then -grid_install_status="TRUE" -if [ -f /etc/oracle/olr.loc ];then -grid_install_status="TRUE" -OLR_FILE=$(cat /etc/oracle/olr.loc | grep olrconfig_loc | awk -F "=" '{ print $2 }') -if [ -f "$OLR_FILE" ]; then -grid_install_status="TRUE" -print_message "Grid is installed on $(hostname). $progname will start the Grid service" -fi -fi -fi - -if [ $grid_install_status == "TRUE" ];then -print_message "Setting up Grid Env for Grid Start" -print_message "##########################################################################################" -print_message "Grid is already installed on this container! Grid will be started by default ohasd scripts" -print_message "############################################################################################" -else -if [ "${OP_TYPE}" == "INSTALL" ]; then -"$SCRIPT_DIR"/"$CONFIGGRID" -stat=$? - -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -elif [ "${OP_TYPE}" == "ADDNODE" ]; then -"$SCRIPT_DIR"/"$ADDNODE" -stat=$? -if [ $stat -ne 0 ];then -error_exit "Error has occurred in Grid Setup, Please verify!" -fi - -print_message "####################################" -print_message "ORACLE RAC DATABASE IS READY TO USE!" -print_message "####################################" -else -print_message "Usage : $progname INSTALL | ADDNODE" -error_exit "You can perform Cluster Install or Add Node" -fi -fi -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runUserScripts.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runUserScripts.sh deleted file mode 100644 index 2653d58d67..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/runUserScripts.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Runs user shell and SQL scripts -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -SCRIPTS_ROOT="$1"; - -# Check whether parameter has been passed on -if [ -z "$SCRIPTS_ROOT" ]; then - echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; - -else - -# Execute custom provided files (only if directory exists and has files in it) -if [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then - - echo ""; - echo "Executing user defined scripts" - - for f in $SCRIPTS_ROOT/*; do - case "$f" in - *.sh) echo "$0: running $f"; . "$f" ;; - *.sql) echo "$0: running $f"; echo "exit" | "$ORACLE_HOME"/bin/sqlplus -s "/ as sysdba" @"$f"; echo ;; - *) echo "$0: ignoring $f" ;; - esac - echo ""; - done - - echo "DONE: Executing user defined scripts" - echo ""; - -fi; - -fi; diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/scripts b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/scripts deleted file mode 120000 index 3c4aafe2bb..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/scripts +++ /dev/null @@ -1 +0,0 @@ -../../common/scripts \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setCrontab.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setCrontab.sh deleted file mode 100644 index 89fe12e502..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setCrontab.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup SSH between nodes -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# shellcheck disable=SC2211 -# shellcheck disable=SC2035 -* * * * * /var/tmp/resetFailedUnits.sh diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setPassword.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setPassword.sh deleted file mode 100644 index af182c272c..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setPassword.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets the password for sys, system and pdb_admin -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -ORACLE_PWD=$1 -#ORACLE_SID="`grep $DB_HOME /etc/oratab | cut -d: -f1`" -#ORACLE_PDB="`ls -dl $DB_BASE/oradata/$ORACLE_SID/*/ | grep -v pdbseed | awk '{print $9}' | cut -d/ -f6`" -ORAENV_ASK=NO - -ORACLE_SID=$2 -ORACLE_PDB=$3 - -source oraenv - -sqlplus / as sysdba << EOF - ALTER USER SYS IDENTIFIED BY "$ORACLE_PWD"; - ALTER USER SYSTEM IDENTIFIED BY "$ORACLE_PWD"; - ALTER SESSION SET CONTAINER=$ORACLE_PDB; - ALTER USER PDBADMIN IDENTIFIED BY "$ORACLE_PWD"; - exit; -EOF diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupDB.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupDB.sh deleted file mode 100644 index 27c101ed9c..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupDB.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p "$DB_BASE" -mkdir -p "$DB_HOME" - -usermod -g oinstall -G oinstall,dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,racdba,asmadmin "${DB_USER}" - -chown -R "${DB_USER}":oinstall "$DB_BASE" -chown -R "${DB_USER}":oinstall "$DB_HOME" -chown -R "${DB_USER}":oinstall "$INSTALL_SCRIPTS" -chmod 775 "$INSTALL_SCRIPTS" - -# shellcheck disable=SC2129 -echo "export PATH=$DB_PATH" >> /home/"${DB_USER}"/.bashrc -echo "export LD_LIBRARY_PATH=$DB_LD_LIBRARY_PATH" >> /home/"${DB_USER}"/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/"${DB_USER}"/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/"${DB_USER}"/.bashrc -echo "export DB_BASE=$DB_BASE" >> /home/"${DB_USER}"/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/"${DB_USER}"/.bashrc - -if [ "${DB_USER}" == "${GRID_USER}" ]; then -sed -i '/PATH=/d' /home/"${DB_USER}"/.bashrc -echo "export PATH=$GRID_HOME/bin:$DB_PATH" >> /home/"${DB_USER}"/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_HOME/lib:$DB_LD_LIBRARY_PATH" >> /home/"${DB_USER}"/.bashrc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGrid.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGrid.sh deleted file mode 100644 index 56d057dec7..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGrid.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for Grid installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Create Directories -mkdir -p "$GRID_BASE" -mkdir -p "$GRID_HOME" - -groupadd -g 54334 asmadmin -groupadd -g 54335 asmdba -groupadd -g 54336 asmoper -useradd -u 54332 -g oinstall -G oinstall,asmadmin,asmdba,asmoper,racdba,dba "${GRID_USER}" - -chown -R "${GRID_USER}":oinstall "$GRID_BASE" -chown -R "${GRID_USER}":oinstall "$GRID_HOME" -mkdir -p "$INVENTORY" -chown -R "${GRID_USER}":oinstall "$INVENTORY" - -chmod 666 /etc/sudoers -echo "${DB_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -echo "${GRID_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -chmod 440 /etc/sudoers - -# shellcheck disable=SC2129 -echo "export PATH=$GRID_PATH" >> /home/"${GRID_USER}"/.bashrc -echo "export LD_LIBRARY_PATH=$GRID_LD_LIBRARY_PATH" >> /home/"${GRID_USER}"/.bashrc -echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/"${GRID_USER}"/.bashrc -echo "export GRID_HOME=$GRID_HOME" >> /home/"${GRID_USER}"/.bashrc -echo "export GRID_BASE=$GRID_BASE" >> /home/"${GRID_USER}"/.bashrc -echo "export DB_HOME=$DB_HOME" >> /home/"${GRID_USER}"/.bashrc diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGridEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGridEnv.sh deleted file mode 100755 index ddff73fc65..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupGridEnv.sh +++ /dev/null @@ -1,357 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Pre-grid Setup tasks such as setting up hosts file -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -####################### Variabes and Constants ################# -declare -r TRUE=0 -DNS_SERVER_FLAG='false' # set this variable to true if you have DNS server. Then , it is not required to populate the /etc/hosts. -declare -r ETCHOSTS="/etc/hosts" # -declare -r ETCFSTAB="/etc/fstab" -declare -x GRID_USER='grid' ## Default user for grid installation -declare -r ASMADMIN_GROUP='asmadmin' ## Default group for Grid. -declare -x PUBLIC_IP ## Computed based on Node name. -declare -x PUBLIC_HOSTNAME ## PUBLIC HOSTNAME set based on hostname -declare -x NTPD_START='false' -declare -x RESOLV_CONF_FILE='/etc/resolv.conf' -declare -x RESET_FAILED_SYSTEMD='false' -declare -x SET_CRONTAB="setCrontab.sh" -declare -x RESET_FAILED_UNITS="resetFailedUnits.sh" - -######################## Variable and Constant declaration ends here ###### -# shellcheck disable=SC1091 -if [ -f /etc/rac_env_vars ]; then - source /etc/rac_env_vars -fi - -###################Capture Process id and source functions.sh############### -# shellcheck disable=SC1091 -source "$SCRIPT_DIR/functions.sh" -###########################sourcing of functions.sh ends here############## - -####error_exit function sends a TERM signal, which is caught by trap command and returns exit status 15"#### -trap '{ exit 15; }' TERM -###########################trap code ends here########################## - - -######################################## Pre-Grid-Deployment Steps Begin here #################################### -pre_grid_deploy_steps () -{ -local systemd_svc -local systemctl_state - -# Setting default gateway -if [ -n "${DEFAULT_GATEWAY}" ];then - ip route del default - ip route add default via "$DEFAULT_GATEWAY" -fi - -# Adding blank ntp.conf -touch /etc/ntp.conf - -# Adding blank /etc/fstab -if [ ! -f ${ETCFSTAB} ]; then - touch /etc/fstab -fi - -# Changing permission for /common_scripts -if [ -d "$COMMON_SCRIPTS" ]; -then -chown -R grid:oinstall "${COMMON_SCRIPTS}" -chmod 775 "${COMMON_SCRIPTS}" -fi - -# Removing failed service as we systemd status 'running' - -for systemd_svc in $(systemctl | grep failed | awk '{ print $2}') -do - print_message "Disable failed service $systemd_svc" - systemctl disable "$systemd_svc" - print_message "Resetting Failed Services" - systemctl reset-failed -done -systemctl reset-failed -print_message "Sleeping for 60 seconds" -sleep 60 - -systemctl_state=$(systemctl status | awk '/State:/{ print $0 }' | grep -v 'awk /State:/' | awk '{ print $2 }') - -if [ "${systemctl_state}" == "running" ]; then - print_message "Systemctl state is running!" -else - error_exit "Systemctl state is $systemctl_state! it must be running state inside the container to proceed further" -fi - -print_message "Setting correct permissions for /bin/ping" -chmod 6755 /bin/ping -chmod 6755 /usr/bin/ping -} - -##################################### Pre-Grid-Deployment steps end here ############################ -######################################### ASM Disk Functions ################################### - -build_block_device_list () -{ -local stat -local count=1 - - -#if [ "${OP_TYPE}" == 'INSTALL' -o "${OP_TYPE}" == 'ADDNODE' ]; then -if [ -n "${ASM_DEVICE_LIST}" ]; then -print_message "Preapring Device list" -IFS=', ' read -r -a devices <<< "$ASM_DEVICE_LIST" - local arr_device=${#devices[@]} -# shellcheck disable=SC2086 -if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership $device" - if [ -e "$device" ]; then - chown $GRID_USER:$ASMADMIN_GROUP "$device" - chmod 660 "$device" - else - error_exit "Device $device does not exist! Please verify" - fi - count=$((count+1)) - done -fi -else - error_exit "ASM_DEVICE_LIST is set to empty cannot proceed" -fi -#fi - - -} - -######################################### GIMR DEVICE Block Device List Computation Begin here ##### -build_gimr_block_device_list () -{ -local stat -local count=1 - -#if [ ${OP_TYPE} == 'INSTALL' ]; then - if [ "${CLUSTER_TYPE}" == "DOMAIN" ]; then - if [ -n "${GIMR_DEVICE_LIST}" ]; then - print_message "Preapring Device list" - IFS=', ' read -r -a devices <<< "$GIMR_DEVICE_LIST" - local arr_device=${#devices[@]} - # shellcheck disable=SC2086 - if [ $arr_device -ne 0 ]; then - for device in "${devices[@]}" - do - print_message "Changing Disk permission and ownership" - chown $GRID_USER:$ASMADMIN_GROUP "$device" - chmod 660 "$device" - count=$((count+1)) - done - fi -else - error_exit "GIMR_DEVICE_LIST is set to empty cannot proceed" -fi -fi -#fi -} - -###################################### Setup Resolve.conf ########################################################### -setupResolvconf () -{ -local stat -local count=1 - - if [ -n "${DNS_SERVERS}" ]; then - print_message "Preapring Dns Servers list" - IFS=', ' read -r -a dns_servers <<< "$DNS_SERVERS" - local arr_dns=${#dns_servers[@]} - echo "search ${DOMAIN}" > ${RESOLV_CONF_FILE} -# sed -i '/127.0.0.11/d' ${RESOLV_CONF_FILE} -# shellcheck disable=SC2086 - if [ $arr_dns -ne 0 ]; then - for dns in "${dns_servers[@]}" - do - print_message "Setting DNS Servers" - if grep -Fxq "${dns}" ${RESOLV_CONF_FILE} - then - print_message "nameserver ${dns} exist in ${RESOLV_CONF_FILE}. No need to modify the ${RESOLV_CONF_FILE}." - else - print_message "Adding nameserver ${dns} in ${RESOLV_CONF_FILE}." - echo "nameserver ${dns}" >> ${RESOLV_CONF_FILE} - fi - done - fi -else - print_message "DNS_SERVERS is set to empty. /etc/resolv.conf will use default dns docker embedded server." -fi - -} - -####################################### Set Resetting Failed Units ########################## -resetFailedUnits() -{ - if [ "${RESET_FAILED_SYSTEMD}" != 'false' ]; then - # Define the service name - SERVICE_NAME="rhnsd" - - # Check if the service is running - if pgrep -x "$SERVICE_NAME" >/dev/null; then - print_message "$SERVICE_NAME is running." - - # Check if the service is responding - if ! systemctl is-active --quiet "$SERVICE_NAME"; then - print_message "$SERVICE_NAME is not responding. Stopping the service." - systemctl stop "$SERVICE_NAME" - systemctl disable "$SERVICE_NAME" - print_message "$SERVICE_NAME stopped." - else - print_message "$SERVICE_NAME is responsive. No action needed." - fi - else - print_message "$SERVICE_NAME is not running." - fi - - cp "$SCRIPT_DIR/$RESET_FAILED_UNITS" "/var/tmp/$RESET_FAILED_UNITS" - chmod 755 "/var/tmp/$RESET_FAILED_UNITS" - print_message "Setting Crontab" - cmd="su - $GRID_USER -c \"sudo crontab $SCRIPT_DIR/$SET_CRONTAB\"" - eval "$cmd" - if [ $? ]; then - print_message "Sucessfully installed $SET_CRONTAB using crontab" - else - error_exit "Error occurred in crontab setup" - fi - - fi -} - -############################################################################################# -####################################### Start NTPD ################################################################### -startNTPD() -{ -if [ "${NTPD_START}" != 'false' ]; then -systemctl start ntpd -fi -} -####################################### ETC Host Function ############################################################# -checkHostName () -{ -if [ -z "${PUBLIC_IP}" ]; then - PUBLIC_IP=$(dig +short "$(hostname)") - print_message "Public IP is set to ${PUBLIC_IP}" -else - print_message "Public IP is set to ${PUBLIC_IP}" -fi - -if [ -z "${PUBLIC_HOSTNAME}" ]; then - PUBLIC_HOSTNAME=$(hostname) - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" - else - print_message "RAC Node PUBLIC Hostname is set to ${PUBLIC_HOSTNAME}" -fi -} - -SetupEtcHosts() -{ -local stat=3 -local HOST_LINE - -if [ "${DNS_SERVER_FLAG}" == 'false' ]; then - -if [ -n "$HOSTFILE" ]; then -cat "$COMMON_SCRIPTS"/"$HOSTFILE" > /etc/hosts -else -grep -P "127.0.0.1\tlocalhost.localdomain\tlocalhost" /etc/hosts -stat=$? - -if [ $stat -eq 1 ]; then -echo -e "127.0.0.1\tlocalhost.localdomain\tlocalhost" > /etc/hosts -fi - -for HOSTNAME in $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME $EXISTING_CLS_NODE $CMAN_HOSTNAME $GNSVIP_HOSTNAME; -do -#shellcheck disable=SC2143,SC2086 -if [ -n "$(grep $HOSTNAME $ETCHOSTS)" ]; then -print_message "$HOSTNAME already exists : $(grep $HOSTNAME $ETCHOSTS), no $ETCHOSTS update required" -else - print_message "Preparing host line for $HOSTNAME"; - if [ "${HOSTNAME}" == "${PUBLIC_HOSTNAME}" ]; then - unset HOST_LINE - HOST_LINE="\n${PUBLIC_IP}\t${PUBLIC_HOSTNAME}.${DOMAIN}\t${PUBLIC_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${PRIV_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${PRIV_IP}\t${PRIV_HOSTNAME}.${DOMAIN}\t${PRIV_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${VIP_HOSTNAME}" ];then - unset HOST_LINE - HOST_LINE="\n${NODE_VIP}\t${VIP_HOSTNAME}.${DOMAIN}\t${VIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS - elif [ "${HOSTNAME}" == "${EXISTING_CLS_NODE}" ]; then - unset HOST_LINE - HOST_LINE="\n${EXISTING_CLS_NODE_IP}\t${EXISTING_CLS_NODE}.${DOMAIN}\t${EXISTING_CLS_NODE}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS -elif [ "${HOSTNAME}" == "${SCAN_NAME}" ]; then - unset HOST_LINE - if [ -n "$SCAN_IP" ];then - HOST_LINE="\n${SCAN_IP}\t${SCAN_NAME}.${DOMAIN}\t${SCAN_NAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${CMAN_HOSTNAME}" ]; then - unset HOST_LINE - if [ -n "$CMAN_IP" ];then - HOST_LINE="\n${CMAN_IP}\t${CMAN_HOSTNAME}.${DOMAIN}\t${CMAN_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS - fi -elif [ "${HOSTNAME}" == "${GNSVIP_HOSTNAME}" ]; then - unset HOST_LINE - if [ -n "$GNS_VIP" ];then - HOST_LINE="\n${GNS_VIP}\t${GNSVIP_HOSTNAME}.${DOMAIN}\t${GNSVIP_HOSTNAME}" - print_message "Adding $HOST_LINE to $ETCHOSTS" - echo -e "$HOST_LINE" >> $ETCHOSTS - fi -else - print_message "HOSTNAME should match any hostname in given hostnames $PUBLIC_HOSTNAME $PRIV_HOSTNAME $VIP_HOSTNAME $SCAN_NAME" -fi -fi -done -fi -#### DNS Server check ends below###### -fi -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -######## -print_message "Process id of the program : $TOP_ID" -##### start ntpd ####### -startNTPD -resetFailedUnits -pre_grid_deploy_steps -checkHostName -SetupEtcHosts -######### ASM Device Setup ######## -build_block_device_list -build_gimr_block_device_list -####### Setup /etc/resolv.conf ###### -resetFailedUnits -setupResolvconf -print_message "#####################################################################" -print_message " RAC setup will begin in 2 minutes " -print_message "####################################################################" -sleep 30 -echo $TRUE diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupLinuxEnv.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupLinuxEnv.sh deleted file mode 100644 index 790c738244..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupLinuxEnv.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Sets up the unix environment for DB installation. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -# Setup filesystem and oracle user -# Adjust file permissions, go to /opt/oracle as user 'oracle' to proceed with Oracle installation -# ------------------------------------------------------------ -mkdir /asmdisks && \ -mkdir /responsefiles && \ -yum -y install systemd oracle-database-preinstall-21c vim crontabs passwd expect sudo passwd openssl openssh-server hostname && \ -yum clean all diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupSSH.expect b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupSSH.expect deleted file mode 100644 index 2e0537b190..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/setupSSH.expect +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/expect -f -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com -# Description: Setup SSH between nodes -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -set username [lindex $argv 0]; -set script_loc [lindex $argv 1]; -set cluster_nodes [lindex $argv 2]; -set ssh_pass [lindex $argv 3]; - -set timeout 120 - -# Procedure to setup ssh from server -proc sshproc { ssh_pass } { - expect { - # Send password at 'Password' prompt and tell expect to continue(i.e. exp_continue) - -re "\[P|p]assword:" { exp_send "$ssh_pass\r" - exp_continue } - # Tell expect stay in this 'expect' block and for each character that SCP prints while doing the copy - # reset the timeout counter back to 0. - -re . { exp_continue } - timeout { return 1 } - eof { return 0 } - } -} - -# Execute sshUserSetup.sh Script -set ssh_cmd "$script_loc/sshUserSetup.sh -user $username -hosts \"${cluster_nodes}\" -logfile /tmp/${username}_SetupSSH.log -advanced -exverify -noPromptPassphrase -confirm" - -eval spawn $ssh_cmd -set ssh_results [sshproc $ssh_pass] - -if { $ssh_results == 0 } { - exit 0 -} - -# Error attempting SSH, so exit with non-zero status -exit 1 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/stopOracle.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/stopOracle.sh deleted file mode 100644 index f6d1d0da71..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/21.3.0/stopOracle.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# LICENSE UPL 1.0 -# -# Copyright (c) 2018,2021 Oracle and/or its affiliates. -# -# Since: January, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Stop Oracle RAC DB and Deconfigure the cluster. -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# - -if [ -f /etc/rac_env_vars ]; then -source /etc/rac_env_vars -fi - -source "$SCRIPT_DIR"/functions.sh -touch "$logfile" -chmod 666 /tmp/orod.log -progname=$(basename "$0") - -########### Stop Svc ############ -stop_svc () { - print_message "Stopping container and performing Grid stop." - "$GRID_HOME"/bin/crsctl stop crs -f -} - -########### Deconfig Node from the cluster ############ -deconfig_cluster () { - print_message "received, shutting down database!" - node_count=$("$GRID_HOME"/bin/olsnodes -a | awk '{ print $1 }' | wc -l) - if [ $node_count -gt 1 ]; then - "$GRID_HOME"/crs/install/rootcrs.sh -deconfig -force - elif [ $node_count -eq 1 ]; then - "$GRID_HOME"/crs/install/rootcrs.sh -deconfig -force -last - else - print_message "No need to deinstall cluster as it is not configured" - fi - - print_message " Removing entries from /etc/hosts" - sed -i "/$PUBLIC_HOSTNAME/d" /etc/hosts - sed -i "/$PRIVATE_HOSTNAME/d" /etc/hosts - sed -i "/$VIP_HOSTNAME/d" /etc/hosts -} - -################################### -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -############# MAIN ################ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -################################### - -if [ "${STOP_TYPE}" == "DECONFIGURE" ]; then -deconfig_cluster -else -stop_svc -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/buildContainerImage.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/buildContainerImage.sh deleted file mode 100755 index 4d0161afb8..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/dockerfiles/buildContainerImage.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/bin/bash -# -# Since: November, 2018 -# Author: paramdeep.saini@oracle.com -# Description: Build script for building RAC container image -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. -# - -usage() { - cat << EOF - -Usage: buildContainerImage.sh -v [version] -t [image_name:tag] [-e | -s] [-n] [-p] [-i] [-o] [container build option] -It builds a container image for a DNS server - -Parameters: - -v: version to build - -i: ignores the MD5 checksums - -p: set the slim option - -n: user defined image name - -o: passes on container build option - -LICENSE UPL 1.0 - -Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. - -EOF - exit 0 -} - -# Validate packages -checksumPackages() { - if hash md5sum 2>/dev/null; then - echo "Checking if required packages are present and valid..." - md5sum -c Checksum - # shellcheck disable=SC2181 - status=$? - if [ "$status" -ne 0 ]; then - echo "MD5 for required packages to build this image did not match!" - echo "Make sure to download missing files in folder $VERSION." - # shellcheck disable=SC2320 - exit "$status" - fi - else - echo "Ignored MD5 sum, 'md5sum' command not available."; - fi -} - -############## -#### MAIN #### -############## - -if [ "$#" -eq 0 ]; then - usage; -fi - -# Parameters -VERSION="12.2.0.1" -SKIPMD5=0 -DOCKEROPS="" -IMAGE_NAME="" -SLIM="false" - -while getopts "hiv:o:pn:" optname; do - case "$optname" in - "h") - usage - ;; - "i") - SKIPMD5=1 - ;; - "v") - VERSION="$OPTARG" - ;; - "o") - DOCKEROPS="$OPTARG" - ;; - "n") - IMAGE_NAME="$OPTARG" - ;; - "p") - SLIM="true" - ;; - "?") - usage; - ;; - *) - # Should not occur - echo "Unknown error while processing options inside buildDockerImage.sh" - ;; - esac -done -# Automatically set SKIPMD5=1 if SLIMMING=true is passed in DOCKEROPS -if [[ "$DOCKEROPS" == *"--build-arg SLIMMING=true"* ]]; then - SKIPMD5=1 - echo "SLIMMING=true detected, SKIPMD5 is automatically set to 1." -fi -# Oracle Database Image Name -if [ "${IMAGE_NAME}"x = "x" ] && [ "${SLIM}" == "true" ]; then - IMAGE_NAME="oracle/database-rac:${VERSION}-slim" - STAGE_NAME="final-slim" -elif [ "${IMAGE_NAME}"x = "x" ] && [ "${SLIM}" == "false" ]; then - IMAGE_NAME="oracle/database-rac:${VERSION}" - STAGE_NAME="final" -else - echo "Image name is passed as an variable" -fi - - echo "Container Image set to : ${IMAGE_NAME}" - -# Go into version folder -cd "$VERSION" || exit - -if [ ! "$SKIPMD5" -eq 1 ]; then - checksumPackages -else - echo "Ignored MD5 checksum." -fi -echo "==========================" -echo "DOCKER info:" -docker info -echo "==========================" - -# Proxy settings -PROXY_SETTINGS="" -# shellcheck disable=SC2154 -if [ "${http_proxy}" != "" ]; then - PROXY_SETTINGS="$PROXY_SETTINGS --build-arg http_proxy=${http_proxy}" -fi -# shellcheck disable=SC2154 -if [ "${https_proxy}" != "" ]; then - PROXY_SETTINGS="$PROXY_SETTINGS --build-arg https_proxy=${https_proxy}" -fi -# shellcheck disable=SC2154 -if [ "${ftp_proxy}" != "" ]; then - PROXY_SETTINGS="$PROXY_SETTINGS --build-arg ftp_proxy=${ftp_proxy}" -fi -# shellcheck disable=SC2154 -if [ "${no_proxy}" != "" ]; then - PROXY_SETTINGS="$PROXY_SETTINGS --build-arg no_proxy=${no_proxy}" -fi -# shellcheck disable=SC2154 -if [ "$PROXY_SETTINGS" != "" ]; then - echo "Proxy settings were found and will be used during the build." -fi - -# ################## # -# BUILDING THE IMAGE # -# ################## # -echo "Building image '$IMAGE_NAME' ..." - -# BUILD THE IMAGE (replace all environment variables) -BUILD_START=$(date '+%s') -# shellcheck disable=SC2086 -docker build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} -t ${IMAGE_NAME} -f Dockerfile . --target ${STAGE_NAME} || { - echo "There was an error building the image." - exit 1 -} -BUILD_END=$(date '+%s') -# shellcheck disable=SC2154,SC2003 -BUILD_ELAPSED=$((BUILD_END - BUILD_START)) - -echo "" -# shellcheck disable=SC2181,SC2320 -if [ $? -eq 0 ]; then -cat << EOF - Oracle Database Docker Image for Real Application Clusters (RAC) version $VERSION is ready to be extended: - - --> $IMAGE_NAME - - Build completed in $BUILD_ELAPSED seconds. - -EOF - -else - echo "Oracle Database Real Application Clusters Docker Image was NOT successfully created. Check the output and correct any reported problems with the docker build operation." -fi diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/CONNECTING.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/CONNECTING.md index 1df442c4bc..652dc091ba 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/CONNECTING.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/CONNECTING.md @@ -178,7 +178,7 @@ Instance ORCLCDB2 is running on node racnodep2 [oracle@racnodep1 ~]$ srvctl config scan SCAN name: racnodepc1-scan, Network: 1 Subnet IPv4: 10.0.20.0/255.255.255.0/eth0, static -Subnet IPv6: +Subnet IPv6: SCAN 1 IPv4 VIP: 10.0.20.237 SCAN VIP is enabled. SCAN 2 IPv4 VIP: 10.0.20.238 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/README_1.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/README_1.md deleted file mode 100644 index 278834c2f6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/README_1.md +++ /dev/null @@ -1,1078 +0,0 @@ -# Oracle Real Application Clusters in Linux Containers - -Learn about container deployment options for Oracle Real Application Clusters (Oracle RAC) Release 21c (21.3) - -## Overview of Running Oracle RAC in Containers - -Oracle Real Application Clusters (Oracle RAC) is an option to the award-winning Oracle Database Enterprise Edition. Oracle RAC is a cluster database with a shared cache architecture that overcomes the limitations of traditional shared-nothing and shared-disk approaches to provide highly scalable and available database solutions for all business applications. -Oracle RAC uses Oracle Clusterware as a portable cluster software that allows clustering of independent servers so that they cooperate as a single system and Oracle Automatic Storage Management (Oracle ASM) to provide simplified storage management that is consistent across all servers and storage platforms. -Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy to deploy software package. - -For more information on Oracle RAC Database 21c refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). - -## Using this Image - -To create an Oracle RAC environment, complete these steps in order: - -- [Oracle Real Application Clusters in Linux Containers](#oracle-real-application-clusters-in-linux-containers) - - [Overview of Running Oracle RAC in Containers](#overview-of-running-oracle-rac-in-containers) - - [Using this Image](#using-this-image) - - [Section 1 : Prerequisites for running Oracle RAC in containers](#section-1--prerequisites-for-running-oracle-rac-in-containers) - - [Section 2: Building Oracle RAC Database Container Images](#section-2-building-oracle-rac-database-container-images) - - [Oracle RAC Container Image for Docker](#oracle-rac-container-image-for-docker) - - [Oracle RAC Container Image for Podman](#oracle-rac-container-image-for-podman) - - [Section 3: Network and Password Management](#section-3--network-and-password-management) - - [Section 4: Oracle RAC on Docker](#section-4-oracle-rac-on-docker) - - [Section 4.1 : Prerequisites for Running Oracle RAC on Docker](#section-41--prerequisites-for-running-oracle-rac-on-docker) - - [Section 4.2: Setup Oracle RAC Container on Docker](#section-42-setup-oracle-rac-container-on-docker) - - [Deploying Oracle RAC on Container with Block Devices on Docker](#deploying-oracle-rac-on-container-with-block-devices-on-docker) - - [Deploying Oracle RAC on Container With Oracle RAC Storage Container](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container) - - [Assign networks to Oracle RAC docker containers](#assign-networks-to-oracle-rac-docker-containers) - - [Start the first docker container](#start-the-first-docker-container) - - [Connect to the Oracle RAC docker container](#connect-to-the-oracle-rac-docker-container) - - [Section 4.3: Adding an Oracle RAC Node using a Docker Container](#section-43-adding-an-oracle-rac-node-using-a-docker-container) - - [Deploying Oracle RAC Additional Node on Container with Block Devices on Docker](#deploying-oracle-rac-additional-node-on-container-with-block-devices-on-docker) - - [Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Docker](#deploying-oracle-rac-additional-node-on-container-with-oracle-rac-storage-container-on-docker) - - [Assign Network to additional Oracle RAC docker container](#assign-network-to-additional-oracle-rac-docker-container) - - [Start Oracle RAC docker container](#start-oracle-rac-docker-container) - - [Connect to the Oracle RAC docker container](#connect-to-the-oracle-rac-docker-container) - - [Section 5: Oracle RAC on Podman](#section-5-oracle-rac-on-podman) - - [Section 5.1 : Prerequisites for Running Oracle RAC on Podman](#section-51--prerequisites-for-running-oracle-rac-on-podman) - - [Section 5.2: Setup RAC Containers on Podman](#section-52-setup-rac-containers-on-podman) - - [Deploying Oracle RAC Containers with Block Devices on Podman](#deploying-oracle-rac-containers-with-block-devices-on-podman) - - [Deploying Oracle RAC on Container With Oracle RAC Storage Container on Podman](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container-on-podman) - - [Assign networks to Oracle RAC podman containers](#assign-networks-to-oracle-rac-podman-containers) - - [Start the first podman container](#start-the-first-podman-container) - - [Connect to the Oracle RAC container](#connect-to-the-oracle-rac-podman-container) - - [Section 5.3: Adding a Oracle RAC Node using a container on Podman](#section-53-adding-a-oracle-rac-node-using-a-container-on-podman) - - [Deploying Oracle RAC Additional Node on Container with Block Devices on Podman](#deploying-oracle-rac-additional-node-on-container-with-block-devices-on-podman) - - [Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman](#deploying-oracle-rac-additional-node-on-container-with-oracle-rac-storage-container-on-podman) - - [Assign Network to additional Oracle RAC podman container](#assign-network-to-additional-oracle-rac-podman-container) - - [Start Oracle RAC podman container](#start-oracle-rac-podman-container) - - [Section 6: Connecting to an Oracle RAC Database](#section-6-connecting-to-an-oracle-rac-database) - - [Section 7: Environment Variables for the First Node](#section-7-environment-variables-for-the-first-node) - - [Section 8: Environment Variables for the Second and Subsequent Nodes](#section-8-environment-variables-for-the-second-and-subsequent-nodes) - - [Section 9: Building a Patched Oracle RAC Container Image](#section-9-building-a-patched-oracle-rac-container-image) - - [Section 10 : Sample Container Files for Older Releases](#section-10--sample-container-files-for-older-releases) - - [Docker](#docker-container-files) - - [Podman](#podman-container-files) - - [Section 11 : Support](#section-11--support) - - [Docker](#docker-support) - - [Podman](#podman-support) - - [Section 12 : License](#section-12--license) - - [Section 11 : Copyright](#section-11--copyright) - -## Section 1 : Prerequisites for running Oracle RAC in containers - -Before you proceed to section two, you must complete each of the steps listed in this section. - -To review the resource requirements for Oracle RAC, see Oracle Database 21c Release documentation [Oracle Grid Infrastructure Installation and Upgrade Guide](https://docs.oracle.com/en/database/oracle/oracle-database/21/cwlin/index.html) - -Complete each of the following prerequisites: - -1. Ensure that each container that you will deploy as part of your cluster meets the minimum hardware requirements for Oracle RAC and Oracle Grid Infrastructure software. -2. Ensure all data files, control files, redo log files, and the server parameter file (`SPFILE`) used by the Oracle RAC database reside on shared storage that is accessible by all the Oracle RAC database instances. An Oracle RAC database is a shared-everything database, so each Oracle RAC Node must have the same access. -3. Configure the following addresses manually in your DNS. - - - Public IP address for each container - - Private IP address for each container - - Virtual IP address for each container - - Three single client access name (SCAN) addresses for the cluster. -4. Block storage: If you are planning to use block devices for shared storage, then allocate block devices for OCR, voting and database files. -5. NFS storage: If you are planning to use NFS storage for OCR, Voting Disk and Database files, then configure NFS storage and export at least one NFS mount. You can also use `/docker-images/OracleDatabase/RAC/OracleRACStorageServer` container for shared file system on NFS. -6. Set`/etc/sysctl.conf`parameters: For Oracle RAC, you must set following parameters at host level in `/etc/sysctl.conf`: - - ```INI - fs.aio-max-nr = 1048576 - fs.file-max = 6815744 - net.core.rmem_max = 4194304 - net.core.rmem_default = 262144 - net.core.wmem_max = 1048576 - net.core.wmem_default = 262144 - net.core.rmem_default = 262144 - ``` - -7. List and reload parameters: After the `/etc/sysctl.conf` file is modified, run the following commands: - - ```bash - sysctl -a - sysctl -p - ``` - -8. To resolve VIPs and SCAN IPs, we are using a DNS container in this guide. Before proceeding to the next step, create a [DNS server container](../OracleDNSServer/README.md). -If you have a pre-configured DNS server in your environment, then you can replace `-e DNS_SERVERS=172.16.1.25`, `--dns=172.16.1.25`, `-e DOMAIN=example.com` and `--dns-search=example.com` parameters in **Section 2: Building Oracle RAC Database Podman Install Images** with the `DOMAIN_NAME` and `DNS_SERVER` based on your environment. -You must ensure that you have the`Podman-docker` package installed on your OL8 Podman host to run the command using the `docker` utility. - -9. If you are running RAC on Podman, you need to make sure you have installed the `podman-docker` rpm so that podman commands can be run using `docker` utility. -10. The Oracle RAC `Dockerfile` does not contain any Oracle software binaries. Download the following software from the [Oracle Technology Network](https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html) and stage them under `/docker-images/OracleDatabase/RAC/OracleRealApplicationCluster/containerfiles/` folder. - - - Oracle Database 21c Grid Infrastructure (21.3) for Linux x86-64 - - Oracle Database 21c (21.3) for Linux x86-64 - - - If you are deploying Oracle RAC on Podman then execute following, otherwise skip to next section. - - Because Oracle RAC on Podman is supported on Release 21c (21.7) or later, you must download the grid release update (RU) from [support.oracle.com](https://support.oracle.com/portal/). In this case, we downloaded RU `34155589`. - - - Download the following one-off patches for release 21.7 from [support.oracle.com](https://support.oracle.com/portal/) - - `34339952` - - `32869666` - -**Notes** - -- If you are planning to use a `DNSServer` container for SCAN IPs, VIPs resolution, then configure the DNSServer. For testing purposes only, use the Oracle `DNSServer` image to deploy a container providing DNS resolutions. Please check [OracleDNSServer](../OracleDNSServer/README.md) for details. -- `OracleRACStorageServer` docker image can be used only for testing purpose. Please check [OracleRACStorageServer](../OracleRACStorageServer/README.md) for details. -- To run Oracle RAC using Podman on multiple hosts, refer [Podman macvlan network](https://docs.podman.io/en/latest/markdown/podman-network-create.1.html). -To run Oracle RAC using Oracle Container Runtime for Docker on multiple hosts, refer [Docker macvlan network](https://docs.docker.com/network/macvlan/). -- If the Docker or Podman bridge network is not available outside your host, you can use the Oracle Connection Manager [CMAN image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleConnectionManager) to access the Oracle RAC Database from outside the host. - -## Section 2: Building Oracle RAC Database Container Images - -**IMPORTANT :** This section assumes that you have gone through all the prerequisites in Section 1 and completed all the steps, based on your environment. Do not uncompress the binaries and patches. - -To assist in building the images, you can use the [`buildContainerImage.sh`](https://github.com/oracle/docker-images/blob/master/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/buildContainerImage.sh) script. See the following for instructions and usage. - -### Oracle RAC Container Image for Docker -If you are planing to deploy Oracle RAC container image on Podman, skip to the section [Oracle RAC Container Image for Podman](#oracle-rac-container-image-for-podman). - -```bash -./buildContainerImage.sh -v -o '--build-arg BASE_OL_IMAGE=oraclelinux:7' -i - -# Example: Building Oracle RAC Docker Image -./buildContainerImage.sh -v 21.3.0 -o '--build-arg BASE_OL_IMAGE=oraclelinux:7' -i -``` -***Note*** -- `IGNORE_PREREQ` is default `false` while building full image, if you want to skip this during dbca/grid installation or basically set `-ignorePrereq` while building the container image, set this to `true`. - -### Oracle RAC Container Image for Podman -If you are planing to deploy Oracle RAC container image on Docker, skip to the section [Oracle RAC Container Image for Docker](#oracle-rac-container-image-for-docker). - - ```bash - ./buildContainerImage.sh -v -o '--build-arg BASE_OL_IMAGE=oraclelinux:8' -i - - # Example: Building Oracle RAC Full image - ./buildContainerImage.sh -v 21.3.0 -o '--build-arg BASE_OL_IMAGE=oraclelinux:8' -i - ``` -- After the `21.3.0` Oracle RAC container image is built, start building a patched image with the download 21.7 RU and one-offs. To build the patch image, refer [Example of how to create a patched database image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch). - -**Notes** - -- The resulting images will contain the Oracle Grid Infrastructure binaries and Oracle RAC Database binaries. -- If you are behind a proxy wall, then you must set the `https_proxy` environment variable based on your environment before building the image. - -## Section 3: Network and Password Management - -1. Before you start the installation, you must plan your private and public network. You can create a network bridge on every container host so containers running within that host can communicate with each other. -For example, create `rac_pub1_nw` for the public network (`172.16.1.0/24`) and `rac_priv1_nw` (`192.168.17.0/24`) for a private network. You can use any network subnet for testing. In this document we reference the public network on `172.16.1.0/24` and the private network on `192.168.17.0/24`. - - ```bash - # docker network create --driver=bridge --subnet=172.16.1.0/24 rac_pub1_nw - # docker network create --driver=bridge --subnet=192.168.17.0/24 rac_priv1_nw - ``` - -- To run Oracle RAC using Oracle Container Runtime for Docker on multiple hosts, you will need to create a [Docker macvlan network](https://docs.docker.com/network/macvlan/) using the following commands: - - ```bash - # docker network create -d macvlan --subnet=172.16.1.0/24 --gateway=172.16.1.1 -o parent=eth0 rac_pub1_nw - # docker network create -d macvlan --subnet=192.168.17.0/24 --gateway=192.168.17.1 -o parent=eth1 rac_priv1_nw - ``` - -2. Specify the secret volume for resetting the grid, oracle, and database user password during node creation or node addition. The volume can be a shared volume among all the containers. For example: - - ```bash - # mkdir /opt/.secrets/ - ``` -- If your environment uses Docker, run `openssl rand -hex 64 -out /opt/.secrets/pwd.key`. For Podman, run `openssl rand -hex -out /opt/.secrets/pwd.key` -- Edit the `/opt/.secrets/common_os_pwdfile` and seed the password for the grid, oracle and database users. For this deployment scenario, it will be a common password for the grid, oracle, and database users. Run the command: - - ```bash - # openssl enc -aes-256-cbc -salt -in /opt/.secrets/common_os_pwdfile -out /opt/.secrets/common_os_pwdfile.enc -pass file:/opt/.secrets/pwd.key - # rm -f /opt/.secrets/common_os_pwdfile - ``` -3. Create `rac_host_file` on both Podman and Docker hosts: - - ```bash - # mkdir /opt/containers/ - # touch /opt/containers/rac_host_file - ``` - -**Notes** - -- To run Oracle RAC using Podman on multiple hosts, refer [Podman macvlan network](https://docs.podman.io/en/latest/markdown/podman-network-create.1.html). -To run Oracle RAC using Oracle Container Runtime for Docker on multiple hosts, refer [Docker macvlan network](https://docs.docker.com/network/macvlan/). -- If the Docker or Podman bridge network is not available outside your host, you can use the Oracle Connection Manager [CMAN image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleConnectionManager) to access the Oracle RAC Database from outside the host. -- If you want to specify a different password for each of the user accounts, then create three different files, encrypt them under `/opt/.secrets`, and pass the file name to the container using the environment variable. Environment variables can be ORACLE_PWD_FILE for the oracle user, GRID_PWD_FILE for the grid user, and DB_PWD_FILE for the database password. -- If you want to use a common password for the oracle, grid, and database users, then you can assign a password file name to COMMON_OS_PWD_FILE environment variable. - -## Section 4: Oracle RAC on Docker - -If you are deploying Oracle RAC On Podman, skip to the [Section 5: Oracle RAC on Podman](#section-5-oracle-rac-on-podman). - -**Note** Oracle RAC is supported for production use on Docker starting with Oracle Database 21c (21.3). On earlier releases, Oracle RAC on Docker is supported for development and and test environments. To deploy Oracle RAC on Docker, use the pre-built images available on the Oracle Container Registry. Execute the following steps in a given order to deploy RAC on Docker: - -To create an Oracle RAC environment on Docker, complete each of these steps in order. - -### Section 4.1 : Prerequisites for Running Oracle RAC on Docker - -To run Oracle RAC on Docker, you must install and configure [Oracle Container Runtime for Docker](https://docs.oracle.com/cd/E52668_01/E87205/html/index.html) on Oracle Linux 7. You must have sufficient space on docker file system (`/var/lib/docker`), configured with the Docker OverlayFS storage driver option `overlay2`. - -**IMPORTANT:** Completing prerequisite steps is a requirement for successful configuration. - -Complete each prerequisite step in order, customized for your environment. - -1. Verify that you have enough memory and CPU resources available for all containers. For this `README.md`, we used the following configuration: - - - 2 Docker hosts - - CPU Cores: 1 Socket with 4 cores, with 2 threads for each core Intel® Xeon® Platinum 8167M CPU at 2.00 GHz - - RAM: 60GB - - Swap memory: 32 GB - - Oracle Linux 7.9 or later with the Unbreakable Enterprise Kernel 6: 5.4.17-2102.200.13.el7uek.x86_64. - -2. Oracle RAC must run certain processes in real-time mode. To run processes inside a container in real-time mode, you must make changes to the Docker configuration files. For details, see the [`dockerd` documentation](https://docs.docker.com/engine/reference/commandline/dockerd/#examples). Edit the Docker Daemon based on Docker version: - - - Check the Docker version. In the following output, the Oracle `docker-engine` version is 19.3. - - ```bash - rpm -qa | grep docker - docker-cli-19.03.11.ol-9.el7.x86_64 - docker-engine-19.03.11.ol-9.el7.x86_64 - ``` - - - If Oracle `docker-engine` version is greater than or equal to 19.3: Edit `/usr/lib/systemd/system/docker.service` and add additional parameters in the `[Service]` section for the `dockerd` daemon: - - ```bash - ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --cpu-rt-runtime=950000 - ``` - - - If Oracle docker-engine version is less than 19.3: Edit `/etc/sysconfig/docker` and add following - - ```bash - OPTIONS='--selinux-enabled --cpu-rt-runtime=950000' - ``` - -3. After you have modified the `dockerd` daemon, reload the daemon with the changes you have made: - - ```bash - systemctl daemon-reload - systemctl stop docker - systemctl start docker - ``` - -### Section 4.2: Setup Oracle RAC Container on Docker - -This section provides step by step procedure to deploy Oracle RAC on container with block devices and storage container. To understand the details of environment variable, refer For the details of environment variables [Section 7: Environment Variables for the First Node](#section-7-environment-variables-for-the-first-node) - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -#### Deploying Oracle RAC on Container with Block Devices on Docker - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC on Container With Oracle RAC Storage Container](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container). - -Make sure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: - - ```bash - # dd if=/dev/zero of=/dev/xvde bs=8k count=100000 - ``` - -Repeat for each shared block device. In the preceding example, `/dev/xvde` is a shared Xen virtual block device. - -Now create the Oracle RAC container using the image. You can use the following example to create a container: - - ```bash - # docker create -t -i \ - --hostname racnode1 \ - --volume /boot:/boot:ro \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/xvde:/dev/asm_disk1 \ - --device=/dev/xvdf:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.160 \ - -e VIP_HOSTNAME=racnode1-vip \ - -e PRIV_IP=192.168.17.150 \ - -e PRIV_HOSTNAME=racnode1-priv \ - -e PUBLIC_IP=172.16.1.150 \ - -e PUBLIC_HOSTNAME=racnode1 \ - -e SCAN_NAME=racnode-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ASM_DISCOVERY_DIR=/dev \ - -e CMAN_HOSTNAME=racnode-cman1 \ - -e CMAN_IP=172.16.1.15 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --restart=always --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 --ulimit rtprio=99 \ - --name racnode1 \ - oracle/database-rac:21.3.0 - ``` - -**Note:** Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. - -#### Deploying Oracle RAC on Container With Oracle RAC Storage Container - -If you are using block devices, skip to the section [Deploying Oracle RAC on Container with Block Devices on Docker](#deploying-oracle-rac-on-container-with-block-devices-on-docker) - -Now create the Oracle RAC container using the image. You can use the following example to create a container: - - ```bash - # docker create -t -i \ - --hostname racnode1 \ - --volume /boot:/boot:ro \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.160 \ - -e VIP_HOSTNAME=racnode1-vip \ - -e PRIV_IP=192.168.17.150 \ - -e PRIV_HOSTNAME=racnode1-priv \ - -e PUBLIC_IP=172.16.1.150 \ - -e PUBLIC_HOSTNAME=racnode1 \ - -e SCAN_NAME=racnode-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e CMAN_HOSTNAME=racnode-cman1 \ - -e CMAN_IP=172.16.1.15 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --restart=always \ - --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --name racnode1 \ - oracle/database-rac:21.3.0 - ``` - -**Notes:** - -- Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. -- You must have created the `racstorage` volume before the creation of the Oracle RAC Container. For details, please refer [OracleRACStorageServer](../OracleRACStorageServer/README.md). -- For details about the available environment variables, refer the [Section 7](#section-7-environment-variables-for-the-first-node). - -#### Assign networks to Oracle RAC docker containers - -You need to assign the Docker networks created in section 1 to containers. Execute the following commands: - - ```bash - # docker network disconnect bridge racnode1 - # docker network connect rac_pub1_nw --ip 172.16.1.150 racnode1 - # docker network connect rac_priv1_nw --ip 192.168.17.150 racnode1 - ``` - -#### Start the first docker container - -To start the first container, run the following command: - - ```bash - # docker start racnode1 - ``` - -It can take at least 40 minutes or longer to create the first node of the cluster. To check the logs, use the following command from another terminal session: - - ```bash - # docker logs -f racnode1 - ``` - -You should see the database creation success message at the end: - - ```bash - #################################### - ORACLE RAC DATABASE IS READY TO USE! - #################################### - ``` - -#### Connect to the Oracle RAC docker container - -To connect to the container execute the following command: - -```bash -# docker exec -i -t racnode1 /bin/bash -``` - -If the install fails for any reason, log in to the container using the preceding command and check `/tmp/orod.log`. You can also review the Grid Infrastructure logs located at `$GRID_BASE/diag/crs` and check for failure logs. If the failure occurred during the database creation then check the database logs. - -### Section 4.3: Adding an Oracle RAC Node using a Docker Container - -Before proceeding to the next step, ensure Oracle Grid Infrastructure is running and the Oracle RAC Database is open as per instructions in [Section 4.2: Setup Oracle RAC on Docker](#section-42-setup-oracle-rac-container-on-docker). Otherwise, the node addition process will fail. - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -To understand the details of environment variable, refer For the details of environment variables [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes) - -Reset the password on the existing Oracle RAC node for SSH setup between an existing node in the cluster and the new node. Password must be the same on all the nodes for the `grid` and `oracle` users. Execute the following command on an existing node of the cluster. - -```bash -docker exec -i -t -u root racnode1 /bin/bash -sh /opt/scripts/startup/resetOSPassword.sh --help -sh /opt/scripts/startup/resetOSPassword.sh --op_type reset_grid_oracle --pwd_file common_os_pwdfile.enc --secret_volume /run/secrets --pwd_key_file pwd.key -``` - -**Note:** If you do not have a common secret volume among Oracle RAC containers, populate the password file with the same password that you have used on the new node, encrypt the file, and execute `resetOSPassword.sh` on the existing node of the cluster. - -#### Deploying Oracle RAC Additional Node on Container with Block Devices on Docker - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC on Container with Oracle RAC Storage Container on Docker](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container) - -To create additional nodes, use the following command: - -```bash -# docker create -t -i \ - --hostname racnode2 \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /boot:/boot:ro \ - --dns-search=example.com \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/xvde:/dev/asm_disk1 \ - --device=/dev/zvdf:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnode1 \ - -e NODE_VIP=172.16.1.161 \ - -e VIP_HOSTNAME=racnode2-vip \ - -e PRIV_IP=192.168.17.151 \ - -e PRIV_HOSTNAME=racnode2-priv \ - -e PUBLIC_IP=172.16.1.151 \ - -e PUBLIC_HOSTNAME=racnode2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnode-scan \ - -e ASM_DISCOVERY_DIR=/dev \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --restart=always \ - --name racnode2 \ - oracle/database-rac:21.3.0 -``` - -For details of all environment variables and parameters, refer to [Section 7](#section-7-environment-variables-for-the-first-node). - -#### Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Docker - -If you are using physical block devices for shared storage, skip to [Deploying Oracle RAC on Container with Block Devices on Docker](#deploying-oracle-rac-on-container-with-block-devices-on-docker) - -Use the existing `racstorage:/oradata` volume when creating the additional container using the image. - -For example: - -```bash -# docker create -t -i \ - --hostname racnode2 \ - --volume /dev/shm \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /boot:/boot:ro \ - --dns-search=example.com \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnode1 \ - -e NODE_VIP=172.16.1.161 \ - -e VIP_HOSTNAME=racnode2-vip \ - -e PRIV_IP=192.168.17.151 \ - -e PRIV_HOSTNAME=racnode2-priv \ - -e PUBLIC_IP=172.16.1.151 \ - -e PUBLIC_HOSTNAME=racnode2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnode-scan \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --tmpfs=/run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --restart=always \ - --name racnode2 \ - oracle/database-rac:21.3.0 -``` - -**Notes:** - -- You must have created **racstorage** volume before the creation of the Oracle RAC container. -- You can change env variables such as IPs and ORACLE_PWD based on your env. For details about the env variables, refer the section 8. - -#### Assign Network to additional Oracle RAC docker container - -Connect the private and public networks you created earlier to the container: - -```bash -# docker network disconnect bridge racnode2 -# docker network connect rac_pub1_nw --ip 172.16.1.151 racnode2 -# docker network connect rac_priv1_nw --ip 192.168.17.151 racnode2 -``` - -#### Start Oracle RAC docker container - -Start the container - -```bash -# docker start racnode2 -``` - -To check the database logs, tail the logs using the following command: - -```bash -# docker logs -f racnode2 -``` - -You should see the database creation success message at the end. - -```text -#################################### -ORACLE RAC DATABASE IS READY TO USE! -#################################### -``` - -#### Connect to the Oracle RAC container on Additional Node - -To connect to the container execute the following command: - -```bash -# docker exec -i -t racnode2 /bin/bash -``` - -If the node addition fails, log in to the container using the preceding command and review `/tmp/orod.log`. You can also review the Grid Infrastructure logs i.e. `$GRID_BASE/diag/crs` and check for failure logs. If the node creation has failed during the database creation process, then check DB logs. - -## Section 5: Oracle RAC on Podman - -If you are deploying Oracle RAC On Docker, skip to [Section 4: Oracle RAC on Docker](#section-4-oracle-rac-on-docker) - -**Note** Oracle RAC is supported for production use on Podman starting with Oracle Database 19c (19.16), and Oracle Database 21c (21.7). You can deploy Oracle RAC on Podman using the pre-built images available on Oracle Container Registry. Execute the following steps in a given order to deploy RAC on Podman: - -To create an Oracle RAC environment on Podman, complete each of these steps in order. - -### Section 5.1 : Prerequisites for Running Oracle RAC on Podman - -You must install and configure [Podman release 4.0.2](https://docs.oracle.com/en/operating-systems/oracle-linux/Podman/) or later on Oracle Linux 8.5 or later to run Oracle RAC on Podman. - -**IMPORTANT:** Completing prerequisite steps is a requirement for successful configuration. - -Complete each prerequisite step in order, customized for your environment. - -1. Verify that you have enough memory and CPU resources available for all containers. In this `README.md` for Podman, we used the following configuration: - - - 2 Podman hosts - - CPU Cores: 1 Socket with 4 cores, with 2 threads for each core Intel® Xeon® Platinum 8167M CPU at 2.00 GHz - - RAM: 60 GB - - Swap memory: 32 GB - - Oracle Linux 8.5 (Linux-x86-64) with the Unbreakable Enterprise Kernel 6: `5.4.17-2136.300.7.el8uek.x86_64`. - -2. Oracle RAC must run certain processes in real-time mode. To run processes inside a container in real-time mode, populate the real-time CPU budgeting on machine restarts. Create a oneshot systemd service as follows: - - - Create a file `/etc/systemd/system/Podman-rac-cgroup.service` - - Append the following lines: - - ```INI - [Unit] - Description=Populate Cgroups with real time chunk on machine restart - After=multi-user.target - [Service] - Type=oneshot - ExecStart=/bin/bash -c “/bin/echo 950000 > /sys/fs/cgroup/cpu,cpuacct/machine.slice/cpu.rt_runtime_us && /bin/systemctl restart Podman-restart.service” - StandardOutput=journal - CPUAccounting=yes - Slice=machine.slice - [Install] - WantedBy=multi-user.target - ``` - - - After creating the file `/etc/systemd/system/Podman-rac-cgroup.service` with the lines appended in the preceding step, reload and restart the Podman daemon using the following steps: - - ```bash - systemctl daemon-reload - systemctl enable Podman-rac-cgroup.service - systemctl enable Podman-restart.service - systemctl start Podman-rac-cgroup.service - ``` - -3. If SELINUX is enabled on the Podman host, then you must create an SELinux policy for Oracle RAC on Podman. For details about this procedure, see "How to Configure Podman for SELinux Mode" in the publication [Oracle Real Application Clusters Installation Guide for Podman Oracle Linux x86-64](https://docs.oracle.com/en/database/oracle/oracle-database/21/racpd/target-configuration-oracle-rac-podman.html#GUID-59138DF8-3781-4033-A38F-E0466884D008). - -### Section 5.2: Setup RAC Containers on Podman -This section provides step by step procedure to deploy Oracle RAC on container with block devices and storage container. To understand the details of environment variable, refer For the details of environment variables [Section 7: Environment Variables for the First Node](#section-7-environment-variables-for-the-first-node) - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -#### Deploying Oracle RAC Containers with Block Devices on Podman - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC on Container With Oracle RAC Storage Container on Podman](#deploying-oracle-rac-on-container-with-oracle-rac-storage-container-on-podman). - -Make sure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: - - ```bash - # dd if=/dev/zero of=/dev/xvde bs=8k count=100000 - ``` - -Repeat for each shared block device. In the preceding example, `/dev/xvde` is a shared Xen virtual block device. - -Now create the Oracle RAC container using the image. For the details of environment variables, refer to section 7. You can use the following example to create a container: - - ```bash - # podman create -t -i \ - --hostname racnode1 \ - --volume /boot:/boot:ro \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/xvde:/dev/asm_disk1 \ - --device=/dev/xvdf:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_WRITE \ - --cap-add=AUDIT_CONTROL \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.160 \ - -e VIP_HOSTNAME=racnode1-vip \ - -e PRIV_IP=192.168.17.150 \ - -e PRIV_HOSTNAME=racnode1-priv \ - -e PUBLIC_IP=172.16.1.150 \ - -e PUBLIC_HOSTNAME=racnode1 \ - -e SCAN_NAME=racnode-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ASM_DISCOVERY_DIR=/dev \ - -e CMAN_HOSTNAME=racnode-cman1 \ - -e CMAN_IP=172.16.1.15 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --restart=always \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --name racnode1 \ - localhost/oracle/database-rac:21.3.0-21.7.0 - ``` - -**Note:** Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. - -#### Deploying Oracle RAC on Container With Oracle RAC Storage Container on Podman - -If you are using block devices, skip to the section [Deploying RAC Containers with Block Devices on Podman](#deploying-oracle-rac-containers-with-block-devices-on-podman) -Now create the Oracle RAC container using the image. You can use the following example to create a container: - - ```bash - # podman create -t -i \ - --hostname racnode1 \ - --volume /boot:/boot:ro \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_WRITE \ - --cap-add=AUDIT_CONTROL \ - -e DNS_SERVERS="172.16.1.25" \ - -e NODE_VIP=172.16.1.160 \ - -e VIP_HOSTNAME=racnode1-vip \ - -e PRIV_IP=192.168.17.150 \ - -e PRIV_HOSTNAME=racnode1-priv \ - -e PUBLIC_IP=172.16.1.150 \ - -e PUBLIC_HOSTNAME=racnode1 \ - -e SCAN_NAME=racnode-scan \ - -e OP_TYPE=INSTALL \ - -e DOMAIN=example.com \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e CMAN_HOSTNAME=racnode-cman1 \ - -e CMAN_IP=172.16.1.15 \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --restart=always \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --name racnode1 \ - localhost/oracle/database-rac:21.3.0-21.7.0 - ``` - -**Notes:** - -- Change environment variables such as `NODE_IP`, `PRIV_IP`, `PUBLIC_IP`, `ASM_DEVICE_LIST`, `PWD_FILE`, and `PWD_KEY` based on your environment. Also, ensure you use the correct device names on each host. -- You must have created the `racstorage` volume before the creation of the Oracle RAC Container. For details about the available environment variables, refer the [Section 7](#section-7-environment-variables-for-the-first-node). - -#### Assign networks to Oracle RAC podman containers - -You need to assign the Podman networks created in section 1 to containers. Execute the following commands: - - ```bash - # podman network disconnect bridge racnode1 - # podman network connect rac_pub1_nw --ip 172.16.1.150 racnode1 - # podman network connect rac_priv1_nw --ip 192.168.17.150 racnode1 - ``` - -#### Start the first podman container - -To start the first container, run the following command: - - ```bash - # podman start racnode1 - ``` - -It can take at least 40 minutes or longer to create the first node of the cluster. To check the database logs, tail the logs using the following command: - -```bash -podman exec racnode1 /bin/bash -c "tail -f /tmp/orod.log" -``` - -You should see the database creation success message at the end. - -```text -#################################### -ORACLE RAC DATABASE IS READY TO USE! -#################################### -``` - -#### Connect to the Oracle RAC podman container - -To connect to the container execute the following command: - -```bash -# podman exec -i -t racnode1 /bin/bash -``` - -If the install fails for any reason, log in to the container using the preceding command and check `/tmp/orod.log`. You can also review the Grid Infrastructure logs located at `$GRID_BASE/diag/crs` and check for failure logs. If the failure occurred during the database creation then check the database logs. - -### Section 5.3: Adding a Oracle RAC Node using a container on Podman - -Before proceeding to the next step, ensure Oracle Grid Infrastructure is running and the Oracle RAC Database is open as per instructions in [Section 5.2: Setup RAC Containers on Podman](#section-52-setup-rac-containers-on-podman). Otherwise, the node addition process will fail. - -Refer the [Section 3: Network and Password Management](#section-3--network-and-password-management) and setup the network on a container host based on your Oracle RAC environment. If you have already done the setup, ignore and proceed further. - -To understand the details of environment variable, refer For the details of environment variables [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes). - - -Reset the password on the existing Oracle RAC node for SSH setup between an existing node in the cluster and the new node. Password must be the same on all the nodes for the `grid` and `oracle` users. Execute the following command on an existing node of the cluster. - -```bash -podman exec -i -t -u root racnode1 /bin/bash -sh /opt/scripts/startup/resetOSPassword.sh --help -sh /opt/scripts/startup/resetOSPassword.sh --op_type reset_grid_oracle --pwd_file common_os_pwdfile.enc --secret_volume /run/secrets --pwd_key_file pwd.key -``` - -**Note:** If you do not have a common secret volume among Oracle RAC containers, populate the password file with the same password that you have used on the new node, encrypt the file, and execute `resetOSPassword.sh` on the existing node of the cluster. - -#### Deploying Oracle RAC Additional Node on Container with Block Devices on Podman - -If you are using an NFS volume, skip to the section [Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman](#deploying-oracle-rac-additional-node-on-container-with-oracle-rac-storage-container-on-podman). - -To create additional nodes, use the following command: - -```bash -# podman create -t -i \ - --hostname racnode2 \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /boot:/boot:ro \ - --dns-search=example.com \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --device=/dev/xvde:/dev/asm_disk1 \ - --device=/dev/zvdf:/dev/asm_disk2 \ - --privileged=false \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_CONTROL \ - --cap-add=AUDIT_WRITE \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnode1 \ - -e NODE_VIP=172.16.1.161 \ - -e VIP_HOSTNAME=racnode2-vip \ - -e PRIV_IP=192.168.17.151 \ - -e PRIV_HOSTNAME=racnode2-priv \ - -e PUBLIC_IP=172.16.1.151 \ - -e PUBLIC_HOSTNAME=racnode2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnode-scan \ - -e ASM_DISCOVERY_DIR=/dev \ - -e ASM_DEVICE_LIST=/dev/asm_disk1,/dev/asm_disk2 \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --restart=always \ - --name racnode2 \ - localhost/oracle/database-rac:21.3.0-21.7.0 -``` - -For details of all environment variables and parameters, refer to [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes). - -#### Deploying Oracle RAC Additional Node on Container with Oracle RAC Storage Container on Podman - -If you are using physical block devices for shared storage, skip to [Deploying Oracle RAC Additional Node on Container with Block Devices on Podman](#deploying-oracle-rac-additional-node-on-container-with-block-devices-on-podman). - -Use the existing `racstorage:/oradata` volume when creating the additional container using the image. - -For example: - -```bash -# podman create -t -i \ - --hostname racnode2 \ - --tmpfs /dev/shm:rw,exec,size=4G \ - --volume /boot:/boot:ro \ - --dns-search=example.com \ - --volume /opt/containers/rac_host_file:/etc/hosts \ - --volume /opt/.secrets:/run/secrets:ro \ - --dns=172.16.1.25 \ - --dns-search=example.com \ - --privileged=false \ - --volume racstorage:/oradata \ - --cap-add=SYS_NICE \ - --cap-add=SYS_RESOURCE \ - --cap-add=NET_ADMIN \ - --cap-add=AUDIT_WRITE \ - --cap-add=AUDIT_CONTROL \ - -e DNS_SERVERS="172.16.1.25" \ - -e EXISTING_CLS_NODES=racnode1 \ - -e NODE_VIP=172.16.1.161 \ - -e VIP_HOSTNAME=racnode2-vip \ - -e PRIV_IP=192.168.17.151 \ - -e PRIV_HOSTNAME=racnode2-priv \ - -e PUBLIC_IP=172.16.1.151 \ - -e PUBLIC_HOSTNAME=racnode2 \ - -e DOMAIN=example.com \ - -e SCAN_NAME=racnode-scan \ - -e ASM_DISCOVERY_DIR=/oradata \ - -e ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ - -e ORACLE_SID=ORCLCDB \ - -e OP_TYPE=ADDNODE \ - -e COMMON_OS_PWD_FILE=common_os_pwdfile.enc \ - -e PWD_KEY=pwd.key \ - --systemd=always \ - --cpu-rt-runtime=95000 \ - --ulimit rtprio=99 \ - --restart=always \ - --name racnode2 \ - localhost/oracle/database-rac:21.3.0-21.7.0 -``` - -**Notes:** - -- You must have created **racstorage** volume before the creation of the Oracle RAC container. -- You can change env variables such as IPs and ORACLE_PWD based on your env. For details about the env variables, refer the [Section 8](#section-8-environment-variables-for-the-second-and-subsequent-nodes). - -#### Assign Network to additional Oracle RAC podman container - -Connect the private and public networks you created earlier to the container: - -```bash -# podman network disconnect bridge racnode2 -# podman network connect rac_pub1_nw --ip 172.16.1.151 racnode2 -# podman network connect rac_priv1_nw --ip 192.168.17.151 racnode2 -``` - -#### Start Oracle RAC podman container - -Start the container - -```bash -# podman start racnode2 -``` - -To check the database logs, tail the logs using the following command: - -```bash -podman exec racnode2 /bin/bash -c "tail -f /tmp/orod.log" -``` - -You should see the database creation success message at the end. - -```text -#################################### -ORACLE RAC DATABASE IS READY TO USE! -#################################### -``` - -## Section 6: Connecting to an Oracle RAC Database - -**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. - -If you are using a connection manager and exposed the port 1521 on the host, then connect from an external client using the following connection string, where `` is the host container, and `` is the database system identifier: - -```bash -system/@//:1521/ -``` - -If you are using the bridge created using MACVLAN driver, and you have configured DNS appropriately, then you can connect using the public Single Client Access (SCAN) listener directly from any external client. To connect with the SCAN, use the following connection string, where `` is the SCAN name for the database, and `` is the database system identifier: - -```bash -system/@//:1521/ -``` - -## Section 7: Environment Variables for the First Node - -This section provides information about the environment variables that can be used when creating the first node of a cluster. - -```bash -OP_TYPE=###Specify the Operation TYPE. It can accept 2 values INSTALL OR ADDNODE#### -NODE_VIP=####Specify the Node VIP### -VIP_HOSTNAME=###Specify the VIP hostname### -PRIV_IP=###Specify the Private IP### -PRIV_HOSTNAME=###Specify the Private Hostname### -PUBLIC_IP=###Specify the public IP### -PUBLIC_HOSTNAME=###Specify the public hostname### -SCAN_NAME=###Specify the scan name### -ASM_DEVICE_LIST=###Specify the ASM Disk lists. -SCAN_IP=###Specify this if you do not have DNS server### -DOMAIN=###Default value set to example.com### -PASSWORD=###OS password will be generated by openssl### -CLUSTER_NAME=###Default value set to racnode-c#### -ORACLE_SID=###Default value set to ORCLCDB### -ORACLE_PDB=###Default value set to ORCLPDB### -ORACLE_PWD=###Default value set to generated by openssl random password### -ORACLE_CHARACTERSET=###Default value set AL32UTF8### -DEFAULT_GATEWAY=###Default gateway. You need this env variable if containers will be running on multiple hosts.#### -CMAN_HOSTNAME=###Connection Manager Host Name### -CMAN_IP=###Connection manager Host IP### -ASM_DISCOVERY_DIR=####ASM disk location insdie the container. By default it is /dev###### -COMMON_OS_PWD_FILE=###Pass the file name to setup grid and oracle user password. If you specify ORACLE_PWD_FILE, GRID_PWD_FILE, and DB_PWD_FILE then you do not need to specify this env variable### -ORACLE_PWD_FILE=###Pass the file name to set the password for oracle user.### -GRID_PWD_FILE=###Pass the file name to set the password for grid user.### -DB_PWD_FILE=###Pass the file name to set the password for DB user i.e. sys.### -REMOVE_OS_PWD_FILES=###Set this env variable to true to remove pwd key file and password file after resetting password.### -CONTAINER_DB_FLAG=###Default value is set to true to create container database. Set this to false if you do not want to create container database.### -``` - -## Section 8: Environment Variables for the Second and Subsequent Nodes - -This section provides the details about the environment variables that can be used for all additional nodes added to an existing cluster. - -```bash -OP_TYPE=###Specify the Operation TYPE. It can accept 2 values INSTALL OR ADDNODE### -EXISTING_CLS_NODES=###Specify the Existing Node of the cluster which you want to join. If you have 2 nodes in the cluster and you are trying to add the third node then specify existing 2 nodes of the clusters and separate them by comma.#### -NODE_VIP=###Specify the Node VIP### -VIP_HOSTNAME=###Specify the VIP hostname### -PRIV_IP=###Specify the Private IP### -PRIV_HOSTNAME=###Specify the Private Hostname### -PUBLIC_IP=###Specify the public IP### -PUBLIC_HOSTNAME=###Specify the public hostname### -SCAN_NAME=###Specify the scan name### -SCAN_IP=###Specify this if you do not have DNS server### -ASM_DEVICE_LIST=###Specify the ASM Disk lists. -DOMAIN=###Default value set to example.com### -ORACLE_SID=###Default value set to ORCLCDB### -DEFAULT_GATEWAY=###Default gateway. You need this env variable if containers will be running on multiple hosts.#### -CMAN_HOSTNAME=###Connection Manager Host Name### -CMAN_IP=###Connection manager Host IP### -ASM_DISCOVERY_DIR=####ASM disk location inside the container. By default it is /dev###### -COMMON_OS_PWD_FILE=###You need to pass the file name to setup grid and oracle user password. If you specify ORACLE_PWD_FILE, GRID_PWD_FILE, and DB_PWD_FILE then you do not need to specify this env variable### -ORACLE_PWD_FILE=###You need to pass the file name to set the password for oracle user.### -GRID_PWD_FILE=###You need to pass the file name to set the password for grid user.### -DB_PWD_FILE=###You need to pass the file name to set the password for DB user i.e. sys.### -REMOVE_OS_PWD_FILES=###You need to set this to true to remove pwd key file and password file after resetting password.### -``` - -## Section 9: Building a Patched Oracle RAC Container Image - -If you want to build a patched image based on a base 21.3.0 container image, then refer to the GitHub page [Example of how to create a patched database image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch). - -## Section 10 : Sample Container Files for Older Releases - -### Docker Container Files - -This project offers sample container files for Oracle Grid Infrastructure and Oracle Real Application Clusters for dev and test: - -* Oracle Database 19c Oracle Grid Infrastructure (19.3) for Linux x86-64 -* Oracle Database 19c (19.3) for Linux x86-64 -* Oracle Database 18c Oracle Grid Infrastructure (18.3) for Linux x86-64 -* Oracle Database 18c (18.3) for Linux x86-64 -* Oracle Database 12c Release 2 Oracle Grid Infrastructure (12.2.0.1.0) for Linux x86-64 -* Oracle Database 12c Release 2 (12.2.0.1.0) Enterprise Edition for Linux x86-64 - - **Notes:** - -* Note that the Oracle RAC on Docker Container releases are supported only for test and development environments, but not for production environments. -* If you are planning to build and deploy Oracle RAC 18.3.0, you need to download Oracle 18.3.0 Grid Infrastructure and Oracle Database 18.3.0 Database. You also need to download Patch# p28322130_183000OCWRU_Linux-x86-64.zip from [Oracle Technology Network](https://www.oracle.com/technetwork/database/database-technologies/clusterware/downloads/docker-4418413.html). -Stage it under containerfiles/18.3.0 folder. -* If you are planning to build and deploy Oracle RAC 12.2.0.1, you need to download Oracle 12.2.0.1 Grid Infrastructure and Oracle Database 12.2.0.1 Database. You also need to download Patch# p27383741_122010_Linux-x86-64.zip from [Oracle Technology Network](https://www.oracle.com/technetwork/database/database-technologies/clusterware/downloads/docker-4418413.html). -Stage it under containerfiles/12.2.0.1 folder. - -### Podman Container Files - -This project offers sample container files for Oracle Grid Infrastructure and Oracle Real Application Clusters for dev and test: - -* Oracle Database 19c Oracle Grid Infrastructure (19.3) for Linux x86-64 -* Oracle Database 19c (19.3) for Linux x86-64 - - **Notes:** - -* Because Oracle RAC on Podman is supported on 19c from 19.16 or later, you must download the grid release update (RU) from [support.oracle.com](https://support.oracle.com/portal/). In this case, we downloaded RU `34130714`. -* Download following one-offs for 19.16 from [support.oracle.com](https://support.oracle.com/portal/) - * `34339952` - * `32869666` -* Before starting the next step, you must edit `docker-images/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles/19.3.0/Dockerfile`, change `oraclelinux:7-slim` to `oraclelinux:8`, and save the file. -* You must add `CV_ASSUME_DISTID=OEL8` inside the `Dockerfile` as an env variable. - -* Once the `19.3.0` Oracle RAC on Podman image is built, start building patched image with the download 19.16 RU and one-offs. To build the patch the image, refer [Example of how to create a patched database image](https://github.com/oracle/docker-images/tree/main/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch). -* Make changes in `/opt/containers/envfile` as per 19c `Dockerfile`. You need to change all the contents based on 19c such as `GRID_HOME`, `ORACLE_HOME` and `ADDNODE_RSP` which you have used in `Dockerfile` while building the image. - -## Section 11 : Support - -### Docker Support - -At the time of this release, Oracle RAC on Docker is supported only on Oracle Linux 7. To see current details, refer the [Real Application Clusters Installation Guide for Docker Containers Oracle Linux x86-64](https://docs.oracle.com/en/database/oracle/oracle-database/21/racdk/oracle-rac-on-docker.html). - -### Podman Support - -At the time of this release, Oracle RAC on Podman is supported for Oracle Linux 8.5 later. To see current Linux support certifications, refer [Oracle RAC on Podman Documentation](https://docs.oracle.com/en/database/oracle/oracle-database/21/install-and-upgrade.html) - -## Section 12 : License - -To download and run Oracle Grid and Database, regardless of whether inside or outside a container, you must download the binaries from the Oracle website and accept the license indicated on that page. - -All scripts and files hosted in this repository which are required to build the container images are, unless otherwise noted, released under UPL 1.0 license. - -## Section 11 : Copyright - -Copyright (c) 2014-2022 Oracle and/or its affiliates. diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/dataguard/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/dataguard/README.md new file mode 100644 index 0000000000..4db10e4df9 --- /dev/null +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/dataguard/README.md @@ -0,0 +1,1306 @@ +# Oracle RAC Data Guard Setup on Containers + +Learn about container deployment options for Oracle RAC Data Guard Setup on Containers. + +## Overview of Oracle RAC Data Guard Setup on Containers + +Oracle Real Application Clusters (Oracle RAC) is an option to the award-winning Oracle Database Enterprise Edition. Oracle RAC is a cluster database with a shared cache architecture that overcomes the limitations of traditional shared-nothing and shared-disk approaches to provide highly scalable and available database solutions for all business applications. Oracle RAC uses Oracle Clusterware as a portable cluster software that allow Oracle Real Application Clusters in Linux Containers. + +Oracle Data Guard ensures high availability, data protection, and disaster recovery for enterprise data. Oracle Data Guard provides a comprehensive set of services that create, maintain, manage, and monitor one or more standby databases to enable production Oracle databases to survive disasters and data corruptions. Oracle Data Guard maintains these standby databases as copies of the production database. Then, if the production database becomes unavailable because of a planned or an unplanned outage, Oracle Data Guard can switch any standby database to the production role, minimizing the downtime associated with the outage. Oracle Data Guard can be used with traditional backup, restoration, and cluster techniques to provide a high level of data protection and data availability. Oracle Data Guard transport services are also used by other Oracle features such as Oracle Streams and Oracle GoldenGate for efficient and reliable transmission of redo from a source database to one or more remote destinations. + +## Using this Documentation +To create an Oracle RAC Data Guard Setup on Containers, follow these steps: +- [Oracle RAC Data Guard Setup on Containers](#oracle-rac-data-guard-setup-on-containers) + - [Overview of Oracle RAC Data Guard Setup on Containers](#overview-of-oracle-rac-data-guard-setup-on-containers) + - [Using this Documentation](#using-this-documentation) + - [Section 1: Prerequisites for Setting up Oracle RAC Data Guard on Container](#section-1-prerequisites-for-setting-up-oracle-rac-data-guard-on-container) + - [Section 2: Oracle RAC Data Guard on Podman](#section-2-oracle-rac-data-guard-on-podman) + - [Section 2.1: Prerequisites for Running Oracle RAC Data Guard on Podman](#section-21-prerequisites-for-running-oracle-rac-data-guard-on-podman) + - [Section 2.2: Setup RAC Data Guard on Podman using Oracle RAC Database Container Image](#section-22-set-up-oracle-rac-data-guard-on-podman-using-oracle-rac-database-container-image) + - [Deploying Oracle RAC Primary Container with Block Devices on Podman with Oracle RAC Container Image](#deploying-oracle-rac-primary-container-with-block-devices-and-oracle-rac-container-image) + - [Deploying Oracle RAC Primary Container With Oracle RAC Storage Container on Podman with Oracle RAC Container Image](#deploying-oracle-rac-primary-container-with-oracle-rac-storage-container-on-podman-with-oracle-rac-container-image) + - [Deploying Oracle RAC Standby Container with Block Devices on Podman with Oracle RAC Container Image](#deploying-oracle-rac-standby-container-with-block-devices-on-podman-with-oracle-rac-container-image) + - [Deploying Oracle RAC Standby Container With Oracle RAC Storage Container on Podman with Oracle RAC Container Image](#deploying-oracle-rac-standby-container-with-oracle-rac-storage-container-on-podman-with-oracle-rac-container-image) + - [Section 2.3: Setup RAC Data Guard on Podman using Oracle RAC Database Container Slim Image](#section-23-set-up-oracle-rac-containers-on-podman-using-oracle-rac-database-container-slim-image) + - [Deploying Oracle RAC Primary Container with Block Devices on Podman with Slim Image](#deploying-oracle-rac-primary-container-with-block-devices-on-podman-with-slim-image) + - [Deploying Oracle RAC Primary Container With Oracle RAC Storage Container on Podman with Slim Image](#deploying-oracle-rac-primary-container-with-oracle-rac-storage-container-on-podman-with-slim-image) + - [Deploying Oracle RAC Standby Container with Block Devices on Podman with Slim Image](#deploying-oracle-rac-standby-container-with-block-devices-on-podman-with-slim-image) + - [Deploying Oracle RAC Standby Container With Oracle RAC Storage Container on Podman with Slim Image](#deploying-oracle-rac-standby-container-with-oracle-rac-storage-container-on-podman-with-slim-image) + - [Attach the network to containers](#attach-the-network-to-containers) + - [Start the Primary RAC Database Containers](#start-the-primary-rac-database-containers) + - [Start the Standby RAC Database Containers](#start-the-standby-rac-database-containers) + - [Validating Oracle RAC Environment](#validating-oracle-rac-environment) + - [Connecting to an Oracle RAC Database](#connecting-to-an-oracle-rac-database) + - [Additional Parameter Example to use separate Diskgroups](#additional-parameter-example-to-use-separate-diskgroups) +- [License](#license) +- [Copyright](#copyright) + +## Section 1: Prerequisites for Setting up Oracle RAC Data Guard on Container + +**IMPORTANT :** You must complete all the steps specified in this section before you proceed to the next section. +* Complete the [Preparation Steps for running Oracle RAC Database in containers](../../../OracleRealApplicationClusters/README.md#preparation-steps-for-running-oracle-rac-database-in-containers) +* Create a NFS Volume if you are planning to use NFS Storage for ASM Devices. See [Configuring NFS for Storage for Oracle RAC on Podman](https://review.us.oracle.com/review2/Review.html#reviewId=467473;scope=document;status=open,fixed;documentId=4229197) for more details. **Note:** You can skip this step if you are planning to use block devices for storage. +* Create Oracle Connection Manager on Container (image and container), if the IPs required for Oracle Grid Infrastructure and Oracle RAC are not available on your network. See [RAC Oracle Connection Manager README.MD](../../../OracleConnectionManager/README.md) for more details. +* If you have not downloaded or created the Oracle RAC Container image, then complete the tasks in [Getting Oracle RAC Database Container Images](../../../OracleRealApplicationClusters/README.md#getting-oracle-rac-database-container-images) +* Complete the steps in [Network Management](../../../OracleRealApplicationClusters/README.md#network-management). +* Complete the steps in [Password Management](../../../OracleRealApplicationClusters/README.md#password-management). + +## Section 2: Oracle RAC Data Guard on Podman + +**Note** Oracle RAC is supported for production use on Podman starting with Oracle Database 19c (19.16), Oracle Database 21c (21.7), and onwards. You can deploy Oracle RAC on Podman using the prebuilt images available on Oracle Container Registry. + +For Oracle RAC Data Guard on Podman deployment, the supported version is 26ai. + +To create an Oracle RAC Data Guard environment on Podman, you must complete each of the following steps in the order in which they are listed. + +### Section 2.1: Prerequisites for Running Oracle RAC Data Guard on Podman +Before proceeding further, complete all of the prerequisites required for the Oracle RAC Podman host machine for Oracle RAC Containers. For more details related to preparation of the host machine, see [Preparation Steps for running Oracle RAC Database in containers](../../../OracleRealApplicationClusters/README.md#preparation-steps-for-running-oracle-rac-database-in-containers) +* Validate the host machine for supported operating system version (Oracle Linux 9.3 or later (OL9.3), Unbreakable Enterprise Kernel Release 7 or later (UEKR7), 32 GB or more memory, 32 GB or more allocated to Swap, 4 GB or more allocated to shared memory (shm), and so on. +* Update /etc/sysctl.conf +* Set up node directories for Slim Image +* Set up chronyd service +* Set up tsc clock (if available). +* Install Podman +* Install Podman Compose +* Set up and load SELinux modules +* Create Oracle RAC Podman secrets + +### Section 2.2: Set up Oracle RAC Data Guard on Podman using Oracle RAC Database Container Image + +This section provides a step-by-step procedure to deploy Oracle RAC on a container with block devices and a storage container using the Oracle RAC Database Container Image. To create the Oracle RAC Database Container Image, see [Building Oracle RAC Database Container Image](../../../OracleRealApplicationClusters/README.md#building-oracle-rac-database-container-image) + +To understand the details of required environment variables, see [Environment Variables for Oracle RAC on Containers](../../../OracleRealApplicationClusters/docs/rac-container/racimage/README.md#environment-variables-for-oracle-rac-on-containers) + +For details of additional environment parameters that you use with separate diskgroups, see [Additional Parameter Example to use separate Diskgroups](#additional-parameter-example-to-use-separate-diskgroups) + +Complete the steps in [Network Management](../../../OracleRealApplicationClusters/README.md#network-management) and set up the network on a container host based on your Oracle RAC environment. If you have already completed the setup, then you can skip this step and continue to the next step. +Complete the steps in [Password Management](../../../OracleRealApplicationClusters/README.md#password-management) and set up the password on a container host based on your Oracle RAC environment. If you have already completed the setup, then you can skip this step and continue to the next step. + +#### Deploying Oracle RAC Primary Container with Block Devices and Oracle RAC Container Image + +If you are using an NFS volume, then skip to the section [Deploying Oracle RAC Primary on Container With Oracle RAC Storage Container on Podman with Oracle RAC Container Image](#deploying-oracle-rac-primary-container-with-oracle-rac-storage-container-on-podman-with-oracle-rac-container-image) + +Ensure that the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: + + ```bash + dd if=/dev/zero of=/dev/xvde bs=8k count=100000 + ``` + +Next, create the Oracle RAC primary containers using the image. You can use the following example to see how to create a container: + +1. Create `racnodep1` primary on `podman-host-01` podman host. + ```bash + podman create -t -i \ + --hostname racnodep1 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.170 \ + -e CRS_PRIVATE_IP2=192.168.18.170 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e SCAN_NAME=racnodepc1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e INSTALL_NODE=racnodep1 \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + --device=/dev/oracleoci/oraclevdd:/dev/asm-disk1 \ + --device=/dev/oracleoci/oraclevde:/dev/asm-disk2 \ + -e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ + -e OP_TYPE=setuprac \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep1 \ + localhost/oracle/database-rac:23.26ai + ``` + + 2. Create `racnodep2` primary on `podman-host-02` podman host. + + ```bash + podman create -t -i \ + --hostname racnodep2 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.171 \ + -e CRS_PRIVATE_IP2=192.168.18.171 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e SCAN_NAME=racnodepc1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e INSTALL_NODE=racnodep1 \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + --device=/dev/oracleoci/oraclevdd:/dev/asm-disk1:rwm \ + --device=/dev/oracleoci/oraclevde:/dev/asm-disk2:rwm \ + -e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ + -e OP_TYPE=setuprac \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep2 \ + localhost/oracle/database-rac:23.26ai + ``` + +**Note:** Change environment variables such as `PRIVATE_IP1_LIST`, `PRIVATE_IP1_LIST`, `PUBLIC_HOST_DOMAIN`, `CRS_NODES`, `SCAN_NAME`, `CRS_ASM_DEVICE_LIST`, `CRS_ASM_DISCOVERY_STRING` to the correct values, based on your environment. Also, ensure that you use the correct device names for your environment on each host. +For details about the available environment variables, see [Environment Variables for Oracle RAC on Containers](../../../OracleRealApplicationClusters/docs/rac-container/racimage/README.md#environment-variables-for-oracle-rac-on-containers) + +**Note:** You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +#### Deploying Oracle RAC Primary Container With Oracle RAC Storage Container on Podman with Oracle RAC Container Image + +If you are using block devices, then skip to the section [Deploying Oracle RAC Primary Container with Block Devices on Podman with Oracle RAC Container Image](#deploying-oracle-rac-primary-container-with-block-devices-and-oracle-rac-container-image) + +Create the Oracle RAC container using the image. You can use the following example to see how to create a container: + +1. Create `racnodep1` primary on `podman-host-01` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep1 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.170 \ + -e CRS_PRIVATE_IP2=192.168.18.170 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e SCAN_NAME=racnodepc1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e INSTALL_NODE=racnodep1 \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e OP_TYPE=setuprac \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e INSTALL_NODE=racnodep1 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep1 \ + localhost/oracle/database-rac:23.26ai + ``` + +2. Create `racnodep2` primary on `podman-host-02` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep2 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.171 \ + -e CRS_PRIVATE_IP2=192.168.18.171 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e SCAN_NAME=racnodepc1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e INSTALL_NODE=racnodep1 \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e OP_TYPE=setuprac \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e INSTALL_NODE=racnodep1 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep2 \ + localhost/oracle/database-rac:23.26ai + ``` + +**Note:** +* Change environment variables such as `PRIVATE_IP1_LIST`, `PRIVATE_IP1_LIST`, `PUBLIC_HOST_DOMAIN`, `CRS_NODES`, `SCAN_NAME`, `CRS_ASM_DEVICE_LIST`, `CRS_ASM_DISCOVERY_STRING` to the correct values based on your environment. Also, ensure that you use the correct device names on each host in your environment. + +* You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +* You must have created the `racstorage` volume before attempting to create the Oracle RAC Container. For details about the available environment variables, see [Environment Variables for Oracle RAC on Containers](../../../OracleRealApplicationClusters/docs/rac-container/racimage/README.md#environment-variables-for-oracle-rac-on-containers) + +#### Deploying Oracle RAC Standby Container with Block Devices on Podman with Oracle RAC Container Image + +If you are using an NFS volume, then skip to the section [Deploying Oracle RAC Standby on Container With Oracle RAC Storage Container on Podman with Oracle RAC Container Image](#deploying-oracle-rac-standby-container-with-oracle-rac-storage-container-on-podman-with-oracle-rac-container-image) + +Ensure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: + + ```bash + dd if=/dev/zero of=/dev/xvde bs=8k count=100000 + ``` + +Next, create the Oracle RAC Standby container using the image. For details about the available environment variables, see [Environment Variables Explained for Oracle RAC on Podman](../../../OracleRealApplicationClusters/docs/ENVIRONMENTVARIABLES.md). You can use the following example to create a container: + + +1. Create `racnodep3` standby on `podman-host-03` podman host. + + ```bash +podman create -t -i \ +--hostname racnodep3 \ +--dns-search "example.info" \ +--dns 10.0.20.25 \ +--shm-size 4G \ +--cpuset-cpus 0-1 \ +--memory 16G \ +--memory-swap 32G \ +--sysctl kernel.shmall=2097152 \ +--sysctl "kernel.sem=250 32000 100 128" \ +--sysctl kernel.shmmax=8589934592 \ +--sysctl kernel.shmmni=4096 \ +--sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ +--sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ +--cap-add=SYS_RESOURCE \ +--cap-add=NET_ADMIN \ +--cap-add=SYS_NICE \ +--cap-add=AUDIT_WRITE \ +--cap-add=AUDIT_CONTROL \ +--cap-add=NET_RAW \ +--secret pwdsecret \ +--secret keysecret \ +--health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ +-e DNS_SERVERS="10.0.20.25" \ +-e CRS_PRIVATE_IP1=192.168.17.172 \ +-e CRS_PRIVATE_IP2=192.168.18.172 \ +-e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ +-e SCAN_NAME=racnodepc2-scan \ +-e INIT_SGA_SIZE=3G \ +-e INIT_PGA_SIZE=2G \ +-e INSTALL_NODE=racnodep3 \ +-e DB_PWD_FILE=pwdsecret \ +-e PWD_KEY=keysecret \ +--device=/dev/oracleoci/oraclevdf:/dev/asm-disk1:rwm \ +--device=/dev/oracleoci/oraclevdg:/dev/asm-disk2:rwm \ +-e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ +-e DB_UNIQUE_NAME=SORCLCDB \ +-e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ +-e CRS_ASM_DISKGROUP="+STDBYDATA" \ +-e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ +-e PRIMARY_DB_NAME=ORCLCDB \ +-e OP_TYPE=setupracstandby \ +-e DB_BLOCK_CHECKSUM=TYPICAL \ +--restart=always \ +--ulimit rtprio=99 \ +--systemd=always \ +--name racnodep3 \ +localhost/oracle/database-rac:23.26ai + ``` + + 2. Create `racnodep4` standby on `podman-host-04` podman host. + + ```bash +podman create -t -i \ +--hostname racnodep4 \ +--dns-search "example.info" \ +--dns 10.0.20.25 \ +--shm-size 4G \ +--env ContainerType=RAC \ +--cpuset-cpus 0-1 \ +--memory 16G \ +--memory-swap 32G \ +--sysctl kernel.shmall=2097152 \ +--sysctl "kernel.sem=250 32000 100 128" \ +--sysctl kernel.shmmax=8589934592 \ +--sysctl kernel.shmmni=4096 \ +--sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ +--sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ +--cap-add=SYS_RESOURCE \ +--cap-add=NET_ADMIN \ +--cap-add=SYS_NICE \ +--cap-add=AUDIT_WRITE \ +--cap-add=AUDIT_CONTROL \ +--cap-add=NET_RAW \ +--secret pwdsecret \ +--secret keysecret \ +--health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ +-e DNS_SERVERS="10.0.20.25" \ +-e CRS_PRIVATE_IP1=192.168.17.173 \ +-e CRS_PRIVATE_IP2=192.168.18.173 \ +-e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ +-e SCAN_NAME=racnodepc2-scan \ +-e INIT_SGA_SIZE=3G \ +-e INIT_PGA_SIZE=2G \ +-e INSTALL_NODE=racnodep3 \ +-e DB_PWD_FILE=pwdsecret \ +-e PWD_KEY=keysecret \ +-e GRID_HOME=/u01/app/26ai/grid \ +--device=/dev/oracleoci/oraclevdf:/dev/asm-disk1:rwm \ +--device=/dev/oracleoci/oraclevdg:/dev/asm-disk2:rwm \ +-e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ +-e DB_UNIQUE_NAME=SORCLCDB \ +-e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ +-e CRS_ASM_DISKGROUP="+STDBYDATA" \ +-e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ +-e PRIMARY_DB_NAME=ORCLCDB \ +-e OP_TYPE=setupracstandby \ +-e DB_BLOCK_CHECKSUM=TYPICAL \ +--restart=always \ +--ulimit rtprio=99 \ +--systemd=always \ +--name racnodep4 \ +localhost/oracle/database-rac:23.26ai +``` + +**Note:** You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +#### Deploying Oracle RAC Standby Container With Oracle RAC Storage Container on Podman with Oracle RAC Container Image + +If you are using block devices, then skip to the section [Deploying Oracle RAC Standby Container with Block Devices on Podman with Oracle RAC Container Image](#deploying-oracle-rac-standby-container-with-block-devices-on-podman-with-oracle-rac-container-image) + +Create the Oracle RAC container using the image. You can use the following example to create a container: + + +1. Create `racnodep3` standby on `podman-host-03` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep3 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.172 \ + -e CRS_PRIVATE_IP2=192.168.18.172 \ + -e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ + -e SCAN_NAME=racnodepc2-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e DB_UNIQUE_NAME=SORCLCDB \ + -e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ + -e CRS_ASM_DISKGROUP="+STDBYDATA" \ + -e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ + -e PRIMARY_DB_NAME=ORCLCDB \ + -e OP_TYPE=setupracstandby \ + -e INSTALL_NODE=racnodep3 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep3 \ + localhost/oracle/database-rac:23.26ai + ``` + +2. Create `racnodep4` standby on `podman-host-04` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep4 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.173 \ + -e CRS_PRIVATE_IP2=192.168.18.173 \ + -e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ + -e SCAN_NAME=racnodepc2-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e DB_UNIQUE_NAME=SORCLCDB \ + -e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ + -e CRS_ASM_DISKGROUP="+STDBYDATA" \ + -e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ + -e PRIMARY_DB_NAME=ORCLCDB \ + -e OP_TYPE=setupracstandby \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e ASM_ON_NAS=True \ + -e INSTALL_NODE=racnodep3 \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep4 \ + localhost/oracle/database-rac:23.26ai + ``` + +**Note:** +* Change environment variables such as `PRIVATE_IP1_LIST`, `PRIVATE_IP1_LIST`, `PUBLIC_HOST_DOMAIN`, `CRS_NODES`, `SCAN_NAME`, `CRS_ASM_DEVICE_LIST`, `CRS_ASM_DISCOVERY_STRING`, `COMMON_OS_PWD_FILE` and `PWD_KEY` to the correct values based on your environment. Also, ensure you use the correct device names on each host in your environment. + +* You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +* You must have created the `racstorage` volume before attempting to create the Oracle RAC Container. +* For details about the available environment variables, see [Environment Variables Explained for Oracle RAC on Podman](../../../OracleRealApplicationClusters/docs/ENVIRONMENTVARIABLES.md) + + +### Section 2.3: Set up Oracle RAC Containers on Podman using Oracle RAC Database Container Slim Image + +This section provides a step-by-step procedure to deploy Oracle RAC on a container with block devices and a storage container using the Oracle RAC Database Container Slim Image. +* To create the Oracle RAC Database Container Slim Image, see [Building Oracle RAC Database Container Slim Image](../../../OracleRealApplicationClusters/README.md#building-oracle-rac-database-container-slim-image) + +* To understand the details about environment variables, see [Environment variables for Oracle RAC on Containers](../../../OracleRealApplicationClusters/docs/rac-container/racslimimage/README.md#section-9-environment-variables-for-oracle-rac-on-containers) +* Execute the [Network Management](../../../OracleRealApplicationClusters/README.md#network-management). +* Execute the [Password Management](../../../OracleRealApplicationClusters/README.md#password-management). + +#### Deploying Oracle RAC Primary Container with Block Devices on Podman with Slim Image + +If you are using an NFS volume, then skip to the section [Deploying Oracle RAC Primary on Container With Oracle RAC Storage Container on Podman with Slim Image](#deploying-oracle-rac-standby-container-with-oracle-rac-storage-container-on-podman-with-slim-image) + +Ensure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: + + ```bash + dd if=/dev/zero of=/dev/xvde bs=8k count=10000 + ``` +Ensure that the downloaded Oracle RAC software location is staged and available for both the Oracle RAC nodes. In the example that follows, we have staged Oracle RAC software in the location `/scratch/software/26ai/goldimages` + ```bash + ls /scratch/software/26ai/goldimages + LINUX.X64_260000_db_home.zip LINUX.X64_260000_grid_home.zip + ``` +If SELinux is enabled on the host machine, then also run the following commands: + ```bash + semanage fcontext -a -t container_file_t /scratch/software/26ai/goldimages/LINUX.X64_260000_grid_home.zip + restorecon -v /scratch/software/26ai/goldimages/LINUX.X64_260000_grid_home.zip + semanage fcontext -a -t container_file_t /scratch/software/26ai/goldimages/LINUX.X64_260000_db_home.zip + restorecon -v /scratch/software/26ai/goldimages/LINUX.X64_260000_db_home.zip + ``` + +Next, create the Oracle RAC primary containers using the image. You can use the following example to see how to create a container. + +For the details about environment variables, see [Environment Variables Explained for Oracle RAC on Podman](../../../OracleRealApplicationClusters/ENVIRONMENTVARIABLES.md) + +1. Create `racnodep1` primary on `podman-host-01` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep1 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.170 \ + -e CRS_PRIVATE_IP2=192.168.18.170 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e SCAN_NAME=racnodepc1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ + -e OP_TYPE=setuprac \ + -e INSTALL_NODE=racnodep1 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e DB_NAME=ORCLCDB \ + --device=/dev/oracleoci/oraclevdd:/dev/asm-disk1:rwm \ + --device=/dev/oracleoci/oraclevde:/dev/asm-disk2:rwm \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep1 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + + 2. Create `racnodep2` primary on `podman-host-02` podman host. + + ```bash + podman create -t -i \ + --hostname racnodep2 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.171 \ + -e CRS_PRIVATE_IP2=192.168.18.171 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e SCAN_NAME=racnodepc1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e DEFAULT_GATEWAY="10.0.20.1" \ + -e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ + -e OP_TYPE=setuprac \ + -e INSTALL_NODE=racnodep1 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e DB_NAME=ORCLCDB \ + --device=/dev/oracleoci/oraclevdd:/dev/asm-disk1:rwm \ + --device=/dev/oracleoci/oraclevde:/dev/asm-disk2:rwm \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep2 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + +**Note:** You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +#### Deploying Oracle RAC Primary Container With Oracle RAC Storage Container on Podman with Slim Image + +If you are using block devices, then skip to the section [Deploying Oracle RAC Primary Container with Block Devices on Podman with Slim Image](#deploying-oracle-rac-standby-container-with-block-devices-on-podman-with-slim-image) + +Create the Oracle RAC container using the image. You can use the following example to see how to create a container: + +1. Create `racnodep1` primary on `podman-host-01` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep1 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.170 \ + -e CRS_PRIVATE_IP2=192.168.18.170 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e SCAN_NAME=racnodep1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e OP_TYPE=setuprac \ + -e INSTALL_NODE=racnodep1 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep1 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + +2. Create `racnodep2` primary on `podman-host-02` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep2 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.171 \ + -e CRS_PRIVATE_IP2=192.168.18.171 \ + -e CRS_NODES="pubhost:racnodep1,viphost:racnodep1-vip;pubhost:racnodep2,viphost:racnodep2-vip" \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e SCAN_NAME=racnodep1-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e OP_TYPE=setuprac \ + -e INSTALL_NODE=racnodep1 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep2 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + +**Note:** +* You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +* You must have created the `racstorage` volume before attempting to create the Oracle RAC Container. For details about the available environment variables, see [Environment Variables Explained for Oracle RAC on Podman](../../../OracleRealApplicationClusters/docs/ENVIRONMENTVARIABLES.md) + +#### Deploying Oracle RAC Standby Container with Block Devices on Podman with Slim Image + +If you are using an NFS volume, then skip to the section [Deploying Oracle RAC Standby on Container With Oracle RAC Storage Container on Podman with Slim Image](#deploying-oracle-rac-standby-container-with-oracle-rac-storage-container-on-podman-with-oracle-rac-container-image) + +Ensure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: + + ```bash + dd if=/dev/zero of=/dev/xvde bs=8k count=10000 + ``` + + +Ensure that the downloaded Oracle RAC software location is staged and available for both Oracle RAC nodes. In the example that follows, we have staged Oracle RAC software in the location `/scratch/software/26ai/goldimages` + ```bash + ls /scratch/software/26ai/goldimages + LINUX.X64_260000_db_home.zip LINUX.X64_260000_grid_home.zip + ``` +If SELinux is enabled on the host machine, then run the following commands: + ```bash + semanage fcontext -a -t container_file_t /scratch/software/26ai/goldimages/LINUX.X64_260000_grid_home.zip + restorecon -v /scratch/software/26ai/goldimages/LINUX.X64_260000_grid_home.zip + semanage fcontext -a -t container_file_t /scratch/software/26ai/goldimages/LINUX.X64_260000_db_home.zip + restorecon -v /scratch/software/26ai/goldimages/LINUX.X64_260000_db_home.zip + ``` + +Next, create the Oracle RAC Standby container using the image. You can use the following example to see how to create a container. + +For the details about environment variables, see [Environment Variables Explained for Oracle RAC on Podman](../../../OracleRealApplicationClusters/docs/ENVIRONMENTVARIABLES.md) + +1. Create `racnodep3` standby on `podman-host-03` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep3 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.172 \ + -e CRS_PRIVATE_IP2=192.168.18.172 \ + -e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ + -e SCAN_NAME=racnodepc2-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e DB_UNIQUE_NAME=SORCLCDB \ + -e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ + -e CRS_ASM_DISKGROUP="+STDBYDATA" \ + -e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ + -e PRIMARY_DB_NAME=ORCLCDB \ + -e OP_TYPE=setupracstandby \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e INSTALL_NODE=racnodep3 \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e DB_NAME=ORCLCDB \ + --device=/dev/oracleoci/oraclevdf:/dev/asm-disk1:rwm \ + --device=/dev/oracleoci/oraclevdg:/dev/asm-disk2:rwm \ + -e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep3 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + + 2. Create `racnodep4` standby on `podman-host-04` podman host. + + ```bash +podman create -t -i \ + --hostname racnodep4 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.173 \ + -e CRS_PRIVATE_IP2=192.168.18.173 \ + -e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ + -e SCAN_NAME=racnodepc2-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e DB_UNIQUE_NAME=SORCLCDB \ + -e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ + -e CRS_ASM_DISKGROUP="+STDBYDATA" \ + -e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ + -e PRIMARY_DB_NAME=ORCLCDB \ + -e OP_TYPE=setupracstandby \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e INSTALL_NODE=racnodep3 \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e DB_NAME=ORCLCDB \ + --device=/dev/oracleoci/oraclevdf:/dev/asm-disk1:rwm \ + --device=/dev/oracleoci/oraclevdg:/dev/asm-disk2:rwm \ + -e CRS_ASM_DEVICE_LIST=/dev/asm-disk1,/dev/asm-disk2 \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep4 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + +**Note:** You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +#### Deploying Oracle RAC Standby Container With Oracle RAC Storage Container on Podman with Slim Image + +If you are using block devices, then skip to the section [Deploying Oracle RAC Standby Container with Block Devices on Podman with Slim Image](#deploying-oracle-rac-primary-container-with-oracle-rac-storage-container-on-podman-with-slim-image) +Create the Oracle RAC container using the image. You can use the following example to see how to create a container: + + +1. Create `racnodep3` standby on `podman-host-03` podman host. + + ```bash + podman create -t -i \ + --hostname racnodep3 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.172 \ + -e CRS_PRIVATE_IP2=192.168.18.172 \ + -e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e SCAN_NAME=racnodep2-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e DB_UNIQUE_NAME=SORCLCDB \ + -e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ + -e CRS_ASM_DISKGROUP="+STDBYDATA" \ + -e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ + -e PRIMARY_DB_NAME=ORCLCDB \ + -e OP_TYPE=setupracstandby \ + -e INSTALL_NODE=racnodep3 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e DB_NAME=ORCLCDB \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep3 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + +2. Create `racnodep4` standby on `podman-host-04` podman host. + + ```bash + podman create -t -i \ + --hostname racnodep4 \ + --dns-search "example.info" \ + --dns 10.0.20.25 \ + --shm-size 4G \ + --volume /scratch:/scratch \ + --volume racstorage:/oradata \ + --cpuset-cpus 0-1 \ + --memory 16G \ + --memory-swap 32G \ + --sysctl 'net.ipv4.conf.eth1.rp_filter=2' \ + --sysctl 'net.ipv4.conf.eth2.rp_filter=2' \ + --sysctl kernel.shmall=2097152 \ + --sysctl "kernel.sem=250 32000 100 128" \ + --sysctl kernel.shmmax=8589934592 \ + --sysctl kernel.shmmni=4096 \ + --cap-add=SYS_RESOURCE \ + --cap-add=NET_ADMIN \ + --cap-add=SYS_NICE \ + --cap-add=AUDIT_WRITE \ + --cap-add=AUDIT_CONTROL \ + --cap-add=NET_RAW \ + --secret pwdsecret \ + --secret keysecret \ + --health-cmd "/bin/python3 /opt/scripts/startup/scripts/main.py --checkracstatus" \ + -e DNS_SERVERS="10.0.20.25" \ + -e DB_SERVICE=service:soepdb \ + -e CRS_PRIVATE_IP1=192.168.17.173 \ + -e CRS_PRIVATE_IP2=192.168.18.173 \ + -e CRS_NODES="pubhost:racnodep3,viphost:racnodep3-vip;pubhost:racnodep4,viphost:racnodep4-vip" \ + -e GRID_HOME=/u01/app/26ai/grid \ + -e GRID_BASE=/u01/app/grid \ + -e DB_HOME=/u01/app/oracle/product/26ai/dbhome_1 \ + -e DB_BASE=/u01/app/oracle \ + -e INVENTORY=/u01/app/oraInventory \ + -e STAGING_SOFTWARE_LOC=/scratch/software/26ai/goldimages \ + -e GRID_SW_ZIP_FILE=LINUX.X64_260000_grid_home.zip \ + -e DB_SW_ZIP_FILE=LINUX.X64_260000_db_home.zip \ + -e SCAN_NAME=racnodep2-scan \ + -e INIT_SGA_SIZE=3G \ + -e INIT_PGA_SIZE=2G \ + -e DB_PWD_FILE=pwdsecret \ + -e PWD_KEY=keysecret \ + -e CRS_ASM_DEVICE_LIST=/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img \ + -e CRS_ASM_DISCOVERY_STRING="/oradata/asm_disk*" \ + -e DB_UNIQUE_NAME=SORCLCDB \ + -e PRIMARY_DB_SCAN_NAME=racnodepc1-scan \ + -e CRS_ASM_DISKGROUP="+STDBYDATA" \ + -e PRIMARY_DB_UNIQUE_NAME=ORCLCDB \ + -e PRIMARY_DB_NAME=ORCLCDB \ + -e OP_TYPE=setupracstandby \ + -e INSTALL_NODE=racnodep3 \ + -e DB_BLOCK_CHECKSUM=TYPICAL \ + -e DB_NAME=ORCLCDB \ + -e ASM_ON_NAS=True \ + --restart=always \ + --ulimit rtprio=99 \ + --systemd=always \ + --name racnodep4 \ + localhost/oracle/database-rac:23.26ai-slim + ``` + +**Note:** You can use the Linux capabilities feature (`--cap-add=NET_RAW`) only when you are using a Podman Image based on Oracle Linux 9. + +* You must have created the `racstorage` volume before attempting to create the Oracle RAC Container. +* For details about the available environment variables, see [Environment Variables Explained for Oracle RAC on Podman](../../../OracleRealApplicationClusters/docs/ENVIRONMENTVARIABLES.md) + + +## Attach the network to containers + +After the containers are created, you must assign the Podman networks you created based on [Network Management](../../../OracleRealApplicationClusters/README.md#network-management) to containers. Run the following commands: + + +Attach the network to `racnodep1` +```bash +podman network disconnect podman racnodep1 +podman network connect rac_pub1_nw --ip 10.0.20.170 racnodep1 +podman network connect rac_priv1_nw --ip 192.168.17.170 racnodep1 +podman network connect rac_priv2_nw --ip 192.168.18.170 racnodep1 +``` + +Attach the network to `racnodep2` +```bash +podman network disconnect podman racnodep2 +podman network connect rac_pub1_nw --ip 10.0.20.171 racnodep2 +podman network connect rac_priv1_nw --ip 192.168.17.171 racnodep2 +podman network connect rac_priv2_nw --ip 192.168.18.171 racnodep2 +``` + +Attach the network to `racnodep3` +```bash +podman network disconnect podman racnodep3 +podman network connect rac_pub1_nw --ip 10.0.20.172 racnodep3 +podman network connect rac_priv1_nw --ip 192.168.17.172 racnodep3 +podman network connect rac_priv2_nw --ip 192.168.18.172 racnodep3 +``` + +Attach the network to `racnodep4` +```bash +podman network disconnect podman racnodep4 +podman network connect rac_pub1_nw --ip 10.0.20.173 racnodep4 +podman network connect rac_priv1_nw --ip 192.168.17.173 racnodep4 +podman network connect rac_priv2_nw --ip 192.168.18.173 racnodep4 +``` + +## Start the Primary Oracle RAC Database Containers + +First start the Primary Oracle RAC Database Container. Run the following commands: + +#### Start racnodep1 + +```bash +podman start racnodep1 +``` + +#### Start racnodep2 + +```bash +podman start racnodep2 +``` + +To check the logs, run the following command from another terminal session: + +```bash +podman exec racnodep1 /bin/bash -c "tail -f /var/tmp/oracle_db_setup.log" +``` + +At the completion of a successful deployment, you should see a database creation success message similar to the following: + +```bash +=================================== + ORACLE RAC DATABASE IS READY TO USE +=================================== +``` + +After you see this message for the Primary RAC Database Installation Node Container (`racnodep1` in this example), the Primary Oracle RAC Database Setup is complete. + + +## Start the Standby RAC Database Containers + +Once the Primary RAC Database Setup is ready, start the Standby RAC Database Containers. Please execute following command: + +#### Start racnodep3 + +```bash +podman start racnodep3 +``` + +#### Start racnodep4 + +```bash +podman start racnodep4 +``` + +To check the logs, use following command from another terminal session: + +```bash +podman exec racnodep3 /bin/bash -c "tail -f /var/tmp/oracle_db_setup.log" +``` + +Once the Oracle RAC Standby Database setup is completed, you should see the DGMGRL configuration enabled in the above logs. + +**Note** +* It can take at least 60 minutes or longer to create and setup 2 node RAC Primary and Standby setup. + +## Validating Oracle Data Guard Container Environment +You can validate if environment is healthy by running below command- +```bash +podman ps -a + +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +2f42e49758d1 localhost/oracle/database-rac:23.26ai 2 hours ago Up 37 minutes (healthy) racnodep1 +a27fceea9fe6 localhost/oracle/database-rac:23.26ai 2 hours ago Up 37 minutes (healthy) racnodep2 +4b901525bdef localhost/oracle/database-rac:23.26ai About an hour ago Up 18 minutes (starting) racnodep3 +d4568ecaeb24 localhost/oracle/database-rac:23.26ai About an hour ago Up 18 minutes (starting) racnodep4 +``` +Note: +- Look for `(healthy)` next to container names under `STATUS` section. + +## Connecting to an Oracle RAC Database + +**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. +Refer [README](../../docs/CONNECTING.md) for instructions on how to connect to Oracle RAC Database. + +## Additional Parameter Example to use separate Diskgroups + +In case you want to use different Diskgroups for the CRS Voting Disk, Database Files and Database Recovery Area, you can do that using additional parameters while creating the RAC Containers. + +Example: If you want to create: + +- Diskgroup CRSDATA with disk "/dev/asm-disk1" to use for CRS Voting Files +- Diskgroup DBDATA with disk "/dev/asm-disk2" to use for Database DATA Files +- Diskgroup RECODATA with disk "/dev/asm-disk3" to use for Database Recovery Area + +then, you will need to specify below parameters: + +```bash +-e CRS_ASM_DEVICE_LIST=/dev/asm-disk1 \ +-e CRS_ASM_DISCOVERY_STRING="/dev/asm-disk*" \ +-e CRS_ASM_DISKGROUP='+CRSDATA' \ +-e DB_ASM_DEVICE_LIST=/dev/asm-disk2 \ +-e DB_CREATE_FILE_DEST="+DBDATA" \ +-e DB_DATA_FILE_DEST="+DBDATA" \ +-e RECO_ASM_DEVICE_LIST=/dev/asm-disk3 \ +-e DB_RECOVERY_FILE_DEST="+RECODATA" \ +-e DB_ASMDG_PROPERTIES="name=DBDATA" \ +-e RECO_ASMDG_PROPERTIES="name=RECODATA" \ +``` +Similarly, in order to setup RAC with CMAN Container , you will need to specify below parameters as well.- + +- CMAN_HOST Hostname of CMAN Container +- CMAN_PORT Port of CMAN Container Exposed for Connection + +Below is example in order to setup RAC with CMAN Container- + +```bash +-e CMAN_HOST=racnodepc1-cman \ +-e CMAN_PORT=1521 \ +``` + +Refer [Environment Variables Explained for Oracle RAC on Podman](../ENVIRONMENTVARIABLES.md) for more details. + +## License + +To download and run Oracle Grid and Database, regardless of whether inside or outside a container, you must download the binaries from the Oracle website and accept the license indicated on that page. + +All scripts and files hosted in this repository which are required to build the container images are, unless otherwise noted, released under UPL 1.0 license. + +## Copyright + +Copyright (c) 2014-2024 Oracle and/or its affiliates. diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/OTHERS.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/OTHERS.md index 5287d84fdc..753a5fdbc4 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/OTHERS.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/OTHERS.md @@ -1,6 +1,6 @@ # Oracle Real Application Clusters in Linux Containers for Developers -Learn about container deployment options for Oracle Real Application Clusters (Oracle RAC) Release 23.26ai (26ai). +Learn about container deployment options for Oracle Real Application Clusters (Oracle RAC) Release 23.26ai (Oracle AI Database 26ai). ## Overview of Running Oracle RAC in Containers @@ -9,7 +9,7 @@ Oracle Real Application Clusters (Oracle RAC) is an option for the award-winning Oracle RAC uses Oracle Clusterware as a portable cluster software that allows clustering of independent servers so that they cooperate as a single system, and Oracle Automatic Storage Management (Oracle ASM) to provide simplified storage management that is consistent across all servers and storage platforms. Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy-to-deploy software package. -For more information on Oracle RAC Database 23.26ai, refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). +For more information on Oracle RAC Database 23.26ai (Oracle AI Database 26ai), refer to the [Oracle Database documentation](https://docs.oracle.com/en/database/oracle/oracle-database/26/racpd/target-configuration-oracle-rac-podman.html). This guide helps you install Oracle RAC on Containers on Host Machines as explained in detail below. With the current release, you prepare the host machine, build or use pre-built Oracle RAC Container Images 23.26ai, and set up Oracle RAC on Single or Multiple Host machines with Oracle ASM. In this installation guide, we use [Podman](https://docs.podman.io/en/v3.0/) to create Oracle RAC Containers and manage them. @@ -27,7 +27,7 @@ To create an Oracle RAC environment, follow these steps: - [Network Management](#network-management) - [Password Management](#password-management) - [Oracle RAC on Containers Deployment Scenarios](#oracle-rac-on-containers-deployment-scenarios) - - [Oracle RAC Containers on Podman](#oracle-rac-containers-on-podman) + - [Oracle RAC Containers on Podman](#oracle-rac-containers-on-podman) - [Setup Using Oracle RAC Image](#1-setup-using-oracle-rac-container-image) - [Setup Using Oracle RAC Slim Image](#2-setup-using-oracle-rac-container-slim-image) - [Connecting to an Oracle RAC Database](#connecting-to-an-oracle-rac-database) @@ -64,10 +64,10 @@ Also, when you are performing the installation using any files from a Podman hos * To resolve VIPs and SCAN IPs, in this guide we use a DNS container. Before proceeding to the next step, create a [DNS server container](../OracleDNSServer/README.md). If you have a preconfigured DNS server in your environment, then you can replace `-e DNS_SERVERS=10.0.20.25`, `--dns=10.0.20.25`, `-e DOMAIN=example.info`, and `--dns-search=example.info` parameters in the examples in this guide with the `DOMAIN_NAME` and `DNS_SERVER` based on your environment. -* The Oracle RAC `Containerfile` does not contain any Oracle software binaries. Download the following software from the [Oracle Technology Network](https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html), if you are planning to build Oracle RAC Container Images from the next section. +* The Oracle RAC `Containerfile` does not contain any Oracle software binaries. Download the following software from the [Oracle Database 26ai for Linux download page](https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html), if you are planning to build Oracle RAC Container Images from the next section. However, if you are using pre-built RAC images from the Oracle Container Registry, you can skip this step. - - Oracle Grid Infrastructure 23.26ai (26ai) for Linux x86-64 - - Oracle Database 23.26ai (26ai) for Linux x86-64 + - Oracle Grid Infrastructure 23.26ai (Oracle AI Database 26ai) for Linux x86-64 + - Oracle Database 23.26ai (Oracle AI Database 26ai) for Linux x86-64 **Notes** @@ -117,7 +117,7 @@ Before you begin, you must download grid and database binaries and stage them un ```bash ./buildContainerImage.sh -v ``` -Example: Building Oracle RAC image for v 23.26.0- +Example: Building Oracle RAC image for 23.26ai- ```bash ./buildContainerImage.sh -v 23.26.0 ``` @@ -127,7 +127,7 @@ In this document, an Oracle RAC container slim image refers to a container image ```bash ./buildContainerImage.sh -v -i -o '--build-arg SLIMMING=true' ``` - Example: Building Oracle Slim Image for version 23.26.0- + Example: Building Oracle Slim Image for version 23.26ai- ```bash ./buildContainerImage.sh -v 23.26.0 -i -o '--build-arg SLIMMING=true' ``` @@ -139,7 +139,7 @@ In this document, an Oracle RAC container slim image refers to a container image ```text -v: version to build -i: ignore the MD5 checksums - -t: user-defined image name and tag (e.g., image_name:tag). Default is set to `oracle/database-rac:` for RAC Image and `oracle/database-rac:-slim` for RAC slim image. + -t: user-defined image name and tag (e.g., image_name:tag). Default is set to `oracle/database-rac:` for RAC Image and `oracle/database-rac:-slim` for RAC slim image. -o: passes on container build option (e.g., --build-arg SLIMMIMG=true for slim,--build-arg BASE_OL_IMAGE=oraclelinux:9 to change base image). The default is "--build-arg SLIMMING=false" ``` - Ensure that you have enough space in `/var/lib/containers` while building the Oracle RAC image. Also, if required use `export TMPDIR=` for Podman to refer to any other folder as the temporary podman cache location instead of the default '/tmp' location. @@ -241,7 +241,7 @@ Oracle RAC can be deployed with various scenarios, such as using podman vs podma ## Connecting to an Oracle RAC Database -**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. +**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. Refer to the [README](./CONNECTING.md) for instructions on how to connect to the Oracle RAC Database. ## Deletion of Node from Oracle RAC Cluster @@ -255,8 +255,8 @@ If you want to build a patched image based on a base container image, then refer This project offers example container files for Oracle Grid Infrastructure and Oracle Real Application Clusters for dev and test: -* Oracle Database 23.26ai Oracle Grid Infrastructure (26ai) for Linux x86-64 -* Oracle Database 23.26ai (26ai) for Linux x86-64 +* Oracle Database 23.26ai (Oracle AI Database 26ai) Oracle Grid Infrastructure for Linux x86-64 +* Oracle Database 23.26ai (Oracle AI Database 26ai) for Linux x86-64 * Oracle Database 21c Oracle Grid Infrastructure (21.3) for Linux x86-64 * Oracle Database 21c (21.3) for Linux x86-64 * Oracle Database 19c Oracle Grid Infrastructure (19.3) for Linux x86-64 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/README.md index 5bf817d29f..080bda70ca 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/developers/README.md @@ -6,7 +6,7 @@ Learn about container deployment options for Oracle Real Application Clusters (O Oracle Real Application Clusters (Oracle RAC) is an option for the award-winning Oracle Database Enterprise Edition. Oracle RAC is a cluster database with a shared cache architecture that overcomes the limitations of traditional shared-nothing and shared-disk approaches to provide highly scalable and available database solutions for all business applications. Oracle RAC uses Oracle Clusterware as a portable cluster software that allows clustering of independent servers so that they cooperate as a single system and Oracle Automatic Storage Management (Oracle ASM) to provide simplified storage management that is consistent across all servers and storage platforms. -Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy-to-deploy software package. For more information on Oracle RAC Database 23.26ai refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). +Oracle Clusterware and Oracle ASM are part of the Oracle Grid Infrastructure, which bundles both solutions in an easy-to-deploy software package. For more information on Oracle RAC Database 26ai refer to the [Oracle Database documentation](http://docs.oracle.com/en/database/). This guide helps you install Oracle RAC on Containers on Host Machines as explained in detail below. With the current release, you prepare the host machine, build or use pre-built Oracle RAC Container Images, and setup Oracle RAC on Single or Multiple Host machines with Oracle ASM. In this installation guide, we use [Podman](https://docs.podman.io/en/v3.0/) to create Oracle RAC Containers and manage them. @@ -42,7 +42,7 @@ We have pre-created script `setup_rac_host.sh` which will prepare the podman hos - Install Podman - Install Podman Compose - Setup and Load SELinux modules - - Create Oracle RAC Podman secrets + - Create Oracle RAC Podman secrets **Note :** All below steps or commands in this QuickStart needs to be run as a `sudo` or `root` user. * In this quickstart, our working directory is `/docker-images/OracleDatabase/RAC/OracleRealApplicationClusters/containerfiles` from where all commands are executed. @@ -69,7 +69,7 @@ Refer [this documentation](https://docs.oracle.com/en/operating-systems/oracle-l Example Oracle Container Registry tags: ```bash -# Oracle Linux 9, Oracle RAC 23.26ai +# Oracle Linux 9, Oracle RAC 26ai podman pull container-registry.oracle.com/database/rac:latest podman tag container-registry.oracle.com/database/rac:latest localhost/oracle/database-rac:23.26ai @@ -83,7 +83,7 @@ podman tag container-registry.oracle.com/database/rac_ru:latest localhost/oracle ``` **Notes** -- Use `container-registry.oracle.com/database/rac:latest` for Oracle RAC 23.26ai on Oracle Linux 9. +- Use `container-registry.oracle.com/database/rac:latest` for Oracle RAC 26ai on Oracle Linux 9. - Use `container-registry.oracle.com/database/rac_ru:latest-19` for Oracle RAC 19c on Oracle Linux 9. - Use `container-registry.oracle.com/database/rac_ru:latest` for Oracle RAC 21c on Oracle Linux 8. This is the documented Oracle Linux 8 compatibility path because the older `rac_ru` image line retains the cgroup compatibility behavior needed there. - Use the Oracle `DNSServer` Image to deploy a container providing DNS resolutions. Refer [OracleDNSServer](../../../OracleDNSServer/README.md) @@ -163,7 +163,7 @@ OracleRealApplicationClusters/samples/rac-compose/racimage/withoutresponsefiles/ ########################################## ``` - Execute below to deploy Storage Containers- - + ```bash ./setup_rac_host.sh -storage ``` @@ -290,7 +290,7 @@ Refer to [Environment Variables Explained for Oracle RAC on Podman Compose](./EN ## Connecting to an Oracle RAC Database -**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. +**IMPORTANT:** This section assumes that you have successfully created an Oracle RAC cluster using the preceding sections. Refer to the [README](../CONNECTING.md) for instructions on how to connect to the Oracle RAC Database. ## Cleanup diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/orestart/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/orestart/README.md index 1f61124a7c..95c568de27 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/orestart/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/orestart/README.md @@ -7,7 +7,7 @@ Refer [Getting Oracle RAC Database Container Images](../../../OracleRealApplicat - [Oracle Database on Oracle Restart](#oracle-database-on-oracle-restart) - [Section 1: Prerequisites for Setting up Oracle Restart using Oracle RAC Container Image](#section-1-prerequisites-for-setting-up-oracle-cluster-using-oracle-rac-container-image) - - [Section 2: Deploying Oracle Restart using Oracle RAC Image](#section-2-deploying-oracle-restart-using-oracle-rac-image) + - [Section 2: Deploying Oracle Restart using Oracle RAC Image](#section-2-deploying-oracle-restart-using-oracle-rac-image) - [Section 2.1.1: Deploying With Block Devices](#section-211-deploying-with-block-devices) - [Section 3: Attach the network to the container](#section-3-attach-the-network-to-the-container) - [Section 4: Start the container](#section-4-start-the-container) @@ -231,12 +231,12 @@ Database is running. Execute below commands to cleanup Oracle Restart Container Environment- ```bash podman rm -f ${GPCNODE} -podman network inspect rac_pub1_nw &> /dev/null && podman network rm rac_pub1_nw +podman network inspect rac_pub1_nw &> /dev/null && podman network rm rac_pub1_nw ``` Cleanup ASM Disks: ```bash -dd if=/dev/zero of=/dev/oracleoci/oraclevdd bs=8k count=10000 +dd if=/dev/zero of=/dev/oracleoci/oraclevdd bs=8k count=10000 ``` ## Support diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racimage/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racimage/README.md index 72cd225c0e..f1317e260a 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racimage/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racimage/README.md @@ -169,7 +169,7 @@ localhost/oracle/database-rac:23.26ai ##### Section 2.1.2.1: Prerequisites for setting up Oracle RAC with NFS storage devices -* Create an NFS Volume to be used for ASM Devices for Oracle RAC. See the section `Configuring NFS for Storage for Oracle RAC on Podman` in [Oracle Real Application Clusters Installation Guide for Podman](https://docs.oracle.com/cd/F39414_01/racpd/oracle-real-application-clusters-installation-guide-podman-oracle-linux-x86-64.pdf) for more details. +* Create an NFS Volume to be used for ASM Devices for Oracle RAC. See the section `Configuring NFS for Storage for Oracle RAC on Podman` in [Oracle Real Application Clusters Installation Guide for Podman](https://docs.oracle.com/cd/F39414_01/racpd/oracle-real-application-clusters-installation-guide-podman-oracle-linux-x86-64.pdf) for more details. **Note:** You can skip this step if you are planning to use block devices for storage. * Make sure the ASM NFS Storage devices do not have any existing file system. @@ -590,7 +590,7 @@ a27fceea9fe6 localhost/oracle/database-rac:23.26ai 46 ## Section 6: Connecting to Oracle RAC Environment -**IMPORTANT:** Before you connnect to the environment, you must first successfully create an Oracle RAC Database as described in the preceding sections. +**IMPORTANT:** Before you connnect to the environment, you must first successfully create an Oracle RAC Database as described in the preceding sections. See [Connecting to an Oracle RAC Database](../../CONNECTING.md) for instructions on how to connect to the Oracle RAC Database. ## Section 7: Example of Node Addition to Oracle RAC Database Based on Oracle RAC Image with Block Devices diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/README.md index 3586e60b69..c2754ba29f 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/README.md @@ -39,7 +39,7 @@ Users can deploy multi-node Oracle RAC Database Setup using Oracle RAC Database * Make sure the Oracle RAC Database Container Slim Image is present as shown below. If you have not created the Oracle RAC Database Container image, execute the [Building Oracle RAC Database Container Slim Image](../../../README.md#building-oracle-rac-database-container-slim-image) ```bash # podman images|grep database-rac - localhost/oracle/database-rac 23.26.0-slim 8280809e82c8 About a minute ago 518 MB + localhost/oracle/database-rac 23.26ai-slim 8280809e82c8 About a minute ago 518 MB ``` * Configure the [Network Management](../../../README.md#network-management). * Configure the [Password Management](../../../README.md#password-management). @@ -183,7 +183,7 @@ localhost/oracle/database-rac:23.26ai-slim #### Section 2.1.2: Deploying with NFS Storage Devices ##### Section 2.1.2.1: Prerequisites for setting up Oracle RAC with NFS Storage Devices -* Create an NFS Volume to be used for ASM Devices for Oracle RAC. See the section `Configuring NFS for Storage for Oracle RAC on Podman` in [Oracle Real Application Clusters Installation Guide for Podman](https://docs.oracle.com/cd/F39414_01/racpd/oracle-real-application-clusters-installation-guide-podman-oracle-linux-x86-64.pdf) for more details. +* Create an NFS Volume to be used for ASM Devices for Oracle RAC. See the section `Configuring NFS for Storage for Oracle RAC on Podman` in [Oracle Real Application Clusters Installation Guide for Podman](https://docs.oracle.com/cd/F39414_01/racpd/oracle-real-application-clusters-installation-guide-podman-oracle-linux-x86-64.pdf) for more details. **Note:** You can skip this step if you are planning to use block devices for storage. * Make sure the ASM NFS Storage devices do not have any existing file system. @@ -564,7 +564,7 @@ Note: ## Section 6: Connecting to Oracle RAC Environment -**IMPORTANT:** Before you connnect to the environment, you must first successfully create an Oracle RAC Database as described in the preceding sections. +**IMPORTANT:** Before you connnect to the environment, you must first successfully create an Oracle RAC Database as described in the preceding sections. See [Connecting to an Oracle RAC Database](../../CONNECTING.md) for instructions on how to connect to the Oracle RAC Database. ## Section 7: Sample of Addition of Nodes to Oracle RAC Containers based on Slim Image and using Block Devices @@ -579,7 +579,7 @@ Prepare the directory for additional node: ```bash mkdir -p /scratch/rac/cluster01/node3 rm -rf /scratch/rac/cluster01/node3/* -``` +``` Create additional container for the new Oracle RAC Database Node. In this example, we create the container with hostname `racnodep3`: ```bash diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/withresponsefiles/blockdevices/addition/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/withresponsefiles/blockdevices/addition/podman-compose.yml index 55628c752d..90d2a6a1d4 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/withresponsefiles/blockdevices/addition/podman-compose.yml +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/docs/rac-container/racslimimage/withresponsefiles/blockdevices/addition/podman-compose.yml @@ -31,7 +31,7 @@ services: - /scratch/rac/cluster01/node3:/u01 - /scratch:/scratch - ${DB_RESPONSE_FILE}:/tmp/dbca_23.26ai.rsp - - ${GRID_RESPONSE_FILE}:/tmp/grid_23.26ai.rsp + - ${GRID_RESPONSE_FILE}:/tmp/grid_23.26ai.rsp environment: PRIVATE_IP1_LIST: ${RACNODE3_PRIVATE_IP1_LIST} PRIVATE_IP2_LIST: ${RACNODE3_PRIVATE_IP2_LIST} diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/README.md index f6dd2b6370..d1734d61d2 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/README.md @@ -1,31 +1,31 @@ -# Build Extensions - -After creating the base image using buildContainerImage.sh, use buildExtensions.sh to build an extended image that will include all features present under the extensions folder. - -Once you have created the base image, go into the **extensions** folder and run the **buildExtensions.sh** script: - - [oracle@localhost dockerfiles]$ ./buildExtensions.sh -h - - Usage: buildExtensions.sh -a -x [extensions] -b [base image] -t [image name] -v [version] [-o] [Docker build option] - Builds one of more Docker Image Extensions. - - Parameters: - -a: Build all extensions - -x: Space separated extensions to build. Defaults to all - Choose from : patching - -b: Base image to use +# Build Extensions + +After creating the base image using buildContainerImage.sh, use buildExtensions.sh to build an extended image that will include all features present under the extensions folder. + +Once you have created the base image, go into the **extensions** folder and run the **buildExtensions.sh** script: + + [oracle@localhost dockerfiles]$ ./buildExtensions.sh -h + + Usage: buildExtensions.sh -a -x [extensions] -b [base image] -t [image name] -v [version] [-o] [Docker build option] + Builds one of more Docker Image Extensions. + + Parameters: + -a: Build all extensions + -x: Space separated extensions to build. Defaults to all + Choose from : patching + -b: Base image to use -v: Base version to extend (example 23.26.0) - -t: name:tag for the extended image - -o: passes on Docker build option - -## Customizing Prebuilt DB extension - -Prebuilt DB container images can be custom built with user provided setup scripts. Currently `sh` and `sql` extensions are supported. Place the custom setup scripts in `/extensions/prebuiltdb/setup` directory before running the `prebuiltdb` extension. -SQL scripts will be executed as sysdba, shell scripts will be executed as the current user. To ensure proper order it is recommended to prefix your scripts with a number. For example `01_users.sql`, `02_permissions.sql`, etc. - -LICENSE UPL 1.0 - -Copyright (c) 2023-2026 Oracle and/or its affiliates. All rights reserved. - -The resulting image can be used in the same fashion as the base image. - + -t: name:tag for the extended image + -o: passes on Docker build option + +## Customizing Prebuilt DB extension + +Prebuilt DB container images can be custom built with user provided setup scripts. Currently `sh` and `sql` extensions are supported. Place the custom setup scripts in `/extensions/prebuiltdb/setup` directory before running the `prebuiltdb` extension. +SQL scripts will be executed as sysdba, shell scripts will be executed as the current user. To ensure proper order it is recommended to prefix your scripts with a number. For example `01_users.sql`, `02_permissions.sql`, etc. + +LICENSE UPL 1.0 + +Copyright (c) 2023-2026 Oracle and/or its affiliates. All rights reserved. + +The resulting image can be used in the same fashion as the base image. + diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/buildExtensions.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/buildExtensions.sh index 2982cfe553..07ccfce707 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/buildExtensions.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/buildExtensions.sh @@ -1,5 +1,5 @@ #!/bin/bash -e -# shellcheck disable=SC2034 +# shellcheck disable=SC2034,SC2086,SC2154,SC2230 # # Since: Mar, 2020 # Author: mohammed.qureshi@oracle.com @@ -24,7 +24,7 @@ Parameters: -x: Space separated extensions to build. Defaults to all Choose from : $(for i in $(cd "$SCRIPT_DIR" && ls -d -- */); do echo -n "${i%%/} "; done) -b: Base image to use - -v: Base version to extend (example 23.26.0) + -v: Base version to extend (example 26.0.0) -t: name:tag for the extended image -o: passes on Container build option @@ -38,8 +38,8 @@ EOF # Check container runtime checkContainerRuntime() { - CONTAINER_RUNTIME=$(which docker 2>/dev/null) || - CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + CONTAINER_RUNTIME=$(which podman 2>/dev/null) || + CONTAINER_RUNTIME=$(which docker 2>/dev/null) || { echo "No docker or podman executable found in your PATH" exit 1 @@ -53,9 +53,9 @@ checkContainerRuntime() { # Parameters DOCKEROPS="" DOCKERFILE="Dockerfile" -BASE_IMAGE="oracle/database-rac:23.26.0" +BASE_IMAGE="oracle/database-rac:26.0.0" IMAGE_NAME="oracle/database:ext" -VERSION="23.26.0" +VERSION="26.0.0" if [ "$#" -eq 0 ]; then usage; @@ -142,20 +142,14 @@ for x in $EXTENSIONS; do exit 1; } - if [ "$x" == "patching" ]; then - if [ "$( (ls patches/one_offs && ls patches/release_update) | wc -l)" -eq 0 ]; then - echo "Patches Missing. Skipping Patching Extension" - if [ "$EXTENSIONS" == "patching" ]; then - exit - fi - cd .. - continue - fi + BUILD_CONTEXT_OPTIONS=() + if [ "$x" = "sharding" ]; then + BUILD_CONTEXT_OPTIONS=(--build-context "gdd-scripts=../../../../GDD/containerfiles/scripts") fi # shellcheck disable=SC2086 "${CONTAINER_RUNTIME}" build --force-rm=true --build-arg BASE_IMAGE="$BASE_IMAGE" \ - $DOCKEROPS $PROXY_SETTINGS -t $IMAGE_NAME -f $DOCKERFILE . || { + "${BUILD_CONTEXT_OPTIONS[@]}" $DOCKEROPS $PROXY_SETTINGS -t $IMAGE_NAME -f $DOCKERFILE . || { echo "" echo "ERROR: Oracle Database Container Image was NOT successfully created." echo "ERROR: Check the output and correct any reported problems with the container build operation." diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/sharding/Dockerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/sharding/Dockerfile index 3ff4962dce..d20c2e5645 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/sharding/Dockerfile +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/sharding/Dockerfile @@ -72,6 +72,7 @@ RUN mkdir -p $ORACLE_BASE/scripts/sharding/scripts && \ sync # Copy updated scripts for sharding support +# hadolint ignore=DL3022 COPY --chown=oracle:dba --from=gdd-scripts / $ORACLE_BASE/scripts/sharding/ # This is to add the setPassword.sh script and setPasswordRac.sh script diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/Containerfile b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/Containerfile index 40448eca75..91ae40eabc 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/Containerfile +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/Containerfile @@ -1,11 +1,12 @@ +# hadolint global ignore=SC2086 # LICENSE UPL 1.0 # # Copyright (c) 1982-2025 Oracle and/or its affiliates. All rights reserved. # -# ORACLE DOCKERFILES PROJECT +# ORACLE CONTAINERFILES PROJECT # -------------------------- -# This is the Dockerfile for a patched Oracle Database 21c Release 3 -# +# This is the Containerfile for a patched Oracle Database 21c Release 3 +# # REQUIREMETNS FOR THIS IMAGE # ---------------------------------- # The oracle/rac-database:21.3.0 image has to exist @@ -13,8 +14,8 @@ # HOW TO BUILD THIS IMAGE # ----------------------- # Put the downloaded patch(es) into the sub folders patch/0NN -# Run: -# $ docker build -f Dockerfile -t oracle/rac-database:21.3.0- . +# Run: +# $ podman build -f Containerfile -t oracle/rac-database:21.3.0- . # ARG VERSION=19.3.0 @@ -32,7 +33,7 @@ ARG WORKDIR="/rac-work-dir" # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- # hadolint ignore=DL3002 -USER root +USER root ENV PATCH_DIR=$PATCH_DIR \ GRID_PATCH_FILE="applyGridPatches.sh" \ @@ -41,7 +42,7 @@ ENV PATCH_DIR=$PATCH_DIR \ DB_USER="oracle" \ USER=$USER \ WORKDIR=$WORKDIR \ - GRID_USER="grid" + GRID_USER="grid" # Use second ENV so that variable get substituted ENV PATCH_INSTALL_DIR=/tmp/patches @@ -99,4 +100,4 @@ HEALTHCHECK --interval=2m --start-period=30m \ CMD "$SCRIPT_DIR/scripts/main.py --checkracinst=true" >/dev/null || exit 1 # Define default command to start Oracle Grid and RAC Database setup. # hadolint ignore=DL3025 -ENTRYPOINT /usr/bin/$INITSH \ No newline at end of file +ENTRYPOINT /usr/bin/$INITSH diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyDBPatches.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyDBPatches.sh old mode 100644 new mode 100755 index 3a6a6f193b..9523b687f3 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyDBPatches.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyDBPatches.sh @@ -1,4 +1,5 @@ #!/bin/bash +# shellcheck disable=SC1090,SC2006,SC2010,SC2035,SC2045,SC2086,SC2144,SC2164,SC2181 # LICENSE UPL 1.0 # # Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyGridPatches.sh b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyGridPatches.sh index 1febe8737c..e512279269 100755 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyGridPatches.sh +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/applypatch/latest/patches/applyGridPatches.sh @@ -1,5 +1,5 @@ #!/bin/bash -# shellcheck disable=SC1090,SC2010,SC2045,SC2144,SC2164 +# shellcheck disable=SC1090,SC2006,SC2010,SC2035,SC2045,SC2086,SC2144,SC2164,SC2181 # LICENSE UPL 1.0 # # Copyright (c) 2019-2026 Oracle and/or its affiliates. All rights reserved. diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca.rsp deleted file mode 100644 index d230fd27ed..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca.rsp +++ /dev/null @@ -1,604 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2017. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName= - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid= - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType= - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged= - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool= - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force= - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase= - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 4094 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs= - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName= - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs= - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword= - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist= - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName= - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword= - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword= - -#----------------------------------------------------------------------------- -# Name : oracleHomeUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -oracleHomeUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration= - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks= - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort= - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration= - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration= - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation= - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination= - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType= - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName= - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet= - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet= - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService= - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners= - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables= - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -initParams= - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema= - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage= - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType= - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement= - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca_sample.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca_sample.rsp deleted file mode 100644 index 1ea9a8aab6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/dbca_sample.rsp +++ /dev/null @@ -1,605 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC - -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=true - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=ORCLPDB - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=racnode1,racnode2 - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName={ORACLE_HOME}/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=ORCLCDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=ORCLPDB,DB_NAME=ORCLCDB,ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1,SID=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid.rsp deleted file mode 100644 index 1ed93477f6..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid.rsp +++ /dev/null @@ -1,639 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2017. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION= - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option= - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE= - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA= - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM= - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify a name for SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName= - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort= - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration= - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster= - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile= - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP= - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterNodes= - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList= - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG= - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI= - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption= - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG= - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword= - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize= - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.diskDiscoveryString= - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword= - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize= - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD= -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS= - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes= -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption= - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort= - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript= - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod= -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid_sample.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid_sample.rsp deleted file mode 100644 index 471b014c61..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/12.2.0.1/grid_sample.rsp +++ /dev/null @@ -1,642 +0,0 @@ -########################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -########################################################################### - -########################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -########################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 - -########################################################################### -# # -# SECTION A - BASIC # -# # -########################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/grid - -############################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# # -############################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -############################################################################ -# # -# SECTION C - SCAN # -# # -############################################################################ -#------------------------------------------------------------------------------- -# Specify a name for SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=racnode-scan - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -############################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -############################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile=/common_scripts/ - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=racnode1-c - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB -oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB,racnode2:racnode2-vip:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=eth1:172.16.1.0:1,eth0:192.168.17.0:5 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG= - -############################################################################ -# # -# SECTION E - STORAGE # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -############################################################################ -# # -# SECTION F - IPMI # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -############################################################################ -# # -# SECTION G - ASM # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=<< YOUR PASSWORD HERE >> - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asmdisks/asm-racnode-c-disk2,,/dev/asmdisks/asm-racnode-c-disk1,,/dev/asmdisks/asm-racnode-c-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/oracleoci/oraclevdf,,/dev/oracleoci/oraclevde, -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asmdisks/asm-racnode-c-disk2,/dev/asmdisks/asm-racnode-c-disk1,/dev/asmdisks/asm-racnode-c-disk3 -oracle.install.asm.diskGroup.disks=/dev/oracleoci/oraclevdf,/dev/oracleoci/oraclevde - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asmdisks/* -oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleoci/* - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=<< YOUR PASSWORD HERE >> - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -############################################################################ -# # -# SECTION H - UPGRADE # -# # -############################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -############################################################################ -# # -# MANAGEMENT OPTIONS # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -############################################################################ -# # -# Root script execution configuration # -# # -############################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -############################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -############################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/dbca_sample.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/dbca_sample.rsp deleted file mode 100644 index 7621067057..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/dbca_sample.rsp +++ /dev/null @@ -1,604 +0,0 @@ -############################################################################## -## ## -## DBCA response file ## -## ------------------ ## -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -############################################################################## -#------------------------------------------------------------------------------- -# Do not change the following system generated value. -#------------------------------------------------------------------------------- -responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v18.0.0 - -#----------------------------------------------------------------------------- -# Name : gdbName -# Datatype : String -# Description : Global database name of the database -# Valid values : . - when database domain isn't NULL -# - when database domain is NULL -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -gdbName=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : sid -# Datatype : String -# Description : System identifier (SID) of the database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : specified in GDBNAME -# Mandatory : No -#----------------------------------------------------------------------------- -sid=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : databaseConfigType -# Datatype : String -# Description : database conf type as Single Instance, Real Application Cluster or Real Application Cluster One Nodes database -# Valid values : SI\RAC\RACONENODE -# Default value : SI -# Mandatory : No -#----------------------------------------------------------------------------- -databaseConfigType=RAC -#----------------------------------------------------------------------------- -# Name : RACOneNodeServiceName -# Datatype : String -# Description : Service is required by application to connect to RAC One -# Node Database -# Valid values : Service Name -# Default value : None -# Mandatory : No [required in case DATABASECONFTYPE is set to RACONENODE ] -#----------------------------------------------------------------------------- -RACOneNodeServiceName= - -#----------------------------------------------------------------------------- -# Name : policyManaged -# Datatype : Boolean -# Description : Set to true if Database is policy managed and -# set to false if Database is admin managed -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -policyManaged=false - - -#----------------------------------------------------------------------------- -# Name : createServerPool -# Datatype : Boolean -# Description : Set to true if new server pool need to be created for database -# if this option is specified then the newly created database -# will use this newly created serverpool. -# Multiple serverpoolname can not be specified for database -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -createServerPool=false - -#----------------------------------------------------------------------------- -# Name : serverPoolName -# Datatype : String -# Description : Only one serverpool name need to be specified -# if Create Server Pool option is specified. -# Comma-separated list of Serverpool names if db need to use -# multiple Server pool -# Valid values : ServerPool name - -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -serverPoolName= - -#----------------------------------------------------------------------------- -# Name : cardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation - -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -cardinality= - -#----------------------------------------------------------------------------- -# Name : force -# Datatype : Boolean -# Description : Set to true if new server pool need to be created by force -# if this option is specified then the newly created serverpool -# will be assigned server even if no free servers are available. -# This may affect already running database. -# This flag can be specified for Admin managed as well as policy managed db. -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -force=false - -#----------------------------------------------------------------------------- -# Name : pqPoolName -# Datatype : String -# Description : Only one serverpool name needs to be specified -# if create server pool option is specified. -# Comma-separated list of serverpool names if use -# server pool. This is required to -# create Parallel Query (PQ) database. Applicable to Big Cluster -# Valid values : Parallel Query (PQ) pool name -# Default value : None -# Mandatory : No [required in case of RAC service centric database] -#----------------------------------------------------------------------------- -pqPoolName= - -#----------------------------------------------------------------------------- -# Name : pqCardinality -# Datatype : Number -# Description : Specify Cardinality for create server pool operation. -# Applicable to Big Cluster -# Valid values : any positive Integer value -# Default value : Number of qualified nodes on cluster -# Mandatory : No [Required when a new serverpool need to be created] -#----------------------------------------------------------------------------- -pqCardinality= - -#----------------------------------------------------------------------------- -# Name : createAsContainerDatabase -# Datatype : boolean -# Description : flag to create database as container database -# Valid values : Check Oracle12c Administrator's Guide -# Default value : false -# Mandatory : No -#----------------------------------------------------------------------------- -createAsContainerDatabase=true - -#----------------------------------------------------------------------------- -# Name : numberOfPDBs -# Datatype : Number -# Description : Specify the number of pdb to be created -# Valid values : 0 to 252 -# Default value : 0 -# Mandatory : No -#----------------------------------------------------------------------------- -numberOfPDBs=1 - -#----------------------------------------------------------------------------- -# Name : pdbName -# Datatype : String -# Description : Specify the pdbname/pdbanme prefix if one or more pdb need to be created -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -pdbName=ORCLPDB - -#----------------------------------------------------------------------------- -# Name : useLocalUndoForPDBs -# Datatype : boolean -# Description : Flag to create local undo tablespace for all PDB's. -# Valid values : TRUE\FALSE -# Default value : TRUE -# Mandatory : No -#----------------------------------------------------------------------------- -useLocalUndoForPDBs=true - -#----------------------------------------------------------------------------- -# Name : pdbAdminPassword -# Datatype : String -# Description : PDB Administrator user password -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- - -pdbAdminPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : nodelist -# Datatype : String -# Description : Comma-separated list of cluster nodes -# Valid values : Cluster node names -# Default value : None -# Mandatory : No (Yes for RAC database-centric database ) -#----------------------------------------------------------------------------- -nodelist=racnode1,racnode2 - -#----------------------------------------------------------------------------- -# Name : templateName -# Datatype : String -# Description : Name of the template -# Valid values : Template file name -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -templateName={ORACLE_HOME}/assistants/dbca/templates/General_Purpose.dbc - -#----------------------------------------------------------------------------- -# Name : sysPassword -# Datatype : String -# Description : Password for SYS user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -sysPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : systemPassword -# Datatype : String -# Description : Password for SYSTEM user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes -#----------------------------------------------------------------------------- -systemPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : serviceUserPassword -# Datatype : String -# Description : Password for Windows Service user -# Default value : None -# Mandatory : If Oracle home is installed with windows service user -#----------------------------------------------------------------------------- -serviceUserPassword= - -#----------------------------------------------------------------------------- -# Name : emConfiguration -# Datatype : String -# Description : Enterprise Manager Configuration Type -# Valid values : CENTRAL|DBEXPRESS|BOTH|NONE -# Default value : NONE -# Mandatory : No -#----------------------------------------------------------------------------- -emConfiguration=DBEXPRESS - -#----------------------------------------------------------------------------- -# Name : emExpressPort -# Datatype : Number -# Description : Enterprise Manager Configuration Type -# Valid values : Check Oracle12c Administrator's Guide -# Default value : NONE -# Mandatory : No, will be picked up from DBEXPRESS_HTTPS_PORT env variable -# or auto generates a free port between 5500 and 5599 -#----------------------------------------------------------------------------- -emExpressPort=5500 - -#----------------------------------------------------------------------------- -# Name : runCVUChecks -# Datatype : Boolean -# Description : Specify whether to run Cluster Verification Utility checks -# periodically in Cluster environment -# Valid values : TRUE\FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -runCVUChecks=true - -#----------------------------------------------------------------------------- -# Name : dbsnmpPassword -# Datatype : String -# Description : Password for DBSNMP user -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if emConfiguration is specified or -# the value of runCVUChecks is TRUE -#----------------------------------------------------------------------------- -dbsnmpPassword=<< YOUR PASSWORD HERE >> - -#----------------------------------------------------------------------------- -# Name : omsHost -# Datatype : String -# Description : EM management server host name -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsHost= - -#----------------------------------------------------------------------------- -# Name : omsPort -# Datatype : Number -# Description : EM management server port number -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -omsPort=0 - -#----------------------------------------------------------------------------- -# Name : emUser -# Datatype : String -# Description : EM Admin username to add or modify targets -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emUser= - -#----------------------------------------------------------------------------- -# Name : emPassword -# Datatype : String -# Description : EM Admin user password -# Default value : None -# Mandatory : Yes, if CENTRAL is specified for emConfiguration -#----------------------------------------------------------------------------- -emPassword= - -#----------------------------------------------------------------------------- -# Name : dvConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Database vault -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -dvConfiguration=false - -#----------------------------------------------------------------------------- -# Name : dvUserName -# Datatype : String -# Description : DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserName= - -#----------------------------------------------------------------------------- -# Name : dvUserPassword -# Datatype : String -# Description : Password for DataVault Owner -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : Yes, if DataVault option is chosen -#----------------------------------------------------------------------------- -dvUserPassword= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerName -# Datatype : String -# Description : DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerName= - -#----------------------------------------------------------------------------- -# Name : dvAccountManagerPassword -# Datatype : String -# Description : Password for DataVault Account Manager -# Valid values : Check Oracle12c Administrator's Guide -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -dvAccountManagerPassword= - -#----------------------------------------------------------------------------- -# Name : olsConfiguration -# Datatype : Boolean -# Description : Specify "True" to configure and enable Oracle Label Security -# Valid values : True/False -# Default value : False -# Mandatory : No -#----------------------------------------------------------------------------- -olsConfiguration=false - -#----------------------------------------------------------------------------- -# Name : datafileJarLocation -# Datatype : String -# Description : Location of the data file jar -# Valid values : Directory containing compressed datafile jar -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ - -#----------------------------------------------------------------------------- -# Name : datafileDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Directory for all the database files -# Default value : $ORACLE_BASE/oradata -# Mandatory : No -#----------------------------------------------------------------------------- -datafileDestination=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : recoveryAreaDestination -# Datatype : String -# Description : Location of the data file's -# Valid values : Recovery Area location -# Default value : $ORACLE_BASE/flash_recovery_area -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryAreaDestination= - -#----------------------------------------------------------------------------- -# Name : storageType -# Datatype : String -# Description : Specifies the storage on which the database is to be created -# Valid values : FS (CFS for RAC), ASM -# Default value : FS -# Mandatory : No -#----------------------------------------------------------------------------- -storageType=ASM - -#----------------------------------------------------------------------------- -# Name : diskGroupName -# Datatype : String -# Description : Specifies the disk group name for the storage -# Default value : DATA -# Mandatory : No -#----------------------------------------------------------------------------- -diskGroupName=+DATA/{DB_UNIQUE_NAME}/ - -#----------------------------------------------------------------------------- -# Name : asmsnmpPassword -# Datatype : String -# Description : Password for ASM Monitoring -# Default value : None -# Mandatory : No -#----------------------------------------------------------------------------- -asmsnmpPassword= - -#----------------------------------------------------------------------------- -# Name : recoveryGroupName -# Datatype : String -# Description : Specifies the disk group name for the recovery area -# Default value : RECOVERY -# Mandatory : No -#----------------------------------------------------------------------------- -recoveryGroupName= - -#----------------------------------------------------------------------------- -# Name : characterSet -# Datatype : String -# Description : Character set of the database -# Valid values : Check Oracle12c National Language Support Guide -# Default value : "US7ASCII" -# Mandatory : NO -#----------------------------------------------------------------------------- -characterSet=AL32UTF8 - -#----------------------------------------------------------------------------- -# Name : nationalCharacterSet -# Datatype : String -# Description : National Character set of the database -# Valid values : "UTF8" or "AL16UTF16". For details, check Oracle12c National Language Support Guide -# Default value : "AL16UTF16" -# Mandatory : No -#----------------------------------------------------------------------------- -nationalCharacterSet=AL16UTF16 - -#----------------------------------------------------------------------------- -# Name : registerWithDirService -# Datatype : Boolean -# Description : Specifies whether to register with Directory Service. -# Valid values : TRUE \ FALSE -# Default value : FALSE -# Mandatory : No -#----------------------------------------------------------------------------- -registerWithDirService=false - - -#----------------------------------------------------------------------------- -# Name : dirServiceUserName -# Datatype : String -# Description : Specifies the name of the directory service user -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServiceUserName= - -#----------------------------------------------------------------------------- -# Name : dirServicePassword -# Datatype : String -# Description : The password of the directory service user. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -dirServicePassword= - -#----------------------------------------------------------------------------- -# Name : walletPassword -# Datatype : String -# Description : The password for wallet to created or modified. -# You can also specify the password at the command prompt instead of here. -# Mandatory : YES, if the value of registerWithDirService is TRUE -#----------------------------------------------------------------------------- -walletPassword= - -#----------------------------------------------------------------------------- -# Name : listeners -# Datatype : String -# Description : Specifies list of listeners to register the database with. -# By default the database is configured for all the listeners specified in the -# $ORACLE_HOME/network/admin/listener.ora -# Valid values : The list should be comma separated like "listener1,listener2". -# Mandatory : NO -#----------------------------------------------------------------------------- -listeners=LISTENER - -#----------------------------------------------------------------------------- -# Name : variablesFile -# Datatype : String -# Description : Location of the file containing variable value pair -# Valid values : A valid file-system file. The variable value pair format in this file -# is =. Each pair should be in a new line. -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variablesFile= - -#----------------------------------------------------------------------------- -# Name : variables -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides variables defined in variablefile and templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -variables=DB_UNIQUE_NAME=ORCLCDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=ORCLPDB,DB_NAME=ORCLCDB,ORACLE_HOME=/u01/app/oracle/product/18.3.0/dbhome_1,SID=ORCLCDB - -#----------------------------------------------------------------------------- -# Name : initParams -# Datatype : String -# Description : comma separated list of name=value pairs. Overrides initialization parameters defined in templates -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -#initParams=family:dw_helper.instance_mode=read-only,processes=640,nls_language=AMERICAN,pga_aggregate_target=2008MB,sga_target=6022MB,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),db_block_size=8192BYTES,orcl1.undo_tablespace=UNDOTBS1,diagnostic_dest={ORACLE_BASE},cluster_database=true,orcl1.thread=1,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,db_create_file_dest=+DATA/{DB_UNIQUE_NAME}/,nls_territory=AMERICA,local_listener=-oraagent-dummy-,compatible=12.2.0,db_name=orcl,audit_trail=db,orcl1.instance_number=1,remote_login_passwordfile=exclusive,open_cursors=300 -initParams=audit_trail=none,audit_sys_operations=false,remote_login_passwordfile=exclusive - -#----------------------------------------------------------------------------- -# Name : sampleSchema -# Datatype : Boolean -# Description : Specifies whether or not to add the Sample Schemas to your database -# Valid values : TRUE \ FALSE -# Default value : FASLE -# Mandatory : No -#----------------------------------------------------------------------------- -sampleSchema=false - -#----------------------------------------------------------------------------- -# Name : memoryPercentage -# Datatype : String -# Description : percentage of physical memory for Oracle -# Default value : None -# Mandatory : NO -#----------------------------------------------------------------------------- -memoryPercentage=40 - -#----------------------------------------------------------------------------- -# Name : databaseType -# Datatype : String -# Description : used for memory distribution when memoryPercentage specified -# Valid values : MULTIPURPOSE|DATA_WAREHOUSING|OLTP -# Default value : MULTIPURPOSE -# Mandatory : NO -#----------------------------------------------------------------------------- -databaseType=MULTIPURPOSE - -#----------------------------------------------------------------------------- -# Name : automaticMemoryManagement -# Datatype : Boolean -# Description : flag to indicate Automatic Memory Management is used -# Valid values : TRUE/FALSE -# Default value : TRUE -# Mandatory : NO -#----------------------------------------------------------------------------- -automaticMemoryManagement=false - -#----------------------------------------------------------------------------- -# Name : totalMemory -# Datatype : String -# Description : total memory in MB to allocate to Oracle -# Valid values : -# Default value : -# Mandatory : NO -#----------------------------------------------------------------------------- -totalMemory=5000 diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/grid_sample.rsp b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/grid_sample.rsp deleted file mode 100644 index 7df16fb3f9..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/customracdb/18.3.0/grid_sample.rsp +++ /dev/null @@ -1,672 +0,0 @@ -############################################################################### -## Copyright(c) Oracle Corporation 1998,2018. All rights reserved. ## -## ## -## Specify values for the variables listed below to customize ## -## your installation. ## -## ## -## Each variable is associated with a comment. The comment ## -## can help to populate the variables with the appropriate ## -## values. ## -## ## -## IMPORTANT NOTE: This file contains plain text passwords and ## -## should be secured to have read permission only by oracle user ## -## or db administrator who owns this installation. ## -## ## -############################################################################### - -############################################################################### -## ## -## Instructions to fill this response file ## -## To register and configure 'Grid Infrastructure for Cluster' ## -## - Fill out sections A,B,C,D,E,F and G ## -## - Fill out section G if OCR and voting disk should be placed on ASM ## -## ## -## To register and configure 'Grid Infrastructure for Standalone server' ## -## - Fill out sections A,B and G ## -## ## -## To register software for 'Grid Infrastructure' ## -## - Fill out sections A,B and D ## -## - Provide the cluster nodes in section D when choosing CRS_SWONLY as ## -## installation option in section A ## -## ## -## To upgrade clusterware and/or Automatic storage management of earlier ## -## releases ## -## - Fill out sections A,B,C,D and H ## -## ## -## To add more nodes to the cluster ## -## - Fill out sections A and D ## -## - Provide the cluster nodes in section D when choosing CRS_ADDNODE as ## -## installation option in section A ## -## ## -############################################################################### - -#------------------------------------------------------------------------------ -# Do not change the following system generated value. -#------------------------------------------------------------------------------ -oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 - -############################################################################### -# # -# SECTION A - BASIC # -# # -############################################################################### - - -#------------------------------------------------------------------------------- -# Specify the location which holds the inventory files. -# This is an optional parameter if installing on -# Windows based Operating System. -#------------------------------------------------------------------------------- -INVENTORY_LOCATION=/u01/app/oraInventory - -#------------------------------------------------------------------------------- -# Specify the installation option. -# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY -# - CRS_CONFIG : To register home and configure Grid Infrastructure for cluster -# - HA_CONFIG : To register home and configure Grid Infrastructure for stand alone server -# - UPGRADE : To register home and upgrade clusterware software of earlier release -# - CRS_SWONLY : To register Grid Infrastructure Software home (can be configured for cluster -# or stand alone server later) -# - HA_SWONLY : To register Grid Infrastructure Software home (can be configured for stand -# alone server later. This is only supported on Windows.) -# - CRS_ADDNODE : To add more nodes to the cluster -# - CRS_DELETE_NODE : To delete nodes to the cluster -#------------------------------------------------------------------------------- -oracle.install.option=CRS_CONFIG - -#------------------------------------------------------------------------------- -# Specify the complete path of the Oracle Base. -#------------------------------------------------------------------------------- -ORACLE_BASE=/u01/app/grid - -################################################################################ -# # -# SECTION B - GROUPS # -# # -# The following three groups need to be assigned for all GI installations. # -# OSDBA and OSOPER can be the same or different. OSASM must be different # -# than the other two. # -# The value to be specified for OSDBA, OSOPER and OSASM group is only for # -# Unix based Operating System. # -# These groups are not required for upgrades, as they will be determined # -# from the Oracle home to upgrade. # -# # -################################################################################ -#------------------------------------------------------------------------------- -# The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges. -#------------------------------------------------------------------------------- -oracle.install.asm.OSDBA=dba - -#------------------------------------------------------------------------------- -# The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges. -# The value to be specified for OSOPER group is optional. -# Value should not be provided if configuring Client Cluster - i.e. storageOption=CLIENT_ASM_STORAGE. -#------------------------------------------------------------------------------- -oracle.install.asm.OSOPER= - -#------------------------------------------------------------------------------- -# The OSASM_GROUP is the OS group which is to be granted SYSASM privileges. This -# must be different than the previous two. -#------------------------------------------------------------------------------- -oracle.install.asm.OSASM=asmadmin - -################################################################################ -# # -# SECTION C - SCAN # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the type of SCAN configuration for the cluster -# Allowed values : LOCAL_SCAN and SHARED_SCAN -#------------------------------------------------------------------------------- -oracle.install.crs.config.scanType=LOCAL_SCAN - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_SCAN is being configured for cluster -# Specify the path to the SCAN client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.SCANClientDataFile= - -#------------------------------------------------------------------------------- -# Specify a name for SCAN -# Applicable if LOCAL_SCAN is being configured for the cluster -# If you choose to configure the cluster with GNS with Auto assigned Node VIPs(DHCP),then the scanName should be specified in the format of 'SCAN name.Cluster name.GNS sub-domain' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.scanName=racnode-scan - -#------------------------------------------------------------------------------- -# Specify a unused port number for SCAN service -#------------------------------------------------------------------------------- - -oracle.install.crs.config.gpnp.scanPort=1521 - -################################################################################ -# # -# SECTION D - CLUSTER & GNS # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify the required cluster configuration -# Allowed values: STANDALONE, DOMAIN, MEMBERDB, MEMBERAPP -#------------------------------------------------------------------------------- -oracle.install.crs.config.ClusterConfiguration=STANDALONE - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure the cluster as Extended, else -# specify 'false' -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.configureAsExtendedCluster=false - - -#------------------------------------------------------------------------------- -# Specify the Member Cluster Manifest file -# -# Applicable only for MEMBERDB and MEMBERAPP cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.memberClusterManifestFile=/common_scripts/ - -#------------------------------------------------------------------------------- -# Specify a name for the Cluster you are creating. -# -# The maximum length allowed for clustername is 15 characters. The name can be -# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-) -# and underscore(_). -# -# Applicable only for STANDALONE and DOMAIN cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.clusterName=racnode1-c - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE, DOMAIN, MEMBERDB cluster configuration. -# Specify 'true' if you would like to configure Grid Naming Service(GNS), else -# specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.configureGNS=false - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to configure GNS. -# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP -# , else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.autoConfigureClusterNodeVIP=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure GNS. -# Specify the type of GNS configuration for cluster -# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS -# Only USE_SHARED_GNS value is allowed for MEMBERDB cluster configuration. -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsOption= - -#------------------------------------------------------------------------------- -# Applicable only if SHARED_GNS is being configured for cluster -# Specify the path to the GNS client data file -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsClientDataFile= - -#------------------------------------------------------------------------------- -# Applicable only for STANDALONE and DOMAIN cluster configuration if you choose to -# configure GNS for this cluster oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS -# Specify the GNS subdomain and an unused virtual hostname for GNS service -#------------------------------------------------------------------------------- -oracle.install.crs.config.gpnp.gnsSubDomain= -oracle.install.crs.config.gpnp.gnsVIPAddress= - -#------------------------------------------------------------------------------- -# Specify the list of sites - only if configuring an Extended Cluster -#------------------------------------------------------------------------------- -oracle.install.crs.config.sites= - -#------------------------------------------------------------------------------- -# Specify the list of nodes that have to be configured to be part of the cluster. -# -# The list should a comma-separated list of tuples. Each tuple should be a -# colon-separated string that contains -# - 1 field if you have chosen CRS_SWONLY as installation option, or -# - 1 field if configuring an Application Cluster, or -# - 3 fields if configuring a Flex Cluster -# - 3 fields if adding more nodes to the configured cluster, or -# - 4 fields if configuring an Extended Cluster -# -# The fields should be ordered as follows: -# 1. The first field should be the public node name. -# 2. The second field should be the virtual host name -# (Should be specified as AUTO if you have chosen 'auto configure for VIP' -# i.e. autoConfigureClusterNodeVIP=true) -# 3. The third field indicates the role of node (HUB,LEAF). This has to -# be provided only if Flex Cluster is being configured. -# For Extended Cluster only HUB should be specified for all nodes -# 4. The fourth field indicates the site designation for the node. To be specified only if configuring an Extended Cluster. -# The 2nd and 3rd fields are not applicable if you have chosen CRS_SWONLY as installation option -# The 2nd and 3rd fields are not applicable if configuring an Application Cluster -# -# Examples -# For registering GI for a cluster software: oracle.install.crs.config.clusterNodes=node1,node2 -# For adding more nodes to the configured cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Application Cluster: oracle.install.crs.config.clusterNodes=node1,node2 -# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF -# For configuring Extended Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB:site1,node2:node2-vip:HUB:site2 -# You can specify a range of nodes in the tuple using colon separated fields of format -# hostnameprefix:lowerbound-upperbound:hostnamesuffix:vipsuffix:role of node -# -#------------------------------------------------------------------------------- -#oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB -oracle.install.crs.config.clusterNodes=racnode1:racnode1-vip:HUB,racnode2:racnode2-vip:HUB - -#------------------------------------------------------------------------------- -# The value should be a comma separated strings where each string is as shown below -# InterfaceName:SubnetAddress:InterfaceType -# where InterfaceType can be either "1", "2", "3", "4", or "5" -# InterfaceType stand for the following values -# - 1 : PUBLIC -# - 2 : PRIVATE -# - 3 : DO NOT USE -# - 4 : ASM -# - 5 : ASM & PRIVATE -# -# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3 -# -#------------------------------------------------------------------------------- -oracle.install.crs.config.networkInterfaceList=eth1:172.16.1.0:1,eth0:192.168.17.0:5 - -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup to store GIMR data. -# Specify 'true' if you would like to separate GIMR data with clusterware data, -# else specify 'false' -# Value should be 'true' for DOMAIN cluster configurations -# Value can be true/false for STANDALONE cluster configurations. -#------------------------------------------------------------------------------ -oracle.install.asm.configureGIMRDataDG= - -################################################################################ -# # -# SECTION E - STORAGE # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting -# Disks files -# - FLEX_ASM_STORAGE -# - CLIENT_ASM_STORAGE -# -# Applicable only for MEMBERDB cluster configuration -#------------------------------------------------------------------------------- -oracle.install.crs.config.storageOption= -################################################################################ -# # -# SECTION F - IPMI # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify 'true' if you would like to configure Intelligent Power Management interface -# (IPMI), else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.useIPMI=false - -#------------------------------------------------------------------------------- -# Applicable only if you choose to configure IPMI -# i.e. oracle.install.crs.config.useIPMI=true -# Specify the username and password for using IPMI service -#------------------------------------------------------------------------------- -oracle.install.crs.config.ipmi.bmcUsername= -oracle.install.crs.config.ipmi.bmcPassword= -################################################################################ -# # -# SECTION G - ASM # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# ASM Storage Type -# Allowed values are : ASM and ASM_ON_NAS -# ASM_ON_NAS applicable only if -# oracle.install.crs.config.ClusterConfiguration=STANDALONE -#------------------------------------------------------------------------------- -oracle.install.asm.storageOption=ASM - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing OCR/VDSK -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store OCR/VDSK files -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.ocrLocation= -#------------------------------------------------------------------------------ -# Create a separate ASM DiskGroup on NAS to store GIMR data -# Specify 'true' if you would like to separate GIMR data with clusterware data, else -# specify 'false' -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -#------------------------------------------------------------------------------ -oracle.install.asmOnNAS.configureGIMRDataDG=false - -#------------------------------------------------------------------------------- -# NAS location to create ASM disk group for storing GIMR data -# Specify the NAS location where you want the ASM disk group to be created -# to be used to store the GIMR database -# Applicable only if oracle.install.asm.storageOption=ASM_ON_NAS -# and oracle.install.asmOnNAS.configureGIMRDataDG=true -#------------------------------------------------------------------------------- -oracle.install.asmOnNAS.gimrLocation= - -#------------------------------------------------------------------------------- -# Password for SYS user of Oracle ASM -#------------------------------------------------------------------------------- -oracle.install.asm.SYSASMPassword=<< YOUR PASSWORD HERE >> - -#------------------------------------------------------------------------------- -# The ASM DiskGroup -# -# Example: oracle.install.asm.diskGroup.name=data -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.name=DATA - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (required if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.diskGroup.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.redundancy=EXTERNAL - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.diskGroup.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.AUSize=4 - -#------------------------------------------------------------------------------- -# Failure Groups for the disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create a ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.diskGroup.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/asm-disk1,,/dev/asm-disk2,,/dev/asm-disk3, -oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/oracleoci/oraclevdf,,/dev/oracleoci/oraclevde, - -#------------------------------------------------------------------------------- -# List of disks to create a ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2,/dev/asm-disk3 -oracle.install.asm.diskGroup.disks=/dev/oracleoci/oraclevdf,/dev/oracleoci/oraclevde - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.diskGroup.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.diskGroup.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# The disk discovery string to be used to discover the disks used create a ASM DiskGroup -# -# Example: -# For Unix based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/* -# For Windows based Operating System: -# oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK* -# -#------------------------------------------------------------------------------- -#oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* -oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleoci/* - -#------------------------------------------------------------------------------- -# Password for ASMSNMP account -# ASMSNMP account is used by Oracle Enterprise Manager to monitor Oracle ASM instances -#------------------------------------------------------------------------------- -oracle.install.asm.monitorPassword=<< YOUR PASSWORD HERE >> - -#------------------------------------------------------------------------------- -# GIMR Storage data ASM DiskGroup -# Applicable only when -# oracle.install.asm.configureGIMRDataDG=true -# Example: oracle.install.asm.GIMRDG.name=MGMT -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.name= - -#------------------------------------------------------------------------------- -# Redundancy level to be used by ASM. -# It can be one of the following -# - NORMAL -# - HIGH -# - EXTERNAL -# - FLEX# - EXTENDED (only if oracle.install.crs.config.ClusterConfiguration=EXTENDED) -# Example: oracle.install.asm.gimrDG.redundancy=NORMAL -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.redundancy= - -#------------------------------------------------------------------------------- -# Allocation unit size to be used by ASM. -# It can be one of the following values -# - 1 -# - 2 -# - 4 -# - 8 -# - 16 -# Example: oracle.install.asm.gimrDG.AUSize=4 -# size unit is MB -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.AUSize=1 - -#------------------------------------------------------------------------------- -# Failure Groups for the GIMR storage data ASM disk group -# If configuring for Extended cluster specify as list of "failure group name:site" -# tuples. -# Else just specify as list of failure group names -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.FailureGroups= - -#------------------------------------------------------------------------------- -# List of disks and their failure groups to create GIMR data ASM DiskGroup -# (Use this if each of the disks have an associated failure group) -# Failure Groups are not required if oracle.install.asm.gimrDG.redundancy=EXTERNAL -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=/oracle/asm/disk1,FGName,/oracle/asm/disk2,FGName -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disksWithFailureGroupNames=\\.\ORCLDISKDATA0,FGName,\\.\ORCLDISKDATA1,FGName -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disksWithFailureGroupNames= - -#------------------------------------------------------------------------------- -# List of disks to create GIMR data ASM DiskGroup -# (Use this variable only if failure groups configuration is not required) -# Example: -# For Unix based Operating System: -# oracle.install.asm.gimrDG.disks=/oracle/asm/disk1,/oracle/asm/disk2 -# For Windows based Operating System: -# oracle.install.asm.gimrDG.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1 -# -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.disks= - -#------------------------------------------------------------------------------- -# List of failure groups to be marked as QUORUM. -# Quorum failure groups contain only voting disk data, no user data is stored -# Example: -# oracle.install.asm.gimrDG.quorumFailureGroupNames=FGName1,FGName2 -#------------------------------------------------------------------------------- -oracle.install.asm.gimrDG.quorumFailureGroupNames= - -#------------------------------------------------------------------------------- -# Configure AFD - ASM Filter Driver -# Applicable only for FLEX_ASM_STORAGE option -# Specify 'true' if you want to configure AFD, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.asm.configureAFD=false -#------------------------------------------------------------------------------- -# Configure RHPS - Rapid Home Provisioning Service -# Applicable only for DOMAIN cluster configuration -# Specify 'true' if you want to configure RHP service, else specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.configureRHPS=false - -################################################################################ -# # -# SECTION H - UPGRADE # -# # -################################################################################ -#------------------------------------------------------------------------------- -# Specify whether to ignore down nodes during upgrade operation. -# Value should be 'true' to ignore down nodes otherwise specify 'false' -#------------------------------------------------------------------------------- -oracle.install.crs.config.ignoreDownNodes=false -################################################################################ -# # -# MANAGEMENT OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the management option to use for managing Oracle Grid Infrastructure -# Options are: -# 1. CLOUD_CONTROL - If you want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -# 2. NONE -If you do not want to manage your Oracle Grid Infrastructure with Enterprise Manager Cloud Control. -#------------------------------------------------------------------------------- -oracle.install.config.managementOption=NONE - -#------------------------------------------------------------------------------- -# Specify the OMS host to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsHost= - -#------------------------------------------------------------------------------- -# Specify the OMS port to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.omsPort=0 - -#------------------------------------------------------------------------------- -# Specify the EM Admin user name to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminUser= - -#------------------------------------------------------------------------------- -# Specify the EM Admin password to use to connect to Cloud Control. -# Applicable only when oracle.install.config.managementOption=CLOUD_CONTROL -#------------------------------------------------------------------------------- -oracle.install.config.emAdminPassword= -################################################################################ -# # -# Root script execution configuration # -# # -################################################################################ - -#------------------------------------------------------------------------------------------------------- -# Specify the root script execution mode. -# -# - true : To execute the root script automatically by using the appropriate configuration methods. -# - false : To execute the root script manually. -# -# If this option is selected, password should be specified on the console. -#------------------------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.executeRootScript=false - -#-------------------------------------------------------------------------------------- -# Specify the configuration method to be used for automatic root script execution. -# -# Following are the possible choices: -# - ROOT -# - SUDO -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.configMethod=ROOT -#-------------------------------------------------------------------------------------- -# Specify the absolute path of the sudo program. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoPath= - -#-------------------------------------------------------------------------------------- -# Specify the name of the user who is in the sudoers list. -# -# Applicable only when SUDO configuration method was chosen. -#-------------------------------------------------------------------------------------- -oracle.install.crs.rootconfig.sudoUserName= -#-------------------------------------------------------------------------------------- -# Specify the nodes batch map. -# -# This should be a comma separated list of node:batch pairs. -# During upgrade, you can sequence the automatic execution of root scripts -# by pooling the nodes into batches. -# A maximum of three batches can be specified. -# Installer will execute the root scripts on all the nodes in one batch before -# proceeding to next batch. -# Root script execution on the local node must be in Batch 1. -# Only one type of node role can be used for each batch. -# Root script execution should be done first in all HUB nodes and then, when -# existent, in all the LEAF nodes. -# -# Examples: -# 1. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:2,HUBNode3:2,LEAFNode4:3 -# 2. oracle.install.crs.config.batchinfo=HUBNode1:1,LEAFNode2:2,LEAFNode3:2,LEAFNode4:2 -# 3. oracle.install.crs.config.batchinfo=HUBNode1:1,HUBNode2:1,LEAFNode3:2,LEAFNode4:3 -# -# Applicable only for UPGRADE install option. -#-------------------------------------------------------------------------------------- -oracle.install.crs.config.batchinfo= -################################################################################ -# # -# APPLICATION CLUSTER OPTIONS # -# # -################################################################################ - -#------------------------------------------------------------------------------- -# Specify the Virtual hostname to configure virtual access for your Application -# The value to be specified for Virtual hostname is optional. -#------------------------------------------------------------------------------- -oracle.install.crs.app.applicationAddress= -################################################################################# -# # -# DELETE NODE OPTIONS # -# # -################################################################################# - -#-------------------------------------------------------------------------------- -# Specify the node names to delete nodes from cluster. -# Delete node will be performed only for the remote nodes from the cluster. -#-------------------------------------------------------------------------------- -oracle.install.crs.deleteNode.nodes= diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/README.md index c30a369aea..e68d36c1eb 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/README.md @@ -117,13 +117,13 @@ DNS Container Logs- ```bash podman-compose logs ${DNS_CONTAINER_NAME} 03-28-2024 07:46:59 UTC : : ################################################ -03-28-2024 07:46:59 UTC : : DNS Server IS READY TO USE! +03-28-2024 07:46:59 UTC : : DNS Server IS READY TO USE! 03-28-2024 07:46:59 UTC : : ################################################ ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} @@ -163,7 +163,7 @@ podman-compose up -d ${CMAN_CONTAINER_NAME} podman-compose logs -f ${CMAN_CONTAINER_NAME} ################################################ - CONNECTION MANAGER IS READY TO USE! + CONNECTION MANAGER IS READY TO USE! ################################################ ``` #### Section 2.1.2: Setup Using User Defined Response files @@ -249,12 +249,12 @@ Successful logs when DNS container comes up- ```bash podman-compose logs ${DNS_CONTAINER_NAME} ################################################ - DNS Server IS READY TO USE! + DNS Server IS READY TO USE! ################################################ ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} @@ -294,7 +294,7 @@ podman-compose up -d ${CMAN_CONTAINER_NAME} podman-compose logs -f ${CMAN_CONTAINER_NAME} ################################################ - CONNECTION MANAGER IS READY TO USE! + CONNECTION MANAGER IS READY TO USE! ################################################ ``` @@ -379,7 +379,7 @@ podman-compose logs ${DNS_CONTAINER_NAME} Logs- ```bash 04-03-2024 13:22:54 UTC : : ################################################ -04-03-2024 13:22:54 UTC : : DNS Server IS READY TO USE! +04-03-2024 13:22:54 UTC : : DNS Server IS READY TO USE! 04-03-2024 13:22:54 UTC : : ##################################### ``` @@ -393,7 +393,7 @@ Logs- Export list for racnode-storage: /oradata * ################################################# - Setup Completed + Setup Completed ################################################# ``` @@ -407,7 +407,7 @@ racstorage ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} @@ -447,7 +447,7 @@ podman-compose up -d ${CMAN_CONTAINER_NAME} podman-compose logs -f ${CMAN_CONTAINER_NAME} ################################################ - CONNECTION MANAGER IS READY TO USE! + CONNECTION MANAGER IS READY TO USE! ################################################ ``` #### Section 2.2.2: Setup Using User Defined Response files @@ -535,7 +535,7 @@ podman network create --driver=bridge --subnet=${PRIVATE1_NETWORK_SUBNET} ${PRIV podman network create --driver=bridge --subnet=${PRIVATE2_NETWORK_SUBNET} ${PRIVATE2_NETWORK_NAME} --disable-dns ``` -Create compose file named [podman-compose.yml](./withresponsefiles/nfsdevices/podman-compose.yml) in your working directory. +Create compose file named [podman-compose.yml](./withresponsefiles/nfsdevices/podman-compose.yml) in your working directory. Bring up DNS Containers- ```bash @@ -550,7 +550,7 @@ Successful logs when DNS container comes up- ```bash podman-compose logs ${DNS_CONTAINER_NAME} ################################################ - DNS Server IS READY TO USE! + DNS Server IS READY TO USE! ################################################ ``` @@ -562,7 +562,7 @@ podman-compose exec ${STORAGE_CONTAINER_NAME} tail -f /tmp/storage_setup.log Export list for racnode-storage: /oradata * ################################################# - Setup Completed + Setup Completed ################################################# ``` @@ -576,7 +576,7 @@ racstorage ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} @@ -615,7 +615,7 @@ ORACLE RAC DATABASE IS READY TO USE podman-compose up -d ${CMAN_CONTAINER_NAME} podman-compose logs -f ${CMAN_CONTAINER_NAME} ################################################ - CONNECTION MANAGER IS READY TO USE! + CONNECTION MANAGER IS READY TO USE! ################################################ ``` ## Section 3: Sample of Addition of Nodes to Oracle RAC Containers based on Oracle RAC Image @@ -664,7 +664,7 @@ export DB_SERVICE=service:soepdb ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} podman-compose stop ${RACNODE3_CONTAINER_NAME} podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE3_CONTAINER_NAME} @@ -730,7 +730,7 @@ export DB_SERVICE=service:soepdb ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} podman-compose stop ${RACNODE3_CONTAINER_NAME} podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE3_CONTAINER_NAME} diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/blockdevices/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/blockdevices/podman-compose.yml index 124169b0b3..88c7e623ae 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/blockdevices/podman-compose.yml +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/blockdevices/podman-compose.yml @@ -170,7 +170,7 @@ services: cap_add: - AUDIT_WRITE healthcheck: - test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] + test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] interval: ${HEALTHCHECK_INTERVAL} timeout: ${HEALTHCHECK_TIMEOUT} retries: ${HEALTHCHECK_RETRIES} \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/nfsdevices/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/nfsdevices/podman-compose.yml index 073ffb8544..5091d37c66 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/nfsdevices/podman-compose.yml +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racimage/withresponsefiles/nfsdevices/podman-compose.yml @@ -195,7 +195,7 @@ services: - AUDIT_WRITE - NET_RAW healthcheck: - test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] + test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] interval: ${HEALTHCHECK_INTERVAL} timeout: ${HEALTHCHECK_TIMEOUT} retries: ${HEALTHCHECK_RETRIES} diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/README.md index 449a115045..e8c503a545 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/README.md +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/README.md @@ -151,7 +151,7 @@ podman-compose start ${DNS_CONTAINER_NAME} ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} @@ -196,7 +196,7 @@ podman-compose up -d ${CMAN_CONTAINER_NAME} Successful Message when CMAN container is setup properly- ```bash ################################################ -CONNECTION MANAGER IS READY TO USE! +CONNECTION MANAGER IS READY TO USE! ################################################ ``` #### Section 2.1.2: Setup Using User Defined Response files @@ -282,7 +282,7 @@ podman-compose start ${DNS_CONTAINER_NAME} ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} podman-compose stop ${RACNODE2_CONTAINER_NAME} @@ -324,7 +324,7 @@ podman-compose up -d ${CMAN_CONTAINER_NAME} Successful Message when CMAN container is setup properly- ```bash ################################################ -CONNECTION MANAGER IS READY TO USE! +CONNECTION MANAGER IS READY TO USE! ################################################ ``` ### Section 2.2: Deploying With NFS Storage Devices @@ -419,7 +419,7 @@ podman-compose exec ${STORAGE_CONTAINER_NAME} tail -f /tmp/storage_setup.log Export list for racnode-storage: /oradata * ################################################# - Setup Completed + Setup Completed ################################################# ``` @@ -433,7 +433,7 @@ racstorage ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} podman-compose stop ${RACNODE2_CONTAINER_NAME} @@ -473,7 +473,7 @@ podman-compose up -d ${CMAN_CONTAINER_NAME} podman-compose logs -f ${CMAN_CONTAINER_NAME} ################################################ - CONNECTION MANAGER IS READY TO USE! + CONNECTION MANAGER IS READY TO USE! ################################################ ``` #### Section 2.2.2: Setup Using User Defined Response files @@ -571,7 +571,7 @@ Successful logs when DNS container comes up- ```bash podman-compose logs ${DNS_CONTAINER_NAME} ################################################ - DNS Server IS READY TO USE! + DNS Server IS READY TO USE! ################################################ ``` Bring up Storage Container- @@ -582,7 +582,7 @@ podman-compose exec ${STORAGE_CONTAINER_NAME} tail -f /tmp/storage_setup.log Export list for racnode-storage: /oradata * ################################################# - Setup Completed + Setup Completed ################################################# ``` @@ -597,7 +597,7 @@ racstorage Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} podman-compose stop ${RACNODE1_CONTAINER_NAME} podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} @@ -639,7 +639,7 @@ ORACLE RAC DATABASE IS READY TO USE podman-compose up -d ${CMAN_CONTAINER_NAME} podman-compose logs -f ${CMAN_CONTAINER_NAME} ################################################ - CONNECTION MANAGER IS READY TO USE! + CONNECTION MANAGER IS READY TO USE! ################################################ ``` ## Section 3: Sample of Addition of Nodes to Oracle RAC Containers based on Slim Image @@ -696,7 +696,7 @@ export DB_SERVICE=service:soepdb ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} podman-compose stop ${RACNODE3_CONTAINER_NAME} podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE3_CONTAINER_NAME} @@ -765,7 +765,7 @@ export DB_SERVICE=service:soepdb ``` Bring up RAC Containers- ```bash -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} +podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE3_CONTAINER_NAME} podman-compose stop ${RACNODE3_CONTAINER_NAME} podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE3_CONTAINER_NAME} diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/blockdevices/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/blockdevices/podman-compose.yml index c0caba059b..aac8ed30c5 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/blockdevices/podman-compose.yml +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/blockdevices/podman-compose.yml @@ -50,7 +50,7 @@ services: - /scratch/rac/cluster01/node1:/u01 - /scratch:/scratch - /scratch/common_scripts/podman/rac/dbca_23.26ai.rsp:/tmp/dbca_23.26ai.rsp - - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp + - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp environment: DNS_SERVERS: ${DNS_PUBLIC_IP} CRS_PRIVATE_IP1: ${RACNODE1_CRS_PRIVATE_IP1} @@ -114,7 +114,7 @@ services: - /scratch/rac/cluster01/node2:/u01 - /scratch:/scratch - /scratch/common_scripts/podman/rac/dbca_23.26ai.rsp:/tmp/dbca_23.26ai.rsp - - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp + - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp environment: DNS_SERVERS: ${DNS_PUBLIC_IP} CRS_PRIVATE_IP1: ${RACNODE2_CRS_PRIVATE_IP1} @@ -185,7 +185,7 @@ services: - AUDIT_WRITE - NET_RAW healthcheck: - test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] + test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] interval: ${HEALTHCHECK_INTERVAL} timeout: ${HEALTHCHECK_TIMEOUT} retries: ${HEALTHCHECK_RETRIES} \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/nfsdevices/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/nfsdevices/podman-compose.yml index 11c0dc5532..7b6e39d770 100644 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/nfsdevices/podman-compose.yml +++ b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/rac-compose/racslimimage/withresponsefiles/nfsdevices/podman-compose.yml @@ -80,7 +80,7 @@ services: - /scratch:/scratch - /scratch/common_scripts/podman/rac/dbca_23.26ai.rsp:/tmp/dbca_23.26ai.rsp - racstorage:/oradata - - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp + - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp environment: DNS_SERVERS: ${DNS_PUBLIC_IP} CRS_PRIVATE_IP1: ${RACNODE1_CRS_PRIVATE_IP1} @@ -143,7 +143,7 @@ services: - /scratch/rac/cluster01/node2:/u01 - /scratch:/scratch - /scratch/common_scripts/podman/rac/dbca_23.26ai.rsp:/tmp/dbca_23.26ai.rsp - - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp + - /scratch/common_scripts/podman/rac/grid_setup_new_23.26ai.rsp:/tmp/grid_23.26ai.rsp - racstorage:/oradata environment: DNS_SERVERS: ${DNS_PUBLIC_IP} @@ -166,7 +166,7 @@ services: CMAN_PORT: 1521 ASM_ON_NAS: True DB_SERVICE: ${DB_SERVICE} - RESET_FAILED_SYSTEMD: true + RESET_FAILED_SYSTEMD: true sysctls: - kernel.shmall=2097152 - kernel.shmmax=8589934592 @@ -214,7 +214,7 @@ services: - AUDIT_WRITE - NET_RAW healthcheck: - test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] + test: ["CMD-SHELL", "pgrep -f 'cmadmin'"] interval: ${HEALTHCHECK_INTERVAL} timeout: ${HEALTHCHECK_TIMEOUT} retries: ${HEALTHCHECK_RETRIES} \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/README.md deleted file mode 100644 index ba4464767b..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/README.md +++ /dev/null @@ -1,490 +0,0 @@ -# Example of creating an Oracle RAC database with Docker Compose - -Once you have built your Oracle RAC container image, you can create a Oracle RAC database with Docker Compose on Single Host via Bridge Network as example given below. - -- [Example of creating an Oracle RAC database with Docker Compose](#example-of-creating-an-oracle-rac-database-with-docker-compose) - - [Section 1 : Prerequisites for RAC Database on Docker with Docker Compose](#section-1--prerequisites-for-rac-database-on-docker-with-docker-compose) - - [Section 2 : Preparing Environment Variables](#section-2--preparing-environment-variables) - - [Section 2.1: Preparing Environment Variables for RAC with Block Devices](#section-21-preparing-environment-variables-for-rac-with-block-devices) - - [Section 2.2: Preparing Environment Variables for RAC with NFS Storage Devices](#section-22-preparing-environment-variables-for-rac-with-nfs-storage-devices) - - [Section 3 : Deploy the RAC Container](#section-3--deploy-the-rac-container) - - [Section 3.1: Deploy the RAC Container with Block Devices](#section-31-deploy-the-rac-container-with-block-devices) - - [Section 3.2: Deploy the RAC Container with NFS Storage Devices](#section-32-deploy-the-rac-container-with-nfs-storage-devices) - - [Section 4: Add Additional Node in Existing Oracle RAC Cluster](#section-4-add-additional-node-in-existing-oracle-rac-cluster) - - [Section 4.1: Add Additional Node in Existing Oracle RAC Cluster with Block Devices](#section-41-add-additional-node-in-existing-oracle-rac-cluster-with-block-devices) - - [Section 4.2: Add Additional Node in Existing Oracle RAC Cluster with NFS Volume](#section-42-add-additional-node-in-existing-oracle-rac-cluster-with-nfs-volume) - - [Section 5: Connect to the RAC container](#connect-to-the-rac-container) - - [Cleanup RAC Environment](#cleanup-rac-environment) - - [Copyright](#copyright) - -## Section 1 : Prerequisites for RAC Database on Docker with Docker Compose - -**IMPORTANT :** You must execute all the steps specified in this section (customized for your environment) before you proceed to the next section. Docker and Docker Compose is not supported with OL8. You need OL7.9 with UEK R5 or above. This guide and example is mainly for development and testing purposes only. - -- It is assumed that before proceeding further you have executed the pre-requisites from [Section 1 : Prerequisites for running Oracle RAC in containers](../../../OracleRealApplicationClusters/README.md) and [Section 4.1 : Prerequisites for Running Oracle RAC on Docker](../../../OracleRealApplicationClusters/README.md) for Single Docker Host Machine . -- Create DNS docker image, if you are planing to use DNS container for testing. Please refer [DNS Container README.MD](../../../OracleDNSServer/README.md). You can skip this step if you are planing to use **your own DNS Server**. -- Create Oracle Connection Manager Docker image.Please refer [RAC Oracle Connection Manager README.MD](../../../OracleConnectionManager/README.md) for details. -- Create Storage Server Docker image, if you are planning to use NFS Storage Devices provided in this guide.Please refer [How to build NFS Storage Container Image](../../../OracleRACStorageServer/README.md) for details. - -- If you have not built the Oracle RAC container image, execute the steps in [Section 2: Building Oracle RAC Database Container Images](../../../OracleRealApplicationClusters/README.md) based on your environment. - -In order to setup RAC on Docker with Docker Compose, latest `docker compose` binary is required from [respective website](https://github.com/docker/compose/releases). This is example of how to install `docker compose` executable v2.23.1 from github- -```bash -DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} -mkdir -p $DOCKER_CONFIG/cli-plugins -ls -lrt $DOCKER_CONFIG/cli-plugins -curl -SL https://github.com/docker/compose/releases/download/v2.23.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose -ls -lrt $DOCKER_CONFIG/cli-plugins -chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose -``` - -## Section 2 : Preparing Environment Variables - -### Section 2.1: Preparing Environment Variables for RAC with Block Devices - -In order to setup Oracle RAC on Docker with Block Devices with Docker Compose, first lets identify necessary variables to export that will be used by `docker-compose.yml` file later. Below is one example of exporting necessary variables related to docker network, DNS container, RAC Container and CMAN container discussed in this repo. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_CONTAINER_NAME=rac-dnsserver -export DNS_HOST_NAME=rac-dns -export DNS_IMAGE_NAME="oracle/rac-dnsserver:latest" -export DNS_DOMAIN="example.com" -export RAC_NODE_NAME_PREFIXD="racnoded" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_pzriv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export DNS_PUBLIC_IP=172.16.1.25 -export DNS_PRIVATE_IP=192.168.17.25 -export INSTALL_NODE=racnoded1 -export SCAN_NAME="racnodedc1-scan" -export SCAN_IP=172.16.1.230 -export ASM_DISCOVERY_DIR="/dev/" -export PWD_KEY="pwd.key" -export ASM_DISK1="/dev/oracleoci/oraclevdd" -export ASM_DISK2="/dev/oracleoci/oraclevde" -export ASM_DEVICE1="/dev/asm-disk1" -export ASM_DEVICE2="/dev/asm-disk2" -export ASM_DEVICE_LIST="${ASM_DEVICE1},${ASM_DEVICE2}" -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export RACNODE1_CONTAINER_NAME=racnoded1 -export RACNODE1_HOST_NAME=racnoded1 -export RACNODE_IMAGE_NAME="oracle/database-rac:19.3.0" -export RACNODE1_NODE_VIP=172.16.1.130 -export RACNODE1_VIP_HOSTNAME="racnoded1-vip" -export RACNODE1_PRIV_IP=192.168.17.100 -export RACNODE1_PRIV_HOSTNAME="racnoded1-priv" -export RACNODE1_PUBLIC_IP=172.16.1.100 -export RACNODE1_PUBLIC_HOSTNAME="racnoded1" -export CMAN_CONTAINER_NAME=racnodedc1-cman -export CMAN_IMAGE_NAME="oracle/client-cman:19.3.0" -export DNS_DOMAIN="example.com" -export CMAN_PUBLIC_IP=172.16.1.164 -export CMAN_HOSTNAME="racnodedc1-cman" -export CMAN_PUBLIC_NETWORK_NAME="rac_pub1_nw" -export CMAN_PUBLIC_HOSTNAME="racnodec1-cman" -export CMAN_VERSION="19.3.0" -export ORACLE_HOME=/u01/app/oracle/product/${CMAN_VERSION}/client_1 -``` - -### Section 2.2: Preparing Environment Variables for RAC with NFS Storage Devices - -In order to setup Oracle RAC on Docker with Oracle RAC Storage Container with Docker Compose, lets first make sure `nfs-utils` rpm package is installed in Docker Host machine. -```bash -yum -y install nfs-utils -``` - -Lets identify necessary variables to export that will be used by `docker-compose.yml` file later. Below is one example of exporting necessary variables related to docker network, DNS container, Storage Container, RAC Container and CMAN container discussed in this guide. Change as per your requirements. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_CONTAINER_NAME=rac-dnsserver -export DNS_HOST_NAME=rac-dns -export DNS_IMAGE_NAME="oracle/rac-dnsserver:latest" -export DNS_DOMAIN="example.com" -export RAC_NODE_NAME_PREFIXD="racnoded" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_pzriv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export DNS_PUBLIC_IP=172.16.1.25 -export DNS_PRIVATE_IP=192.168.17.25 -export INSTALL_NODE=racnoded1 -export SCAN_NAME="racnodedc1-scan" -export SCAN_IP=172.16.1.230 -export PWD_KEY="pwd.key" -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export RACNODE1_CONTAINER_NAME=racnoded1 -export RACNODE1_HOST_NAME=racnoded1 -export RACNODE_IMAGE_NAME="oracle/database-rac:19.3.0" -export RACNODE1_NODE_VIP=172.16.1.130 -export RACNODE1_VIP_HOSTNAME="racnoded1-vip" -export RACNODE1_PRIV_IP=192.168.17.100 -export RACNODE1_PRIV_HOSTNAME="racnoded1-priv" -export RACNODE1_PUBLIC_IP=172.16.1.100 -export RACNODE1_PUBLIC_HOSTNAME="racnoded1" -export CMAN_CONTAINER_NAME=racnodedc1-cman -export CMAN_PUBLIC_IP=172.16.1.164 -export CMAN_HOSTNAME="racnodedc1-cman" -export CMAN_IMAGE_NAME="oracle/client-cman:19.3.0" -export DNS_DOMAIN="example.com" -export CMAN_PUBLIC_NETWORK_NAME="rac_pub1_nw" -export CMAN_PUBLIC_HOSTNAME="racnodec1-cman" -export CMAN_VERSION="19.3.0" -export ORACLE_HOME=/u01/app/oracle/product/${CMAN_VERSION}/client_1 -export ASM_DISCOVERY_DIR="/oradata" -export ASM_DEVICE_LIST="/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img" -export STORAGE_CONTAINER_NAME="racnode-storage" -export STORAGE_HOST_NAME="racnode-storage" -export STORAGE_IMAGE_NAME="oracle/rac-storage-server:19.3.0" -export ORACLE_DBNAME="ORCLCDB" -export STORAGE_PRIVATE_IP=192.168.17.80 -export NFS_STORAGE_VOLUME="/docker_volumes/asm_vol/$ORACLE_DBNAME" -``` -## Section 3 : Deploy the RAC Container - -Refer [Section 4.1 : Prerequisites for Running Oracle RAC on Docker](../../../OracleRealApplicationClusters/README.md) to complete the pre-requisite steps for Oracle RAC on Docker. - -All containers will share a host file for name resolution. The shared hostfile must be available to all container. Create the shared host file (if it doesn't exist) at `/opt/containers/rac_host_file`: - -For example: - -```bash -mkdir /opt/containers -touch /opt/containers/rac_host_file -``` - -**Note:** Do not modify `/opt/containers/rac_host_file` from docker host. It will be managed from within the containers. - -Specify the secret volume for resetting the grid, oracle, and database user password during node creation or node addition. The volume can be a shared volume among all the containers. For example: -```bash -mkdir /opt/.secrets/ -openssl rand -out /opt/.secrets/pwd.key -hex 64 -``` -Edit the /opt/.secrets/common_os_pwdfile and seed the password for the grid, oracle and database users. For this deployment scenario, it will be a common password for the grid, oracle, and database users. Run the command: -```bash -openssl enc -aes-256-cbc -salt -in /opt/.secrets/common_os_pwdfile -out /opt/.secrets/common_os_pwdfile.enc -pass file:/opt/.secrets/pwd.key -rm -f /opt/.secrets/common_os_pwdfile -``` - -If you are using an NFS volume, skip to the section below "Deploying RAC on Docker with NFS Volume". - -Make sure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: - -```bash -# dd if=/dev/zero of=/dev/xvde bs=8k count=100000 -``` - -Repeat for each shared block device. In the example above, `/dev/xvde` is a shared Xen virtual block device. - -### Section 3.1: Deploy the RAC Container with Block Devices - -Once pre-requisites and above necessary variables are exported, copy `docker-compose.yml` file from [this location](./compose-files/blockdevices/docker-compose.yml) and `cd` to same directory where you have copied `docker-compose` file before running `docker compose` commands. - -After copying compose file, you can bring up DNS Container, RAC Container and CMAN container in order by following below commands- -```bash -#---------Bring up DNS------------ -docker compose up -d ${DNS_CONTAINER_NAME} && docker compose stop ${DNS_CONTAINER_NAME} -docker network disconnect ${PUBLIC_NETWORK_NAME} ${DNS_CONTAINER_NAME} -docker network disconnect ${PRIVATE_NETWORK_NAME} ${DNS_CONTAINER_NAME} -docker network connect ${PUBLIC_NETWORK_NAME} --ip ${DNS_PUBLIC_IP} ${DNS_CONTAINER_NAME} -docker network connect ${PRIVATE_NETWORK_NAME} --ip ${DNS_PRIVATE_IP} ${DNS_CONTAINER_NAME} -docker compose start ${DNS_CONTAINER_NAME} -docker compose logs ${DNS_CONTAINER_NAME} - -rac-dnsserver | 01-30-2024 10:51:51 UTC : : DNS Server started successfully -rac-dnsserver | 01-30-2024 10:51:51 UTC : : ################################################ -rac-dnsserver | 01-30-2024 10:51:51 UTC : : DNS Server IS READY TO USE! -rac-dnsserver | 01-30-2024 10:51:51 UTC : : ################################################ -rac-dnsserver | 01-30-2024 10:51:51 UTC : : DNS Server Started Successfully -``` - -```bash -#-----Bring up racnode1---------- -docker compose up -d ${RACNODE1_CONTAINER_NAME} && docker compose stop ${RACNODE1_CONTAINER_NAME} -docker network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -docker network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -docker network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE1_PUBLIC_IP} ${RACNODE1_CONTAINER_NAME} -docker network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE1_PRIV_IP} ${RACNODE1_CONTAINER_NAME} -docker compose start ${RACNODE1_CONTAINER_NAME} -docker compose logs -f ${RACNODE1_CONTAINER_NAME} - -racnoded1 | 01-31-2024 09:09:56 UTC : : ################################################################# -racnoded1 | 01-31-2024 09:09:56 UTC : : Oracle Database ORCLCDB is up and running on racnoded1 -racnoded1 | 01-31-2024 09:09:56 UTC : : ################################################################# -racnoded1 | 01-31-2024 09:09:56 UTC : : Running User Script oracle user -racnoded1 | 01-31-2024 09:09:56 UTC : : Setting Remote Listener -racnoded1 | 01-31-2024 09:09:56 UTC : : 172.16.1.164 -racnoded1 | 01-31-2024 09:09:56 UTC : : Executing script to set the remote listener -racnoded1 | 01-31-2024 09:09:58 UTC : : #################################### -racnoded1 | 01-31-2024 09:09:58 UTC : : ORACLE RAC DATABASE IS READY TO USE! -racnoded1 | 01-31-2024 09:09:58 UTC : : #################################### -``` - -```bash -#-----Bring up CMAN---------- -docker compose up -d ${CMAN_CONTAINER_NAME} -docker compose logs -f ${CMAN_CONTAINER_NAME} - -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : cman started sucessfully -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : ################################################ -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : CONNECTION MANAGER IS READY TO USE! -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : ################################################ -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : cman started sucessfully -``` - -Note: Docker compose currently doesn't supports assigning multiple network IP address via compose file. Due to this limitation, above commands are specificically assigning required public and private networks to DNS and RAC container while stopping it in between. Also, above example is specific to bridge networks on a Single Docker Host. - -In case, of MCVLAN or IPVLAN networks, you may want to edit `docker-compose.yml` file are per your needs and respective environment variables. - -### Section 3.2: Deploy the RAC Container with NFS Storage Devices - -Once pre-requisites for NFS Storage Devices and above necessary variables are exported, copy `docker-compose.yml` file from [this location](./compose-files/nfsdevices/docker-compose.yml) and `cd` to same directory where you have copied `docker-compose.yml` file before running `docker compose` commands. - -Create placeholder for NFS storage and make sure it is empty - -```bash -export ORACLE_DBNAME=ORCLCDB -mkdir -p /docker_volumes/asm_vol/$ORACLE_DBNAME -rm -rf /docker_volumes/asm_vol/$ORACLE_DBNAME/asm_disk0* -``` - -```bash -#-----Create docker volume--- -docker volume create --driver local \ - --opt type=nfs \ - --opt o=addr=192.168.17.80,rw,bg,hard,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 \ - --opt device=192.168.17.80:/oradata \ - racstorage -``` - -After copying compose file, you can bring up DNS Container, Storage Container, RAC Container and CMAN container by following below commands- -```bash -#---------Bring up DNS------------ -docker compose up -d ${DNS_CONTAINER_NAME} && docker compose stop ${DNS_CONTAINER_NAME} -docker network disconnect ${PUBLIC_NETWORK_NAME} ${DNS_CONTAINER_NAME} -docker network disconnect ${PRIVATE_NETWORK_NAME} ${DNS_CONTAINER_NAME} -docker network connect ${PUBLIC_NETWORK_NAME} --ip ${DNS_PUBLIC_IP} ${DNS_CONTAINER_NAME} -docker network connect ${PRIVATE_NETWORK_NAME} --ip ${DNS_PRIVATE_IP} ${DNS_CONTAINER_NAME} -docker compose start ${DNS_CONTAINER_NAME} -docker compose logs ${DNS_CONTAINER_NAME} - -rac-dnsserver | 01-31-2024 07:22:06 UTC : : DNS Server started successfully -rac-dnsserver | 01-31-2024 07:22:06 UTC : : ################################################ -rac-dnsserver | 01-31-2024 07:22:06 UTC : : DNS Server IS READY TO USE! -rac-dnsserver | 01-31-2024 07:22:06 UTC : : ################################################ -rac-dnsserver | 01-31-2024 07:22:06 UTC : : DNS Server Started Successfully -``` - -```bash -#----- Bring up Storage Container----- -docker compose up -d ${STORAGE_CONTAINER_NAME} -docker compose logs -f ${STORAGE_CONTAINER_NAME} - -racnode-storage | #################################################### -racnode-storage | NFS Server is up and running -racnode-storage | Create NFS volume for /oradata/ -racnode-storage | #################################################### -``` - -```bash -#-----Bring up racnode1---------- -docker compose up -d ${RACNODE1_CONTAINER_NAME} && docker compose stop ${RACNODE1_CONTAINER_NAME} -docker network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -docker network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -docker network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE1_PUBLIC_IP} ${RACNODE1_CONTAINER_NAME} -docker network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE1_PRIV_IP} ${RACNODE1_CONTAINER_NAME} -docker compose start ${RACNODE1_CONTAINER_NAME} - -docker compose logs -f ${RACNODE1_CONTAINER_NAME} -racnode1 | 01-19-2024 16:34:24 UTC : : #################################### -racnode1 | 01-19-2024 16:34:24 UTC : : ORACLE RAC DATABASE IS READY TO USE! -racnode1 | 01-19-2024 16:34:24 UTC : : #################################### -``` - -```bash -#-----Bring up CMAN---------- -docker compose up -d ${CMAN_CONTAINER_NAME} -docker compose logs -f ${CMAN_CONTAINER_NAME} - -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : cman started sucessfully -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : ################################################ -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : CONNECTION MANAGER IS READY TO USE! -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : ################################################ -racnodedc1-cman | 01-31-2024 10:35:00 UTC : : cman started sucessfully -``` - -Note: Docker compose currently doesn't supports assigning multiple network IP address via compose file. Due to this limitation, above commands are specificically assigning required public and private networks to RAC container while stopping it in between. Also, above example is specific to bridge networks. - -In case, of MCVLAN or IPVLAN networks, you may want to edit `docker-compose.yml` file are per your needs and respective environment variables. - -## Section 4: Add Additional Node in Existing Oracle RAC Cluster - -### Section 4.1: Add Additional Node in Existing Oracle RAC Cluster with Block Devices -In order to add additional node in existing Oracle RAC on Docker with Block Devices with Docker Compose, first lets identify necessary variables to export that will be used by `docker-compose.yml` file later. Below is one example of exporting necessary variables related to additional RAC Container with Block Devices. Change these as per your environment. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_HOST_NAME=rac-dnsserver -export DNS_IMAGE_NAME="oracle/rac-dnsserver:latest" -export DNS_DOMAIN="example.com" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_pzriv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export DNS_PUBLIC_IP=172.16.1.25 -export INSTALL_NODE=racnoded1 -export SCAN_NAME="racnodedc1-scan" -export SCAN_IP=172.16.1.230 -export ASM_DISCOVERY_DIR="/dev/" -export ASM_DISK1="/dev/oracleoci/oraclevdd" -export ASM_DISK2="/dev/oracleoci/oraclevde" -export ASM_DEVICE1="/dev/asm-disk1" -export ASM_DEVICE2="/dev/asm-disk2" -export ASM_DEVICE_LIST="${ASM_DEVICE1},${ASM_DEVICE2}" -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export RACNODE2_CONTAINER_NAME=racnoded2 -export RACNODE2_HOST_NAME=racnoded2 -export RACNODE_IMAGE_NAME="oracle/database-rac:19.3.0" -export RACNODE2_NODE_VIP=172.16.1.131 -export RACNODE2_VIP_HOSTNAME="racnoded2-vip" -export RACNODE2_PRIV_IP=192.168.17.101 -export RACNODE2_PRIV_HOSTNAME="racnoded2-priv" -export RACNODE2_PUBLIC_IP=172.16.1.101 -export RACNODE2_PUBLIC_HOSTNAME="racnoded2" -export ORACLE_DBNAME="ORCLCDB" -``` -Once necessary variables are exported, copy `docker-compose-addition.yml` file from [this location](./compose-files/blockdevices/docker-compose-addition.yml) and rename it as `docker-compose.yml` - -After copying compose file, you can bring up additional RAC Container by following below commands- - -```bash -#-----Bring up racnode2---------- -docker compose up -d ${RACNODE2_CONTAINER_NAME} && docker compose stop ${RACNODE2_CONTAINER_NAME} -docker network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -docker network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -docker network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE2_PUBLIC_IP} ${RACNODE2_CONTAINER_NAME} -docker network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE2_PRIV_IP} ${RACNODE2_CONTAINER_NAME} -docker compose start ${RACNODE2_CONTAINER_NAME} -docker compose logs -f ${RACNODE2_CONTAINER_NAME} - -racnoded2 | 01-30-2024 13:34:52 UTC : : ################################################################# -racnoded2 | 01-30-2024 13:34:52 UTC : : Oracle Database ORCLCDB is up and running on racnoded2 -racnoded2 | 01-30-2024 13:34:52 UTC : : ################################################################# -racnoded2 | 01-30-2024 13:34:52 UTC : : Running User Script for oracle user -racnoded2 | 01-30-2024 13:34:52 UTC : : Setting Remote Listener -racnoded2 | 01-30-2024 13:34:52 UTC : : #################################### -racnoded2 | 01-30-2024 13:34:52 UTC : : ORACLE RAC DATABASE IS READY TO USE! -racnoded2 | 01-30-2024 13:34:52 UTC : : #################################### -``` - -### Section 4.2: Add Additional Node in Existing Oracle RAC Cluster with NFS Volume - -In order to add additional node in existing Oracle RAC on Docker with NFS Storage Devices with Docker Compose, first lets identify necessary variables to export that will be used by `docker-compose.yml` file later. Below is one example of exporting necessary variables related to additional RAC Container with NFS Storage. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_HOST_NAME=rac-dnsserver -export DNS_IMAGE_NAME="oracle/rac-dnsserver:latest" -export DNS_DOMAIN="example.com" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_pzriv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export DNS_PUBLIC_IP=172.16.1.25 -export INSTALL_NODE=racnoded1 -export SCAN_NAME="racnodedc1-scan" -export SCAN_IP=172.16.1.230 -export ASM_DISCOVERY_DIR="/oradata" -export ASM_DEVICE_LIST="/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img" -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export RACNODE2_CONTAINER_NAME=racnoded2 -export RACNODE2_HOST_NAME=racnoded2 -export RACNODE_IMAGE_NAME="oracle/database-rac:19.3.0" -export RACNODE2_NODE_VIP=172.16.1.131 -export RACNODE2_VIP_HOSTNAME="racnoded2-vip" -export RACNODE2_PRIV_IP=192.168.17.101 -export RACNODE2_PRIV_HOSTNAME="racnoded2-priv" -export RACNODE2_PUBLIC_IP=172.16.1.101 -export RACNODE2_PUBLIC_HOSTNAME="racnoded2" -export ORACLE_DBNAME="ORCLCDB" -``` -Once necessary variables are exported, copy `docker-compose-addition.yml` file from [this location](./compose-files/nfsdevices/docker-compose-addition.yml) and rename it as `docker-compose.yml` - - -After copying compose file, you can bring up additional RAC Container by following below commands- - -```bash -#-----Bring up racnode2---------- -docker compose up -d ${RACNODE2_CONTAINER_NAME} && docker compose stop ${RACNODE2_CONTAINER_NAME} -docker network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -docker network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -docker network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE2_PUBLIC_IP} ${RACNODE2_CONTAINER_NAME} -docker network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE2_PRIV_IP} ${RACNODE2_CONTAINER_NAME} -docker compose start ${RACNODE2_CONTAINER_NAME} -docker compose logs -f ${RACNODE2_CONTAINER_NAME} - -racnoded2 | 01-31-2024 10:45:54 UTC : : ################################################################# -racnoded2 | 01-31-2024 10:45:54 UTC : : Oracle Database ORCLCDB is up and running on racnoded2 -racnoded2 | 01-31-2024 10:45:54 UTC : : ################################################################# -racnoded2 | 01-31-2024 10:45:54 UTC : : Running User Script for oracle user -racnoded2 | 01-31-2024 10:45:54 UTC : : Setting Remote Listener -racnoded2 | 01-31-2024 10:45:54 UTC : : #################################### -racnoded2 | 01-31-2024 10:45:54 UTC : : ORACLE RAC DATABASE IS READY TO USE! -racnoded2 | 01-31-2024 10:45:54 UTC : : #################################### -``` - - -#### Connect to the RAC container - -To connect to the container execute following command: - -```bash -docker exec -i -t racnoded1 /bin/bash -``` - -If the install fails for any reason, log in to container using the above command and check `/tmp/orod.log`. You can also review the Grid Infrastructure logs located at `$GRID_BASE/diag/crs` and check for failure logs. If the failure occurred during the database creation then check the database logs. - -## Cleanup RAC Environment -Below commands can be executed to cleanup above RAC Environment - - -### Cleanup RAC based on Block Devices -```bash -#----Cleanup RAC Containers----- -docker rm -f racnoded1 racnoded2 rac-dnsserver racnodedc1-cman -#----Cleanup Disks-------------- -dd if=/dev/zero of=/dev/oracleoci/oraclevde bs=8k count=10000 status=progress && dd if=/dev/zero of=/dev/oracleoci/oraclevdd bs=8k count=10000 status=progress -#----Cleanup Files and Folders-- -rm -rf /opt/containers /opt/.secrets -#----Cleanup Docker Networks-- -docker network rm -f rac_pub1_nw rac_pzriv1_nw -#----Cleanup Docker Images-- -docker rmi -f oracle/rac-dnsserver:latest oracle/database-rac:19.3.0 oracle/client-cman:19.3.0 -``` - -### Cleanup RAC based on NFS Storage Devices -```bash -#----Cleanup RAC Containers----- -docker rm -f racnoded1 racnoded2 rac-dnsserver racnode-storage racnodedc1-cman -#----Cleanup Files and Folders-- -rm -rf /opt/containers /opt/.secrets -export ORACLE_DBNAME=ORCLCDB -rm -rf /docker_volumes/asm_vol/$ORACLE_DBNAME/asm_disk0* -#----Cleanup Docker Volumes--- -docker volume -f racstorage -#----Cleanup Docker Networks-- -docker network rm -f rac_pub1_nw rac_pzriv1_nw -#----Cleanup Docker Images-- -docker rmi -f oracle/rac-dnsserver:latest oracle/rac-storage-server:19.3.0 oracle/database-rac:19.3.0 oracle/client-cman:19.3.0 -``` - -## Copyright - -Copyright (c) 2014-2025 Oracle and/or its affiliates. All rights reserved. \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose-addition.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose-addition.yml deleted file mode 100644 index 01d502bbfe..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose-addition.yml +++ /dev/null @@ -1,71 +0,0 @@ ---- -version: "3" -services: - racnoded2: - container_name: ${RACNODE2_CONTAINER_NAME} - hostname: ${RACNODE2_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /dev/shm - - /opt/containers/rac_host_file:/etc/hosts - - /sys/fs/cgroup:/sys/fs/cgroup:ro - tmpfs: - - /dev/shm:rw,exec,size=4G - - /run - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - EXISTING_CLS_NODES: ${INSTALL_NODE} - NODE_VIP: ${RACNODE2_NODE_VIP} - VIP_HOSTNAME: ${RACNODE2_VIP_HOSTNAME} - PRIV_IP: ${RACNODE2_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE2_PRIV_HOSTNAME} - OP_TYPE: ADDNODE - PUBLIC_IP: ${RACNODE2_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE2_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - ORACLE_SID: ${ORACLE_DBNAME} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - RESET_FAILED_SYSTEMD: "true" - devices: - - "${ASM_DISK1}:${ASM_DEVICE1}" - - "${ASM_DISK2}:${ASM_DEVICE2}" - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - cpu_rt_runtime: 95000 - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose.yml deleted file mode 100644 index 003082a5a5..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/blockdevices/docker-compose.yml +++ /dev/null @@ -1,123 +0,0 @@ ---- -version: "3" -services: - rac-dnsserver: - container_name: ${DNS_CONTAINER_NAME} - hostname: ${DNS_HOST_NAME} - image: ${DNS_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - SETUP_DNS_CONFIG_FILES: "setup_true" - DOMAIN_NAME: ${DNS_DOMAIN} - RAC_NODE_NAME_PREFIXD: ${RAC_NODE_NAME_PREFIXD} - WEBMIN_ENABLED: false - cap_add: - - AUDIT_WRITE - healthcheck: - test: ["CMD-SHELL", "if nslookup $SCAN_NAME; then exit 0; else exit 1; fi"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - networks: - - rac_pub1_nw - - rac_priv1_nw - racnoded1: - depends_on: - rac-dnsserver: - condition: service_healthy - container_name: ${RACNODE1_CONTAINER_NAME} - hostname: ${RACNODE1_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /dev/shm - - /opt/containers/rac_host_file:/etc/hosts - - /sys/fs/cgroup:/sys/fs/cgroup:ro - tmpfs: - - /dev/shm:rw,exec,size=4G - - /run - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - NODE_VIP: ${RACNODE1_NODE_VIP} - VIP_HOSTNAME: ${RACNODE1_VIP_HOSTNAME} - PRIV_IP: ${RACNODE1_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE1_PRIV_HOSTNAME} - OP_TYPE: INSTALL - PUBLIC_IP: ${RACNODE1_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE1_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - CMAN_HOSTNAME: ${CMAN_HOSTNAME} - CMAN_IP: ${CMAN_PUBLIC_IP} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - RESET_FAILED_SYSTEMD: "true" - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - devices: - - "${ASM_DISK1}:${ASM_DEVICE1}" - - "${ASM_DISK2}:${ASM_DEVICE2}" - cpu_rt_runtime: 95000 - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - racnodedc1-cman: - depends_on: - rac-dnsserver: - condition: service_healthy - racnoded1: - condition: service_healthy - container_name: ${CMAN_CONTAINER_NAME} - hostname: ${CMAN_HOSTNAME} - image: ${CMAN_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - DOMAIN: ${DNS_DOMAIN} - PUBLIC_HOSTNAME: ${CMAN_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - SCAN_IP: ${SCAN_IP} - PUBLIC_IP: ${CMAN_PUBLIC_IP} - privileged: false - ports: - - 1521:1521 - networks: - rac_pub1_nw: - ipv4_address: ${CMAN_PUBLIC_IP} - healthcheck: - test: - - CMD-SHELL - - /bin/bash -c "export LD_LIBRARY_PATH=${ORACLE_HOME}/lib && /u01/app/oracle/product/${CMAN_VERSION}/client_1/bin/cmctl show service -c ${CMAN_HOSTNAME}.${DNS_DOMAIN} | grep -q 'Instance \"cman\", status READY'" - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose-addition.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose-addition.yml deleted file mode 100644 index 4924bb9337..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose-addition.yml +++ /dev/null @@ -1,72 +0,0 @@ ---- -version: "3" -services: - racnoded2: - container_name: ${RACNODE2_CONTAINER_NAME} - hostname: ${RACNODE2_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /dev/shm - - /opt/containers/rac_host_file:/etc/hosts - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - racstorage:/oradata - tmpfs: - - /dev/shm:rw,exec,size=4G - - /run - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - EXISTING_CLS_NODES: ${INSTALL_NODE} - NODE_VIP: ${RACNODE2_NODE_VIP} - VIP_HOSTNAME: ${RACNODE2_VIP_HOSTNAME} - PRIV_IP: ${RACNODE2_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE2_PRIV_HOSTNAME} - OP_TYPE: ADDNODE - PUBLIC_IP: ${RACNODE2_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE2_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - ORACLE_SID: ${ORACLE_DBNAME} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - RESET_FAILED_SYSTEMD: "true" - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - cpu_rt_runtime: 95000 - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" -volumes: - racstorage: - external: true \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose.yml deleted file mode 100644 index 3ad565240d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racdockercompose_1/compose-files/nfsdevices/docker-compose.yml +++ /dev/null @@ -1,147 +0,0 @@ ---- -version: "3" -services: - rac-dnsserver: - container_name: ${DNS_CONTAINER_NAME} - hostname: ${DNS_HOST_NAME} - image: ${DNS_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - SETUP_DNS_CONFIG_FILES: "setup_true" - DOMAIN_NAME: ${DNS_DOMAIN} - RAC_NODE_NAME_PREFIXD: ${RAC_NODE_NAME_PREFIXD} - WEBMIN_ENABLED: false - cap_add: - - AUDIT_WRITE - healthcheck: - test: ["CMD-SHELL", "if nslookup $SCAN_NAME; then exit 0; else exit 1; fi"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - networks: - - rac_pub1_nw - - rac_priv1_nw - racnode-storage: - container_name: ${STORAGE_CONTAINER_NAME} - hostname: ${STORAGE_HOST_NAME} - image: ${STORAGE_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - volumes: - - ${NFS_STORAGE_VOLUME}:/oradata - - /sys/fs/cgroup:/sys/fs/cgroup:ro - tmpfs: - - /run - cap_add: - - SYS_ADMIN - - AUDIT_WRITE - healthcheck: - test: - - CMD-SHELL - - /bin/bash -c "ls -lrt /oradata/ && showmount -e | grep '/oradata'" - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - networks: - rac_priv1_nw: - ipv4_address: ${STORAGE_PRIVATE_IP} - racnoded1: - depends_on: - rac-dnsserver: - condition: service_healthy - container_name: ${RACNODE1_CONTAINER_NAME} - hostname: ${RACNODE1_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /dev/shm - - /opt/containers/rac_host_file:/etc/hosts - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - racstorage:/oradata - tmpfs: - - /dev/shm:rw,exec,size=4G - - /run - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - NODE_VIP: ${RACNODE1_NODE_VIP} - VIP_HOSTNAME: ${RACNODE1_VIP_HOSTNAME} - PRIV_IP: ${RACNODE1_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE1_PRIV_HOSTNAME} - OP_TYPE: INSTALL - PUBLIC_IP: ${RACNODE1_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE1_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - CMAN_HOSTNAME: ${CMAN_HOSTNAME} - CMAN_IP: ${CMAN_PUBLIC_IP} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - RESET_FAILED_SYSTEMD: "true" - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - cpu_rt_runtime: 95000 - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - racnodedc1-cman: - depends_on: - rac-dnsserver: - condition: service_healthy - racnoded1: - condition: service_healthy - container_name: ${CMAN_CONTAINER_NAME} - hostname: ${CMAN_HOSTNAME} - image: ${CMAN_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - DOMAIN: ${DNS_DOMAIN} - PUBLIC_HOSTNAME: ${CMAN_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - SCAN_IP: ${SCAN_IP} - PUBLIC_IP: ${CMAN_PUBLIC_IP} - privileged: false - ports: - - 1521:1521 - networks: - rac_pub1_nw: - ipv4_address: ${CMAN_PUBLIC_IP} - healthcheck: - test: - - CMD-SHELL - - /bin/bash -c "export LD_LIBRARY_PATH=${ORACLE_HOME}/lib && /u01/app/oracle/product/${CMAN_VERSION}/client_1/bin/cmctl show service -c ${CMAN_HOSTNAME}.${DNS_DOMAIN} | grep -q 'Instance \"cman\", status READY'" - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" -volumes: - racstorage: - external: true \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/README.md b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/README.md deleted file mode 100644 index bff527f177..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/README.md +++ /dev/null @@ -1,490 +0,0 @@ -# Example of creating an Oracle RAC database with Podman Compose - -Once you have built your Oracle RAC container image, you can create a Oracle RAC database with Podman Compose on Single Host via Bridge Network as example given below. - -- [Example of creating an Oracle RAC database with Podman Compose](#example-of-creating-an-oracle-rac-database-with-podman-compose) - - [Section 1 : Prerequisites for RAC Database on Podman with Podman Compose](#section-1--prerequisites-for-rac-database-on-podman-with-podman-compose) - - [Section 2 : Preparing Environment Variables](#section-2--preparing-environment-variables) - - [Section 2.1: Preparing Environment Variables for RAC with Block Devices](#section-21-preparing-environment-variables-for-rac-with-block-devices) - - [Section 2.2: Preparing Environment Variables for RAC with NFS Storage Devices](#section-22-preparing-environment-variables-for-rac-with-nfs-storage-devices) - - [Section 3 : Deploy the RAC Container](#section-3--deploy-the-rac-container) - - [Section 3.1: Deploy the RAC Container with Block Devices](#section-31-deploy-the-rac-container-with-block-devices) - - [Section 3.2: Deploy the RAC Container with NFS Storage Devices](#section-32-deploy-the-rac-container-with-nfs-storage-devices) - - [Section 4: Add Additional Node in Existing Oracle RAC Cluster](#section-4-add-additional-node-in-existing-oracle-rac-cluster) - - [Section 4.1: Add Additional Node in Existing Oracle RAC Cluster with Block Devices](#section-41-add-additional-node-in-existing-oracle-rac-cluster-with-block-devices) - - [Section 4.2: Add Additional Node in Existing Oracle RAC Cluster with NFS Volume](#section-42-add-additional-node-in-existing-oracle-rac-cluster-with-nfs-volume) - - [Section 5: Connect to the RAC container](#connect-to-the-rac-container) - - [Cleanup RAC Environment](#cleanup-rac-environment) - - [Copyright](#copyright) - -## Section 1 : Prerequisites for RAC Database on Podman with Podman Compose - -**IMPORTANT :** You must execute all the steps specified in this section (customized for your environment) before you proceed to the next section. Podman and Podman Compose is not supported with OL7. You need OL8.8 with UEK R7. This guide and example is mainly for development and testing purposes only. - -- It is assumed that before proceeding further you have executed the pre-requisites from [Section 1 : Prerequisites for running Oracle RAC in containers](../../../OracleRealApplicationClusters/README.md) and [Section 5.1 : Prerequisites for Running Oracle RAC on Podman](../../../OracleRealApplicationClusters/README.md) for Single Podman Host Machine . -- Create DNS podman image, if you are planing to use DNS container for testing. Please refer [DNS Container README.MD](../../../OracleDNSServer/README.md). You can skip this step if you are planing to use **your own DNS Server**. -- Create Oracle Connection Manager Podman image.Please refer [RAC Oracle Connection Manager README.MD](../../../OracleConnectionManager/README.md) for details. -- Execute the [Section 1 : Prerequisites for running Oracle RAC in containers](../../../OracleRealApplicationClusters/README.md). -- If you have not built the Oracle RAC container image, execute the steps in [Section 2: Building Oracle RAC Database Container Images](../../../OracleRealApplicationClusters/README.md) based on your environment. - -In order to setup RAC on Podman with Podman Compose, latest `podman-compose` binary is required from yum repo in OL8 Host. This is example of how to install latest `podman-compose` from yum repo- -```bash -dnf config-manager --enable ol8_developer_EPEL -dnf install podman-compose -y -``` - -## Section 2 : Preparing Environment Variables - -### Section 2.1: Preparing Environment Variables for RAC with Block Devices - -In order to setup Oracle RAC on Podman with Block Devices with Podman Compose, first lets identify necessary variables to export that will be used by `podman-compose.yml` file later. Below is one example of exporting necessary variables related to podman network, DNS container, RAC Container and CMAN container discussed in this repo. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_CONTAINER_NAME=rac-dnsserver -export DNS_HOST_NAME=rac-dns -export DNS_IMAGE_NAME="oracle/rac-dnsserver:latest" -export DNS_DOMAIN="example.com" -export RAC_NODE_NAME_PREFIXP="racnodep" -export DNS_PUBLIC_IP=172.16.1.25 -export DNS_PRIVATE_IP=192.168.17.25 -export RACNODE1_CONTAINER_NAME=racnodep1 -export RACNODE1_HOST_NAME=racnodep1 -export RACNODE_IMAGE_NAME="localhost/oracle/database-rac:21.3.0-21.13.0" -export RACNODE1_NODE_VIP=172.16.1.200 -export RACNODE1_VIP_HOSTNAME="racnodep1-vip" -export RACNODE1_PRIV_IP=192.168.17.170 -export RACNODE1_PRIV_HOSTNAME="racnodep1-priv" -export RACNODE1_PUBLIC_IP=172.16.1.170 -export RACNODE1_PUBLIC_HOSTNAME="racnodep1" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_priv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export INSTALL_NODE=racnodep1 -export SCAN_NAME="racnodepc1-scan" -export SCAN_IP=172.16.1.236 -export ASM_DISCOVERY_DIR="/dev/" -export PWD_KEY="pwd.key" -export ASM_DISK1="/dev/oracleoci/oraclevdd" -export ASM_DISK2="/dev/oracleoci/oraclevde" -export ASM_DEVICE1="/dev/asm-disk1" -export ASM_DEVICE2="/dev/asm-disk2" -export ASM_DEVICE_LIST="${ASM_DEVICE1},${ASM_DEVICE2}" -export ORACLE_SID="ORCLCDB" -export CMAN_HOSTNAME="racnodepc1-cman" -export CMAN_PUBLIC_IP=172.16.1.15 -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export CMAN_CONTAINER_NAME=racnodepc1-cman -export CMAN_IMAGE_NAME="oracle/client-cman:21.3.0" -export DNS_DOMAIN="example.com" -export CMAN_PUBLIC_IP=172.16.1.166 -export CMAN_HOSTNAME="racnodepc1-cman" -export CMAN_PUBLIC_NETWORK_NAME="rac_pub1_nw" -export CMAN_PUBLIC_HOSTNAME="racnodepc1-cman" -export CMAN_VERSION="21.3.0" -``` -### Section 2.2: Preparing Environment Variables for RAC with NFS Storage Devices - -In order to setup Oracle RAC on Podman with Oracle RAC Storage Container with Podman Compose, lets first make sure `nfs-utils` rpm package is installed in Podman Host machine. -```bash -yum -y install nfs-utils -``` - -If SELinux is enabled on Podman Host (you can check by running `sestatus` command), then execute below to make SELinux policy as `permissive` and reboot host machine. This will allow permissions to write to `asm-disks*` in the `/oradata` folder inside the podman containers- -```bash -sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config -reboot -``` - -Lets identify necessary variables to export that will be used by `podman-compose.yml` file later. Below is one example of exporting necessary variables related to docker network, DNS container, Storage Container, RAC Container and CMAN container discussed in this repo. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_CONTAINER_NAME=rac-dnsserver -export DNS_HOST_NAME=rac-dns -export DNS_IMAGE_NAME="oracle/rac-dnsserver:latest" -export DNS_DOMAIN="example.com" -export RAC_NODE_NAME_PREFIXP="racnodep" -export DNS_PUBLIC_IP=172.16.1.25 -export DNS_PRIVATE_IP=192.168.17.25 -export RACNODE1_CONTAINER_NAME=racnodep1 -export RACNODE1_HOST_NAME=racnodep1 -export RACNODE_IMAGE_NAME="localhost/oracle/database-rac:21.3.0-21.13.0" -export RACNODE1_NODE_VIP=172.16.1.200 -export RACNODE1_VIP_HOSTNAME="racnodep1-vip" -export RACNODE1_PRIV_IP=192.168.17.170 -export RACNODE1_PRIV_HOSTNAME="racnodep1-priv" -export RACNODE1_PUBLIC_IP=172.16.1.170 -export RACNODE1_PUBLIC_HOSTNAME="racnodep1" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_priv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export INSTALL_NODE=racnodep1 -export SCAN_NAME="racnodepc1-scan" -export SCAN_IP=172.16.1.236 -export ASM_DISCOVERY_DIR="/dev/" -export PWD_KEY="pwd.key" -export ASM_DISCOVERY_DIR="/oradata" -export ASM_DEVICE_LIST="/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img" -export ORACLE_SID="ORCLCDB" -export CMAN_HOSTNAME="racnodepc1-cman" -export CMAN_PUBLIC_IP=172.16.1.15 -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export CMAN_CONTAINER_NAME=racnodepc1-cman -export CMAN_IMAGE_NAME="oracle/client-cman:21.3.0" -export DNS_DOMAIN="example.com" -export CMAN_PUBLIC_IP=172.16.1.166 -export CMAN_HOSTNAME="racnodepc1-cman" -export CMAN_PUBLIC_NETWORK_NAME="rac_pub1_nw" -export CMAN_PUBLIC_HOSTNAME="racnodepc1-cman" -export CMAN_VERSION="21.3.0" -export STORAGE_CONTAINER_NAME="racnode-storage" -export STORAGE_HOST_NAME="racnode-storage" -export STORAGE_IMAGE_NAME="localhost/oracle/rac-storage-server:latest" -export ORACLE_DBNAME="ORCLCDB" -export STORAGE_PRIVATE_IP=192.168.17.80 -export NFS_STORAGE_VOLUME="/scratch/stage/rac-storage/$ORACLE_DBNAME" -``` - -## Section 3 : Deploy the RAC Container - -Refer [Section 5.1 : Prerequisites for Running Oracle RAC on Podman](../../../OracleRealApplicationClusters/README.md) to complete the pre-requisite steps for Oracle RAC on Podman. - -All containers will share a host file for name resolution. The shared hostfile must be available to all container. Create the shared host file (if it doesn't exist) at `/opt/containers/rac_host_file`: - -For example: - -```bash -mkdir /opt/containers -touch /opt/containers/rac_host_file -``` - -**Note:** Do not modify `/opt/containers/rac_host_file` from podman host. It will be managed from within the containers. - -Specify the secret volume for resetting the grid, oracle, and database user password during node creation or node addition. The volume can be a shared volume among all the containers. For example: -```bash -mkdir /opt/.secrets/ -openssl rand -out /opt/.secrets/pwd.key -hex 64 -``` -Edit the /opt/.secrets/common_os_pwdfile and seed the password for the grid, oracle and database users. For this deployment scenario, it will be a common password for the grid, oracle, and database users. Run the command: -```bash -openssl enc -aes-256-cbc -salt -in /opt/.secrets/common_os_pwdfile -out /opt/.secrets/common_os_pwdfile.enc -pass file:/opt/.secrets/pwd.key -rm -f /opt/.secrets/common_os_pwdfile -``` - -Make sure the ASM devices do not have any existing file system. To clear any other file system from the devices, use the following command: - -```bash -dd if=/dev/zero of=/dev/xvde bs=8k count=10000 -``` - -Repeat for each shared block device. In the example above, `/dev/xvde` is a shared Xen virtual block device. - -### Section 3.1: Deploy the RAC Container with Block Devices - -Once pre-requisites and above necessary variables are exported, copy `podman-compose.yml` file from [this location](./compose-files/blockdevices/podman-compose.yml) - -After copying compose file, you can bring up DNS Container, RAC Container and CMAN container in order by following below commands- -```bash -#---------Bring up DNS------------ -podman-compose up -d ${DNS_CONTAINER_NAME} && podman-compose stop ${DNS_CONTAINER_NAME} -podman network disconnect ${PUBLIC_NETWORK_NAME} ${DNS_CONTAINER_NAME} -podman network disconnect ${PRIVATE_NETWORK_NAME} ${DNS_CONTAINER_NAME} -podman network connect ${PUBLIC_NETWORK_NAME} --ip ${DNS_PUBLIC_IP} ${DNS_CONTAINER_NAME} -podman network connect ${PRIVATE_NETWORK_NAME} --ip ${DNS_PRIVATE_IP} ${DNS_CONTAINER_NAME} -podman-compose start ${DNS_CONTAINER_NAME} -podman-compose logs ${DNS_CONTAINER_NAME} - - -01-21-2024 18:03:46 UTC : : ################################################ -01-21-2024 18:03:46 UTC : : DNS Server IS READY TO USE! -01-21-2024 18:03:46 UTC : : ################################################ -``` - -```bash -#-----Bring up racnode1---------- -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} && \ -podman-compose stop ${RACNODE1_CONTAINER_NAME} -podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -podman network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -podman network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE1_PUBLIC_IP} ${RACNODE1_CONTAINER_NAME} -podman network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE1_PRIV_IP} ${RACNODE1_CONTAINER_NAME} -podman-compose start ${RACNODE1_CONTAINER_NAME} -podman-compose exec ${RACNODE1_CONTAINER_NAME} /bin/bash -c "tail -f /tmp/orod.log" - -racnode1 | 01-19-2024 16:34:24 UTC : : #################################### -racnode1 | 01-19-2024 16:34:24 UTC : : ORACLE RAC DATABASE IS READY TO USE! -racnode1 | 01-19-2024 16:34:24 UTC : : #################################### -``` - -```bash -#-----Bring up CMAN---------- -podman-compose up -d ${CMAN_CONTAINER_NAME} -podman-compose logs ${CMAN_CONTAINER_NAME} - -01-21-2024 17:32:55 UTC : : ################################################ -01-21-2024 17:32:55 UTC : : CONNECTION MANAGER IS READY TO USE! -01-21-2024 17:32:55 UTC : : ################################################ -``` - -Note: Podman compose currently doesn't supports assigning multiple network IP address via compose file. Due to this limitation, above commands are specificically assigning required public and private networks to RAC container while stopping it in between. Also, above example is specific to bridge networks. - -In case, of MCVLAN or IPVLAN networks, you may want to edit `podman-compose.yml` file are per your needs and respective environment variables. - -### Section 3.2: Deploy the RAC Container with NFS Storage Devices - -Once pre-requisites for NFS Storage Devices and above necessary variables are exported, copy `podman-compose.yml` file from [this location](./compose-files/nfsdevices/podman-compose.yml) - -Create placeholder for NFS storage and make sure it is empty - -```bash -export ORACLE_DBNAME=ORCLCDB -mkdir -p /scratch/stage/rac-storage/$ORACLE_DBNAME -rm -rf /scratch/stage/rac-storage/ORCLCDB/asm_disk0* -``` - -After copying compose file, you can bring up DNS Container, Storage Container, RAC Container and CMAN container by following below commands- -```bash -#---------Bring up DNS------------ -podman-compose up -d ${DNS_CONTAINER_NAME} && podman-compose stop ${DNS_CONTAINER_NAME} -podman network disconnect ${PUBLIC_NETWORK_NAME} ${DNS_CONTAINER_NAME} -podman network disconnect ${PRIVATE_NETWORK_NAME} ${DNS_CONTAINER_NAME} -podman network connect ${PUBLIC_NETWORK_NAME} --ip ${DNS_PUBLIC_IP} ${DNS_CONTAINER_NAME} -podman network connect ${PRIVATE_NETWORK_NAME} --ip ${DNS_PRIVATE_IP} ${DNS_CONTAINER_NAME} -podman-compose start ${DNS_CONTAINER_NAME} -podman-compose logs ${DNS_CONTAINER_NAME} - -01-21-2024 18:03:46 UTC : : ################################################ -01-21-2024 18:03:46 UTC : : DNS Server IS READY TO USE! -01-21-2024 18:03:46 UTC : : ################################################ -``` - -```bash -#----- Bring up Storage Container----- -podman-compose --podman-run-args="-t -i --systemd=always" up -d ${STORAGE_CONTAINER_NAME} -podman-compose exec ${STORAGE_CONTAINER_NAME} tail -f /tmp/storage_setup.log - -Export list for racnode-storage: -/oradata * -################################################# - Setup Completed -################################################# -``` - -```bash -#----------Create NFS volume-------------- -podman volume create --driver local \ ---opt type=nfs \ ---opt o=addr=192.168.17.80,rw,bg,hard,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 \ ---opt device=192.168.17.80:/oradata \ -racstorage -``` - - -```bash -#-----Bring up racnode1---------- -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE1_CONTAINER_NAME} && \ -podman-compose stop ${RACNODE1_CONTAINER_NAME} -podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -podman network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE1_CONTAINER_NAME} -podman network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE1_PUBLIC_IP} ${RACNODE1_CONTAINER_NAME} -podman network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE1_PRIV_IP} ${RACNODE1_CONTAINER_NAME} -podman-compose start ${RACNODE1_CONTAINER_NAME} -podman-compose exec ${RACNODE1_CONTAINER_NAME} /bin/bash -c "tail -f /tmp/orod.log" - -02-01-2024 12:26:29 UTC : : ################################################################# -02-01-2024 12:26:29 UTC : : Oracle Database ORCLCDB is up and running on racnodep1 -02-01-2024 12:26:29 UTC : : ################################################################# -02-01-2024 12:26:29 UTC : : Running User Script -02-01-2024 12:26:29 UTC : : Setting Remote Listener -02-01-2024 12:26:39 UTC : : 172.16.1.166 -02-01-2024 12:26:39 UTC : : Executing script to set the remote listener -02-01-2024 12:26:40 UTC : : #################################### -02-01-2024 12:26:40 UTC : : ORACLE RAC DATABASE IS READY TO USE! -02-01-2024 12:26:40 UTC : : #################################### -``` - -```bash -#-----Bring up CMAN---------- -podman-compose up -d ${CMAN_CONTAINER_NAME} -podman-compose logs ${CMAN_CONTAINER_NAME} - -02-01-2024 12:30:50 UTC : : ################################################ -02-01-2024 12:30:50 UTC : : CONNECTION MANAGER IS READY TO USE! -02-01-2024 12:30:50 UTC : : ################################################ -``` - -Note: Podman compose currently doesn't supports assigning multiple network IP address via compose file. Due to this limitation, above commands are specificically assigning required public and private networks to RAC container while stopping it in between. Also, above example is specific to bridge networks. - -In case, of MCVLAN or IPVLAN networks, you may want to edit `podman-compose.yml` file are per your needs and respective environment variables. - -## Section 4: Add Additional Node in Existing Oracle RAC Cluster - -### Section 4.1: Add Additional Node in Existing Oracle RAC Cluster with Block Devices -In order to add additional node in existing Oracle RAC on Podman with Block Devices with Podman Compose, first lets identify necessary variables to export that will be used by `podman-compose.yml` file later. Below is one example of exporting necessary variables related to additional RAC Container with Block Devices. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_HOST_NAME=rac-dns -export DNS_DOMAIN="example.com" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_priv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export DNS_PUBLIC_IP=172.16.1.25 -export INSTALL_NODE=racnodep1 -export SCAN_NAME="racnodepc1-scan" -export SCAN_IP=172.16.1.236 -export ASM_DISCOVERY_DIR="/dev/" -export ASM_DISK1="/dev/oracleoci/oraclevdd" -export ASM_DISK2="/dev/oracleoci/oraclevde" -export ASM_DEVICE1="/dev/asm-disk1" -export ASM_DEVICE2="/dev/asm-disk2" -export ASM_DEVICE_LIST="${ASM_DEVICE1},${ASM_DEVICE2}" -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export RACNODE2_CONTAINER_NAME=racnodep2 -export RACNODE2_HOST_NAME=racnodep2 -export RACNODE_IMAGE_NAME="localhost/oracle/database-rac:21.3.0-21.13.0" -export RACNODE2_NODE_VIP=172.16.1.201 -export RACNODE2_VIP_HOSTNAME="racnodep2-vip" -export RACNODE2_PRIV_IP=192.168.17.171 -export RACNODE2_PRIV_HOSTNAME="racnodep2-priv" -export RACNODE2_PUBLIC_IP=172.16.1.171 -export RACNODE2_PUBLIC_HOSTNAME="racnodep2" -export ORACLE_DBNAME="ORCLCDB" -``` -Once necessary variables are exported, copy `podman-compose-addition.yml` file from [this location](./compose-files/blockdevices/podman-compose-addition.yml) and rename it as `podman-compose.yml` - -After copying compose file, you can bring up additional RAC Container by following below commands- - -```bash -#-----Bring up racnode2---------- -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} && \ -podman-compose stop ${RACNODE2_CONTAINER_NAME} -podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -podman network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -podman network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE2_PUBLIC_IP} ${RACNODE2_CONTAINER_NAME} -podman network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE2_PRIV_IP} ${RACNODE2_CONTAINER_NAME} -podman-compose start ${RACNODE2_CONTAINER_NAME} -podman-compose exec ${RACNODE2_CONTAINER_NAME} /bin/bash -c "tail -f /tmp/orod.log" - -02-01-2024 11:48:39 UTC : : ################################################################# -02-01-2024 11:48:39 UTC : : Oracle Database ORCLCDB is up and running on racnodep2 -02-01-2024 11:48:39 UTC : : ################################################################# -02-01-2024 11:48:39 UTC : : Running User Script -02-01-2024 11:48:40 UTC : : Setting Remote Listener -02-01-2024 11:48:40 UTC : : #################################### -02-01-2024 11:48:40 UTC : : ORACLE RAC DATABASE IS READY TO USE! -02-01-2024 11:48:40 UTC : : #################################### -``` - - -### Section 4.2: Add Additional Node in Existing Oracle RAC Cluster with NFS Volume - -In order to add additional node in existing Oracle RAC on Podman with NFS Storage Devices with Podman Compose, first lets identify necessary variables to export that will be used by `podman-compose.yml` file later. Below is one example of exporting necessary variables related to additional RAC Container with NFS Storage. -```bash -export HEALTHCHECK_INTERVAL=30s -export HEALTHCHECK_TIMEOUT=3s -export HEALTHCHECK_RETRIES=240 -export DNS_HOST_NAME=rac-dns -export DNS_DOMAIN="example.com" -export PUBLIC_NETWORK_NAME="rac_pub1_nw" -export PUBLIC_NETWORK_SUBNET="172.16.1.0/24" -export PRIVATE_NETWORK_NAME="rac_priv1_nw" -export PRIVATE_NETWORK_SUBNET="192.168.17.0/24" -export DNS_PUBLIC_IP=172.16.1.25 -export INSTALL_NODE=racnodep1 -export SCAN_NAME="racnodepc1-scan" -export SCAN_IP=172.16.1.236 -export ASM_DISCOVERY_DIR="/dev/" -export ASM_DISCOVERY_DIR="/oradata" -export ASM_DEVICE_LIST="/oradata/asm_disk01.img,/oradata/asm_disk02.img,/oradata/asm_disk03.img,/oradata/asm_disk04.img,/oradata/asm_disk05.img" -export ORACLE_SID="ORCLCDB" -export COMMON_OS_PWD_FILE="common_os_pwdfile.enc" -export PWD_KEY="pwd.key" -export STORAGE_PRIVATE_IP=192.168.17.80 -export NFS_STORAGE_VOLUME="/scratch/stage/rac-storage/$ORACLE_DBNAME" -export RACNODE2_CONTAINER_NAME=racnodep2 -export RACNODE2_HOST_NAME=racnodep2 -export RACNODE_IMAGE_NAME="localhost/oracle/database-rac:21.3.0-21.13.0" -export RACNODE2_NODE_VIP=172.16.1.201 -export RACNODE2_VIP_HOSTNAME="racnodep2-vip" -export RACNODE2_PRIV_IP=192.168.17.171 -export RACNODE2_PRIV_HOSTNAME="racnodep2-priv" -export RACNODE2_PUBLIC_IP=172.16.1.171 -export RACNODE2_PUBLIC_HOSTNAME="racnodep2" -export ORACLE_DBNAME="ORCLCDB" -``` -Once necessary variables are exported, copy `podman-compose-addition.yml` file from [this location](./compose-files/nfsdevices/podman-compose-addition.yml) and rename it as `podman-compose.yml` - - -After copying compose file, you can bring up additional RAC Container by following below commands- - -```bash -#-----Bring up racnode2---------- -podman-compose --podman-run-args="-t -i --systemd=always --cpuset-cpus 0-1 --memory 16G --memory-swap 32G" up -d ${RACNODE2_CONTAINER_NAME} && \ -podman-compose stop ${RACNODE2_CONTAINER_NAME} -podman network disconnect ${PUBLIC_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -podman network disconnect ${PRIVATE_NETWORK_NAME} ${RACNODE2_CONTAINER_NAME} -podman network connect ${PUBLIC_NETWORK_NAME} --ip ${RACNODE2_PUBLIC_IP} ${RACNODE2_CONTAINER_NAME} -podman network connect ${PRIVATE_NETWORK_NAME} --ip ${RACNODE2_PRIV_IP} ${RACNODE2_CONTAINER_NAME} -podman-compose start ${RACNODE2_CONTAINER_NAME} -podman-compose exec ${RACNODE2_CONTAINER_NAME} /bin/bash -c "systemctl reset-failed && tail -f /tmp/orod.log" - -02-01-2024 12:46:13 UTC : : #################################### -02-01-2024 12:46:13 UTC : : ORACLE RAC DATABASE IS READY TO USE! -02-01-2024 12:46:13 UTC : : #################################### -``` -#### Connect to the RAC container - -To connect to the container execute following command: - -```bash -podman exec -i -t racnodep1 /bin/bash -``` - -If the install fails for any reason, log in to container using the above command and check `/tmp/orod.log`. You can also review the Grid Infrastructure logs located at `$GRID_BASE/diag/crs` and check for failure logs. If the failure occurred during the database creation then check the database logs. - -## Cleanup RAC Environment -Below commands can be executed to cleanup above RAC Environment - - -### Cleanup RAC based on Block Devices -```bash -#----Cleanup RAC Containers----- -podman rm -f racnodep1 racnodep2 rac-dnsserver racnodepc1-cman -#----Cleanup Disks-------------- -dd if=/dev/zero of=/dev/oracleoci/oraclevde bs=8k count=10000 status=progress && dd if=/dev/zero of=/dev/oracleoci/oraclevdd bs=8k count=10000 status=progress -#----Cleanup Files and Folders-- -rm -rf /opt/containers /opt/.secrets -#----Cleanup Docker Networks-- -podman network rm -f rac_pub1_nw rac_zriv1_nw -#----Cleanup Docker Images-- -podman rmi -f localhost/oracle/rac-dnsserver:latest localhost/oracle/database-rac:21.3.0-21.13.0 localhost/oracle/client-cman:21.3.0 -``` - -### Cleanup RAC based on NFS Storage Devices -```bash -#----Cleanup RAC Containers----- -podman rm -f racnodep1 racnodep2 rac-dnsserver racnode-storage racnodepc1-cman -#----Cleanup Files and Folders-- -rm -rf /opt/containers /opt/.secrets -export ORACLE_DBNAME=ORCLCDB -rm -rf /scratch/stage/rac-storage/ORCLCDB/asm_disk0* -#----Cleanup Docker Volumes--- -podman volume -f racstorage -#----Cleanup Docker Networks-- -podman network rm -f rac_pub1_nw rac_priv1_nw -#----Cleanup Docker Images-- -podman rmi -f localhost/oracle/rac-dnsserver:latest localhost/oracle/rac-storage-server:latest localhost/oracle/database-rac:21.3.0-21.13.0 localhost/oracle/client-cman:21.3.0 -``` - -## Copyright - -Copyright (c) 2014-2024 Oracle and/or its affiliates. All rights reserved. \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose-addition.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose-addition.yml deleted file mode 100644 index fb12cf4af0..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose-addition.yml +++ /dev/null @@ -1,77 +0,0 @@ ---- -version: '3' -services: - racnodep2: - container_name: ${RACNODE2_CONTAINER_NAME} - hostname: ${RACNODE2_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /opt/containers/rac_host_file:/etc/hosts - tmpfs: - - /dev/shm:rw,exec,size=4G - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - EXISTING_CLS_NODES: ${INSTALL_NODE} - NODE_VIP: ${RACNODE2_NODE_VIP} - VIP_HOSTNAME: ${RACNODE2_VIP_HOSTNAME} - PRIV_IP: ${RACNODE2_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE2_PRIV_HOSTNAME} - OP_TYPE: ADDNODE - PUBLIC_IP: ${RACNODE2_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE2_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - ORACLE_SID: ${ORACLE_SID} - RESET_FAILED_SYSTEMD: "true" - DEFAULT_GATEWAY: ${DEFAULT_GATEWAY} - TMPDIR: /var/tmp - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - - AUDIT_WRITE - - AUDIT_CONTROL - sysctls: - - kernel.shmall=2097152 - - kernel.shmmax=8589934592 - - kernel.shmmni=4096 - - 'kernel.sem=250 32000 100 128' - devices: - - "${ASM_DISK1}:${ASM_DEVICE1}" - - "${ASM_DISK2}:${ASM_DEVICE2}" - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose.yml deleted file mode 100644 index b9d0fde59d..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/blockdevices/podman-compose.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -version: '3' -services: - rac-dnsserver: - container_name: ${DNS_CONTAINER_NAME} - hostname: ${DNS_HOST_NAME} - image: ${DNS_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - SETUP_DNS_CONFIG_FILES: "setup_true" - DOMAIN_NAME: ${DNS_DOMAIN} - RAC_NODE_NAME_PREFIXP: ${RAC_NODE_NAME_PREFIXP} - WEBMIN_ENABLED: false - cap_add: - - AUDIT_WRITE - healthcheck: - test: ["CMD-SHELL", "if nslookup $SCAN_NAME; then exit 0; else exit 1; fi"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - networks: - - rac_pub1_nw - - rac_priv1_nw - racnodep1: - container_name: ${RACNODE1_CONTAINER_NAME} - hostname: ${RACNODE1_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /opt/containers/rac_host_file:/etc/hosts - tmpfs: - - /dev/shm:rw,exec,size=4G - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - NODE_VIP: ${RACNODE1_NODE_VIP} - VIP_HOSTNAME: ${RACNODE1_VIP_HOSTNAME} - PRIV_IP: ${RACNODE1_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE1_PRIV_HOSTNAME} - OP_TYPE: INSTALL - PUBLIC_IP: ${RACNODE1_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE1_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - CMAN_HOSTNAME: ${CMAN_HOSTNAME} - CMAN_PUBLIC_IP: ${CMAN_PUBLIC_IP} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - ORACLE_SID: ${ORACLE_SID} - RESET_FAILED_SYSTEMD: "true" - DEFAULT_GATEWAY: ${DEFAULT_GATEWAY} - TMPDIR: /var/tmp - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - - AUDIT_WRITE - - AUDIT_CONTROL - sysctls: - - kernel.shmall=2097152 - - kernel.shmmax=8589934592 - - kernel.shmmni=4096 - - 'kernel.sem=250 32000 100 128' - devices: - - "${ASM_DISK1}:${ASM_DEVICE1}" - - "${ASM_DISK2}:${ASM_DEVICE2}" - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - racnodepc1-cman: - container_name: ${CMAN_CONTAINER_NAME} - hostname: ${CMAN_HOST_NAME} - image: ${CMAN_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - DOMAIN: ${DNS_DOMAIN} - PUBLIC_HOSTNAME: ${CMAN_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - SCAN_IP: ${SCAN_IP} - PUBLIC_IP: ${CMAN_PUBLIC_IP} - privileged: false - ports: - - 1521:1521 - networks: - rac_pub1_nw: - ipv4_address: ${CMAN_PUBLIC_IP} - healthcheck: - test: - - CMD-SHELL - - /bin/bash -c "export ORACLE_HOME=/u01/app/oracle/product/cman && export LD_LIBRARY_PATH=${ORACLE_HOME}/lib && /u01/app/oracle/product/cman/bin/cmctl show service -c ${CMAN_HOST_NAME}.${DNS_DOMAIN} | grep -q 'Instance \"cman\", status READY'" - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose-addition.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose-addition.yml deleted file mode 100644 index c0da7d3b77..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose-addition.yml +++ /dev/null @@ -1,75 +0,0 @@ ---- -version: '3' -services: - racnodep2: - container_name: ${RACNODE2_CONTAINER_NAME} - hostname: ${RACNODE2_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /opt/containers/rac_host_file:/etc/hosts - - racstorage:/oradata - tmpfs: - - /dev/shm:rw,exec,size=4G - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - EXISTING_CLS_NODES: ${INSTALL_NODE} - NODE_VIP: ${RACNODE2_NODE_VIP} - VIP_HOSTNAME: ${RACNODE2_VIP_HOSTNAME} - PRIV_IP: ${RACNODE2_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE2_PRIV_HOSTNAME} - OP_TYPE: ADDNODE - PUBLIC_IP: ${RACNODE2_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE2_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - ORACLE_SID: ${ORACLE_SID} - RESET_FAILED_SYSTEMD: "true" - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - - AUDIT_WRITE - - AUDIT_CONTROL - sysctls: - - kernel.shmall=2097152 - - kernel.shmmax=8589934592 - - kernel.shmmni=4096 - - 'kernel.sem=250 32000 100 128' - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" -volumes: - racstorage: - external: true \ No newline at end of file diff --git a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose.yml b/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose.yml deleted file mode 100644 index 09d5b3b659..0000000000 --- a/OracleDatabase/RAC/OracleRealApplicationClusters/samples/racpodmancompose_1/compose-files/nfsdevices/podman-compose.yml +++ /dev/null @@ -1,144 +0,0 @@ ---- -version: '3' -services: - rac-dnsserver: - container_name: ${DNS_CONTAINER_NAME} - hostname: ${DNS_HOST_NAME} - image: ${DNS_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - SETUP_DNS_CONFIG_FILES: "setup_true" - DOMAIN_NAME: ${DNS_DOMAIN} - RAC_NODE_NAME_PREFIXP: ${RAC_NODE_NAME_PREFIXP} - WEBMIN_ENABLED: false - cap_add: - - AUDIT_WRITE - healthcheck: - test: ["CMD-SHELL", "if nslookup $SCAN_NAME; then exit 0; else exit 1; fi"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - networks: - - rac_pub1_nw - - rac_priv1_nw - racnode-storage: - container_name: ${STORAGE_CONTAINER_NAME} - hostname: ${STORAGE_HOST_NAME} - image: ${STORAGE_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - volumes: - - ${NFS_STORAGE_VOLUME}:/oradata - cap_add: - - SYS_ADMIN - - AUDIT_WRITE - - NET_ADMIN - restart: always - healthcheck: - test: - - CMD-SHELL - - /bin/bash -c "ls -lrt /oradata/ && showmount -e | grep '/oradata'" - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - networks: - rac_priv1_nw: - ipv4_address: ${STORAGE_PRIVATE_IP} - racnodep1: - container_name: ${RACNODE1_CONTAINER_NAME} - hostname: ${RACNODE1_HOST_NAME} - image: ${RACNODE_IMAGE_NAME} - restart: always - dns: ${DNS_PUBLIC_IP} - dns_search: ${DNS_DOMAIN} - volumes: - - /boot:/boot:ro - - /opt/.secrets:/run/secrets:ro - - /opt/containers/rac_host_file:/etc/hosts - - racstorage:/oradata - tmpfs: - - /dev/shm:rw,exec,size=4G - privileged: false - environment: - DNS_SERVERS: ${DNS_PUBLIC_IP} - NODE_VIP: ${RACNODE1_NODE_VIP} - VIP_HOSTNAME: ${RACNODE1_VIP_HOSTNAME} - PRIV_IP: ${RACNODE1_PRIV_IP} - PRIV_HOSTNAME: ${RACNODE1_PRIV_HOSTNAME} - OP_TYPE: INSTALL - PUBLIC_IP: ${RACNODE1_PUBLIC_IP} - PUBLIC_HOSTNAME: ${RACNODE1_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - DOMAIN: ${DNS_DOMAIN} - ASM_DEVICE_LIST: ${ASM_DEVICE_LIST} - ASM_DISCOVERY_DIR: ${ASM_DISCOVERY_DIR} - CMAN_HOSTNAME: ${CMAN_HOSTNAME} - CMAN_PUBLIC_IP: ${CMAN_PUBLIC_IP} - COMMON_OS_PWD_FILE: ${COMMON_OS_PWD_FILE} - PWD_KEY: ${PWD_KEY} - ORACLE_SID: ${ORACLE_SID} - RESET_FAILED_SYSTEMD: "true" - DEFAULT_GATEWAY: ${DEFAULT_GATEWAY} - TMPDIR: /var/tmp - ulimits: - rtprio: 99 - cap_add: - - SYS_RESOURCE - - NET_ADMIN - - SYS_NICE - - AUDIT_WRITE - - AUDIT_CONTROL - sysctls: - - kernel.shmall=2097152 - - kernel.shmmax=8589934592 - - kernel.shmmni=4096 - - 'kernel.sem=250 32000 100 128' - networks: - - rac_pub1_nw - - rac_priv1_nw - healthcheck: - test: ["CMD-SHELL", "su - grid -c 'srvctl status database -d ORCLCDB'| grep -q 'is running on node'"] - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} - racnodepc1-cman: - container_name: ${CMAN_CONTAINER_NAME} - hostname: ${CMAN_HOST_NAME} - image: ${CMAN_IMAGE_NAME} - dns_search: ${DNS_DOMAIN} - environment: - DOMAIN: ${DNS_DOMAIN} - PUBLIC_HOSTNAME: ${CMAN_PUBLIC_HOSTNAME} - SCAN_NAME: ${SCAN_NAME} - SCAN_IP: ${SCAN_IP} - PUBLIC_IP: ${CMAN_PUBLIC_IP} - privileged: false - ports: - - 1521:1521 - networks: - rac_pub1_nw: - ipv4_address: ${CMAN_PUBLIC_IP} - healthcheck: - test: - - CMD-SHELL - - /bin/bash -c "export ORACLE_HOME=/u01/app/oracle/product/cman && export LD_LIBRARY_PATH=${ORACLE_HOME}/lib && /u01/app/oracle/product/cman/bin/cmctl show service -c ${CMAN_HOST_NAME}.${DNS_DOMAIN} | grep -q 'Instance \"cman\", status READY'" - interval: ${HEALTHCHECK_INTERVAL} - timeout: ${HEALTHCHECK_TIMEOUT} - retries: ${HEALTHCHECK_RETRIES} -networks: - rac_pub1_nw: - name: ${PUBLIC_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PUBLIC_NETWORK_SUBNET}" - rac_priv1_nw: - name: ${PRIVATE_NETWORK_NAME} - driver: bridge - ipam: - driver: default - config: - - subnet: "${PRIVATE_NETWORK_SUBNET}" -volumes: - racstorage: - external: true \ No newline at end of file From 35f22257258729d593329433cbe2f79fca1f3824 Mon Sep 17 00:00:00 2001 From: Saurabh Ahuja Date: Fri, 16 Oct 2026 07:22:37 +0000 Subject: [PATCH 2/3] Sync GDD changes from MR 44 --- OracleDatabase/GDD/README.md | 26 +- .../GDD/containerfiles/19.3.0/Containerfile | 207 +++- .../containerfiles/19.3.0/setupLinuxEnv.sh | 2 - .../GDD/containerfiles/21.3.0/Containerfile | 215 +++- .../containerfiles/21.3.0/setupLinuxEnv.sh | 2 +- ...i_gsm_install.rsp => 26ai_gsm_install.rsp} | 0 .../GDD/containerfiles/23.26.0/Checksum | 2 +- .../GDD/containerfiles/23.26.0/Containerfile | 78 +- .../26.0.0/26ai_gsm_install.rsp | 35 + .../26.0.0/26ai_gsm_install_sample.rsp | 35 + .../GDD/containerfiles/26.0.0/Checksum | 1 + .../GDD/containerfiles/26.0.0/Containerfile | 294 ++++++ .../containerfiles/26.0.0/checkLiveness.sh | 39 + .../GDD/containerfiles/26.0.0/checkSpace.sh | 23 + .../26.0.0/installGSMBinaries.sh | 49 + .../GDD/containerfiles/26.0.0/runOracle.sh | 79 ++ .../containerfiles/26.0.0/runUserScripts.sh | 36 + .../GDD/containerfiles/26.0.0/setupGSM.sh | 31 + .../containerfiles/26.0.0/setupLinuxEnv.sh | 29 + .../containerfiles/26.0.0/setupOshardEnv.sh | 976 ++++++++++++++++++ .../GDD/containerfiles/buildContainerImage.sh | 132 ++- .../scripts/runOraShardSetup.sh | 27 +- .../GDD/samples/applypatch/README.md | 14 +- .../applypatch/buildPatchedContainerImage.sh | 89 +- .../samples/applypatch/latest/Containerfile | 108 ++ .../GDD/samples/applypatch/latest/DockerEnv | 10 - .../GDD/samples/applypatch/latest/Dockerfile | 135 --- .../latest/patches/applyGSMPatches.sh | 169 ++- 28 files changed, 2423 insertions(+), 420 deletions(-) rename OracleDatabase/GDD/containerfiles/23.26.0/{23ai_gsm_install.rsp => 26ai_gsm_install.rsp} (100%) create mode 100644 OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install.rsp create mode 100644 OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install_sample.rsp create mode 100644 OracleDatabase/GDD/containerfiles/26.0.0/Checksum create mode 100644 OracleDatabase/GDD/containerfiles/26.0.0/Containerfile create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/checkLiveness.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/checkSpace.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/installGSMBinaries.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/runOracle.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/runUserScripts.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/setupGSM.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/setupLinuxEnv.sh create mode 100755 OracleDatabase/GDD/containerfiles/26.0.0/setupOshardEnv.sh create mode 100644 OracleDatabase/GDD/samples/applypatch/latest/Containerfile delete mode 100644 OracleDatabase/GDD/samples/applypatch/latest/DockerEnv delete mode 100644 OracleDatabase/GDD/samples/applypatch/latest/Dockerfile diff --git a/OracleDatabase/GDD/README.md b/OracleDatabase/GDD/README.md index 0fca635862..fa4f7f8577 100644 --- a/OracleDatabase/GDD/README.md +++ b/OracleDatabase/GDD/README.md @@ -131,7 +131,7 @@ If you use non-`latest` tags, retag them as needed for your deployment commands. **Important:** - Make sure the OpenSSL version in the container image is compatible with the OpenSSL version on the host that generates the encrypted password file. -- The compatibility examples in [Oracle Container Registry Image Compatibility](#oracle-container-registry-image-compatibility) can help you choose matching images. +- The compatibility examples in [Oracle Container Registry Image Compatibility](#option-1-pull-images-from-oracle-container-registry) can help you choose matching images. ### Option 2: Build a GSM Image from Local Binaries @@ -164,14 +164,30 @@ podman run --rm --entrypoint /bin/sh IMAGE -c \ 'ls -l /usr/share/oracle/image-metadata/rpms && cat /usr/share/oracle/image-metadata/rpms/*.txt' ``` +#### Building GSM Base Image + +In this document, an `GSM Container Base Image` refers to a container image that does not include installation of Oracle GSM Software Binaries during the Oracle GSM Container Image creation. This image is extended to build patched image or extensions. To build GSM Container Base Image run the following command: + +```bash +./buildContainerImage.sh -v -b +``` + +Example: To build an GSM Container Base Image for 23.26ai (Oracle AI Database 26ai), use the below command: + +```bash +./buildContainerImage.sh -v 23.26.0 -b +``` + +This image will be used as the base image to create the patched version of Oracle GSM Image. Please check [Create Patched GSM Image](./samples/applypatch/README.md) + ### Building Database Images This repo focuses on GSM container files and deployment samples. For database image creation, use the upstream Oracle image guides: -- Single Instance Database base image: [OracleDatabase/SingleInstance README](https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/README.md) -- Single Instance extensions: [OracleDatabase/SingleInstance/extensions README](https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/extensions/README.md) -- RAC base image: [OracleDatabase/RAC/OracleRealApplicationClusters README](https://github.com/oracle/docker-images/blob/main/OracleDatabase/RAC/OracleRealApplicationClusters/README.md) -- RAC extensions: [OracleDatabase/RAC/OracleRealApplicationClusters/extensions README](https://github.com/oracle/docker-images/blob/main/OracleDatabase/RAC/OracleRealApplicationClusters/extensions/README.md) +- Single Instance Database base image: [OracleDatabase/SingleInstance README](../SingleInstance/README.md) +- Single Instance extensions: [OracleDatabase/SingleInstance/extensions README](../SingleInstance/extensions/README.md) +- RAC base image: [OracleDatabase/RAC/OracleRealApplicationClusters README](../RAC/OracleRealApplicationClusters/README.md) +- RAC extensions: [OracleDatabase/RAC/OracleRealApplicationClusters/extensions README](../RAC/OracleRealApplicationClusters/extensions/README.md) Use those guides to build the base or extended database images, then return to the deployment scenarios in this repo for container-specific setup. diff --git a/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile b/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile index ca9d6c273a..bff1512181 100644 --- a/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile @@ -1,12 +1,11 @@ -# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # -# Copyright (c) 2018,2021 Oracle and/or its affiliates. +# Copyright (c) 2018,2026 Oracle and/or its affiliates. # # ORACLE CONTAINERFILES PROJECT -# -------------------------- -# This is the Containerfile for Oracle GSM 19c Release to build the container image -# MAINTAINER +# ---------------------------- +# Oracle GSM 19c: regular image and prepared patching-base image. +# MAINTAINER ,> # # This is the Containerfile for Oracle GSM 19c # @@ -18,16 +17,29 @@ # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Containerfile -# Run: -# $ podman build -t oracle/gsm:19.3.0 . +# Place this file at containerfiles/19.3.0/Containerfile. +# Build from the containerfiles directory, which must contain: +# 19.3.0/LINUX.X64_193000_gsm.zip +# 19.3.0/19c_gsm_install.rsp +# the existing 19.3.0 shell scripts and the shared scripts/ directory. # -# Pull base image -# --------------- -ARG BASE_IMAGE=oraclelinux:7-slim +# Regular image: +# podman build --target final --build-arg VERSION=19.3.0 \ +# --build-arg SLIMMING=false -f 19.3.0/Containerfile \ +# -t oracle/gsm:19.3.0 . +# +# Prepared patching-base image (no installed GSM home): +# podman build --target final --build-arg VERSION=19.3.0 \ +# --build-arg SLIMMING=true -f 19.3.0/Containerfile \ +# -t oracle/gsm:19.3.0-base . + +ARG SLIMMING=false +ARG BASE_IMAGE=oraclelinux:7 ARG BASE_OL_IMAGE=$BASE_IMAGE -ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_REF=oraclelinux:7 ARG BASE_IMAGE_DIGEST=unknown +ARG VERSION=19.3.0 + # Pull base image # --------------- @@ -37,12 +49,14 @@ RUN \ mkdir -p /usr/share/oracle/image-metadata/rpms && \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; + ARG BASE_IMAGE ARG BASE_IMAGE_REF ARG BASE_IMAGE_DIGEST LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" +ARG SLIMMING=false ARG VERSION # Labels @@ -53,12 +67,12 @@ LABEL "provider"="Oracle" \ "port.listener"="1522" # Argument to control removal of components not needed after db software installation -ARG SLIMMING=false + ARG INSTALL_FILE_1="LINUX.X64_193000_gsm.zip" +ARG USER="root" -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- ENV GSM_BASE="/u01/app/oracle" \ + GSM_USER="oracle" \ GSM_HOME="/u01/app/oracle/product/19c/gsmhome_1" \ INVENTORY="/u01/app/oracle/oraInventory" \ INSTALL_DIR="/opt/oracle/scripts" \ @@ -69,62 +83,167 @@ ENV GSM_BASE="/u01/app/oracle" \ CHECK_SPACE_FILE="checkSpace.sh" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_GSM_BINARIES_FILE="installGSMBinaries.sh" \ - GSM_SETUP_FILE="setupOshardEnv.sh" \ + GSM_SETUP_FILE="setupOshardEnv.sh" \ GSM_ENV_SETUP_FILE="setupGSM.sh" \ GSM_SCRIPTS="scripts" \ MAINPY="main.py" \ PYTHON_FILE="/usr/bin/python" \ PYTHON3_FILE="/usr/bin/python3.6" \ + ORAPCATALOG="orapcatalog.py" \ + CMDEXEC="cmdExec" \ + ORAMACHINE="oramachine.py" \ + ORALOGGER="oralogger.py" \ + ORAFACTORY="orafactory.py" \ + ORAGSM="oragsm.py" \ + ORASSHARD="orasshard.py" \ + ORAENV="oraenv.py" \ + ORAPSHARD="orapshard.py" \ + MAINPY="main.py" \ + ORASCATALOG="orascatalog.py" \ + ORACOMMON="oracommon.py" \ + DEMOAPPSQL="demoapp.sql" \ + RUNORASHARD="runOraShardSetup.sh" \ CHECKLIVENESS="checkLiveness.sh" -# Use second ENV so that variable get substituted + +# Use a second ENV so the preceding values are substituted. # hadolint ignore=DL3044 +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib + +############################################# +# ------------------------------------------- +# Start new stage for Non-Slim Image (regular image) +# ------------------------------------------- +############################################# +FROM base AS gsm-image-slim-false +ARG SLIMMING +ARG VERSION + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +# Linux Env Variable +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ + INSTALL_SCRIPTS=$INSTALL_DIR/install \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" + +# Copy binaries +# ------------- +# COPY Binaries +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_SCRIPTS/ +COPY $VERSION/$RUN_FILE $VERSION/$GSM_SETUP_FILE $VERSION/$CHECKLIVENESS $VERSION/$USER_SCRIPTS_FILE $SCRIPT_DIR/ +COPY $GSM_SCRIPTS/$ORAPCATALOG $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAPSHARD $GSM_SCRIPTS/$MAINPY $GSM_SCRIPTS/$ORASCATALOG $GSM_SCRIPTS/$ORACOMMON $GSM_SCRIPTS/$DEMOAPPSQL $GSM_SCRIPTS/$RUNORASHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAMACHINE $GSM_SCRIPTS/$ORALOGGER $GSM_SCRIPTS/$ORAFACTORY $GSM_SCRIPTS/$ORAGSM $GSM_SCRIPTS/$ORASSHARD $GSM_SCRIPTS/$ORAENV $SCRIPT_DIR/scripts/ + +# hadolint ignore=SC2086 +RUN chmod 755 $INSTALL_DIR/install/*.sh && \ + sync && \ + $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ + $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + sync + +############################################# +# ------------------------------------------- +# Start new stage for slim image +# It will also be used as base image for patching +# ------------------------------------------- +############################################# +FROM base AS gsm-image-slim-true +ARG SLIMMING +ARG VERSION + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +# Linux Env Variable ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ ORACLE_HOME=$GSM_HOME \ ORACLE_BASE=$GSM_BASE \ SCRIPT_DIR=$INSTALL_DIR/sharding \ - SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ PATH=/bin:/usr/bin:/sbin:/usr/sbin \ GSM_PATH=$GSM_HOME/bin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib - + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ + INSTALL_SCRIPTS=$INSTALL_DIR/install \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" -# Copy files needed during both installation and runtime -# ------------ -COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_DIR/install/ +# Copy binaries +# ------------- +# COPY Binaries +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_SCRIPTS/ COPY $VERSION/$RUN_FILE $VERSION/$GSM_SETUP_FILE $VERSION/$CHECKLIVENESS $VERSION/$USER_SCRIPTS_FILE $SCRIPT_DIR/ -COPY $GSM_SCRIPTS $SCRIPT_DIR/scripts/ +COPY $GSM_SCRIPTS/$ORAPCATALOG $GSM_SCRIPTS/$ORAPSHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$MAINPY $GSM_SCRIPTS/$ORASCATALOG $GSM_SCRIPTS/$ORACOMMON $GSM_SCRIPTS/$DEMOAPPSQL $GSM_SCRIPTS/$RUNORASHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAMACHINE $GSM_SCRIPTS/$ORALOGGER $GSM_SCRIPTS/$ORAFACTORY $GSM_SCRIPTS/$ORAGSM $GSM_SCRIPTS/$ORASSHARD $GSM_SCRIPTS/$ORAENV $SCRIPT_DIR/scripts/ +# hadolint ignore=SC2086 RUN chmod 755 $INSTALL_DIR/install/*.sh && \ sync && \ $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ sync ############################################# # ------------------------------------------- # Start new stage for installing the GSM -# ------------------------------------------- +# only for SLIMMING=false ############################################# -from base AS builder +# hadolint ignore=DL3006,DL3025 +FROM gsm-image-slim-${SLIMMING} AS builder +ARG SLIMMING ARG VERSION COPY $VERSION/$INSTALL_FILE_1 $VERSION/$INSTALL_RSP $VERSION/$INSTALL_GSM_BINARIES_FILE $VERSION/$GSM_SETUP_FILE $INSTALL_DIR/install/ +# Prepare permissions and system configuration as root. +USER ${USER} # hadolint ignore=SC2086 -RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ - sync && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $GSM_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + chmod 755 $INSTALL_SCRIPTS/*.sh && \ + sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ + sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ + :;\ + fi + +# Run only the GSM installer as oracle. +USER ${GSM_USER} +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ + :;\ +fi + +# Keep your existing root scripts and cleanup below this. +USER ${USER} +# hadolint ignore=SC2086 +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + $INVENTORY/orainstRoot.sh && \ + $GSM_HOME/root.sh && \ + rm -rf $INSTALL_DIR/install && \ rm -f /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf && \ rm -f /etc/sysctl.d/99-sysctl.conf && \ rm -f /etc/rc.d/init.d/oracle-database-preinstall-19c-firstboot && \ rm -f /etc/security/limits.d/oracle-database-preinstall-19c.conf && \ + :;\ + fi + +#RUN if [ "${SLIMMING}x" == 'truex' ]; then \ +# mkdir /u01 && \ +# :; \ +#fi + +# hadolint ignore=SC2086 +RUN rm -f $INSTALL_DIR/install/* && \ sync ############################################# @@ -132,8 +251,8 @@ RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ # Start new layer for GSM runtime # ------------------------------------------- ############################################# - -FROM base +# hadolint ignore=DL3006,DL3025 +FROM gsm-image-slim-${SLIMMING} AS final ARG BASE_IMAGE ARG BASE_IMAGE_REF ARG BASE_IMAGE_DIGEST @@ -143,7 +262,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ - rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ else \ @@ -152,12 +271,12 @@ RUN \ rm -f /tmp/image-rpm-details; COPY --from=builder /u01 /u01 - # hadolint ignore=SC2086 + RUN test -x "$PYTHON3_FILE" && \ ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ - cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ + cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ for helper in cmdExec main.py orapcatalog.py orapshard.py orascatalog.py oracommon.py demoapp.sql runOraShardSetup.sh oramachine.py oralogger.py orafactory.py oragsm.py orasshard.py oraenv.py; do \ ln -sf scripts/$helper $SHARD_SCRIPT_DIR/$helper; \ done && \ @@ -170,15 +289,15 @@ RUN test -x "$PYTHON3_FILE" && \ chmod 755 $SCRIPT_DIR/cmdExec && \ sync -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 + +USER ${GSM_USER} +WORKDIR /home/${GSM_USER} +EXPOSE 1522 VOLUME ["$GSM_BASE/oradata"] HEALTHCHECK --interval=2m --start-period=25m \ CMD "$SCRIPT_DIR/$CHECKLIVENESS" >/dev/null || exit 1 -# Define default command to start Oracle Database. # hadolint ignore=DL3025 CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh b/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh index 3304ab3252..8fd641d807 100755 --- a/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/GDD/containerfiles/19.3.0/setupLinuxEnv.sh @@ -6,8 +6,6 @@ # # ------------------------------------------------------------ -dnf update -y && \ -dnf clean all && \ chmod ug+x $SCRIPT_DIR/*.sh && \ yum -y install oracle-database-preinstall-19c net-tools which zip unzip tar openssl openssh-server openssh-client vim-minimal which vim-minimal passwd sudo python36 && \ yum clean all diff --git a/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile b/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile index fe5e8b8194..6a14a4b8a0 100644 --- a/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile @@ -1,14 +1,13 @@ -# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # -# Copyright (c) 2018,2021 Oracle and/or its affiliates. +# Copyright (c) 2018,2026 Oracle and/or its affiliates. # # ORACLE CONTAINERFILES PROJECT -# -------------------------- -# This is the Containerfile for Oracle GSM 21c Release 3 to build the container image -# MAINTAINER +# ---------------------------- +# Oracle GSM 21c: regular image and prepared patching-base image. +# MAINTAINER ,> # -# This is the Containerfile for Oracle GSM 21c +# This is the Containerfile for Oracle GSM 21c # # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- @@ -18,16 +17,29 @@ # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Containerfile -# Run: -# $ podman build -t oracle/gsm:21.3.0 . +# Place this file at containerfiles/21.3.0/Containerfile. +# Build from the containerfiles directory, which must contain: +# 21.3.0/LINUX.X64_213000_gsm.zip +# 21.3.0/21c_gsm_install.rsp +# the existing 21.3.0 shell scripts and the shared scripts/ directory. # -# Pull base image -# --------------- -ARG BASE_IMAGE=oraclelinux:7-slim +# Regular image: +# podman build --target final --build-arg VERSION=21.3.0 \ +# --build-arg SLIMMING=false -f 21.3.0/Containerfile \ +# -t oracle/gsm:21.3.0 . +# +# Prepared patching-base image (no installed GSM home): +# podman build --target final --build-arg VERSION=21.3.0 \ +# --build-arg SLIMMING=true -f 21.3.0/Containerfile \ +# -t oracle/gsm:21.3.0-base . + +ARG SLIMMING=false +ARG BASE_IMAGE=oraclelinux:8 ARG BASE_OL_IMAGE=$BASE_IMAGE -ARG BASE_IMAGE_REF=oraclelinux:7-slim +ARG BASE_IMAGE_REF=oraclelinux:8 ARG BASE_IMAGE_DIGEST=unknown +ARG VERSION=21.3.0 + # Pull base image # --------------- @@ -37,12 +49,14 @@ RUN \ mkdir -p /usr/share/oracle/image-metadata/rpms && \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; + ARG BASE_IMAGE ARG BASE_IMAGE_REF ARG BASE_IMAGE_DIGEST LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" +ARG SLIMMING=false ARG VERSION # Labels @@ -53,12 +67,12 @@ LABEL "provider"="Oracle" \ "port.listener"="1522" # Argument to control removal of components not needed after db software installation -ARG SLIMMING=false + ARG INSTALL_FILE_1="LINUX.X64_213000_gsm.zip" +ARG USER="root" -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- ENV GSM_BASE="/u01/app/oracle" \ + GSM_USER="oracle" \ GSM_HOME="/u01/app/oracle/product/21c/gsmhome_1" \ INVENTORY="/u01/app/oracle/oraInventory" \ INSTALL_DIR="/opt/oracle/scripts" \ @@ -69,62 +83,167 @@ ENV GSM_BASE="/u01/app/oracle" \ CHECK_SPACE_FILE="checkSpace.sh" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_GSM_BINARIES_FILE="installGSMBinaries.sh" \ - GSM_SETUP_FILE="setupOshardEnv.sh" \ + GSM_SETUP_FILE="setupOshardEnv.sh" \ GSM_ENV_SETUP_FILE="setupGSM.sh" \ GSM_SCRIPTS="scripts" \ MAINPY="main.py" \ PYTHON_FILE="/usr/bin/python" \ PYTHON3_FILE="/usr/bin/python3" \ + ORAPCATALOG="orapcatalog.py" \ + CMDEXEC="cmdExec" \ + ORAMACHINE="oramachine.py" \ + ORALOGGER="oralogger.py" \ + ORAFACTORY="orafactory.py" \ + ORAGSM="oragsm.py" \ + ORASSHARD="orasshard.py" \ + ORAENV="oraenv.py" \ + ORAPSHARD="orapshard.py" \ + MAINPY="main.py" \ + ORASCATALOG="orascatalog.py" \ + ORACOMMON="oracommon.py" \ + DEMOAPPSQL="demoapp.sql" \ + RUNORASHARD="runOraShardSetup.sh" \ CHECKLIVENESS="checkLiveness.sh" -# Use second ENV so that variable get substituted + +# Use a second ENV so the preceding values are substituted. # hadolint ignore=DL3044 +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib + +############################################# +# ------------------------------------------- +# Start new stage for Non-Slim Image (regular image) +# ------------------------------------------- +############################################# +FROM base AS gsm-image-slim-false +ARG SLIMMING +ARG VERSION + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +# Linux Env Variable +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ + INSTALL_SCRIPTS=$INSTALL_DIR/install \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" + +# Copy binaries +# ------------- +# COPY Binaries +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_SCRIPTS/ +COPY $VERSION/$RUN_FILE $VERSION/$GSM_SETUP_FILE $VERSION/$CHECKLIVENESS $VERSION/$USER_SCRIPTS_FILE $SCRIPT_DIR/ +COPY $GSM_SCRIPTS/$ORAPCATALOG $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAPSHARD $GSM_SCRIPTS/$MAINPY $GSM_SCRIPTS/$ORASCATALOG $GSM_SCRIPTS/$ORACOMMON $GSM_SCRIPTS/$DEMOAPPSQL $GSM_SCRIPTS/$RUNORASHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAMACHINE $GSM_SCRIPTS/$ORALOGGER $GSM_SCRIPTS/$ORAFACTORY $GSM_SCRIPTS/$ORAGSM $GSM_SCRIPTS/$ORASSHARD $GSM_SCRIPTS/$ORAENV $SCRIPT_DIR/scripts/ + +# hadolint ignore=SC2086 +RUN chmod 755 $INSTALL_DIR/install/*.sh && \ + sync && \ + $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ + $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + sync + +############################################# +# ------------------------------------------- +# Start new stage for slim image +# It will also be used as base image for patching +# ------------------------------------------- +############################################# +FROM base AS gsm-image-slim-true +ARG SLIMMING +ARG VERSION + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +# Linux Env Variable ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ ORACLE_HOME=$GSM_HOME \ ORACLE_BASE=$GSM_BASE \ SCRIPT_DIR=$INSTALL_DIR/sharding \ - SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ PATH=/bin:/usr/bin:/sbin:/usr/sbin \ GSM_PATH=$GSM_HOME/bin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib - + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ + INSTALL_SCRIPTS=$INSTALL_DIR/install \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" -# Copy files needed during both installation and runtime -# ------------ -COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_DIR/install/ +# Copy binaries +# ------------- +# COPY Binaries +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_SCRIPTS/ COPY $VERSION/$RUN_FILE $VERSION/$GSM_SETUP_FILE $VERSION/$CHECKLIVENESS $VERSION/$USER_SCRIPTS_FILE $SCRIPT_DIR/ -COPY $GSM_SCRIPTS $SCRIPT_DIR/scripts/ +COPY $GSM_SCRIPTS/$ORAPCATALOG $GSM_SCRIPTS/$ORAPSHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$MAINPY $GSM_SCRIPTS/$ORASCATALOG $GSM_SCRIPTS/$ORACOMMON $GSM_SCRIPTS/$DEMOAPPSQL $GSM_SCRIPTS/$RUNORASHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAMACHINE $GSM_SCRIPTS/$ORALOGGER $GSM_SCRIPTS/$ORAFACTORY $GSM_SCRIPTS/$ORAGSM $GSM_SCRIPTS/$ORASSHARD $GSM_SCRIPTS/$ORAENV $SCRIPT_DIR/scripts/ +# hadolint ignore=SC2086 RUN chmod 755 $INSTALL_DIR/install/*.sh && \ sync && \ $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ sync ############################################# # ------------------------------------------- # Start new stage for installing the GSM -# ------------------------------------------- +# only for SLIMMING=false ############################################# -from base AS builder +# hadolint ignore=DL3006,DL3025 +FROM gsm-image-slim-${SLIMMING} AS builder +ARG SLIMMING ARG VERSION COPY $VERSION/$INSTALL_FILE_1 $VERSION/$INSTALL_RSP $VERSION/$INSTALL_GSM_BINARIES_FILE $VERSION/$GSM_SETUP_FILE $INSTALL_DIR/install/ +# Prepare permissions and system configuration as root. +USER ${USER} # hadolint ignore=SC2086 -RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ - sync && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ - su oracle -c "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ - $INVENTORY/orainstRoot.sh && \ - $GSM_HOME/root.sh && \ - rm -rf $INSTALL_DIR/install && \ +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + chmod 755 $INSTALL_SCRIPTS/*.sh && \ + sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ + sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ + :;\ + fi + +# Run only the GSM installer as oracle. +USER ${GSM_USER} +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ + :;\ +fi + +# Keep your existing root scripts and cleanup below this. +USER ${USER} +# hadolint ignore=SC2086 +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + $INVENTORY/orainstRoot.sh && \ + $GSM_HOME/root.sh && \ + rm -rf $INSTALL_DIR/install && \ rm -f /etc/sysctl.d/99-oracle-database-preinstall-21c-sysctl.conf && \ rm -f /etc/sysctl.d/99-sysctl.conf && \ rm -f /etc/rc.d/init.d/oracle-database-preinstall-21c-firstboot && \ rm -f /etc/security/limits.d/oracle-database-preinstall-21c.conf && \ + :;\ + fi + +#RUN if [ "${SLIMMING}x" == 'truex' ]; then \ +# mkdir /u01 && \ +# :; \ +#fi + +# hadolint ignore=SC2086 +RUN rm -f $INSTALL_DIR/install/* && \ sync ############################################# @@ -132,8 +251,8 @@ RUN chmod 755 $INSTALL_SCRIPTS/*.sh && \ # Start new layer for GSM runtime # ------------------------------------------- ############################################# - -FROM base +# hadolint ignore=DL3006,DL3025 +FROM gsm-image-slim-${SLIMMING} AS final ARG BASE_IMAGE ARG BASE_IMAGE_REF ARG BASE_IMAGE_DIGEST @@ -143,7 +262,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ - rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ else \ @@ -152,14 +271,12 @@ RUN \ rm -f /tmp/image-rpm-details; COPY --from=builder /u01 /u01 - # hadolint ignore=SC2086 -RUN if [ ! -f $PYTHON_FILE ]; then \ - ln -s $PYTHON3_FILE $PYTHON_FILE && \ - :; \ - fi && \ + +RUN test -x "$PYTHON3_FILE" && \ + ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ - cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ + cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ for helper in cmdExec main.py orapcatalog.py orapshard.py orascatalog.py oracommon.py demoapp.sql runOraShardSetup.sh oramachine.py oralogger.py orafactory.py oragsm.py orasshard.py oraenv.py; do \ ln -sf scripts/$helper $SHARD_SCRIPT_DIR/$helper; \ done && \ @@ -172,15 +289,15 @@ RUN if [ ! -f $PYTHON_FILE ]; then \ chmod 755 $SCRIPT_DIR/cmdExec && \ sync -USER oracle -WORKDIR /home/oracle -EXPOSE 1521 + +USER ${GSM_USER} +WORKDIR /home/${GSM_USER} +EXPOSE 1522 VOLUME ["$GSM_BASE/oradata"] HEALTHCHECK --interval=2m --start-period=25m \ CMD "$SCRIPT_DIR/$CHECKLIVENESS" >/dev/null || exit 1 -# Define default command to start Oracle Database. # hadolint ignore=DL3025 CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh b/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh index 7adbb4d689..0f7a22df89 100755 --- a/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh +++ b/OracleDatabase/GDD/containerfiles/21.3.0/setupLinuxEnv.sh @@ -12,5 +12,5 @@ dnf update -y && \ dnf clean all && \ chmod ug+x $SCRIPT_DIR/*.sh && \ -yum -y install oracle-database-preinstall-21c net-tools which zip unzip tar openssl openssh-server openssh-client vim-minimal which vim-minimal passwd sudo && \ +yum -y install oracle-database-preinstall-21c net-tools which zip unzip tar openssl openssh-server vim-minimal which vim-minimal passwd sudo python36 && \ yum clean all diff --git a/OracleDatabase/GDD/containerfiles/23.26.0/23ai_gsm_install.rsp b/OracleDatabase/GDD/containerfiles/23.26.0/26ai_gsm_install.rsp similarity index 100% rename from OracleDatabase/GDD/containerfiles/23.26.0/23ai_gsm_install.rsp rename to OracleDatabase/GDD/containerfiles/23.26.0/26ai_gsm_install.rsp diff --git a/OracleDatabase/GDD/containerfiles/23.26.0/Checksum b/OracleDatabase/GDD/containerfiles/23.26.0/Checksum index 5214ffc0b9..a3814b4daa 100644 --- a/OracleDatabase/GDD/containerfiles/23.26.0/Checksum +++ b/OracleDatabase/GDD/containerfiles/23.26.0/Checksum @@ -1 +1 @@ -c6594169182c382753928f95fd17ec90 LINUX.X64_2326100_gsm.zip +baefa0a9baff35649c6f944e621467bf LINUX.X64_2326100_gsm_home.zip diff --git a/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile b/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile index 16fc088487..e24f001c14 100644 --- a/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile @@ -1,4 +1,3 @@ -# hadolint global ignore=DL4006 # LICENSE UPL 1.0 # # Copyright (c) 2018,2026 Oracle and/or its affiliates. @@ -6,28 +5,40 @@ # ORACLE CONTAINERFILES PROJECT # -------------------------- # This is the Containerfile for Oracle GSM 23.26ai to build the container image -# MAINTAINER +# MAINTAINER ,> # # This is the Containerfile for Oracle GSM 23.26ai # # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- -# (1) LINUX.X64_2326100_gsm.zip +# (1) LINUX.X64_2326100_gsm_home.zip # Download Oracle 23.26ai GSM Software # from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Containerfile -# Run: -# $ podman build -t oracle/gsm:23.26.0 . +# Place this file at containerfiles/23.26.0/Containerfile. +# Build from the containerfiles directory, which must contain: +# 23.26.0/LINUX.X64_2326100_gsm_home.zip +# 23.26.0/23ai_gsm_install.rsp +# the existing 23.26.0 shell scripts and the shared scripts/ directory. # +# Regular image: +# podman build --target final --build-arg VERSION=23.26.0 \ +# --build-arg SLIMMING=false -f 23.26.0/Containerfile \ +# -t oracle/gsm:23.26.0 . +# +# Prepared patching-base image (no installed GSM home): +# podman build --target final --build-arg VERSION=23.26.0 \ +# --build-arg SLIMMING=true -f 23.26.0/Containerfile \ +# -t oracle/gsm:23.26.0-base . ARG SLIMMING=false ARG BASE_IMAGE=oraclelinux:9 ARG BASE_OL_IMAGE=$BASE_IMAGE ARG BASE_IMAGE_REF=oraclelinux:9 ARG BASE_IMAGE_DIGEST=unknown +ARG VERSION=23.26.0 # Pull base image # --------------- @@ -55,7 +66,7 @@ LABEL "provider"="Oracle" \ # Argument to control removal of components not needed after db software installation -ARG INSTALL_FILE_1="LINUX.X64_2326100_gsm.zip" +ARG INSTALL_FILE_1="LINUX.X64_2326100_gsm_home.zip" ARG USER="root" # Environment variables required for this build (do NOT change) @@ -66,13 +77,13 @@ ENV GSM_BASE="/u01/app/oracle" \ INVENTORY="/u01/app/oracle/oraInventory" \ INSTALL_DIR="/opt/oracle/scripts" \ INSTALL_FILE_1=$INSTALL_FILE_1 \ - INSTALL_RSP="23ai_gsm_install.rsp" \ + INSTALL_RSP="26ai_gsm_install.rsp" \ RUN_FILE="runOracle.sh" \ SETUP_LINUX_FILE="setupLinuxEnv.sh" \ CHECK_SPACE_FILE="checkSpace.sh" \ USER_SCRIPTS_FILE="runUserScripts.sh" \ INSTALL_GSM_BINARIES_FILE="installGSMBinaries.sh" \ - GSM_SETUP_FILE="setupOshardEnv.sh" \ + GSM_SETUP_FILE="setupOshardEnv.sh" \ GSM_ENV_SETUP_FILE="setupGSM.sh" \ GSM_SCRIPTS="scripts" \ MAINPY="main.py" \ @@ -95,14 +106,14 @@ ENV GSM_BASE="/u01/app/oracle" \ CHECKLIVENESS="checkLiveness.sh" # Use second ENV so that variable get substituted # hadolint ignore=DL3044 -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - ORACLE_HOME=$GSM_HOME \ - ORACLE_BASE=$GSM_BASE \ - SCRIPT_DIR=$INSTALL_DIR/sharding \ - SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - GSM_PATH=$GSM_HOME/bin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib ############################################# # ------------------------------------------- @@ -117,16 +128,16 @@ ARG VERSION # Environment variables required for this build (do NOT change) # ------------------------------------------------------------- # Linux Env Variable -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - ORACLE_HOME=$GSM_HOME \ - ORACLE_BASE=$GSM_BASE \ - SCRIPT_DIR=$INSTALL_DIR/sharding \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - GSM_PATH=$GSM_HOME/bin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ INSTALL_SCRIPTS=$INSTALL_DIR/install \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - GSM_SCRIPTS="scripts" + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" # Copy binaries # ------------- @@ -140,7 +151,7 @@ RUN chmod 755 $INSTALL_DIR/install/*.sh && \ sync && \ $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ sync ############################################# @@ -178,7 +189,7 @@ RUN chmod 755 $INSTALL_DIR/install/*.sh && \ sync && \ $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ - $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ sync ############################################# @@ -241,7 +252,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ - rpm -qa --qf '%{NAME} %{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ else \ @@ -251,12 +262,11 @@ RUN \ COPY --from=builder /u01 /u01 # hadolint ignore=SC2086 -RUN if [ ! -f $PYTHON_FILE ]; then \ - ln -s $PYTHON3_FILE $PYTHON_FILE && \ - :; \ - fi && \ + +RUN test -x "$PYTHON3_FILE" && \ + ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ - cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ + cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ for helper in cmdExec main.py orapcatalog.py orapshard.py orascatalog.py oracommon.py demoapp.sql runOraShardSetup.sh oramachine.py oralogger.py orafactory.py oragsm.py orasshard.py oraenv.py; do \ ln -sf scripts/$helper $SHARD_SCRIPT_DIR/$helper; \ done && \ diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install.rsp b/OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install.rsp new file mode 100644 index 0000000000..102854f64e --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install.rsp @@ -0,0 +1,35 @@ + +############################################################################### +## Copyright(c) Oracle Corporation 1998,2022. All rights reserved. ## +## ## +## Specify values for the variables listed below to customize ## +## your installation. ## +## ## +## Each variable is associated with a comment. The comment ## +## can help to populate the variables with the appropriate ## +## values. ## +## ## +############################################################################### + +#------------------------------------------------------------------------------- +# Do not change the following system generated value. +#------------------------------------------------------------------------------- +oracle.install.responseFileVersion=/oracle/install/rspfmt_gsminstall_response_schema_v23.0.0 + +#------------------------------------------------------------------------------- +# Unix group to be set for the inventory directory. +#------------------------------------------------------------------------------- +UNIX_GROUP_NAME=oinstall +#------------------------------------------------------------------------------- +# Inventory location. +#------------------------------------------------------------------------------- +INVENTORY_LOCATION=###INVENTORY### +#------------------------------------------------------------------------------- +# Complete path of the Oracle Home +#------------------------------------------------------------------------------- +ORACLE_HOME=###ORACLE_HOME### + +#------------------------------------------------------------------------------- +# Complete path of the Oracle Base. +#------------------------------------------------------------------------------- +ORACLE_BASE=###ORACLE_BASE### diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install_sample.rsp b/OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install_sample.rsp new file mode 100644 index 0000000000..fce54e3a43 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/26ai_gsm_install_sample.rsp @@ -0,0 +1,35 @@ + +############################################################################### +## Copyright(c) Oracle Corporation 1998,2022. All rights reserved. ## +## ## +## Specify values for the variables listed below to customize ## +## your installation. ## +## ## +## Each variable is associated with a comment. The comment ## +## can help to populate the variables with the appropriate ## +## values. ## +## ## +############################################################################### + +#------------------------------------------------------------------------------- +# Do not change the following system generated value. +#------------------------------------------------------------------------------- +oracle.install.responseFileVersion=/oracle/install/rspfmt_gsminstall_response_schema_v23.0.0 + +#------------------------------------------------------------------------------- +# Unix group to be set for the inventory directory. +#------------------------------------------------------------------------------- +UNIX_GROUP_NAME= +#------------------------------------------------------------------------------- +# Inventory location. +#------------------------------------------------------------------------------- +INVENTORY_LOCATION= +#------------------------------------------------------------------------------- +# Complete path of the Oracle Home +#------------------------------------------------------------------------------- +ORACLE_HOME= + +#------------------------------------------------------------------------------- +# Complete path of the Oracle Base. +#------------------------------------------------------------------------------- +ORACLE_BASE= diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/Checksum b/OracleDatabase/GDD/containerfiles/26.0.0/Checksum new file mode 100644 index 0000000000..b462f54909 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/Checksum @@ -0,0 +1 @@ +ba8e6b942ba8ff22d25dd3babc7b326c LINUX.X64_260000_gsm.zip diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile b/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile new file mode 100644 index 0000000000..8e3b4d406e --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile @@ -0,0 +1,294 @@ +# LICENSE UPL 1.0 +# +# Copyright (c) 2018,2026 Oracle and/or its affiliates. +# +# ORACLE CONTAINERFILES PROJECT +# -------------------------- +# This is the Containerfile for Oracle GSM 23.26ai to build the container image +# MAINTAINER ,> +# +# This is the Containerfile for Oracle GSM 26ai +# +# REQUIRED FILES TO BUILD THIS IMAGE +# ---------------------------------- +# (1) LINUX.X64_260000_gsm_home.zip +# Download Oracle 26ai GSM Software +# from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html +# +# HOW TO BUILD THIS IMAGE +# ----------------------- +# Place this file at containerfiles/26.0.0/Containerfile. +# Build from the containerfiles directory, which must contain: +# 26.0.0/LINUX.X64_260000_gsm_home.zip +# 26.0.0/26ai_gsm_install.rsp +# the existing 26.0.0 shell scripts and the shared scripts/ directory. +# +# Regular image: +# podman build --target final --build-arg VERSION=26.0.0 \ +# --build-arg SLIMMING=false -f 26.0.0/Containerfile \ +# -t oracle/gsm:26.0.0 . +# +# Prepared patching-base image (no installed GSM home): +# podman build --target final --build-arg VERSION=26.0.0 \ +# --build-arg SLIMMING=true -f 26.0.0/Containerfile \ +# -t oracle/gsm:26.0.0-base . + +ARG SLIMMING=false +ARG BASE_IMAGE=oraclelinux:9 +ARG BASE_OL_IMAGE=$BASE_IMAGE +ARG BASE_IMAGE_REF=oraclelinux:9 +ARG BASE_IMAGE_DIGEST=unknown +ARG VERSION=26.0.0 + +# Pull base image +# --------------- +# hadolint ignore=DL3006,DL3025 +FROM $BASE_OL_IMAGE AS base +RUN \ + mkdir -p /usr/share/oracle/image-metadata/rpms && \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ + rpm -qa --qf '%{NAME}\n' | sort -u > /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt; +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +LABEL "org.opencontainers.image.base.name"="$BASE_IMAGE_REF" \ + "org.opencontainers.image.base.digest"="$BASE_IMAGE_DIGEST" \ + "com.oracle.database.base.image.chain.path"="/usr/share/oracle/image-metadata/base-image-chain.json" +ARG SLIMMING=false +ARG VERSION + +# Labels +# ------ +LABEL "provider"="Oracle" \ + "issues"="https://github.com/oracle/docker-images/issues" \ + "volume.setup.location1"="/opt/oracle/scripts" \ + "port.listener"="1522" + +# Argument to control removal of components not needed after db software installation + +ARG INSTALL_FILE_1="LINUX.X64_260000_gsm_home.zip" + +ARG USER="root" + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +ENV GSM_BASE="/u01/app/oracle" \ + GSM_USER="oracle" \ + GSM_HOME="/u01/app/oracle/product/23.0.0/gsmhome_1" \ + INVENTORY="/u01/app/oracle/oraInventory" \ + INSTALL_DIR="/opt/oracle/scripts" \ + INSTALL_FILE_1=$INSTALL_FILE_1 \ + INSTALL_RSP="26ai_gsm_install.rsp" \ + RUN_FILE="runOracle.sh" \ + SETUP_LINUX_FILE="setupLinuxEnv.sh" \ + CHECK_SPACE_FILE="checkSpace.sh" \ + USER_SCRIPTS_FILE="runUserScripts.sh" \ + INSTALL_GSM_BINARIES_FILE="installGSMBinaries.sh" \ + GSM_SETUP_FILE="setupOshardEnv.sh" \ + GSM_ENV_SETUP_FILE="setupGSM.sh" \ + GSM_SCRIPTS="scripts" \ + MAINPY="main.py" \ + PYTHON_FILE="/usr/bin/python" \ + PYTHON3_FILE="/usr/bin/python3" \ + ORAPCATALOG="orapcatalog.py" \ + CMDEXEC="cmdExec" \ + ORAMACHINE="oramachine.py" \ + ORALOGGER="oralogger.py" \ + ORAFACTORY="orafactory.py" \ + ORAGSM="oragsm.py" \ + ORASSHARD="orasshard.py" \ + ORAENV="oraenv.py" \ + ORAPSHARD="orapshard.py" \ + MAINPY="main.py" \ + ORASCATALOG="orascatalog.py" \ + ORACOMMON="oracommon.py" \ + DEMOAPPSQL="demoapp.sql" \ + RUNORASHARD="runOraShardSetup.sh" \ + CHECKLIVENESS="checkLiveness.sh" +# Use second ENV so that variable get substituted +# hadolint ignore=DL3044 +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib + +############################################# +# ------------------------------------------- +# Start new stage for slim image +# ------------------------------------------- +############################################# +FROM base AS gsm-image-slim-false +ARG SLIMMING +ARG VERSION + + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +# Linux Env Variable +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ + INSTALL_SCRIPTS=$INSTALL_DIR/install \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" + +# Copy binaries +# ------------- +# COPY Binaries +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_SCRIPTS/ +COPY $VERSION/$RUN_FILE $VERSION/$GSM_SETUP_FILE $VERSION/$CHECKLIVENESS $VERSION/$USER_SCRIPTS_FILE $SCRIPT_DIR/ +COPY $GSM_SCRIPTS/$ORAPCATALOG $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAPSHARD $GSM_SCRIPTS/$MAINPY $GSM_SCRIPTS/$ORASCATALOG $GSM_SCRIPTS/$ORACOMMON $GSM_SCRIPTS/$DEMOAPPSQL $GSM_SCRIPTS/$RUNORASHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAMACHINE $GSM_SCRIPTS/$ORALOGGER $GSM_SCRIPTS/$ORAFACTORY $GSM_SCRIPTS/$ORAGSM $GSM_SCRIPTS/$ORASSHARD $GSM_SCRIPTS/$ORAENV $SCRIPT_DIR/scripts/ + +# hadolint ignore=SC2086 +RUN chmod 755 $INSTALL_DIR/install/*.sh && \ + sync && \ + $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ + $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + sync + +############################################# +# ------------------------------------------- +# Start new stage for slim image true +# ------------------------------------------- +############################################# +FROM base AS gsm-image-slim-true +ARG SLIMMING +ARG VERSION + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +# Linux Env Variable +ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ + ORACLE_HOME=$GSM_HOME \ + ORACLE_BASE=$GSM_BASE \ + SCRIPT_DIR=$INSTALL_DIR/sharding \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_PATH=$GSM_HOME/bin:$PATH \ + GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib \ + INSTALL_SCRIPTS=$INSTALL_DIR/install \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + GSM_SCRIPTS="scripts" + +# Copy binaries +# ------------- +# COPY Binaries +COPY $VERSION/$SETUP_LINUX_FILE $VERSION/$CHECK_SPACE_FILE $VERSION/$GSM_ENV_SETUP_FILE $INSTALL_SCRIPTS/ +COPY $VERSION/$RUN_FILE $VERSION/$GSM_SETUP_FILE $VERSION/$CHECKLIVENESS $VERSION/$USER_SCRIPTS_FILE $SCRIPT_DIR/ +COPY $GSM_SCRIPTS/$ORAPCATALOG $GSM_SCRIPTS/$ORAPSHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$MAINPY $GSM_SCRIPTS/$ORASCATALOG $GSM_SCRIPTS/$ORACOMMON $GSM_SCRIPTS/$DEMOAPPSQL $GSM_SCRIPTS/$RUNORASHARD $GSM_SCRIPTS/$CMDEXEC $GSM_SCRIPTS/$ORAMACHINE $GSM_SCRIPTS/$ORALOGGER $GSM_SCRIPTS/$ORAFACTORY $GSM_SCRIPTS/$ORAGSM $GSM_SCRIPTS/$ORASSHARD $GSM_SCRIPTS/$ORAENV $SCRIPT_DIR/scripts/ + +# hadolint ignore=SC2086 +RUN chmod 755 $INSTALL_DIR/install/*.sh && \ + sync && \ + $INSTALL_DIR/install/$CHECK_SPACE_FILE && \ + $INSTALL_DIR/install/$SETUP_LINUX_FILE && \ + $INSTALL_DIR/install/$GSM_ENV_SETUP_FILE && \ + sync + +############################################# +# ------------------------------------------- +# Start new stage for installing the GSM +# ------------------------------------------- +############################################# + +# hadolint ignore=DL3006,DL3025 +FROM gsm-image-slim-${SLIMMING} AS builder +ARG SLIMMING +ARG VERSION + +# hadolint ignore=SC2086 +COPY $VERSION/$INSTALL_FILE_1 $VERSION/$INSTALL_RSP $VERSION/$INSTALL_GSM_BINARIES_FILE $VERSION/$GSM_SETUP_FILE $INSTALL_DIR/install/ + +USER ${USER} +# hadolint ignore=SC2086 +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + chmod 755 $INSTALL_SCRIPTS/*.sh && \ + :;\ + fi +USER ${GSM_USER} +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + "$INSTALL_DIR/install/$INSTALL_GSM_BINARIES_FILE" && \ + :;\ +fi + +USER ${USER} +# hadolint ignore=SC2086 +RUN if [ "${SLIMMING}x" != 'truex' ]; then \ + $INVENTORY/orainstRoot.sh && \ + $GSM_HOME/root.sh && \ + rm -rf $INSTALL_DIR/install && \ + :;\ + fi + +#RUN if [ "${SLIMMING}x" == 'truex' ]; then \ +# mkdir /u01 && \ +# :; \ +#fi + +# hadolint ignore=SC2086 +RUN rm -f $INSTALL_DIR/install/* && \ + sync + +############################################# +# ------------------------------------------- +# Start new layer for GSM runtime +# ------------------------------------------- +############################################# +# hadolint ignore=DL3006,DL3025 +FROM gsm-image-slim-${SLIMMING} AS final +ARG BASE_IMAGE +ARG BASE_IMAGE_REF +ARG BASE_IMAGE_DIGEST +RUN mkdir -p /usr/share/oracle/image-metadata && \ + printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ + "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json + +RUN \ + rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ + rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ + if [ -f /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt ]; then \ + awk -F '\t' 'NR==FNR {base[$1]=1; next} !($1 in base) {print $1 "-" $2}' /usr/share/oracle/image-metadata/rpms/base-image-rpm-names.txt /tmp/image-rpm-details > /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + else \ + cp /usr/share/oracle/image-metadata/rpms/image-rpms.txt /usr/share/oracle/image-metadata/rpms/image-added-rpms.txt; \ + fi && \ + rm -f /tmp/image-rpm-details; + +COPY --from=builder /u01 /u01 +# hadolint ignore=SC2086 + +RUN test -x "$PYTHON3_FILE" && \ + ln -sf $PYTHON3_FILE $PYTHON_FILE && \ + rm -f $INSTALL_DIR/install/* && \ + cp $SCRIPT_DIR/scripts/cmdExec $SCRIPT_DIR/ && \ + for helper in cmdExec main.py orapcatalog.py orapshard.py orascatalog.py oracommon.py demoapp.sql runOraShardSetup.sh oramachine.py oralogger.py orafactory.py oragsm.py orasshard.py oraenv.py; do \ + ln -sf scripts/$helper $SHARD_SCRIPT_DIR/$helper; \ + done && \ + ln -sf ../$CHECKLIVENESS $SCRIPT_DIR/scripts/$CHECKLIVENESS && \ + chown -R oracle:oinstall $SCRIPT_DIR && \ + chmod 755 $SCRIPT_DIR/*.sh && \ + chmod 755 $SCRIPT_DIR/scripts/*.py && \ + chmod 755 $SCRIPT_DIR/scripts/*.sh && \ + chmod 755 $SCRIPT_DIR/scripts/cmdExec && \ + chmod 755 $SCRIPT_DIR/cmdExec && \ + sync + +USER ${GSM_USER} +WORKDIR /home/${GSM_USER} +EXPOSE 1522 + +VOLUME ["$GSM_BASE/oradata"] + +HEALTHCHECK --interval=2m --start-period=25m \ + CMD "$SCRIPT_DIR/$CHECKLIVENESS" >/dev/null || exit 1 + +# Define default command to start Oracle Database. +# hadolint ignore=DL3025 +CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/checkLiveness.sh b/OracleDatabase/GDD/containerfiles/26.0.0/checkLiveness.sh new file mode 100755 index 0000000000..511875df59 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/checkLiveness.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# LICENSE UPL 1.0 +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: Build script for building RAC container image +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# + +export PYTHON="/bin/python3" +GSM_STARTUP_FAILURE_MARKER="${GSM_STARTUP_FAILURE_MARKER:-/tmp/gsm-startup.failed}" +ENABLE_DEBUG="${ENABLE_DEBUG:-false}" + +if [ "${ENABLE_DEBUG}" = "true" ] && [ -f "$GSM_STARTUP_FAILURE_MARKER" ]; then + echo "GSM startup failure marker found and ENABLE_DEBUG=true; bypassing liveness for debugging." + exit 0 +fi + +if [ -z "${SHARD_SCRIPT_DIR}" ]; then + SHARD_SCRIPT_DIR=$SCRIPT_DIR +fi + +if [ -f "$SHARD_SCRIPT_DIR/$MAINPY" ]; then + CHECK_SCRIPT="$SHARD_SCRIPT_DIR/$MAINPY" +else + CHECK_SCRIPT="$SHARD_SCRIPT_DIR/scripts/$MAINPY" +fi + +$PYTHON "$CHECK_SCRIPT" --checkliveness='true' +retcode=$? + + if [ ${retcode} -eq 0 ]; then + exit 0 + else + exit 1 + fi diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/checkSpace.sh b/OracleDatabase/GDD/containerfiles/26.0.0/checkSpace.sh new file mode 100755 index 0000000000..5d4b8d9147 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/checkSpace.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# LICENSE UPL 1.0 +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# + +REQUIRED_SPACE_GB=2 +AVAILABLE_SPACE_GB=`df -PB 1G / | tail -n 1 | awk '{ print $4 }'` + +if [ $AVAILABLE_SPACE_GB -lt $REQUIRED_SPACE_GB ]; then + script_name=`basename "$0"` + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "$script_name: ERROR - There is not enough space available in the docker container." + echo "$script_name: The container needs at least $REQUIRED_SPACE_GB GB, but only $AVAILABLE_SPACE_GB GB are available." + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + exit 1; +fi; diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/installGSMBinaries.sh b/OracleDatabase/GDD/containerfiles/26.0.0/installGSMBinaries.sh new file mode 100755 index 0000000000..fe73a92130 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/installGSMBinaries.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# LICENSE UPL 1.0 +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: Build script for building RAC container image +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# +# shellcheck disable=SC1143 +# shellcheck disable=SC2164 + +export ORACLE_BASE=$GSM_BASE +export ORACLE_HOME=$GSM_HOME + +# Check whether ORACLE_BASE is set +if [ "$ORACLE_BASE" == "" ]; then + echo "ERROR: ORACLE_BASE has not been set!" + echo "You have to have the ORACLE_BASE environment variable set to a valid value!" + exit 1; +fi; + +# Check whether ORACLE_HOME is set +if [ "$ORACLE_HOME" == "" ]; then + echo "ERROR: ORACLE_HOME has not been set!" + echo "You have to have the ORACLE_HOME environment variable set to a valid value!" + exit 1; +fi; + + +# Replace place holders +# --------------------- + +sed -i -e "s|###INVENTORY###|$INVENTORY|g" $INSTALL_SCRIPTS/$INSTALL_RSP && \ +sed -i -e "s|###ORACLE_BASE###|$GSM_BASE|g" $INSTALL_SCRIPTS/$INSTALL_RSP && \ +sed -i -e "s|###ORACLE_HOME###|$GSM_HOME|g" $INSTALL_SCRIPTS/$INSTALL_RSP + +# Install Oracle binaries +#cd $INSTALL_SCRIPTS && \ +#unzip $INSTALL_FILE_1 && \ +#rm $INSTALL_FILE_1 && \ + +unzip $INSTALL_SCRIPTS/$INSTALL_FILE_1 -d $ORACLE_HOME && \ +rm $INSTALL_SCRIPTS/$INSTALL_FILE_1 && \ +$ORACLE_HOME/runInstaller -silent -force -waitforcompletion -responsefile $INSTALL_SCRIPTS/$INSTALL_RSP -ignorePrereqFailure || true && \ +#rm -rf gsm && \ +cd $HOME diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/runOracle.sh b/OracleDatabase/GDD/containerfiles/26.0.0/runOracle.sh new file mode 100755 index 0000000000..0803c990ad --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/runOracle.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# LICENSE UPL 1.0 +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: Build script for building RAC container image +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# + +#This is the main file which calls other file to setup the sharding. +# shellcheck disable=SC2164 + + +if [ -z "${SHARD_SCRIPT_DIR}" ]; then + SHARD_SCRIPT_DIR=$INSTALL_DIR/sharding +fi + +if [ -z "${BASE_DIR}" ]; then + if [ -f "$SHARD_SCRIPT_DIR/main.py" ]; then + BASE_DIR=$SHARD_SCRIPT_DIR + else + BASE_DIR=$SHARD_SCRIPT_DIR/scripts + fi +fi + +if [ -z ${MAIN_SCRIPT} ]; then + SCRIPT_NAME="main.py" +fi + +if [ -z ${EXECUTOR} ]; then + EXECUTOR="python3" +fi + +GSM_STARTUP_FAILURE_MARKER="${GSM_STARTUP_FAILURE_MARKER:-/tmp/gsm-startup.failed}" +ENABLE_DEBUG="${ENABLE_DEBUG:-false}" + +function debug_hold_on_error() { + local exit_code="$1" + echo "#####################################" + echo "########### E R R O R ###############" + echo "GSM startup failed with exit code: ${exit_code}" + echo "ENABLE_DEBUG=true, keeping container alive for debugging." + echo "Marker file: ${GSM_STARTUP_FAILURE_MARKER}" + echo "Useful logs:" + echo " - GSM alert logs: ${ORACLE_BASE}/diag/gsm/*/*/trace/alert*.log" + echo "########### E R R O R ###############" + echo "#####################################" + tail -f /dev/null +} + +rm -f "$GSM_STARTUP_FAILURE_MARKER" +cd "$BASE_DIR" +$EXECUTOR "$SCRIPT_NAME" +retcode=$? + +if [ ${retcode} -ne 0 ]; then + touch "$GSM_STARTUP_FAILURE_MARKER" + if [ "${ENABLE_DEBUG}" = "true" ]; then + debug_hold_on_error "${retcode}" + fi + exit ${retcode} +fi + +rm -f "$GSM_STARTUP_FAILURE_MARKER" + +# Tail on alert log and wait (otherwise container will exit) + +if [ -z ${DEV_MODE} ]; then + echo "The following output is now a tail of the alert.log:" + tail -f $ORACLE_BASE/diag/gsm/*/*/trace/alert*.log & +else + echo "The following output is now a tail of the /etc/passwd for dev mode" + tail -f /etc/passwd & +fi + +childPID=$! +wait $childPID diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/runUserScripts.sh b/OracleDatabase/GDD/containerfiles/26.0.0/runUserScripts.sh new file mode 100755 index 0000000000..4d1e5b3751 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/runUserScripts.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# LICENSE UPL 1.0 +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# +# Since: January, 2020 +# Author: sanjay.singh@oracle.com, paramdeep.saini@oracle.com +# shellcheck disable=SC1090 + +SCRIPTS_ROOT="$1"; + +# Check whether parameter has been passed on +if [ -z "$SCRIPTS_ROOT" ]; then + echo "$0: No SCRIPTS_ROOT passed on, no scripts will be run"; + exit 1; +fi; + +# Execute custom provided files (only if directory exists and has files in it) +if [ -d "$SCRIPTS_ROOT" ] && [ -n "$(ls -A $SCRIPTS_ROOT)" ]; then + + echo ""; + echo "Executing user defined scripts" + + for f in $SCRIPTS_ROOT/*; do + case "$f" in + *.sh) echo "$0: running $f"; . "$f" ;; + *.sql) echo "$0: running $f"; echo "exit" | $ORACLE_HOME/bin/sqlplus -s "/ as sysdba" @"$f"; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo ""; + done + + echo "DONE: Executing user defined scripts" + echo ""; + +fi; diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/setupGSM.sh b/OracleDatabase/GDD/containerfiles/26.0.0/setupGSM.sh new file mode 100755 index 0000000000..4a6a6ca42c --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/setupGSM.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: Build script for building RAC container image +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# + +# Create Directories +mkdir -p $GSM_BASE +mkdir -p $GSM_HOME +mkdir -p $INVENTORY + +chown -R oracle:oinstall $INVENTORY +chown -R oracle:oinstall $GSM_BASE +chown -R oracle:oinstall $GSM_HOME +chown -R oracle:oinstall $INSTALL_SCRIPTS +chmod 775 $INSTALL_SCRIPTS + +chmod 666 /etc/sudoers +echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers +chmod 440 /etc/sudoers + +echo "export ORACLE_HOME=$GSM_HOME" >> /home/oracle/.bashrc +echo "export PATH=$GSM_PATH" >> /home/oracle/.bashrc +echo "export LD_LIBRARY_PATH=$GSM_LD_LIBRARY_PATH" >> /home/oracle/.bashrc +echo "export SCRIPT_DIR=$SCRIPT_DIR" >> /home/oracle/.bashrc +echo "export GSM_HOME=$GSM_HOME" >> /home/oracle/.bashrc diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/setupLinuxEnv.sh b/OracleDatabase/GDD/containerfiles/26.0.0/setupLinuxEnv.sh new file mode 100755 index 0000000000..d5b2fef320 --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/setupLinuxEnv.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# +# LICENSE UPL 1.0 +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: Build script for building RAC container image +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# +dnf update -y && \ +dnf clean all && \ + +if grep -q "Oracle Linux Server release 9" /etc/oracle-release; then \ + dnf -y install oracle-ai-database-preinstall-26ai && \ + rm -f /etc/systemd/system/oracle-ai-database-preinstall-26ai-firstboot.service && \ + dnf clean all; \ +else \ + dnf -y install oraclelinux-developer-release-el8 && \ + dnf -y install oracle-ai-database-preinstall-26ai && \ + rm -f /etc/systemd/system/oracle-ai-database-preinstall-26ai-firstboot.service && \ + dnf clean all; \ +fi && \ +dnf -y install net-tools zip unzip tar openssl openssh-server vim-minimal which passwd sudo python3 hostname fontconfig lsof && \ +dnf clean all && \ +chmod ug+x $SCRIPT_DIR/*.sh && \ +rm -f /etc/sysctl.conf && \ +rm -f /usr/lib/systemd/system/dnf-makecache.service diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/setupOshardEnv.sh b/OracleDatabase/GDD/containerfiles/26.0.0/setupOshardEnv.sh new file mode 100755 index 0000000000..68d5d126ce --- /dev/null +++ b/OracleDatabase/GDD/containerfiles/26.0.0/setupOshardEnv.sh @@ -0,0 +1,976 @@ +#!/bin/bash +# +# LICENSE UPL 1.0 +# Since: November, 2020 +# Author: paramdeep.saini@oracle.com +# Description: +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. +# +# Copyright (c) 2020,2021 Oracle and/or its affiliates. +# +# shellcheck disable=SC2155 +# shellcheck disable=SC2283 +# shellcheck disable=SC2034 +# shellcheck disable=SC2068 +# shellcheck disable=SC2184 + + +export NOW=$(date +"%Y%m%d%H%M") +export LOGDIR="/tmp" +export LOGFILE="${LOGDIR}/oshard_${NOW}.log" +export STD_OUT_FILE="/proc/1/fd/1" +export STD_ERR_FILE="/proc/1/fd/2" +declare -x SECRET_VOLUME='/run/secrets/' ## Secret Volume +declare -x PWD_KEY='pwd.key' ## PWD Key File +declare -x COMMON_OS_PWD_FILE='common_os_pwdfile.enc' +declare -x DB_PWD_FILE +export PDB_SQL_SCRIPT="/tmp/pdb.sql" +export TOP_PID=$$ +rm -f /tmp/sqllog.output +rm -f $PDB_SQL_SCRIPT +rm -f $LOGFILE + +#################################### Print and Exit Functions Begin Here ####################### +error_exit() { +local NOW=$(date +"%m-%d-%Y %T %Z") + # Display error message and exit +# echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 + echo "${NOW} : ${PROGNAME}: ${1:-"Unknown Error"}" | tee -a $LOGFILE > $STD_OUT_FILE + kill -s TERM $TOP_PID +} + +print_message () +{ + local NOW=$(date +"%m-%d-%Y %T %Z") + # Display message and return + echo "${NOW} : ${PROGNAME} : ${1:-"Unknown Message"}" | tee -a $LOGFILE > $STD_OUT_FILE + return $? +} +#################################### Print and Exit Functions End Here ####################### + + +####################################### Functions Related to checks #################### +dbChecks() +{ +if [ -z "$ORACLE_HOME" ] +then + error_exit "Set the ORACLE_HOME variable" +else + print_message "ORACLE_HOME set to $ORACLE_HOME" +fi + +# If ORACLE_HOME doesn't exist # +if [ ! -d "$ORACLE_HOME" ] +then + error_exit "The ORACLE_HOME $ORACLE_HOME does not exist" +else + print_message "ORACLE_HOME Directory Exist" +fi + +################## Checks for Password and Clustername and clustertype begins here ########### +if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then +cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' + +eval $cmd + +if [ $? -eq 0 ]; then +print_message "Password file generated" +else +error_exit "Error occurred during common os password file generation" +fi + +read PASSWORD < /tmp/${COMMON_OS_PWD_FILE} +rm -f /tmp/${COMMON_OS_PWD_FILE} +else + print_message "Password is empty string" + export PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 +fi + +if [ -z "${ORACLE_PWD}" ]; then + print_message "Setting ORACLE_PWD to PASSWORD passed from encrypted files" + export ORACLE_PWD=${PASSWORD} +else + print_message "ORACLE_PWD is set to user specified password" +fi + +################################################################################################### + + +if [ -z "${SHARD_ADMIN_USER}" ] +then + print_message "SHARD_ADMIN_USER is not set, setting default to mysdbadmin" + export SHARD_ADMIN_USER="mysdbadmin" +else + print_message "SHARD_ADMIn_USER set to $SHARD_ADMIN_USER" +fi + + +if [ -z "${PDB_ADMIN_USER}" ] +then + print_message "PDB_ADMIN_USER is not set, setting default to PDBADMIN" + export PDB_ADMIN_USER="pdbadmin" +else + print_message "PDB_ADMIN_USER set to $PDB_ADMIN_USER" +fi + + +# Validate the value of ORACLE_SID # +if [ -z "${ORACLE_SID}" ] +then + error_exit "Set the ORACLE_SID variable" +else + print_message "ORACLE_SID is set to $ORACLE_SID" +fi + +if [ -z "${ORACLE_HOSTNAME}" ] +then + if [ -z "${KUBE_SVC}" ]; then + print_message "ORACLE_HOSTNAME variable is not set" + export ORACLE_HOSTNAME="$(hostname)" + print_message "ORACLE_HOSTNAME is set to $ORACLE_HOSTNAME" + else + print_message "ORACLE_HOSTNAME variable is not set" + export ORACLE_HOSTNAME="$(hostname).${KUBE_SVC}" + print_message "ORACLE_HOSTNAME is set to $ORACLE_HOSTNAME" + fi +else + print_message "ORACLE_HOSTNAME is set to $ORACLE_HOSTNAME" +fi + + + +if [ -z "$DB_PORT" ] +then + print_message "Set the DB_PORT variable" + export DB_PORT=1521 +else + print_message "DB Port is set to $DB_PORT" +fi + +if [ -z "${DB_RECOVERY_FILE_DEST}" ]; then + print_message "Set the DB_RECOVERY_FILE_DEST is not set" + export DB_RECOVERY_FILE_DEST="${ORACLE_BASE}/oradata/fast_recovery_area/${ORACLE_SID}" +fi + +if [ -z "${DB_CREATE_FILE_DEST}" ]; then + print_message "Set the DB_CREATE_FILE_DEST is not set. Setting to ${ORACLE_BASE}/oradata/${ORACLE_SID}" + export DB_CREATE_FILE_DEST="${ORACLE_BASE}/oradata/${ORACLE_SID}" +fi + +if [ -z "${DATA_PUMP_DIR}" ]; then + print_message "DATA_PUMP_DIR is not set, it will se to ${ORACLE_BASE}/oradata/data_pump_dir" + export DATA_PUMP_DIR="${ORACLE_BASE}/oradata/data_pump_dir" +fi + +if [ ! -d "${DATA_PUMP_DIR}" ]; then + print_message "DATA_PUMP_DIR ${DATA_PUMP_DIR} directory does not exist" + mkdir -p "${DATA_PUMP_DIR}" +fi + +if [ ! -d "${DB_RECOVERY_FILE_DEST}" ]; then + print_message "DB_RECOVERY_FILE_DEST ${DB_RECOVERY_FILE_DEST} directory does not exist" + mkdir -p "${DB_RECOVERY_FILE_DEST}" +fi + +if [ -z "${DB_RECOVERY_FILE_DEST_SIZE}" ]; then + print_message "DB_RECOVERY_FILE_DEST_SIZE is not set" + export DB_RECOVERY_FILE_DEST_SIZE="40G" +else + print_message "DB_RECOVERY_FILE_DEST_SIZE is set to ${DB_RECOVERY_FILE_DEST_SIZE}" +fi + +} + +gsmChecks() +{ + print_message "Performing GSM related checks" + +if [ ! -z "${KUBE_SVC}" ]; then + lordinal=$( hostname | awk -F "-" '{ print $NF }' ) + print_message "lordinal is set to ${lordinal}" + region_num=$((lordinal+1)) + if [ -z "${REGION}" ]; then + print_message "REGION is not set. Setting to region$lordinal" + export REGION="region${region_num}" + fi +else + if [ -z "${REGION}" ]; then + error_exit "REGION Canot be set to empty" + fi +fi + +################## Checks for Password and Clustername and clustertype begins here ########### +if [ -f "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" ]; then +cmd='openssl enc -d -aes-256-cbc -in "${SECRET_VOLUME}/${COMMON_OS_PWD_FILE}" -out /tmp/${COMMON_OS_PWD_FILE} -pass file:"${SECRET_VOLUME}/${PWD_KEY}"' + +eval $cmd + +if [ $? -eq 0 ]; then +print_message "Password file generated" +else +error_exit "Error occurred during common os password file generation" +fi + +read PASSWORD < /tmp/${COMMON_OS_PWD_FILE} +rm -f /tmp/${COMMON_OS_PWD_FILE} +else + print_message "Password is empty string" + export PASSWORD=O$(openssl rand -base64 6 | tr -d "=+/")_1 +fi + +if [ -z "${ORACLE_PWD}" ]; then + print_message "Setting ORACLE_PWD to PASSWORD passed from encrypted files" + export ORACLE_PWD=${PASSWORD} +else + print_message "ORACLE_PWD is set to user specified password" +fi + +################################################################################################### + +if [ -z "$SHARD_ADMIN_USER" ] +then + print_message "SHARD_ADMIN_USER is not set, setting default to mysdbadmin" + export SHARD_ADMIN_USER="mysdbadmin" +else + print_message "SHARD_ADMIn_USER set to $SHARD_ADMIN_USER" +fi + + +if [ -z "$PDB_ADMIN_USER" ] +then + print_message "PDB_ADMIN_USER is not set, setting default to PDBADMIN" + export PDB_ADMIN_USER="pdbadmin" +else + print_message "PDB_ADMIN_USER set to $PDB_ADMIN_USER" +fi + + +if [ -z "${SHARD_GROUP_NAME}" ]; then + print_message "SHARD_GROUP_NAME is not set, it will be set to primary_shardgroup" + export SHARD_GROUP_NAME="primary_shardgroup" +fi + +if [ -z "${SHARD_DEPLOYMENT_TYPE}" ]; then + print_message "SHARD_DEPLOYMENT_TYPE is not set, it will set to primary" + export SHARD_DEPLOYMENT_TYPE="primary" +fi + +if [ -z "${SHARD_DIRECTOR_NAME}" ]; then + print_message "SHARD_DIRECTOR_NAME is not set, it will set to sharddirector${region_num}" + export SHARD_DIRECTOR_NAME="sharddirector${region_num}" +fi + +if [ -z "${ORACLE_HOSTNAME}" ] +then + if [ -z "${KUBE_SVC}" ]; then + print_message "ORACLE_HOSTNAME variable is not set" + export ORACLE_HOSTNAME="$(hostname)" + print_message "ORACLE_HOSTNAME is set to $ORACLE_HOSTNAME" + else + print_message "ORACLE_HOSTNAME variable is not set" + export ORACLE_HOSTNAME="$(hostname).${KUBE_SVC}" + print_message "ORACLE_HOSTNAME is set to $ORACLE_HOSTNAME" + fi +else + print_message "ORACLE_HOSTNAME is set to $ORACLE_HOSTNAME" +fi + +} + +###################################### Function Related to Check end here ################### + +################################### Reset Password ########################################### +resetPassword() +{ +if [ -f "${HOME}/setPassword.sh" ]; then +if [ ! -z "${ORACLE_PWD}" ]; then +"${HOME}"/setPassword.sh "$ORACLE_PWD" +fi +fi +} + +############################################################################################### +setupCatalog() +{ + +localconnectStr="/ as sysdba" +systemStr="system/${ORACLE_PWD}" +sqlScript="/tmp/setapp.sql" +print_message "Setting up Paramteres in Spfile" + +cmd1="drop table shardsetup;" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$systemStr" + +cmd1="alter system set db_create_file_dest=\"${DB_CREATE_FILE_DEST}\" scope=both;" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + +cmd1="alter system set db_recovery_file_dest_size=${DB_RECOVERY_FILE_DEST_SIZE} scope=both;" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + +cmd1="alter system set db_recovery_file_dest=\"${DB_RECOVERY_FILE_DEST}\" scope=both;" +#cmd=$( eval echo "$cmd1" ) +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter system set open_links=16 scope=spfile;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter system set open_links_per_instance=16 scope=spfile;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="@$ORACLE_HOME/rdbms/admin/setCatalogDBPrivs.sql;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" +print_message "cat /tmp/setup_grants_privs.lst" + +cmd1="alter user gsmcatuser account unlock;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter user gsmcatuser identified by $ORACLE_PWD;" +print_message "Sending query to sqlplus to execute alter user gsmcatuser identified by ORACLE_PWD;" +executeSQL "$cmd1" "$localconnectStr" + + +#cmd1="alter system set remote_listener=\"\(ADDRESS=\(HOST=$ORACLE_HOSTNAME\)\(PORT=$DB_PORT\)\(PROTOCOL=tcp\)\)\";" +cmd1="alter system set remote_listener=\"(ADDRESS=(HOST=$ORACLE_HOSTNAME)(PORT=$DB_PORT)(PROTOCOL=tcp))\" scope=both;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + + +cmd1="shutdown immediate;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="startup mount;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database archivelog;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database open;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database flashback on;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database force logging;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1", "$localconnectStr" + +cmd1="ALTER PLUGGABLE DATABASE ALL OPEN;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + +if [ ! -z "${ORACLE_PDB}" ]; then +setupCatalogPDB +fi + +cmd1="create table shardsetup (status varchar2(10));" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$systemStr" + +cmd1="insert into shardsetup values('completed');" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$systemStr" +} + +configureSampleAppSchema() +{ +local sqlScript="/tmp/sqlScript.sql" +connectStr = "${SHARD_ADMIN_USER}/${ORACLE_PWD}" + +echo "alter session enable shard ddl;" > ${sqlScript} +echo "create user app_schema identified by '&1';" >> ${sqlScript} +echo "grant all privileges to app_schema;" >> ${sqlScript} +echo "grant gsmadmin_role to app_schema;" >> ${sqlScript} +echo "grant select_catalog_role to app_schema;" >> ${sqlScript} +echo "grant connect, resource to app_schema;" >> ${sqlScript} +echo "grant dba to app_schema;" >> ${sqlScript} +echo "grant execute on dbms_crypto to app_schema;" >> ${sqlScript} +echo "CREATE TABLESPACE SET TSP_SET_1 using template (datafile size 100m autoextend on next 10M maxsize unlimited extent management local segment space management auto);" >> ${sqlScript} +echo "CREATE TABLESPACE SET LOBTS1;" >> ${sqlScript} +echo "CREATE TABLESPACE products_tsp datafile size 100m autoextend on next 10M maxsize unlimited extent management local uniform size 1m; " >> ${sqlScript} +echo "CONNECT app_schema/'&1';" >> ${sqlScript} +echo "ALTER SESSION ENABLE SHARD DDL;" >> ${sqlScript} +echo "CREATE SHARDED TABLE Customers (CustId VARCHAR2(60) NOT NULL, FirstName VARCHAR2(60), LastName VARCHAR2(60), Class VARCHAR2(10), Geo VARCHAR2(8),CustProfile VARCHAR2(4000),Passwd RAW(60),CONSTRAINT pk_customers PRIMARY KEY (CustId),CONSTRAINT json_customers CHECK (CustProfile IS JSON)) TABLESPACE SET TSP_SET_1 PARTITION BY CONSISTENT HASH (CustId) PARTITIONS AUTO;" >> ${sqlScript} +echo "CREATE SHARDED TABLE Orders (OrderId INTEGER NOT NULL,CustId VARCHAR2(60) NOT NULL, OrderDate TIMESTAMP NOT NULL,SumTotal NUMBER(19,4),Status CHAR(4), CONSTRAINT pk_orders PRIMARY KEY (CustId, OrderId),CONSTRAINT fk_orders_parent FOREIGN KEY (CustId) REFERENCES Customers ON DELETE CASCADE ) PARTITION BY REFERENCE (fk_orders_parent);" >> ${sqlScript} +echo "CREATE SEQUENCE Orders_Seq;" >> ${sqlScript} +echo "CREATE SHARDED TABLE LineItems (OrderId INTEGER NOT NULL,CustId VARCHAR2(60) NOT NULL,ProductId INTEGER NOT NULL,Price NUMBER(19,4),Qty NUMBER,CONSTRAINT pk_items PRIMARY KEY (CustId, OrderId, ProductId),CONSTRAINT fk_items_parent FOREIGN KEY (CustId, OrderId) REFERENCES Orders ON DELETE CASCADE ) PARTITION BY REFERENCE (fk_items_parent);" >> ${sqlScript} +echo "CREATE DUPLICATED TABLE Products (ProductId INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,Name VARCHAR2(128),DescrUri VARCHAR2(128),LastPrice NUMBER(19,4)) TABLESPACE products_tsp;" >> ${sqlScript} + +print_message "Executing sql script ${sqlScript}" +cat ${sqlScript} >> $LOGFILE +executeSQL "$cmd1" "$connectStr" "sqlScript" "${sqlScript}" + +} + + +setupCatalogPDB() +{ +#pdbConnStr="${PDB_ADMIN_USER}/${ORACLE_PWD}@//${ORACLE_HOSTNAME}:1521/${ORACLE_PDB}" +pdbConnStr=" /as sysdba" + +local sqlScript="/tmp/sqlScript.sql" + +print_message "Settup Sql Script to setup Catalog PDB" +echo "alter session set container=${ORACLE_PDB};" > "${sqlScript}" +echo "create user ${SHARD_ADMIN_USER} identified by ${ORACLE_PWD};" >> "${sqlScript}" +echo "grant connect, create session, gsmadmin_role to ${SHARD_ADMIN_USER} ;" >> "${sqlScript}" +echo "grant inherit privileges on user SYS to GSMADMIN_INTERNAL;" >> "${sqlScript}" +echo "execute dbms_xdb.sethttpport(8080);" >> ${sqlScript} +echo "exec DBMS_SCHEDULER.SET_AGENT_REGISTRATION_PASS('${ORACLE_PWD}');" >> "${sqlScript}" + +print_message "Executing sql script ${sqlScript}" +cat ${sqlScript} >> $LOGFILE +executeSQL "$cmd1" "${pdbConnStr}" "sqlScript" "${sqlScript}" +} + +######################################################################## Catalog Setup task ends here ################################# + +######################################################################## Primary Shard Setup task ends here ################################# + +setupShardPDB() +{ + +#pdbConnStr="${PDB_ADMIN_USER}/${ORACLE_PWD}@//${ORACLE_HOSTNAME}:1521/${ORACLE_PDB}" +pdbConnStr=" /as sysdba" + +local sqlScript="/tmp/sqlScript.sql" +print_message "Settup Sql Script to setup Catalog PDB" +echo "alter session set container=${ORACLE_PDB};" > "${sqlScript}" +echo "grant read,write on directory DATA_PUMP_DIR to GSMADMIN_INTERNAL;" >> "${sqlScript}" +echo "grant sysdg to GSMUSER;" >> "${sqlScript}" +echo "grant sysbackup to GSMUSER;" >> "${sqlScript}" +echo "execute DBMS_GSM_FIX.validateShard;" >> ${sqlScript} +print_message "Executing sql script ${sqlScript}" +cat ${sqlScript} >> $LOGFILE +executeSQL "$cmd1" "${pdbConnStr}" "sqlScript" "${sqlScript}" + +} + +setupShardCDB() +{ +localconnectStr="/as sysdba" +systemStr="system/${ORACLE_PWD}" +print_message "Setting up Paramteres in Spfile" + +cmd1="drop table shardsetup;" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$systemStr" + +cmd1="alter system set db_create_file_dest=\"${DB_CREATE_FILE_DEST}\" scope=both;" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + +cmd1="alter system set db_recovery_file_dest_size=${DB_RECOVERY_FILE_DEST_SIZE} scope=both;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + +cmd1="alter system set db_recovery_file_dest=\"${DB_RECOVERY_FILE_DEST}\" scope=both;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter system set open_links=16 scope=spfile;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter system set open_links_per_instance=16 scope=spfile;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter user gsmrootuser account unlock;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter user gsmrootuser identified by ${ORACLE_PWD} container=all;" +print_message "Sending query to sqlplus to execute alter user gsmrootuser identified by ORACLE_PWD container=all;" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="grant sysdg to gsmrootuser;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="grant sysbackup to gsmrootuser;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter user GSMUSER account unlock;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter user GSMUSER identified by ${ORACLE_PWD} container=all;" +print_message "Sending query to sqlplus to execute alter user GSMUSER identified by ORACLE_PWD container=all;" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="grant sysdg to GSMUSER;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="grant sysbackup to GSMUSER;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter system set dg_broker_start=true scope=both;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="create or replace directory DATA_PUMP_DIR as '${DATA_PUMP_DIR}';" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="grant read,write on directory DATA_PUMP_DIR to GSMADMIN_INTERNAL;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +#cmd1="alter system set remote_listener=\"\(ADDRESS=\(HOST=$ORACLE_HOSTNAME\)\(PORT=$DB_PORT\)\(PROTOCOL=tcp\)\)\";" +cmd1="alter system set remote_listener=\"(ADDRESS=(HOST=$ORACLE_HOSTNAME)(PORT=$DB_PORT)(PROTOCOL=tcp))\" scope=both;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="shutdown immediate;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="startup mount;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database archivelog;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database open;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database flashback on;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="alter database force logging;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +cmd1="ALTER PLUGGABLE DATABASE ALL OPEN;" +# cmd=$(eval echo "$cmd1") +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$localconnectStr" + + +if [ ! -z "${ORACLE_PDB}" ]; then + +setupShardPDB + +fi + +cmd1="create table shardsetup (status varchar2(10));" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$systemStr" + + +cmd1="insert into shardsetup values('completed');" +print_message "Sending query to sqlplus to execute $cmd1" +executeSQL "$cmd1" "$systemStr" + +} + +######################################################################## Primary Shard Setup ends here ################################# + +######################################################################## GSM Setup Task Begin here ##################################### +setupGSM() +{ +local cstatus='false' +local sstatus='false' + +setupGSMCatalog +startGSM +addShardGroup +setupGSMShard + +} + +startGSM() +{ + +cmd1="start gsm" +print_message "Sending query to gsm to execute $cmd1" +executeGSM "$cmd1" +} + +deployShard() +{ + +cmd1="deploy" +print_message "Sending query to gsm to execute $cmd1" +executeGSM "$cmd1" +} + +stopGSM() +{ + +cmd1="stop gsm" +print_message "Sending query to gsm to execute $cmd1" +executeGSM "$cmd1" +} + +addInvitedNode() +{ + +chost=$1 + +cmd1="add invitednode $chost" +print_message "Sending query to gsm to execute $cmd1" +executeGSM "$cmd1" +} + + +addShardGroup() +{ + +cmd1="add shardgroup -shardgroup ${shardGName} -deploy_as ${deployment_type} -region ${region}" +print_message "Sending query to gsm to execute $cmd1" +executeGSM "$cmd1" +} + +checkStatus() +{ +host=$1 +port=1521 +cpdb=$3 +ccdb=$2 +uname="system" +cpasswd=${ORACLE_PWD} + +print_message "Connect String $uname/$cpasswd@//$host:$port/$ccdb" +output=$( "$ORACLE_HOME"/bin/sqlplus -s "$uname/$cpasswd@//$host:$port/$ccdb" < "${gdsScript}" +echo "add invitednode ${chost}" >> "${gdsScript}" +echo "add gsm -gsm ${gsm_name} -listener 1521 -pwd ${cpasswd} -catalog ${chost}:${cport}/${cpdb} -region region1 -endpoint '(ADDRESS=(PROTOCOL=tcp)(HOST=${gsmhost})(PORT=1521))'" >> "${gdsScript}" +echo "exit" >> "${gdsScript}" +print_message "Sending script to gsm to execute ${gdsScript}" +cat ${gdsScript} >> $LOGFILE +cp "${gdsScript}" "${gdsScript}.test" +executeGSM "$cmd1" "gdsScript" "${gdsScript}" +} + +setupGSMShard() +{ +IFS='; ' read -r -a sarray <<< "$PRIMARY_SHARD_PARAMS" +arrLen=$( echo "${#sarray[@]}" ) +count1=0 + +runtime="45 minute" +endtime=$(date -ud "$runtime" +%s) + +print_message "Set variables to host=${host} db=${db} pdb=${pdb}" +while [[ $(date -u +%s) -le $endtime ]] +do + for i in ${!sarray[@]}; do + print_message "1st String in Shard params $element" + host=$( echo ${sarray[i]} | awk -F: '{print $1 }') + db=$( echo ${sarray[i]} | awk -F: '{print $2 }') + pdb=$( echo ${sarray[i]} | awk -F: '{print $3 }') + print_message "shard env set to host=${host} db=${db} pdb=${pdb}" + if [ ! -z "${host}" ] && [ ! -z "${db}" ] && [ ! -z "${pdb}" ] + then + coutput=$( checkStatus $host $db $pdb ) + if [ "${coutput}" == 'completed' ] ;then + configureGSMShard $host $db $pdb + unset sarray[i] + ((++count1)) + else + print_message "Catalog Status must return completed but returned value is $coutput" + fi + fi + done + if [ ${count1} -ge ${arrLen} ]; then + break; + fi + print_message "Shards are still not ready. Sleeping for 120 seconds" + sleep 120 +done +} + +configureGSMShard() +{ +chost=$1 +cport=1521 +cpdb=$3 +ccdb=$2 +cpasswd=${ORACLE_PWD} +region=${REGION} +shardGName="${SHARD_GROUP_NAME}" +deployment_type="${SHARD_DEPLOYMENT_TYPE}" +local gdsScript="/tmp/gdsScript.sql" +admuser="${PDB_ADMIN_USER}" + +echo "connect ${admuser}/${cpasswd}" > "${gdsScript}" +echo "add cdb -connect ${chost}:${cport}:${ccdb} -pwd ${cpasswd}" >> "${gdsScript}" +echo "add shard -cdb ${ccdb} -connect ${chost}:${cport}/${cpdb} -shardgroup ${shardGName} -pwd ${cpasswd}" >> "${gdsScript}" +echo "config vncr" >> "${gdsScript}" +echo "sql 'update gsmadmin_internal.database set hostid=NULL '" >> "${gdsScript}" +echo "exit" >> "${gdsScript}" +print_message "Sending script to gsm to execute ${gdsScript}" +cat ${gdsScript} >> $LOGFILE +executeGSM "$cmd1" "gdsScript" "${gdsScript}" +print_message " Calling Stop GSM function" +stopGSM +print_message "Stop GSM function completed, sleeping for 20 seconds" +sleep 20 +print_message " Calling Start GSM function" +startGSM +print_message "Start GSM function completed, sleeping for 30 seconds" +sleep 30 +print_message "Calling invitenode function to add the shard" +addInvitedNode $chost +deployShard +} + +####################################################################### GSM Setup Task Ends here ######################################### + + +######################################################################### Execute GSM Statements ######################################### +executeGSM() +{ +gsmQuery=$1 +type=$2 +gdsScript=$3 + +if [ -z "${gsmQuery}" ]; then + print_message "Empty gdsQuery passed to gds" +fi + +if [ -z "${type}" ]; then + type='notSet' +fi + +if [ -z "${gdsScript}" ]; then + gdsScript='notSet' +fi + +if [ "${type}" == "gdsScript" ]; then +print_message "Executing gds script " +"$ORACLE_HOME"/bin/gdsctl @${gdsScript} +else +print_message "Executing GSM query" +"$ORACLE_HOME"/bin/gdsctl << EOF >> $LOGFILE + $gsmQuery + exit +EOF +fi +} +######################################################################## Execute GSM Statements Ends here ################################ + +########################################################################## Execute SQL Function Begin here ############################## +executeSQL() +{ +sqlQuery=$1 +connectStr=$2 +type=$3 +sqlScript=$4 + +if [ -z "${sqlQuery}" ]; then + print_message "Empty sqlQuery passed to sqlplus. Operation Failed" +fi + +if [ -z "${connectStr}" ]; then + error_exit "Empty connectStr passed to sqlplus. Operation Failed" +fi + +if [ -z "${type}" ]; then + type='notSet' +fi + +if [ -z "${sqlScript}" ]; then + sqlScript='notSet' +fi + +if [ "${type}" == "sqlScript" ] && [ -f ${sqlScript} ]; then +print_message "Executing sql script using connect string" +"$ORACLE_HOME"/bin/sqlplus -s "$connectStr" << EOF >> $LOGFILE +@ ${sqlScript} +EOF +else +print_message "Executing sqlQuery using connect string" +"$ORACLE_HOME"/bin/sqlplus -s "$connectStr" << EOF >> $LOGFILE +$sqlQuery +EOF +fi +} + +############################################################################## Execute SQl Function ends here ################################# + +####################################### +################## MAIN ############### + +if [ "${OP_TYPE}" == "primaryshard" ]; then + print_message "Performing Checks before proceeding for setup" + dbChecks + print_message "OP_TYPE set to ${OP_TYPE}. Process to setup ${OP_TYPE} will begin now" + resetPassword + setupShardCDB +elif [ "${OP_TYPE}" == "standbyshard" ]; then + print_message "Performing Checks before proceeding for setup" + dbChecks + print_message "OP_TYPE set to ${OP_TYPE}. Process to setup ${OP_TYPE} will begin now" + setupShardStandby +elif [ "${OP_TYPE}" == "catalog" ]; then + print_message "Performing Checks before proceeding for setup" + dbChecks + print_message "OP_TYPE set to ${OP_TYPE}. Process to setup ${OP_TYPE} will begin now" + resetPassword + setupCatalog +elif [ "${OP_TYPE}" == "gsm" ]; then + print_message "Performing Checks before proceeding for setup" + gsmChecks + print_message "OP_TYPE set to ${OP_TYPE}. Process to setup ${OP_TYPE} will begin now" + setupGSM +else + print_message "OP_TYPE must be set to (gsm|catalog|primaryshard|standbyshard)" + exit 15 +fi diff --git a/OracleDatabase/GDD/containerfiles/buildContainerImage.sh b/OracleDatabase/GDD/containerfiles/buildContainerImage.sh index 90d980c4cf..fdd9acc316 100755 --- a/OracleDatabase/GDD/containerfiles/buildContainerImage.sh +++ b/OracleDatabase/GDD/containerfiles/buildContainerImage.sh @@ -15,8 +15,8 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/baseImageMetadata.sh" checkContainerRuntime() { - CONTAINER_RUNTIME=$(which podman 2>/dev/null) || - CONTAINER_RUNTIME=$(which docker 2>/dev/null) || + CONTAINER_RUNTIME=$(command -v podman 2>/dev/null) || + CONTAINER_RUNTIME=$(command -v docker 2>/dev/null) || { echo "No docker or podman executable found in your PATH" exit 1 @@ -26,7 +26,7 @@ checkContainerRuntime() { usage() { cat << EOF -Usage: buildContainerImage.sh -v [version] -t [image_name:tag] [-e | -s] [-i] [-o] [container build option] +Usage: buildContainerImage.sh -v [version] -t [image_name:tag] [-b] [-i] [-o] [container build option] It builds a container image for a DNS server Parameters: @@ -34,6 +34,7 @@ Parameters: -i: ignores the MD5 checksums -t: user defined image name and tag (e.g., image_name:ta -o: passes on container build option (e.g., --build-arg SLIMMIMG=true for slim) + -b: build base stage only (Used by extensions) LICENSE UPL 1.0 @@ -43,20 +44,33 @@ EOF exit 0 } -# Validate packages +# Validate packages (Checksum may contain MD5 or SHA256 digests) checksumPackages() { - if hash md5sum 2>/dev/null; then - echo "Checking if required packages are present and valid..." - md5sum -c Checksum - # shellcheck disable=SC2181 - if [ "$?" -ne 0 ]; then - echo "MD5 for required packages to build this image did not match!" - echo "Make sure to download missing files in folder $VERSION." - # shellcheck disable=SC2320 - exit $? + local checksum_file="${VERSION}/Checksum" + local hash_algo="md5" + local check_cmd="md5sum" + local sample_hash + + if [ ! -f "${checksum_file}" ]; then + echo "Checksum file ${checksum_file} not found." + exit 1 + fi + + sample_hash="$(awk 'NF && $1 !~ /^#/ {print $1; exit}' "${checksum_file}")" + if [[ "${sample_hash}" =~ ^[[:xdigit:]]{64}$ ]]; then + hash_algo="sha256" + check_cmd="sha256sum" + fi + + if command -v "${check_cmd}" >/dev/null 2>&1; then + echo "Checking if required packages are present and valid (${hash_algo})..." + if ! (cd "${VERSION}" && "${check_cmd}" -c Checksum); then + echo "${hash_algo} validation failed for required packages." + echo "Make sure the required files are present in ${VERSION} and match its Checksum file." + exit 1 fi else - echo "Ignored MD5 sum, 'md5sum' command not available."; + echo "Ignored checksum, '${check_cmd}' command not available." fi } @@ -71,11 +85,12 @@ fi # Parameters VERSION="19.3.0" SKIPMD5=0 +BASE_ONLY=0 DOCKEROPS="" IMAGE_NAME="" SLIM="false" DOCKEROPS=" --build-arg SLIMMING=false" -while getopts "hiv:o:t:" optname; do +while getopts "hibv:o:t:" optname; do case "$optname" in "h") usage @@ -83,6 +98,10 @@ while getopts "hiv:o:t:" optname; do "i") SKIPMD5=1 ;; + "b") + BASE_ONLY=1 + SKIPMD5=1 + ;; "v") VERSION="$OPTARG" ;; @@ -101,8 +120,9 @@ while getopts "hiv:o:t:" optname; do ;; "?") - usage; - ;; + usage >&2 + exit 1; + ;; *) # Should not occur echo "Unknown error while processing options inside buildContainerImage.sh" @@ -110,16 +130,41 @@ while getopts "hiv:o:t:" optname; do esac done -# Oracle Database Image Name -if [ "${IMAGE_NAME}"x = "x" ] && [ "${SLIM}" == "true" ]; then - IMAGE_NAME="oracle/gsm:${VERSION}-slim" +# Oracle GSM/GDD Image Name +if [ "${BASE_ONLY}" -eq 1 ]; then + if [ "${IMAGE_NAME}"x = "x" ]; then + IMAGE_NAME="localhost/oracle/gsm:${VERSION}-base" + if [ "$VERSION" = "23.26.0" ]; then + IMAGE_NAME="localhost/oracle/gsm:23.26ai-base" + fi + else + echo "Image name is passed as a variable" + fi + + DOCKEROPS="${DOCKEROPS//--build-arg SLIMMING=true/}" + DOCKEROPS="${DOCKEROPS//--build-arg SLIMMING=false/}" + DOCKEROPS+=" --build-arg SLIMMING=true" + +elif [ "${IMAGE_NAME}"x = "x" ] && [ "${SLIM}" == "true" ]; then + IMAGE_NAME="oracle/gsm:${VERSION}-slim" elif [ "${IMAGE_NAME}"x = "x" ] && [ "${SLIM}" == "false" ]; then - IMAGE_NAME="oracle/gsm:${VERSION}" + IMAGE_NAME="oracle/gsm:${VERSION}" else - echo "Image name is passed as an variable" + echo "Image name is passed as a variable" +fi + +if [ "$VERSION" = "23.26.0" ]; then + case "$IMAGE_NAME" in + oracle/gsm:23.26.0) + IMAGE_NAME="oracle/gsm:23.26ai" + ;; + oracle/gsm:23.26.0-slim) + IMAGE_NAME="oracle/gsm:23.26ai-slim" + ;; + esac fi - echo "Container Image set to : ${IMAGE_NAME}" +echo "Container Image set to : ${IMAGE_NAME}" if [ "${VERSION%%.*}" -ge 19 ]; then BUILD_FILE="Containerfile" @@ -129,7 +174,11 @@ fi # Resolve the digest before building the selected GSM version. checkContainerRuntime -if [[ "${VERSION}" == 19.* || "${VERSION}" == 21.* ]]; then BASE_IMAGE_DEFAULT="oraclelinux:7-slim"; else BASE_IMAGE_DEFAULT="oraclelinux:9"; fi +case "${VERSION}" in + 19.3.0*) BASE_IMAGE_DEFAULT="oraclelinux:7" ;; + 21.*) BASE_IMAGE_DEFAULT="oraclelinux:8" ;; + *) BASE_IMAGE_DEFAULT="oraclelinux:9" ;; +esac resolve_base_image_metadata "${VERSION}" "${BASE_IMAGE_DEFAULT}" "${DOCKEROPS}" DOCKEROPS="${DOCKEROPS} ${BASE_IMAGE_BUILD_ARGS}" @@ -169,6 +218,25 @@ if [ "$PROXY_SETTINGS" != "" ]; then echo "Proxy settings were found and will be used during the build." fi +# ############################# # +# BUILDING THE BASE STAGE IMAGE # +# ############################# # + +if [ ${BASE_ONLY} -eq 1 ]; then + echo "Building base stage image '${IMAGE_NAME}' ..." + # BUILD THE BASE STAGE IMAGE (replace all environment variables) + "${CONTAINER_RUNTIME}" build --force-rm=true \ + --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" --target final \ + -t "${IMAGE_NAME}" -f "${VERSION}"/Containerfile . || { + echo "" + echo "ERROR: Base stage image was NOT successfully created." + exit 1 + } + # Remove dangling images (intermitten images with tag ) + yes | "${CONTAINER_RUNTIME}" image prune > /dev/null || true + exit +fi + # ################## # # BUILDING THE IMAGE # # ################## # @@ -177,22 +245,24 @@ echo "Building image '$IMAGE_NAME' ..." # BUILD THE IMAGE (replace all environment variables) BUILD_START=$(date '+%s') # shellcheck disable=SC2086 -"${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" -t ${IMAGE_NAME} -f "${VERSION}/${BUILD_FILE}" . || { +"${CONTAINER_RUNTIME}" build --force-rm=true --no-cache=true ${DOCKEROPS} ${PROXY_SETTINGS} --build-arg VERSION="${VERSION}" --target final -t ${IMAGE_NAME} -f "${VERSION}/${BUILD_FILE}" . || { echo "There was an error building the image." exit 1 } -BUILD_END=$(date '+%s') -# shellcheck disable=SC2154,SC2003 -BUILD_ELAPSED=$((BUILD_END - BUILD_START)) -echo "" -# shellcheck disable=SC2181,SC2320 if [ $? -eq 0 ]; then + + BUILD_END=$(date '+%s') + # shellcheck disable=SC2154,SC2003 + BUILD_ELAPSED=$((BUILD_END - BUILD_START)) + + echo "" + # shellcheck disable=SC2181,SC2320 cat << EOF Oracle GSM Container Image for version $VERSION is ready to be extended: --> $IMAGE_NAME - + Build completed in $BUILD_ELAPSED seconds. EOF diff --git a/OracleDatabase/GDD/containerfiles/scripts/runOraShardSetup.sh b/OracleDatabase/GDD/containerfiles/scripts/runOraShardSetup.sh index 6d0db58664..07ffd5d7ca 100755 --- a/OracleDatabase/GDD/containerfiles/scripts/runOraShardSetup.sh +++ b/OracleDatabase/GDD/containerfiles/scripts/runOraShardSetup.sh @@ -441,14 +441,29 @@ fi # Check whether container has enough memory # Github issue #219: Prevent integer overflow, # only check if memory digits are less than 11 (single GB range and below) -if [ `cat /sys/fs/cgroup/memory/memory.limit_in_bytes | wc -c` -lt 11 ]; then - if [ `cat /sys/fs/cgroup/memory/memory.limit_in_bytes` -lt 2147483648 ]; then +# Support cgroup v1 and cgroup v2. +if [ -r /sys/fs/cgroup/memory.max ]; then + memoryFile="/sys/fs/cgroup/memory.max" +elif [ -r /sys/fs/cgroup/memory/memory.limit_in_bytes ]; then + memoryFile="/sys/fs/cgroup/memory/memory.limit_in_bytes" +else + echo "Error: Cannot determine the container memory limit." + exit 1 +fi + +memoryLimit=$(cat "$memoryFile") + +# In cgroup v2, "max" means the memory limit is unlimited. +if [ "$memoryLimit" != "max" ]; then + # Check only values with at most 10 digits to avoid integer overflow + # on the large cgroup v1 unlimited sentinel value. + if [ "${#memoryLimit}" -le 10 ] && [ "$memoryLimit" -lt 2147483648 ]; then echo "Error: The container doesn't have enough memory allocated." echo "A database container needs at least 2 GB of memory." - echo "You currently only have $((`cat /sys/fs/cgroup/memory/memory.limit_in_bytes`/1024/1024/1024)) GB allocated to the container." - exit 1; - fi; -fi; + echo "You currently only have $((memoryLimit / 1024 / 1024 / 1024)) GB allocated to the container." + exit 1 + fi +fi # Check that hostname doesn't container any "_" diff --git a/OracleDatabase/GDD/samples/applypatch/README.md b/OracleDatabase/GDD/samples/applypatch/README.md index f4ab9aa19c..05451b7410 100755 --- a/OracleDatabase/GDD/samples/applypatch/README.md +++ b/OracleDatabase/GDD/samples/applypatch/README.md @@ -1,13 +1,13 @@ -# Example of how to create a patched gsm image +# Example of how to create a patched GSM Image ## Pre-requisites -After you build your base Oracle GSM image following the [README.md](../../../container-based-sharding-deployment/README.md?ref_type=heads#building-oracle-globally-distributed-database-container-images) you can create a patched version of it. To build a patched image, you must provide the patch zip files. +After you build your base Oracle GSM image following the [README.md](../../README.md#option-2-build-a-gsm-image-from-local-binaries) you can create a patched version of it. To build a patched image, you must provide the patch zip files. **Notes:** - Some patches require a newer version of `OPatch`, the Oracle Interim Patch Installer utility. Oracle highly recommends that you always update opatch with the new version. -- You can only patch releases 18.10.0 or later using this script. +- You can only patch releases 19.3.0 or later using this script. - The scripts automatically install a newer OPatch version, if provided. ## The patch structure @@ -47,7 +47,7 @@ These directories are useful if you want to install multiple patches at once. Th Parameters: -v: version to build - Choose one of: latest + -t: user-defined image name and tag -o: passes on container build option -p: patch label to be used for the tag @@ -56,14 +56,12 @@ These directories are useful if you want to install multiple patches at once. Th Copyright (c) 2014,2022 Oracle and/or its affiliates. ``` -- The following is an example of building a patched image using 19.3.0. Note that `BASE_GSM_IMAGE=localhost/oracle/gsm:19.3.0` is set to 19.3.0. You must set BASE_GSM_IMAGE based on your enviornment. +- The following is an example of building a patched image from 19.3.0 GSM Image created earlier. Note that `localhost/oracle/gsm:19.3.0-base` is created before using [README.md](../../README.md#building-gsm-base-image). ```bash - # ./buildPatchedContainerImage.sh -v 19.3.0 -p 19.25.0 -o '--build-arg BASE_GSM_IMAGE=localhost/oracle/database-rac:19.3.0' + ./buildPatchedContainerImage.sh -v 19.3.0 -p 19.32.0 ``` -**Notes**: If you are trying to patch the image on Oracle Linux 8 (OL8) on the PODMAN host, then you must have the `podman-docker` package installed on your PODMAN host. - ## Copyright Copyright (c) 2014-2025 Oracle and/or its affiliates. All rights reserved. diff --git a/OracleDatabase/GDD/samples/applypatch/buildPatchedContainerImage.sh b/OracleDatabase/GDD/samples/applypatch/buildPatchedContainerImage.sh index 529f516036..42cfbec75b 100755 --- a/OracleDatabase/GDD/samples/applypatch/buildPatchedContainerImage.sh +++ b/OracleDatabase/GDD/samples/applypatch/buildPatchedContainerImage.sh @@ -10,6 +10,15 @@ # shellcheck disable=SC2046 # shellcheck disable=SC2320 +checkContainerRuntime() { + CONTAINER_RUNTIME=$(command -v podman 2>/dev/null) || + CONTAINER_RUNTIME=$(command -v docker 2>/dev/null) || + { + echo "No docker or podman executable found in your PATH" + exit 1 + } +} + usage() { cat << EOF @@ -18,7 +27,7 @@ It builds a patched GSM container image Parameters: -v: version to build - Choose one of: $(for i in $(ls -d */); do echo -n "${i%%/} "; done) + -t: user-defined image name and tag -o: passes on container build option -p: patch label to be used for the tag @@ -27,26 +36,27 @@ LICENSE UPL 1.0 Copyright (c) 2014,2022 Oracle and/or its affiliates. EOF - exit 0 + exit "${1:-0}" } ############## #### MAIN #### ############## +# No arguments: report an error. if [ "$#" -eq 0 ]; then - usage; + usage 1 >&2 fi # Parameters -ENTERPRISE=0 -STANDARD=0 +# shellcheck disable=SC2034 LATEST="latest" -VERSION='x' +VERSION='' +IMAGE_NAME="" PATCHLABEL="patch" DOCKEROPS="" -while getopts "h:v:p:o:" optname; do +while getopts "hv:t:p:o:" optname; do case "$optname" in "h") usage @@ -54,6 +64,9 @@ while getopts "h:v:p:o:" optname; do "v") VERSION="$OPTARG" ;; + "t") + IMAGE_NAME="$OPTARG" + ;; "p") PATCHLABEL="$OPTARG" ;; @@ -61,8 +74,7 @@ while getopts "h:v:p:o:" optname; do DOCKEROPS="$OPTARG" ;; "?") - usage; - exit 1; + usage 1 >&2 ;; *) # Should not occur @@ -71,30 +83,41 @@ while getopts "h:v:p:o:" optname; do esac done +if [[ -z "$VERSION" || -z "$PATCHLABEL" ]]; then + usage 1 >&2 +fi + # Oracle Database Image Name -IMAGE_NAME="oracle/database-gsm:$VERSION-$PATCHLABEL" +IMAGE_NAME="${IMAGE_NAME:-localhost/oracle/gsm:${VERSION}-${PATCHLABEL}}" # Go into version folder -cd latest +# shellcheck disable=SC2164 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "${SCRIPT_DIR}/${LATEST}" || exit 1 # Proxy settings PROXY_SETTINGS="" +# shellcheck disable=SC2154 if [ "${http_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg http_proxy=${http_proxy}" fi +# shellcheck disable=SC2154 if [ "${https_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg https_proxy=${https_proxy}" fi +# shellcheck disable=SC2154 if [ "${ftp_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg ftp_proxy=${ftp_proxy}" fi +# shellcheck disable=SC2154 if [ "${no_proxy}" != "" ]; then PROXY_SETTINGS="$PROXY_SETTINGS --build-arg no_proxy=${no_proxy}" fi +# shellcheck disable=SC2154 if [ "$PROXY_SETTINGS" != "" ]; then echo "Proxy settings were found and will be used during the build." fi @@ -102,41 +125,31 @@ fi # ################## # # BUILDING THE IMAGE # # ################## # -echo "Building image '$IMAGE_NAME' ..." +# Select Podman or Docker before using CONTAINER_RUNTIME. +checkContainerRuntime -# BUILD THE IMAGE (replace all environment variables) +echo "Building image '$IMAGE_NAME' using '$CONTAINER_RUNTIME' ..." BUILD_START=$(date '+%s') -BASE_RELEASE=$(echo $VERSION | awk -F. '{ print $1}') -DOCKEROPS=$DOCKEROPS" ""--build-arg BASE_RELEASE=$BASE_RELEASE" -docker build --no-cache=true $DOCKEROPS $PROXY_SETTINGS -t env -f DockerEnv . - -docker cp $(docker create --name env --rm env):/tmp/.env ./ - -docker build --force-rm=true --no-cache=true $DOCKEROPS \ - --build-arg GSM_HOME=$(grep GSM_HOME .env | cut -d '=' -f2) \ - --build-arg PREINSTALL_PKG=$(grep PREINSTALL_PKG .env | cut -d '=' -f2) $PROXY_SETTINGS -t $IMAGE_NAME -f Dockerfile . || { - echo "There was an error building the image." +# shellcheck disable=SC2086 +"${CONTAINER_RUNTIME}" build --no-cache=true $DOCKEROPS \ + --build-arg VERSION="$VERSION" \ + $PROXY_SETTINGS \ + -t "$IMAGE_NAME" -f Containerfile . || { + echo "ERROR: Failed to build patched GSM image '${IMAGE_NAME}'." >&2 + echo "Review the build output above for the cause." >&2 exit 1 } -docker rm env -docker rmi -f env -rm -f ./.env -BUILD_END=$(date '+%s') -BUILD_ELAPSED=`expr $BUILD_END - $BUILD_START` -echo "" +BUILD_END=$(date '+%s') +BUILD_ELAPSED=$((BUILD_END - BUILD_START)) -if [ $? -eq 0 ]; then -cat << EOF - Oracle GSM container image with version $VERSION is ready to be extended: +cat < $IMAGE_NAME +Oracle patched GSM container image built successfully. - Build completed in $BUILD_ELAPSED seconds. + Image : ${IMAGE_NAME} + Base version : ${VERSION} + Build time : ${BUILD_ELAPSED} seconds EOF - -else - echo "Oracle GSM container image was NOT successfully created. Check the output and correct any reported problems that occurred during the build operation." -fi diff --git a/OracleDatabase/GDD/samples/applypatch/latest/Containerfile b/OracleDatabase/GDD/samples/applypatch/latest/Containerfile new file mode 100644 index 0000000000..c580ea23aa --- /dev/null +++ b/OracleDatabase/GDD/samples/applypatch/latest/Containerfile @@ -0,0 +1,108 @@ +# LICENSE UPL 1.0 +# +# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. +# +# Containerfile for building a patched Oracle GSM image. +# +# Supply BASE_GSM_IMAGE as the matching, installed, unpatched GSM image. +# For example: +# podman build --build-arg VERSION=19.3.0 \ +# --build-arg BASE_GSM_IMAGE=oracle/gsm:19.3.0 \ +# -t oracle/gsm:19.3.0-patch -f Containerfile . +# hadolint global ignore=DL3006,DL3025 +ARG VERSION=19.3.0 +ARG BASE_GSM_IMAGE=localhost/oracle/gsm:$VERSION + +# Pull base image +# --------------- +FROM ${BASE_GSM_IMAGE} as builder + +# Argument to control removal of components not needed after db software installation +ARG VERSION +ARG PATCH_DIR="patches" +ARG USER="root" +ARG WORKDIR="/home/oracle" + +# Environment variables required for this build (do NOT change) +# ------------------------------------------------------------- +USER $USER + +ENV GSM_PATCH_FILE="applyGSMPatches.sh" \ + PATCH_INSTALL_DIR=/tmp/patches \ + PATCH_DIR=$PATCH_DIR \ + WORKDIR=$WORKDIR \ + GSM_USER="oracle" + +RUN mkdir -p "$PATCH_INSTALL_DIR" + +# Copy binaries +# ------------- +COPY $PATCH_DIR $PATCH_INSTALL_DIR/ + +# Install patches +RUN test -f "${PATCH_INSTALL_DIR}/${GSM_PATCH_FILE}" && \ + chown -R oracle:oinstall "${PATCH_INSTALL_DIR}" && \ + chmod ug+x "${PATCH_INSTALL_DIR}"/*.sh && \ + chmod ug+rwx "${PATCH_INSTALL_DIR}" && \ + sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.conf && \ + sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.conf && \ + sync && \ + if [ ! -s "$GSM_HOME/oraInst.loc" ]; then \ + test -s /etc/oraInst.loc || { echo "Neither GSM_HOME/oraInst.loc nor /etc/oraInst.loc exists" >&2; exit 1; }; \ + cp /etc/oraInst.loc "$GSM_HOME/oraInst.loc"; \ + fi && \ + chown oracle:oinstall "$GSM_HOME/oraInst.loc" && \ + chmod 640 "$GSM_HOME/oraInst.loc" + +USER oracle +RUN "${PATCH_INSTALL_DIR}/${GSM_PATCH_FILE}" "${PATCH_INSTALL_DIR}" && \ + "$GSM_HOME/OPatch/opatch" lsinventory \ + -invPtrLoc "$GSM_HOME/oraInst.loc" + +# hadolint ignore=DL3002 +USER root + +# hadolint ignore=SC2086 +RUN rm -rf /etc/oracle \ + "${PATCH_INSTALL_DIR}" + +##################### +FROM ${BASE_GSM_IMAGE}-base AS final + +ARG USER="oracle" +ARG WORKDIR="/home/oracle" + +USER oracle +COPY --from=builder /u01 /u01 +COPY --from=builder /opt/oracle /opt/oracle +COPY --from=builder /home/oracle/.bashrc /home/oracle/.bashrc + +USER root +RUN if [ ! -f $PYTHON_FILE ]; then \ + ln -s $PYTHON3_FILE $PYTHON_FILE && \ + :; \ + fi + +USER root +RUN test -s "$GSM_HOME/install/utl/rootmacro.sh" && \ + sed -i \ + "s|^ORACLE_HOME=%ORACLE_HOME%$|ORACLE_HOME=${GSM_HOME}|" \ + "$GSM_HOME/network/install/sqlnet/setowner.sh" && \ + grep -Fxq "ORACLE_HOME=${GSM_HOME}" \ + "$GSM_HOME/network/install/sqlnet/setowner.sh" && \ + "$INVENTORY/orainstRoot.sh" && \ + "$GSM_HOME/root.sh" && \ + sync + +USER oracle +RUN "$GSM_HOME/OPatch/opatch" lsinventory \ + -invPtrLoc "$GSM_HOME/oraInst.loc" +WORKDIR $WORKDIR +VOLUME ["$GSM_BASE/oradata"] + +HEALTHCHECK --interval=2m --start-period=25m \ + CMD "$SCRIPT_DIR/scripts/$CHECKLIVENESS" >/dev/null || exit 1 + +# Define default command to start Oracle Database setup. + +CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/GDD/samples/applypatch/latest/DockerEnv b/OracleDatabase/GDD/samples/applypatch/latest/DockerEnv deleted file mode 100644 index 669456d8ea..0000000000 --- a/OracleDatabase/GDD/samples/applypatch/latest/DockerEnv +++ /dev/null @@ -1,10 +0,0 @@ -# Stage 1: Base Stage with Environment Variables -ARG BASE_GSM_IMAGE=localhost/oracle/gsm:19.3.0 -FROM $BASE_GSM_IMAGE -ARG BASE_RELEASE=19c - -# Write the environment variables to a .env file -RUN echo "GSM_HOME=$GSM_HOME" >> /tmp/.env && \ - echo "PREINSTALL_PKG=oracle-database-preinstall-${BASE_RELEASE}c" >> /tmp/.env - -ENTRYPOINT ["/bin/bash"] diff --git a/OracleDatabase/GDD/samples/applypatch/latest/Dockerfile b/OracleDatabase/GDD/samples/applypatch/latest/Dockerfile deleted file mode 100644 index 720c339efa..0000000000 --- a/OracleDatabase/GDD/samples/applypatch/latest/Dockerfile +++ /dev/null @@ -1,135 +0,0 @@ -# LICENSE UPL 1.0 -# -# Copyright (c) 1982-2019 Oracle and/or its affiliates. All rights reserved. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for a patched Oracle Database 21c Release 3 -# -# REQUIREMETNS FOR THIS IMAGE -# ---------------------------------- -# The oracle/rac-database:21.3.0 image has to exist -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put the downloaded patch(es) into the sub folders patch/0NN -# Run: -# $ docker build -f Dockerfile -t oracle/rac-database:21.3.0- . -# -# hadolint global ignore=DL3006,DL3025 -ARG BASE_GSM_IMAGE=localhost/oracle/database-gsm:19.3.0 -ARG GSM_SLIM_IMAGE="oraclelinux:8" - -# Pull base image -# --------------- -FROM ${BASE_GSM_IMAGE} as builder - -# Argument to control removal of components not needed after db software installation -ARG PATCH_DIR="patches" -ARG USER="root" -ARG WORKDIR="/home/oracle" - -# Environment variables required for this build (do NOT change) -# ------------------------------------------------------------- - -USER $USER - -ENV GSM_PATCH_FILE="applyGSMPatches.sh" \ - PATCH_INSTALL_DIR=/tmp/patches \ - PATCH_DIR=$PATCH_DIR \ - WORKDIR=$WORKDIR \ - USER=$USER \ - GSM_USER="oracle" - -RUN mkdir $PATCH_INSTALL_DIR - -# Copy binaries -# ------------- -COPY $PATCH_DIR $PATCH_INSTALL_DIR/ - -# Install patches -RUN chown -R oracle:oinstall $PATCH_INSTALL_DIR/*.sh && \ - chmod ug+x $PATCH_INSTALL_DIR/*.sh && \ - chmod ug+rwx $PATCH_INSTALL_DIR/ && \ - chown -R oracle:oinstall $PATCH_INSTALL_DIR && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.conf && \ - sync - -USER oracle - -RUN $PATCH_INSTALL_DIR/$GSM_PATCH_FILE $PATCH_INSTALL_DIR -# hadolint ignore=DL3002 -USER root -# hadolint ignore=SC2086 -RUN rm -rf /etc/oracle && \ - rm -rf "$PATCH_INSTALL_DIR" && \ - rm -rf $PATCH_DIR/* $ORACLE_HOME/.patch_storage $ORACLE_HOME/.opatchauto_storage - -##################### -FROM ${GSM_SLIM_IMAGE} AS final -ARG GSM_HOME=/u01/app/oracle/product/19c/gsmhome_1 -ARG PREINSTALL_PKG=oracle-database-preinstall-19c -ARG WORKDIR="/home/oracle" - -LABEL "provider"="Oracle" \ - "issues"="https://github.com/oracle/docker-images" \ - "volume.setup.location1"="/opt/oracle/scripts" \ - "port.listener"="1522" - -ENV GSM_BASE="/u01/app/oracle" \ - INVENTORY="/u01/app/oracle/oraInventory" \ - INSTALL_DIR="/opt/oracle/scripts" \ - RUN_FILE="runOracle.sh" \ - MAINPY="main.py" \ - PYTHON_FILE="/usr/bin/python" \ - PYTHON3_FILE="/usr/bin/python3" \ - WORKDIR=$WORKDIR \ - CHECKLIVENESS="checkLiveness.sh" - -# hadolint ignore=DL3044 -ENV INSTALL_SCRIPTS=$INSTALL_DIR/install \ - ORACLE_HOME=$GSM_HOME \ - ORACLE_BASE=$GSM_BASE \ - SCRIPT_DIR=$INSTALL_DIR/sharding \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin \ - GSM_PATH=$GSM_HOME/bin:$PATH \ - GSM_LD_LIBRARY_PATH=$GSM_HOME/lib:/usr/lib:/lib - -USER root -# hadolint ignore=DL3032,DL3033 -RUN yum -y install $PREINSTALL_PKG net-tools which zip unzip tar openssl openssh-server vim-minimal which vim-minimal passwd sudo policycoreutils-python-utils python3 && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.conf && \ - sed -e '/hard *memlock/s/^/#/g' -i /etc/security/limits.d/${PREINSTALL_PKG}.conf && \ - sed -e '/ *nofile /s/^/#/g' -i /etc/security/limits.d/${PREINSTALL_PKG}.conf && \ - chmod 666 /etc/sudoers && \ - echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \ - chmod 440 /etc/sudoers - -USER oracle -COPY --from=builder /u01 /u01 -COPY --from=builder /opt/oracle /opt/oracle -COPY --from=builder /home/oracle/.bashrc /home/oracle/.bashrc - -USER root -RUN if [ ! -f $PYTHON_FILE ]; then \ - ln -s $PYTHON3_FILE $PYTHON_FILE && \ - :; \ - fi - -USER root -RUN $INVENTORY/orainstRoot.sh && \ - $GSM_HOME/root.sh && \ - sync - -USER oracle -WORKDIR $WORKDIR -VOLUME ["$GSM_BASE/oradata"] - -HEALTHCHECK --interval=2m --start-period=25m \ - CMD "$SCRIPT_DIR/scripts/$CHECKLIVENESS" >/dev/null || exit 1 - -# Define default command to start Oracle Database setup. - -CMD exec $SCRIPT_DIR/$RUN_FILE diff --git a/OracleDatabase/GDD/samples/applypatch/latest/patches/applyGSMPatches.sh b/OracleDatabase/GDD/samples/applypatch/latest/patches/applyGSMPatches.sh index d04aa74385..602d590387 100755 --- a/OracleDatabase/GDD/samples/applypatch/latest/patches/applyGSMPatches.sh +++ b/OracleDatabase/GDD/samples/applypatch/latest/patches/applyGSMPatches.sh @@ -1,5 +1,4 @@ #!/bin/bash -# shellcheck disable=SC1090,SC2010,SC2045,SC2144,SC2164 # LICENSE UPL 1.0 # # Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved. @@ -11,62 +10,120 @@ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. # # Make sure Oracle perl binary is in PATH -# shellcheck disable=SC1090 -# shellcheck disable=SC2164 -# shellcheck disable=SC2144 -# shellcheck disable=SC2045 -# shellcheck disable=SC2010 - - - -source /home/${GSM_USER}/.bashrc - -PATH=$GSM_HOME/perl/bin:$GSM_HOME/OPatch:$PATH - -# Patch database binaries with patch sets -cd $PATCH_INSTALL_DIR/opatch - -# If exists, install newer OPatch version if present -if [ -f p6880880*.zip ]; then - # Unzip and remove zip file - unzip p6880880*.zip - #rm p6880880*.zip - # Remove old OPatch folder - rm -rf $GSM_HOME/OPatch - # Move new OPatch folder into GSM_HOME - mv OPatch $GSM_HOME/ -fi; - -cd $PATCH_INSTALL_DIR/${GSM_USER} - -# Loop over all directories (001, 002, 003, ...) -for file in `ls -d */`; do - # Go into sub directory (cd 001) - cd $file; - if [ -f *.zip ]; then - - # Unzip the actual patch (unzip pNNNNNNN.zip) - unzip -o *.zip; - # Go into patch directory (cd NNNNNNN) - PATCH_DIR=`ls -l | grep ^d | awk '{ print $9 }'` - PATCH_DIR_COUNT=`ls -l | grep ^d | awk '{ print $9 }'| wc -l` - if [ ${PATCH_DIR_COUNT} -gt 1 ]; then - echo " More than one patch zip file is copied in $file! Failed. Please copy one patch file under $file" - exit 1 - fi - if [ ! -d ${PATCH_DIR} ]; then - echo "PATCH dir doesn't exist. Failed!" - exit 1 - fi - - # Applying patch - $GSM_HOME/OPatch/opatchauto apply $PATCH_INSTALL_DIR/$GSM_USER/$file/$PATCH_DIR -binary -oh $GSM_HOME - if [ $? -ne 0 ]; then - exit 1 + +set -Eeuo pipefail +shopt -s nullglob +export LC_ALL=C + +die() { + echo "ERROR: $*" >&2 + exit 1 +} + +trap 'status=$?; echo "ERROR: Patch script failed at line ${LINENO} (status ${status})." >&2; exit "$status"' ERR + +[[ $# -le 1 ]] || die "Usage: $0 [patch-directory]" +[[ -n "${GSM_HOME:-}" && -d "$GSM_HOME" ]] || die "GSM_HOME must name an installed GSM home." +GSM_HOME=$(cd -- "$GSM_HOME" && pwd -P) +GSM_USER=${GSM_USER:-oracle} +PATCH_INSTALL_DIR=${1:-${PATCH_INSTALL_DIR:-/tmp/patches}} +[[ -d "$PATCH_INSTALL_DIR" ]] || die "Patch directory does not exist: $PATCH_INSTALL_DIR" +PATCH_INSTALL_DIR=$(cd -- "$PATCH_INSTALL_DIR" && pwd -P) + +export GSM_HOME PATCH_INSTALL_DIR +export ORACLE_HOME="$GSM_HOME" +export PATH="$GSM_HOME/perl/bin:$GSM_HOME/OPatch:$PATH" + +INVENTORY_POINTER="$GSM_HOME/oraInst.loc" +[[ -r "$INVENTORY_POINTER" && -s "$INVENTORY_POINTER" ]] || die "Missing or unreadable inventory pointer: $INVENTORY_POINTER" +command -v unzip >/dev/null || die "unzip is required." + +# Validate every numbered patch slot before changing the Oracle home. +# Use zero-padded directory names (001, 002, ...) for the required order. +PATCH_SLOTS=("$PATCH_INSTALL_DIR/$GSM_USER/"*/) +[[ ${#PATCH_SLOTS[@]} -gt 0 ]] || die "No patch directories found under $PATCH_INSTALL_DIR/$GSM_USER." +PATCH_ZIPS=() +for slot in "${PATCH_SLOTS[@]}"; do + archives=("${slot}"*.zip) + [[ ${#archives[@]} -eq 1 ]] || die "Expected exactly one patch ZIP in $slot; found ${#archives[@]}." + [[ -f "${archives[0]}" ]] || die "Not a regular patch ZIP: ${archives[0]}" + PATCH_ZIPS+=("${archives[0]}") +done + +# An OPatch update is optional, but multiple update archives are ambiguous. +OPATCH_ZIPS=("$PATCH_INSTALL_DIR/opatch/"p6880880*.zip) +[[ ${#OPATCH_ZIPS[@]} -le 1 ]] || die "Provide at most one p6880880 ZIP in $PATCH_INSTALL_DIR/opatch." + +WORK_DIR=$(mktemp -d "$PATCH_INSTALL_DIR/.gsm-patch-work.XXXXXX") +KEEP_WORK_DIR=0 +cleanup() { + local status=$? + if [[ "$KEEP_WORK_DIR" -eq 0 ]]; then + rm -rf -- "$WORK_DIR" || echo "WARNING: Could not remove $WORK_DIR" >&2 + else + echo "Recovery files retained in $WORK_DIR" >&2 + fi + return "$status" +} +trap cleanup EXIT + +if [[ ${#OPATCH_ZIPS[@]} -eq 1 ]]; then + echo "Preparing OPatch update: ${OPATCH_ZIPS[0]}" + mkdir -- "$WORK_DIR/opatch-update" + unzip -q -o "${OPATCH_ZIPS[0]}" -d "$WORK_DIR/opatch-update" + [[ -x "$WORK_DIR/opatch-update/OPatch/opatch" ]] || die "The OPatch ZIP does not contain an executable OPatch/opatch." + + # Keep the existing tool until the new tool has been installed and checked. + HAD_OPATCH=0 + if [[ -e "$GSM_HOME/OPatch" || -L "$GSM_HOME/OPatch" ]]; then + mv -- "$GSM_HOME/OPatch" "$WORK_DIR/previous-OPatch" + HAD_OPATCH=1 fi + if mv -- "$WORK_DIR/opatch-update/OPatch" "$GSM_HOME/OPatch" && \ + "$GSM_HOME/OPatch/opatch" version; then + echo "OPatch update installed." + else + # Retain the backup if restoration itself fails. + KEEP_WORK_DIR=1 + rm -rf -- "$GSM_HOME/OPatch" + if [[ "$HAD_OPATCH" -eq 1 ]]; then + mv -- "$WORK_DIR/previous-OPatch" "$GSM_HOME/OPatch" + fi + KEEP_WORK_DIR=0 + die "OPatch update failed; any previous OPatch installation was restored." fi - cd ../ -done; +else + [[ -x "$GSM_HOME/OPatch/opatch" ]] || die "No installed OPatch found, and no OPatch update ZIP was supplied." + "$GSM_HOME/OPatch/opatch" version +fi + +# Check the supplied inventory before applying any patch. +"$GSM_HOME/OPatch/opatch" lsinventory \ + -oh "$GSM_HOME" -invPtrLoc "$INVENTORY_POINTER" + +APPLIED_COUNT=0 +for index in "${!PATCH_ZIPS[@]}"; do + archive=${PATCH_ZIPS[$index]} + extract_dir="$WORK_DIR/patch-$index" + mkdir -- "$extract_dir" + echo "Extracting patch: $archive" + unzip -q -o "$archive" -d "$extract_dir" + + # This layout supports one top-level OPatch patch directory per ZIP. + # Bundles requiring nested patches or opatchauto need README-specific handling. + patch_roots=("$extract_dir/"*/) + [[ ${#patch_roots[@]} -eq 1 ]] || die "Expected one top-level patch directory in $archive; found ${#patch_roots[@]}. Check the patch README." + + echo "Applying patch from $archive" + ( + cd -- "${patch_roots[0]}" + "$GSM_HOME/OPatch/opatch" apply -silent \ + -oh "$GSM_HOME" -invPtrLoc "$INVENTORY_POINTER" + ) + APPLIED_COUNT=$((APPLIED_COUNT + 1)) +done -cd $HOME +"$GSM_HOME/OPatch/opatch" lsinventory \ + -oh "$GSM_HOME" -invPtrLoc "$INVENTORY_POINTER" +echo "Completed $APPLIED_COUNT patch apply operation(s). Review the inventory above for the expected patch IDs." From 1182876042d8285008fd1c60160ed2b3d415db01 Mon Sep 17 00:00:00 2001 From: Saurabh Ahuja Date: Fri, 16 Oct 2026 07:29:00 +0000 Subject: [PATCH 3/3] Disable reported GDD Hadolint warnings --- OracleDatabase/GDD/containerfiles/19.3.0/Containerfile | 3 ++- OracleDatabase/GDD/containerfiles/21.3.0/Containerfile | 3 ++- OracleDatabase/GDD/containerfiles/23.26.0/Containerfile | 3 ++- OracleDatabase/GDD/containerfiles/26.0.0/Containerfile | 3 ++- OracleDatabase/GDD/samples/applypatch/latest/Containerfile | 1 + 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile b/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile index bff1512181..dab13dbaae 100644 --- a/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/19.3.0/Containerfile @@ -45,6 +45,7 @@ ARG VERSION=19.3.0 # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +# hadolint ignore=DL4006 RUN \ mkdir -p /usr/share/oracle/image-metadata/rpms && \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ @@ -260,6 +261,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json +# hadolint ignore=DL4006 RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ @@ -272,7 +274,6 @@ RUN \ COPY --from=builder /u01 /u01 # hadolint ignore=SC2086 - RUN test -x "$PYTHON3_FILE" && \ ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ diff --git a/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile b/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile index 6a14a4b8a0..4387379265 100644 --- a/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/21.3.0/Containerfile @@ -45,6 +45,7 @@ ARG VERSION=21.3.0 # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +# hadolint ignore=DL4006 RUN \ mkdir -p /usr/share/oracle/image-metadata/rpms && \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ @@ -260,6 +261,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json +# hadolint ignore=DL4006 RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ @@ -272,7 +274,6 @@ RUN \ COPY --from=builder /u01 /u01 # hadolint ignore=SC2086 - RUN test -x "$PYTHON3_FILE" && \ ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ diff --git a/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile b/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile index e24f001c14..40c400276a 100644 --- a/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/23.26.0/Containerfile @@ -44,6 +44,7 @@ ARG VERSION=23.26.0 # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +# hadolint ignore=DL4006 RUN \ mkdir -p /usr/share/oracle/image-metadata/rpms && \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ @@ -250,6 +251,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json +# hadolint ignore=DL4006 RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ @@ -262,7 +264,6 @@ RUN \ COPY --from=builder /u01 /u01 # hadolint ignore=SC2086 - RUN test -x "$PYTHON3_FILE" && \ ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ diff --git a/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile b/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile index 8e3b4d406e..216a1b6105 100644 --- a/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile +++ b/OracleDatabase/GDD/containerfiles/26.0.0/Containerfile @@ -44,6 +44,7 @@ ARG VERSION=26.0.0 # --------------- # hadolint ignore=DL3006,DL3025 FROM $BASE_OL_IMAGE AS base +# hadolint ignore=DL4006 RUN \ mkdir -p /usr/share/oracle/image-metadata/rpms && \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/base-image-rpms.txt && \ @@ -251,6 +252,7 @@ RUN mkdir -p /usr/share/oracle/image-metadata && \ printf '{\n "schemaVersion": 1,\n "images": [{"name": "%s", "digest": "%s", "reference": "%s", "role": "direct-base"}]\n}\n' \ "$BASE_IMAGE_REF" "$BASE_IMAGE_DIGEST" "$BASE_IMAGE" > /usr/share/oracle/image-metadata/base-image-chain.json +# hadolint ignore=DL4006 RUN \ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /usr/share/oracle/image-metadata/rpms/image-rpms.txt && \ rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > /tmp/image-rpm-details && \ @@ -263,7 +265,6 @@ RUN \ COPY --from=builder /u01 /u01 # hadolint ignore=SC2086 - RUN test -x "$PYTHON3_FILE" && \ ln -sf $PYTHON3_FILE $PYTHON_FILE && \ rm -f $INSTALL_DIR/install/* && \ diff --git a/OracleDatabase/GDD/samples/applypatch/latest/Containerfile b/OracleDatabase/GDD/samples/applypatch/latest/Containerfile index c580ea23aa..75433030be 100644 --- a/OracleDatabase/GDD/samples/applypatch/latest/Containerfile +++ b/OracleDatabase/GDD/samples/applypatch/latest/Containerfile @@ -78,6 +78,7 @@ COPY --from=builder /opt/oracle /opt/oracle COPY --from=builder /home/oracle/.bashrc /home/oracle/.bashrc USER root +# hadolint ignore=SC2086 RUN if [ ! -f $PYTHON_FILE ]; then \ ln -s $PYTHON3_FILE $PYTHON_FILE && \ :; \