├── ADMT_Diagram.jpg ├── ADMT_UseCase1.jpg ├── ADMT_UseCase2.jpg ├── ADMT_UseCase3.jpg ├── ADMT_UseCase4.jpg ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── SECURITY.md ├── THIRD_PARTY_LICENSE.txt ├── ansible.cfg ├── defaults └── main.yml ├── discovery_setup_json.sh ├── discovery_setup_json.yml ├── discovery_source.sh ├── discovery_source.yml ├── discovery_target.sh ├── discovery_target.yml ├── examples ├── RAC11g_DBCS_to_ExaCS11g_DBSystem │ ├── inventory │ └── setup.json ├── RAC11g_DBCS_to_RAC11g_DBSystem │ ├── inventory │ └── setup.json ├── RAC12cR1_DBCS_to_ExaCS12cR1_DBSystem │ ├── inventory │ └── setup.json ├── RAC12cR1_DBCS_to_RAC12cR1_DBSystem │ ├── inventory │ └── setup.json ├── RAC12cR2_DBCS_to_ExaCS12cR2_DBSystem │ ├── inventory │ └── setup.json ├── RAC12cR2_DBCS_to_RAC12cR2_DBSystem │ ├── inventory │ └── setup.json ├── RAC18c_DBCS_to_ExaCS18c_DBSystem │ ├── inventory │ └── setup.json ├── RAC18c_DBCS_to_RAC18c_DBSystem │ ├── inventory │ └── setup.json ├── SI11g_DBCS_to_ExaCS11g_DBSystem │ ├── inventory │ └── setup.json ├── SI11g_DBCS_to_RAC11g_DBSystem │ ├── inventory │ └── setup.json ├── SI11g_DBCS_to_SI11g_DBSystem │ ├── inventory │ └── setup.json ├── SI11g_EC2_AWS_to_ExaCS11g_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI11g_EC2_AWS_to_RAC11g_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI11g_EC2_AWS_to_SI11g_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR1_DBCS_to_ExaCS12cR1_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR1_DBCS_to_RAC12cR1_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR1_DBCS_to_SI12cR1_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR1_EC2_AWS_to_ExaCS12cR1_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR1_EC2_AWS_to_RAC12cR1_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR1_EC2_AWS_to_SI12cR1_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR2_DBCS_to_ExaCS12cR2_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR2_DBCS_to_RAC12cR2_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR2_DBCS_to_SI12cR2_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR2_EC2_AWS_to_ExaCS12cR2_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR2_EC2_AWS_to_RAC12cR2_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI12cR2_EC2_AWS_to_SI12cR2_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI18c_DBCS_to_ExaCS18c_DBSystem │ ├── inventory │ └── setup.json ├── SI18c_DBCS_to_RAC18c_DBSystem │ ├── inventory │ └── setup.json ├── SI18c_DBCS_to_SI18c_DBSystem │ ├── inventory │ └── setup.json ├── SI18c_EC2_AWS_to_ExaCS18c_OCI_DBSystem │ ├── inventory │ └── setup.json ├── SI18c_EC2_AWS_to_RAC18c_OCI_DBSystem │ ├── inventory │ └── setup.json └── SI18c_EC2_AWS_to_SI18c_OCI_DBSystem │ ├── inventory │ └── setup.json ├── inventory ├── modules ├── oracle_asmcmd_module.py ├── oracle_cloud_odcb_module.py ├── oracle_dbcli_module.py ├── oracle_dbnode_discovery_module.py ├── oracle_expdp_module.py ├── oracle_impdp_module.py ├── oracle_orapwd_module.py ├── oracle_oratns_discovery_module.py ├── oracle_rdbms_discovery_module.py ├── oracle_rman_module.py ├── oracle_sqlplus_module.py └── oracle_srvctl_module.py ├── noncdb_2_cdb.json ├── roles ├── source_backup_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── backup_source_to_oss_level_0.yml │ │ ├── backup_source_to_oss_level_1.yml │ │ ├── main.yml │ │ ├── prepare_source_rman_oss.yml │ │ └── tde_wallet_upload_to_oss.yml │ ├── templates │ │ ├── rman_backup_source_to_oss_inc0_script.j2 │ │ ├── rman_backup_source_to_oss_inc1_script.j2 │ │ ├── rman_configure_channel_device_to_oss_script.j2 │ │ └── rman_configure_script.j2 │ └── vars │ │ └── main.yml ├── source_discovery_role │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── discover_source.yml │ │ └── main.yml ├── target_backup_config_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── configure_automatic_backup_with_DBCLI.yml │ │ ├── configure_manual_backup_with_DBCLI.yml │ │ └── main.yml │ ├── templates │ │ └── rman_configure_channel_device_to_oss_script.j2 │ └── vars │ │ └── main.yml ├── target_convert_to_exacs_racnode1_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── convert_source_to_exacs_racnode1_on_target.yml │ │ └── main.yml │ ├── templates │ │ ├── tnsnames.ora.j2 │ │ ├── tnsnames.ora_11g.j2 │ │ └── tnsnames.ora_multitenant.j2 │ └── vars │ │ └── main.yml ├── target_convert_to_exacs_racnode2+_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── convert_source_to_exacs_racnode2+_on_target.yml │ │ ├── main.yml │ │ └── tde_wallet_download_from_oss.yml │ ├── templates │ │ ├── sqlnet.ora.j2 │ │ ├── tnsnames.ora.j2 │ │ ├── tnsnames.ora_11g.j2 │ │ └── tnsnames.ora_multitenant.j2 │ └── vars │ │ └── main.yml ├── target_convert_to_racnode1_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── convert_source_to_racnode1_on_target.yml │ │ └── main.yml │ ├── templates │ │ ├── tnsnames.ora.j2 │ │ ├── tnsnames.ora_11g.j2 │ │ └── tnsnames.ora_multitenant.j2 │ └── vars │ │ └── main.yml ├── target_convert_to_racnode2_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── convert_source_to_racnode2_on_target.yml │ │ ├── main.yml │ │ └── tde_wallet_download_from_oss.yml │ ├── templates │ │ ├── sqlnet.ora.j2 │ │ ├── tnsnames.ora.j2 │ │ ├── tnsnames.ora_11g.j2 │ │ └── tnsnames.ora_multitenant.j2 │ └── vars │ │ └── main.yml ├── target_discovery_role │ ├── defaults │ │ └── main.yml │ └── tasks │ │ ├── discover_target.yml │ │ └── main.yml ├── target_enable_tde_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── enable_tde.yml │ │ └── main.yml │ └── templates │ │ ├── orapki_create_wallet_11g.j2 │ │ ├── orapki_create_wallet_11g_exacs.j2 │ │ ├── sqlnet.ora.j2 │ │ └── sqlnet_exacs.ora.j2 ├── target_plug_noncdb_to_cdb_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── export_tde_from_noncdb.yml │ │ ├── import_tde_into_cdb.yml │ │ ├── main.yml │ │ ├── plug_noncdb_into_cbd.yml │ │ ├── prepare_noncdb.yml │ │ └── verify_manifest_on_cdb.yml │ └── templates │ │ ├── CHECK_PLUG_COMPATIBILITY.j2 │ │ └── sqlnet.ora.j2 ├── target_restore_role │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── clear_source_on_target.yml │ │ ├── main.yml │ │ ├── open_resetlogs_and_post_migration_clean.yml │ │ ├── prepare_target_rman_oss.yml │ │ ├── restore_source_on_target_from_oss_level_0.yml │ │ ├── restore_source_on_target_from_oss_level_1.yml │ │ └── tde_wallet_download_from_oss.yml │ ├── templates │ │ ├── initora.j2 │ │ ├── rman_additional_recovery_script.j2 │ │ ├── rman_crosscheck_archivelogs_and_delete_script.j2 │ │ ├── rman_recover_database_from_backup_inc1_script.j2 │ │ ├── rman_restore_controlfile_script.j2 │ │ ├── rman_restore_database_from_backup_inc0_script.j2 │ │ ├── rman_restore_spfile_script.j2 │ │ ├── sqlnet.ora.j2 │ │ ├── sqlnet_exacs.ora.j2 │ │ ├── tnsnames.ora_11g.j2 │ │ └── tnsnames.ora_multitenant.j2 │ └── vars │ │ └── main.yml └── target_tests_and_validation_role │ ├── defaults │ └── main.yml │ ├── tasks │ ├── main.yml │ ├── test_and_validation_of_RAC.yml │ └── test_and_validation_of_SI.yml │ └── vars │ └── main.yml ├── setup_STEP0_backup.sh ├── setup_STEP0_backup.yml ├── setup_STEP1_restore_SI.sh ├── setup_STEP1_restore_SI.yml ├── setup_STEP1a_enable_tde.sh ├── setup_STEP1a_enable_tde.yml ├── setup_STEP1b_convert_to_CDB.sh ├── setup_STEP1b_convert_to_CDB.yml ├── setup_STEP2_convert_to_ExaCS_RAC.sh ├── setup_STEP2_convert_to_ExaCS_RAC.yml ├── setup_STEP2_convert_to_VMDB_RAC.sh ├── setup_STEP2_convert_to_VMDB_RAC.yml ├── setup_STEP3_backup_config.sh ├── setup_STEP3_backup_config.yml ├── templates ├── rman_scripts │ ├── rman_additional_recovery_script.j2 │ ├── rman_backup_source_to_oss_inc0_script.j2 │ ├── rman_backup_source_to_oss_inc1_script.j2 │ ├── rman_configure_channel_device_to_oss_script.j2 │ ├── rman_configure_script.j2 │ ├── rman_recover_database_from_backup_inc1_script.j2 │ ├── rman_restore_controlfile_script.j2 │ ├── rman_restore_database_from_backup_inc0_script.j2 │ └── rman_restore_spfile_script.j2 ├── setup.json_template.j2 └── sqlnet │ ├── sqlnet.ora.j2 │ └── tnsnames.ora.j2 ├── tests_after_setup.sh └── tests_after_setup.yml /ADMT_Diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oracle/ansible-database-migration-tool/098b9f8499f4d6d64f647015d36e766697fc4635/ADMT_Diagram.jpg -------------------------------------------------------------------------------- /ADMT_UseCase1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oracle/ansible-database-migration-tool/098b9f8499f4d6d64f647015d36e766697fc4635/ADMT_UseCase1.jpg -------------------------------------------------------------------------------- /ADMT_UseCase2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oracle/ansible-database-migration-tool/098b9f8499f4d6d64f647015d36e766697fc4635/ADMT_UseCase2.jpg -------------------------------------------------------------------------------- /ADMT_UseCase3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oracle/ansible-database-migration-tool/098b9f8499f4d6d64f647015d36e766697fc4635/ADMT_UseCase3.jpg -------------------------------------------------------------------------------- /ADMT_UseCase4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oracle/ansible-database-migration-tool/098b9f8499f4d6d64f647015d36e766697fc4635/ADMT_UseCase4.jpg -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Ansible Database Migration Tool (ADMT) 2 | 3 | We welcome your contributions! There are multiple ways to contribute. 4 | 5 | ## Opening issues 6 | 7 | For bugs or enhancement requests, please file a GitHub issue unless it's 8 | security related. When filing a bug remember that the better written the bug is, 9 | the more likely it is to be fixed. If you think you've found a security 10 | vulnerability, do not raise a GitHub issue and follow the instructions in our 11 | [security policy](./SECURITY.md). 12 | 13 | ## Contributing code 14 | 15 | We welcome your code contributions. Before submitting code via a pull request, 16 | you will need to have signed the [Oracle Contributor Agreement][OCA] (OCA) and 17 | your commits need to include the following line using the name and e-mail 18 | address you used to sign the OCA: 19 | 20 | ```text 21 | Signed-off-by: Your Name 22 | ``` 23 | 24 | This can be automatically added to pull requests by committing with `--sign-off` 25 | or `-s`, e.g. 26 | 27 | ```text 28 | git commit --signoff 29 | ``` 30 | 31 | Only pull requests from committers that can be verified as having signed the OCA 32 | can be accepted. 33 | 34 | ## Pull request process 35 | 36 | 1. Ensure there is an issue created to track and discuss the fix or enhancement 37 | you intend to submit. 38 | 1. Fork this repository. 39 | 1. Create a branch in your fork to implement the changes. We recommend using 40 | the issue number as part of your branch name, e.g. `1234-fixes`. 41 | 1. Ensure that any documentation is updated with the changes that are required 42 | by your change. 43 | 1. Ensure that any samples are updated if the base image has been changed. 44 | 1. Submit the pull request. *Do not leave the pull request blank*. Explain exactly 45 | what your changes are meant to do and provide simple steps on how to validate. 46 | your changes. Ensure that you reference the issue you created as well. 47 | 1. We will assign the pull request to 2-3 people for review before it is merged. 48 | 49 | ## Code of conduct 50 | 51 | Follow the [Golden Rule](https://en.wikipedia.org/wiki/Golden_Rule). If you'd 52 | like more specific guidelines, see the [Contributor Covenant Code of Conduct][COC]. 53 | 54 | [OCA]: https://oca.opensource.oracle.com 55 | [COC]: https://www.contributor-covenant.org/version/1/4/code-of-conduct/ 56 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020, Oracle and/or its affiliates. 2 | 3 | The Universal Permissive License (UPL), Version 1.0 4 | 5 | Subject to the condition set forth below, permission is hereby granted to any 6 | person obtaining a copy of this software, associated documentation and/or data 7 | (collectively the "Software"), free of charge and under any and all copyright 8 | rights in the Software, and any and all patent rights owned or freely 9 | licensable by each licensor hereunder covering either (i) the unmodified 10 | Software as contributed to or provided by such licensor, or (ii) the Larger 11 | Works (as defined below), to deal in both 12 | 13 | (a) the Software, and 14 | (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if 15 | one is included with the Software (each a "Larger Work" to which the Software 16 | is contributed by such licensors), 17 | 18 | without restriction, including without limitation the rights to copy, create 19 | derivative works of, display, perform, and distribute the Software and make, 20 | use, sell, offer for sale, import, export, have made, and have sold the 21 | Software and the Larger Work(s), and to sublicense the foregoing rights on 22 | either these or other terms. 23 | 24 | This license is subject to the following condition: 25 | The above copyright notice and either this complete permission notice or at 26 | a minimum a reference to the UPL must be included in all copies or 27 | substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 35 | SOFTWARE. -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Reporting security vulnerabilities 2 | 3 | Oracle values the independent security research community and believes that 4 | responsible disclosure of security vulnerabilities helps us ensure the security 5 | and privacy of all our users. 6 | 7 | Please do NOT raise a GitHub Issue to report a security vulnerability. If you 8 | believe you have found a security vulnerability, please submit a report to 9 | [secalert_us@oracle.com][1] preferably with a proof of concept. Please review 10 | some additional information on [how to report security vulnerabilities to Oracle][2]. 11 | We encourage people who contact Oracle Security to use email encryption using 12 | [our encryption key][3]. 13 | 14 | We ask that you do not use other channels or contact the project maintainers 15 | directly. 16 | 17 | Non-vulnerability related security issues including ideas for new or improved 18 | security features are welcome on GitHub Issues. 19 | 20 | ## Security updates, alerts and bulletins 21 | 22 | Security updates will be released on a regular cadence. Many of our projects 23 | will typically release security fixes in conjunction with the 24 | Oracle Critical Patch Update program. Additional 25 | information, including past advisories, is available on our [security alerts][4] 26 | page. 27 | 28 | ## Security-related information 29 | 30 | We will provide security related information such as a threat model, considerations 31 | for secure use, or any known security issues in our documentation. Please note 32 | that labs and sample code are intended to demonstrate a concept and may not be 33 | sufficiently hardened for production use. 34 | 35 | [1]: mailto:secalert_us@oracle.com 36 | [2]: https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html 37 | [3]: https://www.oracle.com/security-alerts/encryptionkey.html 38 | [4]: https://www.oracle.com/security-alerts/ 39 | -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | [ssh_connection] 2 | ssh_args = -C -o ControlMaster=auto -o ControlPersist=30m 3 | pipelining=True 4 | gathering = smart 5 | fact_caching = jsonfile 6 | fact_caching_connection = /path/to/cachedir 7 | fact_caching_timeout = 86400 8 | retry_files_enabled = False -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # General purpose variables, both for source and target. 5 | 6 | # Oracle database OS user (sqlplus, rman, srvctl). 7 | # 8 | oracle_user: "oracle" 9 | 10 | # Oracle Grid Infrastructure OS user (asmcmd, crsctl, srvctl). 11 | # 12 | grid_user: "grid" 13 | 14 | # This password will be used for RMAN encryption 15 | # on transit (set encryption, set decription identified by ...). 16 | # if hashed RMAN will not enable encryption on transit. 17 | # 18 | rman_password_on_transit: "" 19 | 20 | # In this location on source and target nodes you can expect RMAN logs. 21 | # 22 | rman_log_path: "/tmp" 23 | 24 | # In this location on source and target nodes you can expect reports. 25 | # 26 | reports_log_path: "/tmp" 27 | 28 | # This password will be used for creating password based keystore 29 | # when the source database has no TDE enabled. 30 | # 31 | tde_password: "" 32 | 33 | # For RMAN and sqlplus tasks you will have asynchronous execution 34 | # By default the task will be monitored for 40 hours (144000 secs) 35 | # If not finished before it will fail. 36 | # 37 | ansible_async_backup_source_timeout: "144000" 38 | ansible_async_restore_source_timeout: "144000" 39 | 40 | # Number of channels allocated for RMAN backup, restore and recovery 41 | # activities for database. 42 | # 43 | rman_channels_number: "6" 44 | 45 | # During spfile and controlfile restore from autobackup you need to set 46 | # CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT. 47 | # 48 | rman_set_cf_autobackup_format_for_sbt_type_device: "%F" 49 | 50 | # Customized db_recovery_file_dest_size on the target (default 1000G) 51 | # 52 | param_db_recovery_file_dest_size: "5000G" 53 | 54 | # Configure channel devide type sbt type 55 | # 56 | configure_channel_device_type_sbt_type: "True" 57 | 58 | # Customized param_diagnostic_dest on the target (default is not defined) 59 | # 60 | #param_diagnostic_dest: "/u01/app/oracle" 61 | 62 | # Customized param_log_archive_dest_1 on the target (default is not defined) 63 | # 64 | #param_log_archive_dest_1: "LOCATION=USE_DB_RECOVERY_FILE_DEST REOPEN=60" 65 | 66 | # Temp tablespace name 67 | # 68 | temp_tablespace_name: "TEMP" 69 | 70 | # Location where OPC installer for RMAN cloud module will be executed 71 | # 72 | opc_installer_dest_location: "/home/oracle" 73 | 74 | # Location where OPC installer zip file will be uploaded. 75 | # 76 | opc_installer_zip_dest_location: "{{ opc_installer_dest_location }}/opc_installer.zip" 77 | 78 | # OCI swiftobjectstorage URL build from OCI endpoint and OCI tenancy. 79 | # 80 | oci_swiftobjectstorage_url: "{{ oci_endpoint_url }}/{{ oci_tenancy }}" 81 | 82 | # RMAN cloud module wallet directory. 83 | # 84 | wallet_dir: "{{ opc_installer_dest_location }}" 85 | 86 | # RMAN cloud module lib directory. 87 | # 88 | lib_dir: "{{ opc_installer_dest_location }}" 89 | 90 | # RMAN cloud module config file. 91 | # 92 | config_file: "{{ opc_installer_dest_location }}/config_{{ oracle_source_database_sid }}" 93 | 94 | # RMAN cloud module lib dir by OCI tooling for automatic backups 95 | # 96 | lib_dir_oci_automatic_backups: "/opt/oracle/dcs/commonstore/pkgrepos/oss/odbcs" 97 | 98 | # RMAN cloud module config file dir by OCI tooling for automatic backups 99 | # 100 | config_file_dir_oci_automatic_backups: "/opt/oracle/dcs/commonstore/objectstore/opc_pfile" 101 | 102 | # Default OCI bucket prefix for target database 103 | # 104 | oci_bucket_prefix: "bkup_" 105 | 106 | # Default OCI backup config prefix for target database 107 | # 108 | oci_backupconfig_prefix: "bkupcfg_" 109 | 110 | # Delete previous backupconfigs 111 | # 112 | delete_old_backupconfigs: "True" 113 | 114 | # Delete previous objectstoreswift 115 | # 116 | delete_old_objectstoreswift: "True" 117 | 118 | # Create new backupconfig 119 | # 120 | create_new_backupconfig: "True" 121 | 122 | # Create new objectstoreswift 123 | # 124 | create_new_objectstoreswift: "True" 125 | 126 | # Update database with new backupconfig 127 | # 128 | update_database_with_new_backupconfig: "True" 129 | 130 | # Create Longterm backup with keep days = 30 days. 131 | # 132 | create_backup_longterm_30_days: "True" 133 | 134 | # Crosscheck before restore from backup level 0 135 | # 136 | crosscheck_before_restore_level0: "True" 137 | 138 | # Prefix for RAC UNDO tablespaces 139 | # 140 | rac_undo_tbs_prefix: "UNDOTBS_RACNODE" 141 | 142 | # Start size of RAC UNDO tablesapce 143 | # 144 | rac_undo_tbs_start_size: "500M" 145 | 146 | # Use of startup nomount force 147 | # 148 | startup_nomount_force: "False" 149 | 150 | # Tempfile not big by default 151 | # 152 | tempfile_bigfile: "NO" 153 | 154 | # Drop TDE during target clean up 155 | # 156 | drop_tde_during_target_clean_up: "True" 157 | 158 | # Skip download of TDE wallet and stay with current TDE wallet files 159 | # 160 | skip_tde_download_stay_with_current_tde: "False" 161 | 162 | # DataPatch on target 163 | # 164 | datapatch_on_target: "True" 165 | 166 | # You can disable unarchive Ansible module in case of error: "Failed to find handler for ... 167 | # ... Make sure the required command to extract the file is installed. 168 | # Command \"/bin/gtar\" could not handle archive. Command \"/bin/unzip\" could not handle archive." 169 | # 170 | use_unarchive_ansible_module: "True" 171 | 172 | 173 | -------------------------------------------------------------------------------- /discovery_setup_json.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | 7 | while getopts ":s:t:" opt; do 8 | case $opt in 9 | s) source_dbname="$OPTARG" 10 | ;; 11 | t) target_dbname="$OPTARG" 12 | ;; 13 | \?) echo "Invalid option -$OPTARG" >&2 14 | ;; 15 | esac 16 | done 17 | 18 | printf "Argument source_dbname is %s\n" "$source_dbname" 19 | printf "Argument target_dbname is %s\n" "$target_dbname" 20 | 21 | echo "Executing ansible-playbook with discovery_setup_json.yml file where oracle_source_dbname." 22 | echo " " 23 | if [ -z "$source_dbname" ] 24 | then 25 | echo "1) oracle_source_dbname will be empty. Expecting only one ORACLE_HOME in oraInventory on the source (non Exadata environment)." 26 | else 27 | echo "1) oracle_source_dbname has been set to $source_dbname. Script will try to extract ORACLE_HOME for this database (multihome, Exadata environment)." 28 | fi 29 | 30 | if [ -z "$target_dbname" ] 31 | then 32 | echo "2) oracle_target_dbname will be empty. Expecting only one ORACLE_HOME in oraInventory on the target (non Exadata environment)." 33 | else 34 | echo "2) oracle_target_dbname has been set to $target_dbname. Script will try to extract ORACLE_HOME for this database (multihome, Exadata environment)." 35 | fi 36 | 37 | ansible-playbook discovery_setup_json.yml --module-path modules/ -i inventory --extra-vars "oracle_source_dbname=$source_dbname oracle_target_dbname=$target_dbname" 38 | 39 | -------------------------------------------------------------------------------- /discovery_setup_json.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | - name: Display oracle_source_dbname and oracle_target_dbname 6 | hosts: localhost 7 | tasks: 8 | 9 | # Display oracle_source_dbname 10 | - name: Display oracle_source_dbname 11 | debug: 12 | msg: "oracle_source_dbname = '{{ oracle_source_dbname }}'" 13 | when: oracle_source_dbname is defined 14 | 15 | # Display oracle_target_dbname 16 | - name: Display oracle_target_dbname 17 | debug: 18 | msg: "oracle_target_dbname = '{{ oracle_target_dbname }}'" 19 | when: oracle_target_dbname is defined 20 | 21 | # Discover source OCI-C DBCS 22 | - name: Discover source OCI-C DBCS 23 | hosts: source[0] 24 | roles: 25 | - source_discovery_role 26 | 27 | # Discover target OCI DBSystem 28 | - name: Discover target OCI DBSystem 29 | hosts: target[0] 30 | roles: 31 | - target_discovery_role 32 | 33 | - name: Save setup.json file from template 34 | hosts: localhost 35 | tasks: 36 | 37 | # Save setup.json_discovery_XXXXXXXXXXXXXXX file 38 | - name: Save setup.json_discovery_XXXXXXXXXXXXXXX file 39 | copy: 40 | content: "{{ lookup('template', '../templates/setup.json_template.j2') }}" 41 | dest: "./setup.json_discovery_{{ansible_date_time.iso8601_basic_short}}" 42 | 43 | # Content of setup.json_discovery_XXXXXXXXXXXXXXX file 44 | - name: Content of setup.json_discovery_XXXXXXXXXXXXXXX file 45 | debug: 46 | msg: "{{ lookup('template', '../templates/setup.json_template.j2') }}" 47 | -------------------------------------------------------------------------------- /discovery_source.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | echo "Executing ansible-playbook with discovery_source.yml file where oracle_source_dbname equals $1..." 7 | ansible-playbook discovery_source.yml --module-path modules/ -i inventory --extra-vars "oracle_source_dbname=$1" 8 | -------------------------------------------------------------------------------- /discovery_source.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Discover source OCI-C DBCS 6 | - name: Discover source OCI-C DBCS 7 | hosts: source[0] 8 | roles: 9 | - source_discovery_role 10 | -------------------------------------------------------------------------------- /discovery_target.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | echo "Executing ansible-playbook with discovery_target.yml file where oracle_target_dbname equals $1..." 7 | ansible-playbook discovery_target.yml --module-path modules/ -i inventory --extra-vars "oracle_target_dbname=$1" 8 | 9 | -------------------------------------------------------------------------------- /discovery_target.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Discover target OCI DBSystem 6 | - name: Discover target OCI DBSystem 7 | hosts: target[0] 8 | roles: 9 | - target_discovery_role 10 | -------------------------------------------------------------------------------- /examples/RAC11g_DBCS_to_ExaCS11g_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC11g_DBCS_to_ExaCS11g_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "src11rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 12 | "oracle_source_dbid": "1640160204", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/src11rac/tde_wallet", 14 | "oracle_source_database_unique_name": "src11rac", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/11.2.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/src11c_phx12s/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/src11c_phx12s/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/src11c_phx12s/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "src11c_phx12s", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/src11rac/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC11g_DBCS_to_RAC11g_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC11g_DBCS_to_RAC11g_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "src11rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 12 | "oracle_source_dbid": "1640160204", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/src11rac/tde_wallet", 14 | "oracle_source_database_unique_name": "src11rac", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src11rac_phx1w3/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/src11rac_phx1w3/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/src11rac_phx1w3/adump", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "src11rac_phx1w3", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC12cR1_DBCS_to_ExaCS12cR1_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC12cR1_DBCS_to_ExaCS12cR1_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "src12rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 12 | "oracle_source_dbid": "4073443685", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/src12rac/tde_wallet", 14 | "oracle_source_database_unique_name": "src12rac", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/12.1.0/dbhome_12", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/s121rac_phx1de/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/s121rac_phx1de/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/s121rac_phx1de/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "s121rac_phx1de", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/src12rac/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC12cR1_DBCS_to_RAC12cR1_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC12cR1_DBCS_to_RAC12cR1_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "src12rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 12 | "oracle_source_dbid": "4073443685", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/src12rac/tde_wallet", 14 | "oracle_source_database_unique_name": "src12rac", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/s121rac_phx1kf/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/s121rac_phx1kf/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/s121rac_phx1kf/adump", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "s121rac_phx1kf", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC12cR2_DBCS_to_ExaCS12cR2_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC12cR2_DBCS_to_ExaCS12cR2_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "s122rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 12 | "oracle_source_dbid": "2505341895", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/s122rac/tde_wallet", 14 | "oracle_source_database_unique_name": "s122rac", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/12.2.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/s122rac_phx1ht/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/s122rac_phx1ht/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/s122rac_phx1ht/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "s122rac_phx1ht", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/s122rac_phx1ht/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC12cR2_DBCS_to_RAC12cR2_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC12cR2_DBCS_to_RAC12cR2_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "s122rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 12 | "oracle_source_dbid": "2505341895", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/s122rac/tde_wallet", 14 | "oracle_source_database_unique_name": "s122rac", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/s122rac/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/s122rac1/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/s122rac2/adump", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "s122rac_phx1xm", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC18c_DBCS_to_ExaCS18c_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = a 14 | 15 | -------------------------------------------------------------------------------- /examples/RAC18c_DBCS_to_ExaCS18c_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "src18rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 12 | "oracle_source_dbid": "219396320", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/src18rac/tde_wallet", 14 | "oracle_source_database_unique_name": "src18rac", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/18.0.0.0/dbhome_3", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/src18rac/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/src18rac1/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/src18rac2/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "src18rac_phx1r7", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/src18rac/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/RAC18c_DBCS_to_RAC18c_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | -------------------------------------------------------------------------------- /examples/RAC18c_DBCS_to_RAC18c_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "True", 10 | "oracle_source_database_sid": "src18rac", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 12 | "oracle_source_dbid": "219396320", 13 | "oracle_source_wallet_dir": "/u02/app/oracle/admin/src18rac/tde_wallet", 14 | "oracle_source_database_unique_name": "src18rac", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "src18rac_phx1h8", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI11g_DBCS_to_ExaCS11g_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | 14 | -------------------------------------------------------------------------------- /examples/SI11g_DBCS_to_ExaCS11g_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src11g", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0/dbhome_1", 12 | "oracle_source_dbid": "4245680718", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src11g/tde_wallet", 14 | "oracle_source_database_unique_name": "src11g", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/11.2.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/src11g/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/src11g1/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/src11g2/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "src11c_phx12s", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/src11g/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI11g_DBCS_to_RAC11g_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI11g_DBCS_to_RAC11g_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src11g", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0/dbhome_1", 12 | "oracle_source_dbid": "4245680718", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src11g/tde_wallet", 14 | "oracle_source_database_unique_name": "src11g", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src11rac_phx1w3/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/src11rac_phx1w3/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/src11rac_phx1w3/adump", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "src11rac_phx1w3", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI11g_DBCS_to_SI11g_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI11g_DBCS_to_SI11g_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src11g", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0/dbhome_1", 12 | "oracle_source_dbid": "4245680718", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src11g/tde_wallet", 14 | "oracle_source_database_unique_name": "src11g", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src11g_phx1mh/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "src11g_phx1mh", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI11g_EC2_AWS_to_ExaCS11g_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI11g_EC2_AWS_to_ExaCS11g_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "aws112db", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0.4/db_1", 12 | "oracle_source_dbid": "3503609890", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/11.2.0.4/db_1/admin/aws112db/wallet", 14 | "oracle_source_database_unique_name": "aws112db", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/11.2.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/product/11.2.0/dbhome_2/rdbms/audit", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/product/11.2.0/dbhome_2/rdbms/audit", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/product/11.2.0/dbhome_2/rdbms/audit", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "aws112db_phx18q", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/aws112db/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI11g_EC2_AWS_to_RAC11g_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI11g_EC2_AWS_to_RAC11g_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0.4/db_1", 12 | "oracle_source_dbid": "2556999476", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/11.2.0.4/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1g2/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1g2/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1g2/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx1g2", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI11g_EC2_AWS_to_SI11g_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI11g_EC2_AWS_to_SI11g_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/11.2.0.4/db_1", 12 | "oracle_source_dbid": "2556410806", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/11.2.0.4/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "11.2.0.4", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/11.2.0.4/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1gw/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx1gw", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR1_DBCS_to_ExaCS12cR1_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR1_DBCS_to_ExaCS12cR1_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src12r1", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0/dbhome_1", 12 | "oracle_source_dbid": "176070364", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src12r1/tde_wallet", 14 | "oracle_source_database_unique_name": "src12r1", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/12.1.0/dbhome_12", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/s121rac_phx1de/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/s121rac_phx1de/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/s121rac_phx1de/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "s121rac_phx1de", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/src12r1/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR1_DBCS_to_RAC12cR1_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR1_DBCS_to_RAC12cR1_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src12r1", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0/dbhome_1", 12 | "oracle_source_dbid": "176070364", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src12r1/tde_wallet", 14 | "oracle_source_database_unique_name": "src12r1", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/s121rac_phx1kf/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/s121rac_phx1kf/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/s121rac_phx1kf/adump", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "s121rac_phx1kf", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR1_DBCS_to_SI12cR1_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI12cR1_DBCS_to_SI12cR1_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src12r1", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0/dbhome_1", 12 | "oracle_source_dbid": "176070364", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src12r1/tde_wallet", 14 | "oracle_source_database_unique_name": "src12r1", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src12r1_phx1f8/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "src12r1_phx1f8", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR1_EC2_AWS_to_ExaCS12cR1_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR1_EC2_AWS_to_ExaCS12cR1_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0.2/db_1", 12 | "oracle_source_dbid": "2557356581", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/12.1.0.2/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/12.1.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/product/12.1.0/dbhome_2/rdbms/audit", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/product/12.1.0/dbhome_2/rdbms/audit", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/product/12.1.0/dbhome_2/rdbms/audit", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx132", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/awsoradb/tde_wallet/", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR1_EC2_AWS_to_RAC12cR1_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR1_EC2_AWS_to_RAC12cR1_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0.2/db_1", 12 | "oracle_source_dbid": "2557070171", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/12.1.0.2/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/awsoradb/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/awsoradb/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx1tq", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | "clear_source_on_target": "True", 40 | "prepare_rman_on_target": "True", 41 | 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR1_EC2_AWS_to_SI12cR1_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI12cR1_EC2_AWS_to_SI12cR1_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.1.0.2/db_1", 12 | "oracle_source_dbid": "2556401464", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/12.1.0.2/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "12.1.0.2", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.1.0.2/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx18m", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR2_DBCS_to_ExaCS12cR2_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR2_DBCS_to_ExaCS12cR2_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src12r2", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0/dbhome_1", 12 | "oracle_source_dbid": "201789062", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src12r2/tde_wallet", 14 | "oracle_source_database_unique_name": "src12r2", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/12.2.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/s122rac_phx1ht/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/s122rac_phx1ht/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/s122rac_phx1ht/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "s122rac_phx1ht", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/s122rac_phx1ht/tde_wallet", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR2_DBCS_to_RAC12cR2_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR2_DBCS_to_RAC12cR2_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src12r2", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0/dbhome_1", 12 | "oracle_source_dbid": "201789062", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src12r2/tde_wallet", 14 | "oracle_source_database_unique_name": "src12r2", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/s122rac_phx1xm/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/s122rac_phx1xm/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/s122rac_phx1xm/adump", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "s122rac_phx1xm", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde/", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR2_DBCS_to_SI12cR2_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI12cR2_DBCS_to_SI12cR2_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src12r2", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0/dbhome_1", 12 | "oracle_source_dbid": "201789062", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src12r2/tde_wallet", 14 | "oracle_source_database_unique_name": "src12r2", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src12r2_phx1cb/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/12.2.0.1/grid", 23 | "oracle_target_database_unique_name": "src12r2_phx1cb", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR2_EC2_AWS_to_ExaCS12cR2_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR2_EC2_AWS_to_ExaCS12cR2_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "aws122db", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0.1/db_1", 12 | "oracle_source_dbid": " 225058874", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/12.2.0.1/db_1/admin/aws122db/wallet", 14 | "oracle_source_database_unique_name": "aws122db", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/12.2.0/dbhome_2", 19 | "oracle_target_adump_dir": "/u02/app/oracle/product/12.2.0/dbhome_2/rdbms/audit", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/product/12.2.0/dbhome_2/rdbms/audit", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/product/12.2.0/dbhome_2/rdbms/audit", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "aws122db_phx1z2", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/aws122db/tde_wallet/", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR2_EC2_AWS_to_RAC12cR2_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI12cR2_EC2_AWS_to_RAC12cR2_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0.1/db_1", 12 | "oracle_source_dbid": "2557022013", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/12.2.0.1/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1jm/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1jm/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/awsoradb_phx1jm/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx1jm", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | "clear_source_on_target": "True", 40 | "prepare_rman_on_target": "True", 41 | 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "True", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI12cR2_EC2_AWS_to_SI12cR2_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI12cR2_EC2_AWS_to_SI12cR2_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/12.2.0.1/db_1", 12 | "oracle_source_dbid": "2556476020", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/12.2.0.1/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "12.2.0.1", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/12.2.0.1/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb_phx13b/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx13b", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI18c_DBCS_to_ExaCS18c_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI18c_DBCS_to_ExaCS18c_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "oracle_target_database_oci_endpoint_url": "", 3 | "oracle_target_database_oci_tenancy": "", 4 | "oracle_target_database_oci_user": "", 5 | "oracle_target_database_oci_authtoken_pass": "", 6 | "oracle_target_database_oci_bucketname": "", 7 | 8 | "oracle_source_RAC": "False", 9 | "oracle_source_database_sid": "src18si", 10 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0/dbhome_1", 11 | "oracle_source_dbid": "1136717634", 12 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src18si/tde_wallet", 13 | "oracle_source_database_unique_name": "src18si", 14 | "oracle_source_version": "18.0.0.0", 15 | "oracle_source_sysdba_password": "", 16 | 17 | "oracle_target_ohome_dir": "/u02/app/oracle/product/18.0.0.0/dbhome_3", 18 | "oracle_target_adump_dir": "/u02/app/oracle/admin/src18si/adump", 19 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/src18si1/adump", 20 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/src18si2/adump", 21 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 22 | "oracle_target_database_unique_name": "src18rac_phx1r7", 23 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/src18si/tde_wallet", 24 | "grid_oracle_database_sid": "+ASM1", 25 | "grid_target_data_dg": "+DATAC1", 26 | "grid_target_reco_dg": "+RECOC1", 27 | 28 | "oracle_target_database_oci_endpoint_url": "", 29 | "oracle_target_database_oci_tenancy": "", 30 | "oracle_target_database_oci_user": "", 31 | "oracle_target_database_oci_authtoken_pass": "", 32 | "oracle_target_database_oci_bucketname": "", 33 | 34 | "prepare_rman_on_source": "True", 35 | "tde_upload_to_oss": "True", 36 | "backup_level0": "True", 37 | "backup_level1": "True", 38 | 39 | "clear_source_on_target": "True", 40 | "prepare_rman_on_target": "True", 41 | "tde_download_from_oss": "True", 42 | "restore_level0": "True", 43 | "restore_level1": "True", 44 | "open_resetlogs": "True", 45 | "register_in_OCI": "False", 46 | 47 | "convert_to_RAC": "True", 48 | "convert_to_ExaCS": "True" 49 | } 50 | -------------------------------------------------------------------------------- /examples/SI18c_DBCS_to_RAC18c_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI18c_DBCS_to_RAC18c_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src18si", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0/dbhome_1", 12 | "oracle_source_dbid": "1136717634", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src18si/tde_wallet", 14 | "oracle_source_database_unique_name": "src18si", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "src18rac_phx1h8", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI18c_DBCS_to_SI18c_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=opc 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI18c_DBCS_to_SI18c_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "src18si", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0/dbhome_1", 12 | "oracle_source_dbid": "1136717634", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/admin/src18si/tde_wallet", 14 | "oracle_source_database_unique_name": "src18si", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src18si_phx1vx/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "src18si_phx1vx", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "True", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "True", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI18c_EC2_AWS_to_ExaCS18c_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI18c_EC2_AWS_to_ExaCS18c_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "aws18db", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0/db_1", 12 | "oracle_source_dbid": "1385735169", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/18.0.0/db_1/admin/aws18db/wallet", 14 | "oracle_source_database_unique_name": "aws18db", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u02/app/oracle/product/18.0.0.0/dbhome_3", 19 | "oracle_target_adump_dir": "/u02/app/oracle/admin/aws18db/adump", 20 | "oracle_target_racnode1_adump_dir": "/u02/app/oracle/admin/aws18db/adump", 21 | "oracle_target_racnode2_adump_dir": "/u02/app/oracle/admin/aws18db/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.1.0.0/grid", 23 | "oracle_target_database_unique_name": "aws18db_phx1b8", 24 | "oracle_target_wallet_dir": "/var/opt/oracle/dbaas_acfs/aws18db/tde_wallet/", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATAC1", 27 | "grid_target_reco_dg": "+RECOC1", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "True", 49 | "convert_to_ExaCS": "True" 50 | } 51 | -------------------------------------------------------------------------------- /examples/SI18c_EC2_AWS_to_RAC18c_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | 10 | [target:vars] 11 | ansible_user=opc 12 | ansible_ssh_private_key_file = 13 | -------------------------------------------------------------------------------- /examples/SI18c_EC2_AWS_to_RAC18c_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0/db_1", 12 | "oracle_source_dbid": "2557076643", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/18.0.0/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 20 | "oracle_target_racnode1_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 21 | "oracle_target_racnode2_adump_dir": "/u01/app/oracle/admin/src18rac_phx1h8/adump", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "src18rac_phx1h8", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | 36 | "prepare_rman_on_source": "True", 37 | "tde_upload_to_oss": "False", 38 | "backup_level0": "True", 39 | "backup_level1": "True", 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | 43 | "tde_download_from_oss": "False", 44 | "restore_level0": "True", 45 | "restore_level1": "True", 46 | "open_resetlogs": "True", 47 | "register_in_OCI": "False", 48 | 49 | "convert_to_RAC": "True", 50 | "convert_to_ExaCS": "False" 51 | } 52 | -------------------------------------------------------------------------------- /examples/SI18c_EC2_AWS_to_SI18c_OCI_DBSystem/inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | [source:vars] 4 | ansible_user=ec2-user 5 | ansible_ssh_private_key_file = 6 | 7 | [target] 8 | 9 | [target:vars] 10 | ansible_user=opc 11 | ansible_ssh_private_key_file = 12 | -------------------------------------------------------------------------------- /examples/SI18c_EC2_AWS_to_SI18c_OCI_DBSystem/setup.json: -------------------------------------------------------------------------------- 1 | { 2 | "opc_installer_zip_src_location" : "", 3 | "oci_endpoint_url": "", 4 | "oci_tenancy": "", 5 | "oci_user": "", 6 | "oci_authtoken_pass": "", 7 | "oci_oss_container": "", 8 | 9 | "oracle_source_RAC": "False", 10 | "oracle_source_database_sid": "awsoradb", 11 | "oracle_source_ohome_dir": "/u01/app/oracle/product/18.0.0/db_1", 12 | "oracle_source_dbid": "2556490845", 13 | "oracle_source_wallet_dir": "/u01/app/oracle/product/18.0.0/db_1/admin/awsoradb/wallet", 14 | "oracle_source_database_unique_name": "awsoradb", 15 | "oracle_source_version": "18.0.0.0", 16 | "oracle_source_sysdba_password": "", 17 | 18 | "oracle_target_ohome_dir": "/u01/app/oracle/product/18.0.0.0/dbhome_1", 19 | "oracle_target_adump_dir": "/u01/app/oracle/admin/awsoradb_phx12g/adump", 20 | "oracle_target_racnode1_adump_dir": "", 21 | "oracle_target_racnode2_adump_dir": "", 22 | "grid_target_ohome_dir": "/u01/app/18.0.0.0/grid", 23 | "oracle_target_database_unique_name": "awsoradb_phx12g", 24 | "oracle_target_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde", 25 | "grid_oracle_database_sid": "+ASM1", 26 | "grid_target_data_dg": "+DATA", 27 | "grid_target_reco_dg": "+RECO", 28 | 29 | "oracle_target_database_oci_endpoint_url": "", 30 | "oracle_target_database_oci_tenancy": "", 31 | "oracle_target_database_oci_user": "", 32 | "oracle_target_database_oci_authtoken_pass": "", 33 | "oracle_target_database_oci_bucketname": "", 34 | 35 | "prepare_rman_on_source": "True", 36 | "tde_upload_to_oss": "False", 37 | "backup_level0": "True", 38 | "backup_level1": "True", 39 | 40 | "clear_source_on_target": "True", 41 | "prepare_rman_on_target": "True", 42 | "tde_download_from_oss": "False", 43 | "restore_level0": "True", 44 | "restore_level1": "True", 45 | "open_resetlogs": "True", 46 | "register_in_OCI": "False", 47 | 48 | "convert_to_RAC": "False", 49 | "convert_to_ExaCS": "False" 50 | } 51 | -------------------------------------------------------------------------------- /inventory: -------------------------------------------------------------------------------- 1 | [source] 2 | 3 | 4 | [source:vars] 5 | ansible_user=opc 6 | ansible_ssh_private_key_file = 7 | 8 | [target] 9 | 10 | 11 | [target:vars] 12 | ansible_user=opc 13 | ansible_ssh_private_key_file = 14 | 15 | -------------------------------------------------------------------------------- /modules/oracle_asmcmd_module.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | 7 | ANSIBLE_METADATA = { 8 | 'metadata_version': '1.0', 9 | 'status': ['preview'], 10 | 'supported_by': 'community' 11 | } 12 | 13 | DOCUMENTATION = ''' 14 | --- 15 | module: oracle_asmcmd_module 16 | 17 | short_description: This is simple Oracle ASMCMD module for remote execution 18 | 19 | version_added: "1.0" 20 | 21 | description: 22 | - "This module will help to execute Oracle ASMCMD utility" 23 | 24 | options: 25 | oracle_home: 26 | description: 27 | - This is $ORACLE_HOME directory where ASMCMD binary resides 28 | required: true 29 | oracle_sid: 30 | description: 31 | - This is $ORACLE_SID which will be used to access proper database (if not provided +ASM1 will be chosen) 32 | required: false 33 | asmcmd_script: 34 | description: 35 | - This will be executed within ASMCMD 36 | required: true 37 | no_execution: 38 | description: 39 | - Show show the command which will be executed. 40 | required: false 41 | output_as_array: 42 | description: 43 | - Output of RMAN will be delivered as one string (False) or as an array (True) line by line 44 | required: false 45 | ignore_ORA_errors: 46 | description: 47 | - When set to True module will ignore ORA-XXXX errors 48 | required: false 49 | 50 | ''' 51 | 52 | EXAMPLES = ''' 53 | # Execute ASMCMD 54 | - name: copy vdb.ctf1 control file from ASM to filesystem. 55 | oracle_asmcmd_module: 56 | oracle_home: '/u01/app/12.2.0.1/grid' 57 | oracle_sid: '+ASM1' 58 | asmcmd_script: 'cp +DG1/vdb.ctf1 /backups/vdb.ctf1' 59 | 60 | ''' 61 | 62 | RETURN = ''' 63 | asmcmd_message: 64 | description: result of SQL statement. 65 | type: str 66 | changed: 67 | description: will be used for the future all removed. 68 | type: bool 69 | ''' 70 | 71 | from ansible.module_utils.basic import AnsibleModule 72 | from subprocess import Popen, PIPE 73 | from tempfile import mkstemp, TemporaryFile 74 | from datetime import datetime, timedelta 75 | import os, sys, re 76 | 77 | def execute_asmcmd(oracle_home, oracle_sid, output_as_array, no_execution, ignore_ORA_errors, asmcmd_script): 78 | 79 | args = [os.path.join(oracle_home, 'bin', 'asmcmd')] 80 | 81 | my_env = os.environ.copy() 82 | my_env["PATH"] = my_env["PATH"] + oracle_home+'/bin' 83 | my_env["ORACLE_HOME"] = oracle_home 84 | my_env["ORACLE_SID"] = oracle_sid 85 | 86 | if no_execution is True: 87 | return [' '.join(args),'',''] 88 | else: 89 | p = Popen(args, stdout=PIPE, stderr=PIPE, env=my_env, stdin=PIPE) 90 | p.stdin.write(asmcmd_script.encode()) 91 | 92 | asmcmdResult, stderrResult = p.communicate() 93 | 94 | if asmcmdResult.count('ORA-') > 0: 95 | 96 | if ignore_ORA_errors == False: 97 | oraErrors = re.findall('ORA-(.+?):', asmcmdResult) 98 | if ignore_ORA_errors == True: 99 | oraErrors = '' 100 | 101 | if asmcmdResult.count('ORA-') == 0: 102 | oraErrors = '' 103 | 104 | if stderrResult.count('ORA-') > 0: 105 | 106 | if ignore_ORA_errors == False: 107 | oraErrors = re.findall('ORA-(.+?):', stderrResult) 108 | if ignore_ORA_errors == True: 109 | oraErrors = '' 110 | 111 | if stderrResult.count('ORA-') == 0: 112 | oraErrors = '' 113 | 114 | if output_as_array == True: 115 | asmcmdResult = asmcmdResult.split('\n') 116 | asmcmdResult[:] = [item for item in asmcmdResult if item != ''] 117 | 118 | return [asmcmdResult,oraErrors,stderrResult] 119 | 120 | def run_module(): 121 | 122 | module_args = dict( 123 | oracle_home=dict(type='str', required=True), 124 | oracle_sid=dict(type='str', required=False), 125 | no_execution=dict(type='bool', required=False, default=False), 126 | output_as_array=dict(type='bool', required=False, default=True), 127 | ignore_ORA_errors=dict(type='bool', required=False, default=False), 128 | asmcmd_script=dict(type='str', required=True) 129 | 130 | ) 131 | 132 | result = dict( 133 | changed=False, 134 | asmcmd_message='' 135 | ) 136 | 137 | module = AnsibleModule( 138 | argument_spec=module_args, 139 | supports_check_mode=True 140 | ) 141 | 142 | if module.check_mode: 143 | return result 144 | 145 | results_of_execute_asmcmd = execute_asmcmd( 146 | module.params['oracle_home'], 147 | module.params['oracle_sid'], 148 | module.params['output_as_array'], 149 | module.params['no_execution'], 150 | module.params['ignore_ORA_errors'], 151 | module.params['asmcmd_script']) 152 | 153 | result['asmcmd_message'] = results_of_execute_asmcmd 154 | 155 | if results_of_execute_asmcmd[1] != '': 156 | module.fail_json(msg='ASMCMD module has failed (ORA-XXXX errors listed)!', **result) 157 | 158 | module.exit_json(**result) 159 | 160 | def main(): 161 | run_module() 162 | 163 | if __name__ == '__main__': 164 | main() 165 | -------------------------------------------------------------------------------- /modules/oracle_orapwd_module.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | 7 | ANSIBLE_METADATA = { 8 | 'metadata_version': '1.0', 9 | 'status': ['preview'], 10 | 'supported_by': 'community' 11 | } 12 | 13 | DOCUMENTATION = ''' 14 | --- 15 | module: oracle_orapwd_module 16 | 17 | short_description: This is simple ORAPWD module for remote execution 18 | 19 | version_added: "1.0" 20 | 21 | description: 22 | - "This module will help to setup Oracle database password file" 23 | 24 | options: 25 | oracle_home: 26 | description: 27 | - This is $ORACLE_HOME directory where RMAN binary resides (lack of parameter means it will be derived from /etc/oratab). 28 | required: false 29 | oracle_sid: 30 | description: 31 | - This is $ORACLE_SID which will be used to access proper database 32 | required: true 33 | file: 34 | description: 35 | - This file will be create as database password file (if not declared will be constructed from ORACLE_HOME/dbs/orapwSID) 36 | required: false 37 | password: 38 | description: 39 | - This password will be stored in database password file 40 | required: true 41 | 42 | ''' 43 | 44 | EXAMPLES = ''' 45 | # Execute ORAPWD remotely for FOGGYDB 46 | - name: Create password file 47 | oracle_sqlplus_module: 48 | oracle_home: '/u01/app/oracle/product/12.1.0.2/dbhome_1' 49 | oracle_sid: '' 50 | file: '/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/orapw' 51 | password: '' 52 | 53 | ''' 54 | 55 | RETURN = ''' 56 | orapwd_message: 57 | description: result ORAPWD execution. 58 | type: str 59 | changed: 60 | description: will be used for the future all removed. 61 | type: bool 62 | ''' 63 | 64 | from ansible.module_utils.basic import AnsibleModule 65 | from subprocess import Popen, PIPE 66 | from tempfile import mkstemp, TemporaryFile 67 | from datetime import datetime, timedelta 68 | import os, sys, re 69 | 70 | 71 | def find_oracle_home(oracle_sid): 72 | 73 | re_db_home = re.compile(r'^('+oracle_sid+'):(?P(/|\w+|\.)+):(Y|N)') 74 | 75 | with open('/etc/oratab', 'r') as f: 76 | for line in f: 77 | line = line.strip() 78 | re_db_home_match = re_db_home.search(line) 79 | if re_db_home_match: 80 | db_home = re_db_home_match.group('HOME') 81 | #print(db_home) 82 | 83 | return db_home 84 | 85 | def execute_orapwd(oracle_home, oracle_sid, file, password): 86 | 87 | if oracle_home is None: 88 | oracle_home = find_oracle_home(oracle_sid) 89 | 90 | if file is None: 91 | file = oracle_home+"/dbs/orapw"+oracle_sid 92 | 93 | args = [os.path.join(oracle_home, 'bin', 'orapwd')] 94 | args.append("password="+password) 95 | args.append("file="+file) 96 | 97 | my_env = os.environ.copy() 98 | my_env["PATH"] = my_env["PATH"] + oracle_home+'/bin' 99 | my_env["ORACLE_HOME"] = oracle_home 100 | my_env["ORACLE_SID"] = oracle_sid 101 | 102 | p = Popen(args, stdout=PIPE, stderr=PIPE, env=my_env, stdin=PIPE) 103 | 104 | stdoutResult, stderrResult = p.communicate() 105 | 106 | stdoutResult = stdoutResult.split('\n') 107 | stdoutResult[:] = [item for item in stdoutResult if item != ''] 108 | 109 | return [' '.join(args), stdoutResult, stderrResult] 110 | 111 | def run_module(): 112 | 113 | module_args = dict( 114 | oracle_home=dict(type='str', required=False), 115 | oracle_sid=dict(type='str', required=True), 116 | file=dict(type='str', required=False), 117 | password=dict(type='str', required=True), 118 | 119 | ) 120 | 121 | result = dict( 122 | changed=False, 123 | orapwd_message='', 124 | orapwd_command='' 125 | ) 126 | 127 | module = AnsibleModule( 128 | argument_spec=module_args, 129 | supports_check_mode=True 130 | ) 131 | 132 | if module.check_mode: 133 | return result 134 | 135 | results_of_execute_orapwd = execute_orapwd( 136 | module.params['oracle_home'], 137 | module.params['oracle_sid'], 138 | module.params['file'], 139 | module.params['password'], 140 | ) 141 | 142 | result['orapwd_output'] = results_of_execute_orapwd[1] 143 | result['orapwd_command'] = results_of_execute_orapwd[0] 144 | 145 | if results_of_execute_orapwd[2] != '': 146 | module.fail_json(msg='ORAPWD module has failed!', **result) 147 | 148 | module.exit_json(**result) 149 | 150 | def main(): 151 | run_module() 152 | 153 | if __name__ == '__main__': 154 | main() 155 | -------------------------------------------------------------------------------- /modules/oracle_oratns_discovery_module.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | 7 | ANSIBLE_METADATA = { 8 | 'metadata_version': '1.0', 9 | 'status': ['preview'], 10 | 'supported_by': 'community' 11 | } 12 | 13 | DOCUMENTATION = ''' 14 | --- 15 | module: oracle_oratns_discovery_module 16 | 17 | short_description: This module discover oracle TNS data 18 | 19 | version_added: "1.0" 20 | 21 | description: 22 | - "This module discover oracle TNS data" 23 | 24 | options: 25 | oracle_home: 26 | description: 27 | - This is $ORACLE_HOME directory where RMAN binary resides (lack of parameter means it will be derived from /etc/oratab). 28 | required: false 29 | oracle_sid: 30 | description: 31 | - This is $ORACLE_SID which will be used to access proper database 32 | required: false 33 | oratab_location: 34 | description: 35 | - Location of the oratab file (if not provided /etc/oratab will be used. 36 | required: false 37 | 38 | 39 | ''' 40 | 41 | EXAMPLES = ''' 42 | # Execute discovery with all parameters 43 | - name: Check TNS information 44 | oracle_oratns_discovery_module: 45 | oracle_home: '/u01/app/oracle/product/12.1.0.2/dbhome_1' 46 | oracle_sid: '' 47 | oratab_location: '/var/tmp/oratab' 48 | 49 | # Execute discovery with minimal set of parameters 50 | - name: Check TNS information 51 | oracle_oratns_discovery_module: 52 | oracle_sid: '' 53 | 54 | ''' 55 | 56 | RETURN = ''' 57 | 58 | oracle_home: 59 | description: 60 | type: str 61 | 62 | sqlnet_ora_encryption_wallet: 63 | description: 64 | type: str 65 | 66 | ''' 67 | 68 | from ansible.module_utils.basic import AnsibleModule 69 | from subprocess import Popen, PIPE 70 | from tempfile import mkstemp, TemporaryFile 71 | from datetime import datetime, timedelta 72 | import os, sys, re 73 | import json 74 | 75 | 76 | def find_oracle_home(oracle_sid, oratab_location): 77 | 78 | if oratab_location is None: 79 | oratab_location = '/etc/oratab' 80 | 81 | re_db_home = re.compile(r'^('+oracle_sid+'):(?P(/|\w+|\.)+):(Y|N)') 82 | 83 | with open(oratab_location, 'r') as f: 84 | for line in f: 85 | line = line.strip() 86 | re_db_home_match = re_db_home.search(line) 87 | if re_db_home_match: 88 | try: 89 | db_home = re_db_home_match.group('HOME') 90 | except Exception: 91 | db_home = '' 92 | return db_home 93 | 94 | def find_sqlnet_ora_encryption_wallet(oracle_home): 95 | 96 | re_wallet_path = re.compile(r'DIRECTORY=(?P(/|\w+|\/)+)\)') 97 | 98 | with open(oracle_home+'/network/admin/sqlnet.ora', 'r') as f: 99 | for line in f: 100 | line = line.strip() 101 | re_wallet_path_match = re_wallet_path.search(line) 102 | if re_wallet_path_match: 103 | try: 104 | wallet_path = re_wallet_path_match.group('WALLET_PATH_FILE') 105 | except Exception: 106 | wallet_path = '' 107 | return wallet_path 108 | 109 | 110 | def execute_main(oracle_home, oracle_sid, oratab_location): 111 | 112 | if oracle_home is None: 113 | oracle_home = find_oracle_home(oracle_sid, oratab_location) 114 | 115 | sqlnet_ora_encryption_wallet = find_sqlnet_ora_encryption_wallet(oracle_home) 116 | 117 | return ['',oracle_home, sqlnet_ora_encryption_wallet] 118 | 119 | def run_module(): 120 | 121 | module_args = dict( 122 | oracle_home=dict(type='str', required=False), 123 | oracle_sid=dict(type='str', required=False), 124 | oratab_location=dict(type='str', required=False), 125 | ) 126 | 127 | result = dict( 128 | changed=False, 129 | oracle_home='', 130 | sqlnet_ora_encryption_wallet='', 131 | 132 | ) 133 | 134 | module = AnsibleModule( 135 | argument_spec=module_args, 136 | supports_check_mode=True 137 | ) 138 | 139 | if module.check_mode: 140 | return result 141 | 142 | results_of_execute_main = execute_main( 143 | module.params['oracle_home'], 144 | module.params['oracle_sid'], 145 | module.params['oratab_location']) 146 | 147 | result['oracle_home'] = results_of_execute_main[1] 148 | result['sqlnet_ora_encryption_wallet'] = results_of_execute_main[2] 149 | 150 | 151 | if results_of_execute_main[0] != '': 152 | module.fail_json(msg='Module has failed! ('+results_of_execute_main[0]+')', **result) 153 | 154 | 155 | module.exit_json(**result) 156 | 157 | def main(): 158 | run_module() 159 | 160 | if __name__ == '__main__': 161 | main() 162 | -------------------------------------------------------------------------------- /noncdb_2_cdb.json: -------------------------------------------------------------------------------- 1 | { 2 | "plug_into_cdb": "", 3 | "plug_as_pdb": "", 4 | "cdb_wallet_dir": "/opt/oracle/dcs/commonstore/wallets/tde/NEWCDB", 5 | "cdb_unique_name": "", 6 | "cdb_wallet_password": "", 7 | "export_import_tde_wallet": "True", 8 | "plug_temporal_tde_wallet_dir": "/home/oracle", 9 | "plug_temporal_tde_wallet_password": "aq12ws" 10 | } -------------------------------------------------------------------------------- /roles/source_backup_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/source_backup_role/tasks/backup_source_to_oss_level_0.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Backup of the source to OSS (level 0) 5 | # 6 | 7 | # Obtain SBT_TAPE Channel Parameters - library directory (source RAC) 8 | - name: Obtain SBT_TAPE Channel Parameters - library directory (source RAC) 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | oracle_rman_module: 13 | oracle_sid: "{{ oracle_source_database_sid }}1" 14 | oracle_home: "{{ oracle_source_ohome_dir }}" 15 | rman_script: "show all;" 16 | output_as_array: True 17 | output_omit_heading: True 18 | output_omit_ending: True 19 | output_config_channel_sbt_tape_parms_sbt_library_dir: True 20 | output_config_channel_sbt_tape_parms_sbt_opc_pfile: True 21 | register: rmanoutput1 22 | when: (prepare_rman_on_source == 'False') and (backup_level0 == 'True') and (oracle_source_RAC == 'True') 23 | 24 | # Setting RMAN lib_dir and config_file fact table (source RAC) 25 | - name: Setting RMAN lib_dir and config_file fact table (source RAC) 26 | set_fact: 27 | lib_dir: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_library_dir[0] }}" 28 | config_file: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_opc_pfile[0] }}" 29 | when: (prepare_rman_on_source == 'False') and (backup_level0 == 'True') and (oracle_source_RAC == 'True') 30 | 31 | # Obtain SBT_TAPE Channel Parameters - library directory (source SI) 32 | - name: Obtain SBT_TAPE Channel Parameters - library directory (source SI) 33 | become: yes 34 | become_method: sudo 35 | become_user: "{{ oracle_user }}" 36 | oracle_rman_module: 37 | oracle_sid: "{{ oracle_source_database_sid }}" 38 | oracle_home: "{{ oracle_source_ohome_dir }}" 39 | rman_script: "show all;" 40 | output_as_array: True 41 | output_omit_heading: True 42 | output_omit_ending: True 43 | output_config_channel_sbt_tape_parms_sbt_library_dir: True 44 | output_config_channel_sbt_tape_parms_sbt_opc_pfile: True 45 | register: rmanoutput1 46 | when: (prepare_rman_on_source == 'False') and (backup_level0 == 'True') and (oracle_source_RAC == 'False') 47 | 48 | # Setting RMAN lib_dir and config_file fact table (source SI) 49 | - name: Setting RMAN lib_dir and config_file fact table (source SI) 50 | set_fact: 51 | lib_dir: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_library_dir[0] }}" 52 | config_file: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_opc_pfile[0] }}" 53 | when: (prepare_rman_on_source == 'False') and (backup_level0 == 'True') and (oracle_source_RAC == 'False') 54 | 55 | # Setting inital empty RMAN channels fact table 56 | - name: Setting inital empty RMAN channels fact table 57 | set_fact: 58 | rman_channels: [] 59 | 60 | # Generating RMAN channels fact table 61 | - name: Generating RMAN channels fact table 62 | set_fact: 63 | rman_channels: "{{ rman_channels }} + ['c{{ item }}']" 64 | with_sequence: start=1 end={{ rman_channels_number }} 65 | 66 | # Starting RMAN backup incremental level 0 for database plus archivelog to OSS on the source (source RAC) 67 | - name: Starting RMAN backup incremental level 0 for database plus archivelog to OSS on the source (source RAC) 68 | become: yes 69 | become_method: sudo 70 | become_user: "{{ oracle_user }}" 71 | oracle_rman_module: 72 | oracle_sid: "{{ oracle_source_database_sid }}1" 73 | oracle_home: "{{ oracle_source_ohome_dir }}" 74 | rman_script: "{{ lookup('template', '../templates/rman_backup_source_to_oss_inc0_script.j2') }}" 75 | rman_logfile: "{{ rman_log_path }}/rman_source_backup_inc0_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 76 | output_as_array: True 77 | output_omit_heading: True 78 | output_omit_ending: True 79 | async: "{{ ansible_async_backup_source_timeout }}" 80 | poll: 30 81 | register: rmanoutput1 82 | when: oracle_source_RAC == 'True' 83 | 84 | # Starting RMAN backup incremental level 0 for database plus archivelog to OSS on the source (source SI) 85 | - name: Starting RMAN backup incremental level 0 for database plus archivelog to OSS on the source (source SI) 86 | become: yes 87 | become_method: sudo 88 | become_user: "{{ oracle_user }}" 89 | oracle_rman_module: 90 | oracle_sid: "{{ oracle_source_database_sid }}" 91 | oracle_home: "{{ oracle_source_ohome_dir }}" 92 | rman_script: "{{ lookup('template', '../templates/rman_backup_source_to_oss_inc0_script.j2') }}" 93 | rman_logfile: "{{ rman_log_path }}/rman_source_backup_inc0_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 94 | output_as_array: True 95 | output_omit_heading: True 96 | output_omit_ending: True 97 | async: "{{ ansible_async_backup_source_timeout }}" 98 | poll: 30 99 | register: rmanoutput1 100 | when: oracle_source_RAC == 'False' 101 | 102 | -------------------------------------------------------------------------------- /roles/source_backup_role/tasks/backup_source_to_oss_level_1.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Backup of the source to OSS (level 1) 5 | # 6 | 7 | # Obtain SBT_TAPE Channel Parameters - library directory (source RAC) 8 | - name: Obtain SBT_TAPE Channel Parameters - library directory (source RAC) 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | oracle_rman_module: 13 | oracle_sid: "{{ oracle_source_database_sid }}1" 14 | oracle_home: "{{ oracle_source_ohome_dir }}" 15 | rman_script: "show all;" 16 | output_as_array: True 17 | output_omit_heading: True 18 | output_omit_ending: True 19 | output_config_channel_sbt_tape_parms_sbt_library_dir: True 20 | output_config_channel_sbt_tape_parms_sbt_opc_pfile: True 21 | register: rmanoutput1 22 | when: (prepare_rman_on_source == 'False') and (backup_level1 == 'True') and (oracle_source_RAC == 'True') 23 | 24 | # Setting RMAN lib_dir and config_file fact table (source RAC) 25 | - name: Setting RMAN lib_dir and config_file fact table (source RAC) 26 | set_fact: 27 | lib_dir: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_library_dir[0] }}" 28 | config_file: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_opc_pfile[0] }}" 29 | when: (prepare_rman_on_source == 'False') and (backup_level1 == 'True') and (oracle_source_RAC == 'True') 30 | 31 | # Obtain SBT_TAPE Channel Parameters - library directory (source SI) 32 | - name: Obtain SBT_TAPE Channel Parameters - library directory (source SI) 33 | become: yes 34 | become_method: sudo 35 | become_user: "{{ oracle_user }}" 36 | oracle_rman_module: 37 | oracle_sid: "{{ oracle_source_database_sid }}" 38 | oracle_home: "{{ oracle_source_ohome_dir }}" 39 | rman_script: "show all;" 40 | output_as_array: True 41 | output_omit_heading: True 42 | output_omit_ending: True 43 | output_config_channel_sbt_tape_parms_sbt_library_dir: True 44 | output_config_channel_sbt_tape_parms_sbt_opc_pfile: True 45 | register: rmanoutput1 46 | when: (prepare_rman_on_source == 'False') and (backup_level1 == 'True') and (oracle_source_RAC == 'False') 47 | 48 | # Setting RMAN lib_dir and config_file fact table (source SI) 49 | - name: Setting RMAN lib_dir and config_file fact table (source SI) 50 | set_fact: 51 | lib_dir: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_library_dir[0] }}" 52 | config_file: "{{ rmanoutput1.config_channel_sbt_tape_parms_sbt_opc_pfile[0] }}" 53 | when: (prepare_rman_on_source == 'False') and (backup_level1 == 'True') and (oracle_source_RAC == 'False') 54 | 55 | 56 | # Setting inital empty RMAN channels fact table 57 | - name: Setting inital empty RMAN channels fact table 58 | set_fact: 59 | rman_channels: [] 60 | 61 | # Generating RMAN channels fact table 62 | - name: Generating RMAN channels fact table 63 | set_fact: 64 | rman_channels: "{{ rman_channels }} + ['c{{ item }}']" 65 | with_sequence: start=1 end={{ rman_channels_number }} 66 | 67 | # Starting RMAN backup incremental level 1 for database plus archivelog to OSS on the source (source RAC) 68 | - name: Starting RMAN backup incremental level 1 for database plus archivelog to OSS on the source (source RAC) 69 | become: yes 70 | become_method: sudo 71 | become_user: "{{ oracle_user }}" 72 | oracle_rman_module: 73 | oracle_sid: "{{ oracle_source_database_sid }}1" 74 | oracle_home: "{{ oracle_source_ohome_dir }}" 75 | rman_script: "{{ lookup('template', '../templates/rman_backup_source_to_oss_inc1_script.j2') }}" 76 | rman_logfile: "{{ rman_log_path }}/rman_source_backup_inc1_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 77 | output_as_array: True 78 | output_omit_heading: True 79 | output_omit_ending: True 80 | async: "{{ ansible_async_backup_source_timeout }}" 81 | poll: 30 82 | register: rmanoutput1 83 | when: oracle_source_RAC == 'True' 84 | 85 | # Starting RMAN backup incremental level 1 for database plus archivelog to OSS on the source (source SI) 86 | - name: Starting RMAN backup incremental level 1 for database plus archivelog to OSS on the source (source SI) 87 | become: yes 88 | become_method: sudo 89 | become_user: "{{ oracle_user }}" 90 | oracle_rman_module: 91 | oracle_sid: "{{ oracle_source_database_sid }}" 92 | oracle_home: "{{ oracle_source_ohome_dir }}" 93 | rman_script: "{{ lookup('template', '../templates/rman_backup_source_to_oss_inc1_script.j2') }}" 94 | rman_logfile: "{{ rman_log_path }}/rman_source_backup_inc1_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 95 | output_as_array: True 96 | output_omit_heading: True 97 | output_omit_ending: True 98 | async: "{{ ansible_async_backup_source_timeout }}" 99 | poll: 30 100 | register: rmanoutput1 101 | when: oracle_source_RAC == 'False' 102 | -------------------------------------------------------------------------------- /roles/source_backup_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Execute the backup on the source 5 | # 6 | 7 | - import_tasks: prepare_source_rman_oss.yml 8 | when: prepare_rman_on_source == 'True' 9 | 10 | - import_tasks: backup_source_to_oss_level_0.yml 11 | when: backup_level0 == 'True' 12 | 13 | - import_tasks: backup_source_to_oss_level_1.yml 14 | when: backup_level1 == 'True' 15 | 16 | - import_tasks: tde_wallet_upload_to_oss.yml 17 | when: tde_upload_to_oss == 'True' 18 | 19 | -------------------------------------------------------------------------------- /roles/source_backup_role/tasks/prepare_source_rman_oss.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Prepare source RMAN for backup into OSS 5 | # 6 | 7 | # Upload Oracle Database Cloud Backup Module 8 | - name: Upload Oracle Database Cloud Backup Module 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | copy: 13 | src: "{{ opc_installer_zip_src_location }}" 14 | dest: "{{ opc_installer_zip_dest_location }}" 15 | 16 | # Unzip Oracle Database Cloud Backup Module 17 | - name: Unzip Oracle Database Cloud Backup Module 18 | become: yes 19 | become_method: sudo 20 | become_user: "{{ oracle_user }}" 21 | unarchive: 22 | src: "{{ opc_installer_zip_dest_location }}" 23 | dest: "{{ opc_installer_dest_location }}" 24 | remote_src: yes 25 | 26 | # Setup Oracle Database Cloud Backup Module 27 | - name: Setup Oracle Database Cloud Backup Module 28 | become: yes 29 | become_method: sudo 30 | become_user: "{{ oracle_user }}" 31 | oracle_cloud_odcb_module: 32 | opc_install_location: "{{ opc_installer_dest_location }}/opc_installer/opc_installer/" 33 | host: "{{ oci_swiftobjectstorage_url }}" 34 | opc_id: "{{ oci_user }}" 35 | opc_pass: "{{ oci_authtoken_pass }}" 36 | container: "{{ oci_oss_container }}" 37 | wallet_dir: "{{ wallet_dir }}" 38 | lib_dir: "{{ lib_dir }}" 39 | config_file: "{{ config_file }}" 40 | 41 | # Configure RMAN's channel device SBT_TAPE to use libopc.so library (source RAC) 42 | - name: Configure RMAN's channel device SBT_TAPE to use libopc.so library (source RAC) 43 | become: yes 44 | become_method: sudo 45 | become_user: "{{ oracle_user }}" 46 | oracle_rman_module: 47 | oracle_sid: "{{ oracle_source_database_sid }}1" 48 | oracle_home: "{{ oracle_source_ohome_dir }}" 49 | rman_script: "{{ lookup('template', '../templates/rman_configure_channel_device_to_oss_script.j2') }}" 50 | rman_logfile: "{{ rman_log_path }}/rman_configure_channel_device_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 51 | output_as_array: True 52 | output_omit_heading: True 53 | output_omit_ending: True 54 | register: rmanoutput1 55 | when: (oracle_source_RAC == 'True') and (configure_channel_device_type_sbt_type == 'True') 56 | 57 | # Configure RMAN's channel device SBT_TAPE to use libopc.so library (source SI) 58 | - name: Configure RMAN's channel device SBT_TAPE to use libopc.so library (source SI) 59 | become: yes 60 | become_method: sudo 61 | become_user: "{{ oracle_user }}" 62 | oracle_rman_module: 63 | oracle_sid: "{{ oracle_source_database_sid }}" 64 | oracle_home: "{{ oracle_source_ohome_dir }}" 65 | rman_script: "{{ lookup('template', '../templates/rman_configure_channel_device_to_oss_script.j2') }}" 66 | rman_logfile: "{{ rman_log_path }}/rman_configure_channel_device_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 67 | output_as_array: True 68 | output_omit_heading: True 69 | output_omit_ending: True 70 | register: rmanoutput1 71 | when: (oracle_source_RAC == 'False') and (configure_channel_device_type_sbt_type == 'True') 72 | 73 | # Configure RMAN to use SBT_TAPE by default, backup optimization to OFF etc (source RAC) 74 | - name: Configure RMAN to use SBT_TAPE by default, backup optimization to OFF etc (source RAC) 75 | become: yes 76 | become_method: sudo 77 | become_user: "{{ oracle_user }}" 78 | oracle_rman_module: 79 | oracle_sid: "{{ oracle_source_database_sid }}1" 80 | oracle_home: "{{ oracle_source_ohome_dir }}" 81 | rman_script: "{{ lookup('template', '../templates/rman_configure_script.j2') }}" 82 | rman_logfile: "{{ rman_log_path }}/rman_configure_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 83 | output_as_array: True 84 | output_omit_heading: True 85 | output_omit_ending: True 86 | register: rmanoutput2 87 | when: oracle_source_RAC == 'True' 88 | 89 | # Configure RMAN to use SBT_TAPE by default, backup optimization to OFF etc (source SI) 90 | - name: Configure RMAN to use SBT_TAPE by default, backup optimization to OFF etc (source SI) 91 | become: yes 92 | become_method: sudo 93 | become_user: "{{ oracle_user }}" 94 | oracle_rman_module: 95 | oracle_sid: "{{ oracle_source_database_sid }}" 96 | oracle_home: "{{ oracle_source_ohome_dir }}" 97 | rman_script: "{{ lookup('template', '../templates/rman_configure_script.j2') }}" 98 | rman_logfile: "{{ rman_log_path }}/rman_configure_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 99 | output_as_array: True 100 | output_omit_heading: True 101 | output_omit_ending: True 102 | register: rmanoutput2 103 | when: oracle_source_RAC == 'False' 104 | 105 | -------------------------------------------------------------------------------- /roles/source_backup_role/tasks/tde_wallet_upload_to_oss.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # TDE Wallet upload to OSS 5 | # 6 | 7 | # Pickup wallet location on the source (source RAC) 8 | - name: Pickup wallet location on the source (source RAC) 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | oracle_oratns_discovery_module: 13 | oracle_sid: "{{ oracle_source_database_sid }}1" 14 | oracle_home: "{{ oracle_source_ohome_dir }}" 15 | register: discovery_output1 16 | when: (oracle_source_RAC == 'True') and (oracle_source_wallet_dir is not defined) 17 | 18 | # Pickup wallet location on the source (source SI) 19 | - name: Pickup wallet location on the source (source SI) 20 | become: yes 21 | become_method: sudo 22 | become_user: "{{ oracle_user }}" 23 | oracle_oratns_discovery_module: 24 | oracle_sid: "{{ oracle_source_database_sid }}" 25 | oracle_home: "{{ oracle_source_ohome_dir }}" 26 | register: discovery_output1 27 | when: (oracle_source_RAC == 'False') and (oracle_source_wallet_dir is not defined) 28 | 29 | # Set Source Wallet Facts for Future Usage (derived) 30 | - name: Set Source Wallet Facts for Future Usage (derived) 31 | set_fact: 32 | source_wallet: "{{ discovery_output1.sqlnet_ora_encryption_wallet }}" 33 | when: oracle_source_wallet_dir is not defined 34 | 35 | # Set Source Wallet Facts for Future Usage (not derived) 36 | - name: Set Source Wallet Facts for Future Usage (not derived) 37 | set_fact: 38 | source_wallet: "{{ oracle_source_wallet_dir }}" 39 | when: oracle_source_wallet_dir is defined 40 | 41 | # Delete archive on the source 42 | - name: Delete archive on the source 43 | become: yes 44 | become_method: sudo 45 | become_user: "{{ oracle_user }}" 46 | file: 47 | path: "{{ source_wallet }}/{{ oracle_source_database_sid }}_tde.tgz" 48 | state: absent 49 | 50 | # Archive wallet directory on the source 51 | - name: Archive wallet directory on the source 52 | become: yes 53 | become_method: sudo 54 | become_user: "{{ oracle_user }}" 55 | archive: 56 | path: "{{ source_wallet }}/*.*" 57 | dest: "{{ source_wallet }}/{{ oracle_source_database_sid }}_tde.tgz" 58 | 59 | # Upload TDE file to OSS 60 | - name: Upload TDE file to OSS 61 | become: yes 62 | become_method: sudo 63 | become_user: "{{ oracle_user }}" 64 | command: 'curl -v -X PUT -u "{{ oci_user }}:{{ oci_authtoken_pass }}" --upload-file {{ source_wallet }}/{{ oracle_source_database_sid }}_tde.tgz {{ oci_swiftobjectstorage_url }}/{{ oci_oss_container }}/{{ oracle_source_database_sid }}_tde.tgz' 65 | 66 | -------------------------------------------------------------------------------- /roles/source_backup_role/templates/rman_backup_source_to_oss_inc0_script.j2: -------------------------------------------------------------------------------- 1 | {% if rman_password_on_transit is defined %} SET ENCRYPTION IDENTIFIED BY "{{ rman_password_on_transit }}" ONLY; {% endif %} run { {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG TAG="{{ oracle_source_database_sid }}"; } 2 | -------------------------------------------------------------------------------- /roles/source_backup_role/templates/rman_backup_source_to_oss_inc1_script.j2: -------------------------------------------------------------------------------- 1 | {% if rman_password_on_transit is defined %} SET ENCRYPTION IDENTIFIED BY "{{ rman_password_on_transit }}" ONLY; {% endif %} run { {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG TAG="{{ oracle_source_database_sid }}"; } 2 | -------------------------------------------------------------------------------- /roles/source_backup_role/templates/rman_configure_channel_device_to_oss_script.j2: -------------------------------------------------------------------------------- 1 | CONFIGURE CHANNEL DEVICE TYPE "SBT_TAPE" PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; 2 | -------------------------------------------------------------------------------- /roles/source_backup_role/templates/rman_configure_script.j2: -------------------------------------------------------------------------------- 1 | CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE; CONFIGURE BACKUP OPTIMIZATION OFF; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO "%F"; CONFIGURE ENCRYPTION FOR DATABASE ON; 2 | -------------------------------------------------------------------------------- /roles/source_backup_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | -------------------------------------------------------------------------------- /roles/source_discovery_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/source_discovery_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Discover source system 5 | # 6 | 7 | - import_tasks: discover_source.yml 8 | # when: discover_source == 'True' 9 | 10 | 11 | -------------------------------------------------------------------------------- /roles/target_backup_config_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_backup_config_role/tasks/configure_automatic_backup_with_DBCLI.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Configure automatic backup with DBCLI (will utilize object store created automatically) 5 | # 6 | 7 | # Show oracle_target_database_unique_name_upper 8 | - name: Show oracle_target_database_unique_name_upper 9 | debug: 10 | msg: "Looking for database = {{ oracle_target_database_unique_name_upper }}" 11 | 12 | # Crosscheck archivelog all to eliminate archivelogs in non-ASM location enherited from the source (RAC) 13 | - name: Crosscheck archivelog all to eliminate archivelogs in non-ASM location enherited from the source (RAC) 14 | become: yes 15 | become_method: sudo 16 | become_user: "{{ oracle_user }}" 17 | oracle_rman_module: 18 | oracle_sid: "{{ oracle_source_database_sid }}1" 19 | oracle_home: "{{ oracle_target_ohome_dir }}" 20 | rman_script: "crosscheck archivelog all;" 21 | output_as_array: True 22 | output_omit_heading: True 23 | output_omit_ending: True 24 | register: rmanoutput1 25 | when: (convert_to_RAC == 'True') 26 | 27 | # Delete expired archivelog all to eliminate archivelogs in non-ASM location enherited from the source (RAC) 28 | - name: Delete expired archivelog all to eliminate archivelogs in non-ASM location enherited from the source (RAC) 29 | become: yes 30 | become_method: sudo 31 | become_user: "{{ oracle_user }}" 32 | oracle_rman_module: 33 | oracle_sid: "{{ oracle_source_database_sid }}1" 34 | oracle_home: "{{ oracle_target_ohome_dir }}" 35 | rman_script: "delete noprompt expired archivelog all;" 36 | output_as_array: True 37 | output_omit_heading: True 38 | output_omit_ending: True 39 | register: rmanoutput1 40 | when: (convert_to_RAC == 'True') 41 | 42 | # Crosscheck archivelog all to eliminate archivelogs in non-ASM location enherited from the source (SI) 43 | - name: Crosscheck archivelog all to eliminate archivelogs in non-ASM location enherited from the source (SI) 44 | become: yes 45 | become_method: sudo 46 | become_user: "{{ oracle_user }}" 47 | oracle_rman_module: 48 | oracle_sid: "{{ oracle_source_database_sid }}" 49 | oracle_home: "{{ oracle_target_ohome_dir }}" 50 | rman_script: "crosscheck archivelog all;" 51 | output_as_array: True 52 | output_omit_heading: True 53 | output_omit_ending: True 54 | register: rmanoutput1 55 | when: (convert_to_RAC == 'False') 56 | 57 | # Delete expired archivelog all to eliminate archivelogs in non-ASM location enherited from the source (SI) 58 | - name: Delete expired archivelog all to eliminate archivelogs in non-ASM location enherited from the source (SI) 59 | become: yes 60 | become_method: sudo 61 | become_user: "{{ oracle_user }}" 62 | oracle_rman_module: 63 | oracle_sid: "{{ oracle_source_database_sid }}" 64 | oracle_home: "{{ oracle_target_ohome_dir }}" 65 | rman_script: "delete noprompt expired archivelog all;" 66 | output_as_array: True 67 | output_omit_heading: True 68 | output_omit_ending: True 69 | register: rmanoutput1 70 | when: (convert_to_RAC == 'False') 71 | 72 | # Configure RMAN's channel device SBT_TAPE for OCI automatic backups 73 | - name: Configure RMAN's channel device SBT_TAPE for OCI automatic backups 74 | become: yes 75 | become_method: sudo 76 | become_user: "{{ oracle_user }}" 77 | oracle_rman_module: 78 | oracle_sid: "{{ oracle_source_database_sid }}" 79 | oracle_home: "{{ oracle_target_ohome_dir }}" 80 | rman_script: "{{ lookup('template', '../templates/rman_configure_channel_device_to_oss_script.j2') }}" 81 | rman_logfile: "{{ rman_log_path }}/rman_configure_channel_device_to_oss_{{ oracle_source_database_sid }}_{{ansible_date_time.iso8601_basic_short}}.log" 82 | output_as_array: True 83 | output_omit_heading: True 84 | output_omit_ending: True 85 | register: rmanoutput1 86 | when: (convert_to_RAC == 'False') 87 | 88 | ################################################################################################ 89 | # Update database with current backupconfig (when oracle_target_database_oci_bucketname not set) 90 | ################################################################################################ 91 | 92 | # Execute dbcli list-databases to check 93 | - name: Execute dbcli list-databases to check 94 | become: yes 95 | become_method: sudo 96 | oracle_dbcli_module: 97 | dbcli_command: 'list-databases' 98 | register: dbcli_registered_output4 99 | 100 | # Set databases_list fact 101 | - name: Set databases_list fact 102 | set_fact: 103 | databases_list: "{{ dbcli_registered_output4.dbcli_output }}" 104 | 105 | # Set upper_database_id and upper_backupconfig_id fact 106 | - name: Set upper_database_id and upper_backupconfig_id fact 107 | set_fact: 108 | upper_database_id: "{{ item.id }}" 109 | upper_backupconfig_id: "{{ item.backupConfigId }}" 110 | loop: "{{ databases_list }}" 111 | when: 112 | - item.databaseUniqueName == '{{ oracle_target_database_unique_name_upper }}' 113 | 114 | # Set database_id and backupconfig_id fact 115 | - name: Set database_id and backupconfig_id fact 116 | set_fact: 117 | database_id: "{{ item.id }}" 118 | backupconfig_id: "{{ item.backupConfigId }}" 119 | loop: "{{ databases_list }}" 120 | when: 121 | - item.databaseUniqueName == '{{ oracle_target_database_unique_name }}' 122 | 123 | # Execute dbcli update-database (oracle_target_database_unique_name_upper) 124 | - name: Execute dbcli update-database (oracle_target_database_unique_name_upper) 125 | become: yes 126 | become_method: sudo 127 | oracle_dbcli_module: 128 | dbcli_command: 'update-database' 129 | db_id: '{{ upper_database_id }}' 130 | register_database_backupconfigid: '{{ upper_backupconfig_id }}' 131 | as_json: False 132 | register: dbcli_registered_output7 133 | when: (upper_database_id is defined) and (upper_backupconfig_id is defined) and (update_database_with_new_backupconfig == 'True') 134 | 135 | # Execute dbcli update-database (oracle_target_database_unique_name) 136 | - name: Execute dbcli update-database (oracle_target_database_unique_name) 137 | become: yes 138 | become_method: sudo 139 | oracle_dbcli_module: 140 | dbcli_command: 'update-database' 141 | db_id: '{{ database_id }}' 142 | register_database_backupconfigid: '{{ backupconfig_id }}' 143 | as_json: False 144 | register: dbcli_registered_output7 145 | when: (database_id is defined) and (backupconfig_id is defined) and (update_database_with_new_backupconfig == 'True') 146 | 147 | 148 | -------------------------------------------------------------------------------- /roles/target_backup_config_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Execute database backup configuration in OCI Control Plane (with DBCLI) 5 | # 6 | 7 | - import_tasks: configure_automatic_backup_with_DBCLI.yml 8 | when: (register_in_OCI == 'True') and (convert_to_ExaCS == 'False') and (oracle_target_database_oci_bucketname == '') 9 | 10 | - import_tasks: configure_manual_backup_with_DBCLI.yml 11 | when: (register_in_OCI == 'True') and (convert_to_ExaCS == 'False') and (oracle_target_database_oci_bucketname != '') 12 | -------------------------------------------------------------------------------- /roles/target_backup_config_role/templates/rman_configure_channel_device_to_oss_script.j2: -------------------------------------------------------------------------------- 1 | CONFIGURE CHANNEL DEVICE TYPE "SBT_TAPE" MAXPIECESIZE 2 G FORMAT "%d_%I_%U_%T_%t" PARMS "SBT_LIBRARY={{ lib_dir_oci_automatic_backups }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file_dir_oci_automatic_backups }}/{{ oracle_source_dbid }}/opc_{{ oracle_target_database_unique_name }}.ora)"; 2 | -------------------------------------------------------------------------------- /roles/target_backup_config_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | oci_backupconfig: "{{ oci_backupconfig_prefix}}{{ oracle_target_database_unique_name }}" 5 | oracle_target_database_unique_name_upper: "{{ oracle_target_database_unique_name.split('_')[0] | upper }}_{{ oracle_target_database_unique_name.split('_')[1] }}" -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode1_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode1_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Convert SI to ExaCS RACNODE1 5 | # 6 | 7 | - import_tasks: convert_source_to_exacs_racnode1_on_target.yml 8 | when: convert_to_RAC 9 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode1_role/templates/tnsnames.ora.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode1_role/templates/tnsnames.ora_11g.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode1_role/templates/tnsnames.ora_multitenant.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode1_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | target_exacs_hostname_fact_table: "{{ groups['target'] }}" 5 | target_exacs_host_count: "{{ groups['target'] | length }}" 6 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Convert SI to ExaCS RACNODE2+ 5 | # 6 | 7 | - import_tasks: tde_wallet_download_from_oss.yml 8 | when: tde_download_from_oss 9 | 10 | - import_tasks: convert_source_to_exacs_racnode2+_on_target.yml 11 | when: convert_to_RAC 12 | 13 | 14 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/tasks/tde_wallet_download_from_oss.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # TDE wallet download from OSS 5 | # 6 | 7 | # Create TDE directory on target 8 | - name: Create TDE directory on target 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | file: 13 | path: "{{ oracle_target_wallet_dir }}" 14 | state: directory 15 | owner: "{{ oracle_user }}" 16 | 17 | # Download TDE file from OSS 18 | - name: Download TDE file from OSS 19 | become: yes 20 | become_method: sudo 21 | become_user: "{{ oracle_user }}" 22 | command: 'curl -v -X GET -u "{{ oci_user }}:{{ oci_authtoken_pass }}" {{ oci_swiftobjectstorage_url }}/{{ oci_oss_container }}/{{ oracle_source_database_sid }}_tde.tgz --output {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tgz' 23 | 24 | # Unpack the source wallet on target TDE location 25 | - name: Unpack the source wallet on target TDE location 26 | become: yes 27 | become_method: sudo 28 | become_user: "{{ oracle_user }}" 29 | unarchive: 30 | src: "{{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tgz" 31 | dest: "{{ oracle_target_wallet_dir }}" 32 | remote_src: yes 33 | 34 | # Create TNS directory for sqlnet.ora on target 35 | - name: Create TNS directory for sqlnet.ora on target 36 | become: yes 37 | become_method: sudo 38 | become_user: "{{ oracle_user }}" 39 | file: 40 | path: "{{ oracle_target_ohome_dir }}/network/admin/{{ oracle_source_database_sid }}/" 41 | state: directory 42 | owner: "{{ oracle_user }}" 43 | 44 | # Upload sqlnet.ora file template 45 | - name: Upload sqlnet.ora file template 46 | become: yes 47 | become_method: sudo 48 | template: 49 | src: "../templates/sqlnet.ora.j2" 50 | dest: "{{ oracle_target_ohome_dir }}/network/admin/{{ oracle_source_database_sid }}/sqlnet.ora" 51 | owner: "{{ oracle_user }}" 52 | 53 | 54 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/templates/sqlnet.ora.j2: -------------------------------------------------------------------------------- 1 | ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY={{ oracle_target_wallet_dir }}))) 2 | 3 | SQLNET.ENCRYPTION_SERVER=REQUIRED 4 | SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 5 | SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 6 | SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 7 | SQLNET.ENCRYPTION_CLIENT=REQUIRED 8 | SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 9 | SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 10 | SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 11 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/templates/tnsnames.ora.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/templates/tnsnames.ora_11g.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/templates/tnsnames.ora_multitenant.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_exacs_racnode2+_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | target_exacs_hostname_index: "{{ groups['target'].index(inventory_hostname) }}" 6 | target_exacs_oracle_instance_index: "{{ ( target_exacs_hostname_index | int ) + 1 }}" 7 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode1_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_convert_to_racnode1_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Convert SI to RACNODE1 5 | # 6 | 7 | - import_tasks: convert_source_to_racnode1_on_target.yml 8 | when: convert_to_RAC -------------------------------------------------------------------------------- /roles/target_convert_to_racnode1_role/templates/tnsnames.ora.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_racnode1_role/templates/tnsnames.ora_11g.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode1_role/templates/tnsnames.ora_multitenant.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_racnode1_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Convert SI to RACNODE2 5 | # 6 | 7 | - import_tasks: tde_wallet_download_from_oss.yml 8 | when: tde_download_from_oss 9 | 10 | - import_tasks: convert_source_to_racnode2_on_target.yml 11 | when: convert_to_RAC 12 | 13 | 14 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/tasks/tde_wallet_download_from_oss.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # TDE wallet download from OSS 5 | # 6 | 7 | # Create TDE directory on target 8 | - name: Create TDE directory on target 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | file: 13 | path: "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}" 14 | state: directory 15 | owner: "{{ oracle_user }}" 16 | 17 | # Download TDE file from OSS 18 | - name: Download TDE file from OSS 19 | become: yes 20 | become_method: sudo 21 | become_user: "{{ oracle_user }}" 22 | command: 'curl -v -X GET -u "{{ oci_user }}:{{ oci_authtoken_pass }}" {{ oci_swiftobjectstorage_url }}/{{ oci_oss_container }}/{{ oracle_source_database_sid }}_tde.tgz --output {{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}//{{ oracle_source_database_sid }}_tde.tgz' 23 | 24 | # Unpack the source wallet on target TDE location 25 | - name: Unpack the source wallet on target TDE location 26 | become: yes 27 | become_method: sudo 28 | become_user: "{{ oracle_user }}" 29 | unarchive: 30 | src: "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}/{{ oracle_source_database_sid }}_tde.tgz" 31 | dest: "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}" 32 | remote_src: yes 33 | 34 | # Upload sqlnet.ora file template 35 | - name: Upload sqlnet.ora file template 36 | become: yes 37 | become_method: sudo 38 | template: 39 | src: "../templates/sqlnet.ora.j2" 40 | dest: "{{ oracle_target_ohome_dir }}/network/admin/sqlnet.ora" 41 | owner: "{{ oracle_user }}" 42 | 43 | 44 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/templates/sqlnet.ora.j2: -------------------------------------------------------------------------------- 1 | ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY={{ oracle_target_wallet_dir }}/$ORACLE_UNQNAME))) 2 | 3 | SQLNET.ENCRYPTION_SERVER=REQUIRED 4 | SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 5 | SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 6 | SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 7 | SQLNET.ENCRYPTION_CLIENT=REQUIRED 8 | SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 9 | SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 10 | SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 11 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/templates/tnsnames.ora.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_source_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_source_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/templates/tnsnames.ora_11g.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_source_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_source_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/templates/tnsnames.ora_multitenant.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_source_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_source_database_unique_name }}.{{ target_scan_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_scan_dns_name }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_scan_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} -------------------------------------------------------------------------------- /roles/target_convert_to_racnode2_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | -------------------------------------------------------------------------------- /roles/target_discovery_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_discovery_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Discover target system 5 | # 6 | 7 | - import_tasks: discover_target.yml 8 | # when: discover_target == 'True' 9 | 10 | 11 | -------------------------------------------------------------------------------- /roles/target_enable_tde_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_enable_tde_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Enable TDE on target 5 | # 6 | 7 | - import_tasks: enable_tde.yml 8 | 9 | -------------------------------------------------------------------------------- /roles/target_enable_tde_role/templates/orapki_create_wallet_11g.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_ohome_dir }}/bin/orapki wallet create -wallet "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}" -auto_login <'/tmp/{{ oracle_source_database_sid }}_manifest_file.xml');" 64 | ignore_ORA_errors: True 65 | output_as_array: True 66 | register: sqlplusoutput4 67 | 68 | # Shutdown non-CDB database on target 69 | - name: Shutdown non-CDB database on target 70 | become: yes 71 | become_method: sudo 72 | become_user: "{{ oracle_user }}" 73 | oracle_sqlplus_module: 74 | oracle_sid: "{{ oracle_source_database_sid }}" 75 | oracle_home: "{{ oracle_target_ohome_dir }}" 76 | sql_statement: "shutdown immediate;" 77 | ignore_ORA_errors: True 78 | output_as_array: True 79 | register: sqlplusoutput5 80 | -------------------------------------------------------------------------------- /roles/target_plug_noncdb_to_cdb_role/tasks/verify_manifest_on_cdb.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Verify plug compatibility for non-CDB to be plugged as PDB to CDB on target 5 | # 6 | 7 | # Shutdown CDB database on target 8 | - name: Shutdown CDB database on target 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | oracle_sqlplus_module: 13 | oracle_sid: "{{ plug_into_cdb }}" 14 | oracle_home: "{{ oracle_target_ohome_dir }}" 15 | sql_statement: "shutdown immediate;" 16 | ignore_ORA_errors: True 17 | output_as_array: True 18 | register: sqlplusoutput1 19 | 20 | # Startup CDB database on target 21 | - name: Startup CDB database on target 22 | become: yes 23 | become_method: sudo 24 | become_user: "{{ oracle_user }}" 25 | oracle_sqlplus_module: 26 | oracle_sid: "{{ plug_into_cdb }}" 27 | oracle_home: "{{ oracle_target_ohome_dir }}" 28 | sql_statement: "startup open;" 29 | ignore_ORA_errors: True 30 | output_as_array: True 31 | register: sqlplusoutput2 32 | 33 | # Execute DBMS_PDB.CHECK_PLUG_COMPATIBILITY for manifest file 34 | - name: Execute DBMS_PDB.CHECK_PLUG_COMPATIBILITY for manifest file 35 | become: yes 36 | become_method: sudo 37 | become_user: "{{ oracle_user }}" 38 | oracle_sqlplus_module: 39 | oracle_sid: "{{ plug_into_cdb }}" 40 | oracle_home: "{{ oracle_target_ohome_dir }}" 41 | sql_statement: "{{ lookup('template', '../templates/CHECK_PLUG_COMPATIBILITY.j2') }}" 42 | ignore_ORA_errors: True 43 | output_as_array: True 44 | register: sqlplusoutput3 45 | 46 | # Verify PDB_PLUG_IN_VIOLATIONS for non-CDB to be plugged 47 | - name: Verify PDB_PLUG_IN_VIOLATIONS for non-CDB to be plugged 48 | become: yes 49 | become_method: sudo 50 | become_user: "{{ oracle_user }}" 51 | oracle_sqlplus_module: 52 | oracle_sid: "{{ plug_into_cdb }}" 53 | oracle_home: "{{ oracle_target_ohome_dir }}" 54 | sql_statement: "SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name=UPPER('{{ oracle_source_database_sid }}') and type='ERROR' and status='PENDING';" 55 | ignore_ORA_errors: True 56 | output_as_array: True 57 | register: sqlplusoutput4 58 | 59 | # Set fact for pdb_plug_in_violations 60 | - name: Set fact for pdb_plug_in_violations 61 | set_fact: 62 | pdb_plug_in_violations: "{{ sqlplusoutput4.sqlplus_message[0] }}" 63 | 64 | # Show pdb_plug_in_violations 65 | - name: Show pdb_plug_in_violations 66 | debug: 67 | msg: "{{ pdb_plug_in_violations }}" 68 | when: (pdb_plug_in_violations is defined) 69 | 70 | # Fail if pdb_plug_in_violations has errors 71 | - name: Fail if pdb_plug_in_violations has errors 72 | debug: 73 | msg: "PDB PLUG IN VIOLATIONS table has errors. Please review before moving forward... {{ pdb_plug_in_violations }}" 74 | when: (pdb_plug_in_violations is defined) and (pdb_plug_in_violations|length>0) 75 | failed_when: (pdb_plug_in_violations is defined) and (pdb_plug_in_violations|length>0) 76 | 77 | 78 | -------------------------------------------------------------------------------- /roles/target_plug_noncdb_to_cdb_role/templates/CHECK_PLUG_COMPATIBILITY.j2: -------------------------------------------------------------------------------- 1 | SET SERVEROUTPUT ON; 2 | DECLARE 3 | Compatible CONSTANT VARCHAR2(3) :=CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/tmp/{{ oracle_source_database_sid }}_manifest_file.xml') 4 | WHEN TRUE THEN 'YES' 5 | ELSE 'NO' 6 | END; 7 | BEGIN 8 | DBMS_OUTPUT.PUT_LINE(compatible); 9 | END; 10 | / 11 | -------------------------------------------------------------------------------- /roles/target_plug_noncdb_to_cdb_role/templates/sqlnet.ora.j2: -------------------------------------------------------------------------------- 1 | ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY={{ plug_temporal_tde_wallet_dir }} ))) 2 | 3 | SQLNET.ENCRYPTION_SERVER=REQUIRED 4 | SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 5 | SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 6 | SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 7 | SQLNET.ENCRYPTION_CLIENT=REQUIRED 8 | SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 9 | SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 10 | SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 11 | -------------------------------------------------------------------------------- /roles/target_restore_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_restore_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Execute the restore on the target 5 | # 6 | 7 | - import_tasks: clear_source_on_target.yml 8 | when: (clear_source_on_target == 'True') 9 | 10 | - import_tasks: prepare_target_rman_oss.yml 11 | when: (prepare_rman_on_target == 'True') 12 | 13 | - import_tasks: tde_wallet_download_from_oss.yml 14 | when: (tde_download_from_oss == 'True') 15 | 16 | - import_tasks: restore_source_on_target_from_oss_level_0.yml 17 | when: (restore_level0 == 'True') 18 | 19 | - import_tasks: restore_source_on_target_from_oss_level_1.yml 20 | when: (restore_level1 == 'True') 21 | 22 | - import_tasks: open_resetlogs_and_post_migration_clean.yml 23 | when: (open_resetlogs == 'True') 24 | 25 | 26 | -------------------------------------------------------------------------------- /roles/target_restore_role/tasks/prepare_target_rman_oss.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Prepare target RMAN for restore from OSS 5 | # 6 | 7 | # Upload Oracle Database Cloud Backup Module 8 | - name: Upload Oracle Database Cloud Backup Module 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | copy: 13 | src: "{{ opc_installer_zip_src_location }}" 14 | dest: "{{ opc_installer_zip_dest_location }}" 15 | 16 | # Unzip Oracle Database Cloud Backup Module 17 | - name: Unzip Oracle Database Cloud Backup Module 18 | become: yes 19 | become_method: sudo 20 | become_user: "{{ oracle_user }}" 21 | unarchive: 22 | src: "{{ opc_installer_zip_dest_location }}" 23 | dest: "{{ opc_installer_dest_location }}" 24 | remote_src: yes 25 | 26 | # Setup Oracle Database Cloud Backup Module 27 | - name: Setup Oracle Database Cloud Backup Module 28 | become: yes 29 | become_method: sudo 30 | become_user: "{{ oracle_user }}" 31 | oracle_cloud_odcb_module: 32 | opc_install_location: "{{ opc_installer_dest_location }}/opc_installer/opc_installer/" 33 | host: "{{ oci_swiftobjectstorage_url }}" 34 | opc_id: "{{ oci_user }}" 35 | opc_pass: "{{ oci_authtoken_pass }}" 36 | container: "{{ oci_oss_container }}" 37 | wallet_dir: "{{ wallet_dir }}" 38 | lib_dir: "{{ lib_dir }}" 39 | config_file: "{{ config_file }}" 40 | 41 | -------------------------------------------------------------------------------- /roles/target_restore_role/tasks/tde_wallet_download_from_oss.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # TDE wallet download from OSS 5 | # 6 | 7 | # Create TDE directory on target (non ExaCS) 8 | - name: Create TDE directory on target (non ExaCS) 9 | become: yes 10 | become_method: sudo 11 | become_user: "{{ oracle_user }}" 12 | file: 13 | path: "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}" 14 | state: directory 15 | owner: "{{ oracle_user }}" 16 | when: (convert_to_ExaCS == 'False') and (skip_tde_download_stay_with_current_tde == 'False') 17 | 18 | # Create TDE directory on target (ExaCS) 19 | - name: Create TDE directory on target (ExaCS) 20 | become: yes 21 | become_method: sudo 22 | become_user: "{{ oracle_user }}" 23 | file: 24 | path: "{{ oracle_target_wallet_dir }}" 25 | state: directory 26 | owner: "{{ oracle_user }}" 27 | when: (convert_to_ExaCS == 'True') and (skip_tde_download_stay_with_current_tde == 'False') 28 | 29 | # Download TDE file from OSS (non ExaCS) 30 | - name: Download TDE file from OSS (non ExaCS) 31 | become: yes 32 | become_method: sudo 33 | become_user: "{{ oracle_user }}" 34 | command: 'curl -v -X GET -u "{{ oci_user }}:{{ oci_authtoken_pass }}" {{ oci_swiftobjectstorage_url }}/{{ oci_oss_container }}/{{ oracle_source_database_sid }}_tde.tgz --output {{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}/{{ oracle_source_database_sid }}_tde.tgz' 35 | when: (convert_to_ExaCS == 'False') and (skip_tde_download_stay_with_current_tde == 'False') 36 | 37 | # Unpack the source wallet on target TDE location (non ExaCS) 38 | - name: Unpack the source wallet on target TDE location (non ExaCS) 39 | become: yes 40 | become_method: sudo 41 | become_user: "{{ oracle_user }}" 42 | unarchive: 43 | src: "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}/{{ oracle_source_database_sid }}_tde.tgz" 44 | dest: "{{ oracle_target_wallet_dir }}/{{ oracle_target_database_unique_name }}" 45 | remote_src: yes 46 | when: (convert_to_ExaCS == 'False') and (skip_tde_download_stay_with_current_tde == 'False') and (use_unarchive_ansible_module == 'True') 47 | 48 | # Unpack the source wallet on target TDE location (ExaCS, gunzip) 49 | - name: Unpack the source wallet on target TDE location (ExaCS) 50 | become: yes 51 | become_method: sudo 52 | become_user: "{{ oracle_user }}" 53 | shell: "gunzip -c {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tgz > {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tar" 54 | when: (convert_to_ExaCS == 'False') and (skip_tde_download_stay_with_current_tde == 'False') and (use_unarchive_ansible_module == 'False') 55 | 56 | # Untar the source wallet on target TDE location (ExaCS, tar) 57 | - name: Untar the source wallet on target TDE location (ExaCS) 58 | become: yes 59 | become_method: sudo 60 | become_user: "{{ oracle_user }}" 61 | shell: "tar -C {{ oracle_target_wallet_dir }} -xvf {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tar" 62 | when: (convert_to_ExaCS == 'False') and (skip_tde_download_stay_with_current_tde == 'False') and (use_unarchive_ansible_module == 'False') 63 | 64 | # Download TDE file from OSS (ExaCS) 65 | - name: Download TDE file from OSS (ExaCS) 66 | become: yes 67 | become_method: sudo 68 | become_user: "{{ oracle_user }}" 69 | command: 'curl -v -X GET -u "{{ oci_user }}:{{ oci_authtoken_pass }}" {{ oci_swiftobjectstorage_url }}/{{ oci_oss_container }}/{{ oracle_source_database_sid }}_tde.tgz --output {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tgz' 70 | when: (convert_to_ExaCS == 'True') and (skip_tde_download_stay_with_current_tde == 'False') 71 | 72 | # Unpack the source wallet on target TDE location (ExaCS) 73 | - name: Unpack the source wallet on target TDE location (ExaCS) 74 | become: yes 75 | become_method: sudo 76 | become_user: "{{ oracle_user }}" 77 | unarchive: 78 | src: "{{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tgz" 79 | dest: "{{ oracle_target_wallet_dir }}" 80 | remote_src: yes 81 | when: (convert_to_ExaCS == 'True') and (skip_tde_download_stay_with_current_tde == 'False') and (use_unarchive_ansible_module == 'True') 82 | 83 | # Unpack the source wallet on target TDE location (ExaCS, gunzip) 84 | - name: Unpack the source wallet on target TDE location (ExaCS) 85 | become: yes 86 | become_method: sudo 87 | become_user: "{{ oracle_user }}" 88 | shell: "gunzip -c {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tgz > {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tar" 89 | when: (convert_to_ExaCS == 'True') and (skip_tde_download_stay_with_current_tde == 'False') and (use_unarchive_ansible_module == 'False') 90 | 91 | # Untar the source wallet on target TDE location (ExaCS, tar) 92 | - name: Untar the source wallet on target TDE location (ExaCS) 93 | become: yes 94 | become_method: sudo 95 | become_user: "{{ oracle_user }}" 96 | shell: "tar -C {{ oracle_target_wallet_dir }} -xvf {{ oracle_target_wallet_dir }}/{{ oracle_source_database_sid }}_tde.tar" 97 | when: (convert_to_ExaCS == 'True') and (skip_tde_download_stay_with_current_tde == 'False') and (use_unarchive_ansible_module == 'False') 98 | 99 | # Upload sqlnet.ora file template (non ExaCS) 100 | - name: Upload sqlnet.ora file template (non ExaCS) 101 | become: yes 102 | become_method: sudo 103 | template: 104 | src: "../templates/sqlnet.ora.j2" 105 | dest: "{{ oracle_target_ohome_dir }}/network/admin/sqlnet.ora" 106 | owner: "{{ oracle_user }}" 107 | when: (convert_to_ExaCS == 'False') 108 | 109 | # Create TNS directory for sqlnet.ora on target (ExaCS) 110 | - name: Create TNS directory for sqlnet.ora on target (ExaCS) 111 | become: yes 112 | become_method: sudo 113 | become_user: "{{ oracle_user }}" 114 | file: 115 | path: "{{ oracle_target_ohome_dir }}/network/admin/{{ oracle_source_database_sid }}/" 116 | state: directory 117 | owner: "{{ oracle_user }}" 118 | when: (convert_to_ExaCS == 'True') 119 | 120 | # Upload sqlnet.ora file template (ExaCS) 121 | - name: Upload sqlnet.ora file template (ExaCS) 122 | become: yes 123 | become_method: sudo 124 | template: 125 | src: "../templates/sqlnet_exacs.ora.j2" 126 | dest: "{{ oracle_target_ohome_dir }}/network/admin/{{ oracle_source_database_sid }}/sqlnet.ora" 127 | owner: "{{ oracle_user }}" 128 | when: (convert_to_ExaCS == 'True') 129 | 130 | 131 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/initora.j2: -------------------------------------------------------------------------------- 1 | instance_name='{{ oracle_source_database_sid }}' 2 | db_name='{{ oracle_source_database_sid }}' 3 | db_unique_name='{{ oracle_target_database_unique_name }}' 4 | 5 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/rman_additional_recovery_script.j2: -------------------------------------------------------------------------------- 1 | {% if rman_password_on_transit is defined %} set DECRYPTION identified by "{{ rman_password_on_transit }}"; {% endif %} run { {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} recover database; } 2 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/rman_crosscheck_archivelogs_and_delete_script.j2: -------------------------------------------------------------------------------- 1 | run { crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired archivelog all; } -------------------------------------------------------------------------------- /roles/target_restore_role/templates/rman_recover_database_from_backup_inc1_script.j2: -------------------------------------------------------------------------------- 1 | {% if rman_password_on_transit is defined %} set DECRYPTION identified by "{{ rman_password_on_transit }}"; {% endif %} run { set ARCHIVELOG DESTINATION to "{{ grid_target_reco_dg }}"; {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} recover database; } 2 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/rman_restore_controlfile_script.j2: -------------------------------------------------------------------------------- 1 | set dbid {{ oracle_source_dbid }}; {% if rman_password_on_transit is defined %} set DECRYPTION identified by "{{ rman_password_on_transit }}"; {% endif %} run { SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO "{{ rman_set_cf_autobackup_format_for_sbt_type_device }}"; allocate channel c1 device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; RESTORE CONTROLFILE FROM AUTOBACKUP; } 2 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/rman_restore_database_from_backup_inc0_script.j2: -------------------------------------------------------------------------------- 1 | {% if rman_password_on_transit is defined %} set DECRYPTION identified by "{{ rman_password_on_transit }}"; {% endif %} {% if crosscheck_before_restore_level0 is defined %} allocate channel for maintenance device type disk; DELETE NOPROMPT OBSOLETE; {% endif %} run { set ARCHIVELOG DESTINATION to "{{ grid_target_reco_dg }}"; set NEWNAME for database to "{{ grid_target_data_dg }}"; {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} restore database; } 2 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/rman_restore_spfile_script.j2: -------------------------------------------------------------------------------- 1 | set dbid {{ oracle_source_dbid }}; {% if startup_nomount_force == 'True' %} startup force nomount; {% endif %} {% if startup_nomount_force == 'False' %} startup nomount pfile="/tmp/init{{ oracle_source_database_sid }}.ora"; {% endif %} {% if rman_password_on_transit is defined %} set DECRYPTION identified by "{{ rman_password_on_transit }}"; {% endif %} run { SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO "{{ rman_set_cf_autobackup_format_for_sbt_type_device }}"; allocate channel c1 device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; RESTORE SPFILE to "{{ oracle_target_ohome_dir }}/dbs/spfile{{ oracle_source_database_sid }}.ora" FROM AUTOBACKUP;} 2 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/sqlnet.ora.j2: -------------------------------------------------------------------------------- 1 | ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY={{ oracle_target_wallet_dir }}/$ORACLE_UNQNAME))) 2 | 3 | SQLNET.ENCRYPTION_SERVER=REQUIRED 4 | SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 5 | SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 6 | SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 7 | SQLNET.ENCRYPTION_CLIENT=REQUIRED 8 | SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 9 | SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 10 | SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 11 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/sqlnet_exacs.ora.j2: -------------------------------------------------------------------------------- 1 | ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY={{ oracle_target_wallet_dir }}))) 2 | 3 | SQLNET.ENCRYPTION_SERVER=REQUIRED 4 | SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 5 | SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 6 | SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 7 | SQLNET.ENCRYPTION_CLIENT=REQUIRED 8 | SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 9 | SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 10 | SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 11 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/tnsnames.ora_11g.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_fqdn }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | -------------------------------------------------------------------------------- /roles/target_restore_role/templates/tnsnames.ora_multitenant.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_target_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_fqdn }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_target_database_unique_name }}.{{ target_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_fqdn }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} 29 | -------------------------------------------------------------------------------- /roles/target_restore_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | -------------------------------------------------------------------------------- /roles/target_tests_and_validation_role/defaults/main.yml: -------------------------------------------------------------------------------- 1 | ../../../defaults/main.yml -------------------------------------------------------------------------------- /roles/target_tests_and_validation_role/tasks/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | # Test and Validation after Setup Phase 5 | # 6 | 7 | - import_tasks: test_and_validation_of_SI.yml 8 | when: convert_to_RAC == 'False' 9 | 10 | - import_tasks: test_and_validation_of_RAC.yml 11 | when: convert_to_RAC == 'True' 12 | -------------------------------------------------------------------------------- /roles/target_tests_and_validation_role/vars/main.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | target_exacs_hostname_index: "{{ groups['target'].index(inventory_hostname) }}" 5 | target_exacs_oracle_instance_index: "{{ ( target_exacs_hostname_index | int ) + 1 }}" 6 | -------------------------------------------------------------------------------- /setup_STEP0_backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP0_backup.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP0_backup.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Backup source (AWS DB on top of EC2 or OCI-C DBCS) 6 | - name: Backup source (AWS DB on top of EC2 or OCI-C DBCS) 7 | hosts: source[0] 8 | roles: 9 | - source_backup_role 10 | -------------------------------------------------------------------------------- /setup_STEP1_restore_SI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP1_restore_SI.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP1_restore_SI.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Restore source db on target OCI DBSystem 6 | - name: Restore source db on target OCI DBSystem 7 | hosts: target[0] 8 | roles: 9 | - target_restore_role 10 | -------------------------------------------------------------------------------- /setup_STEP1a_enable_tde.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP1a_enable_tde.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP1a_enable_tde.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Enable TDE on target OCI DBSystem 6 | - name: Enable TDE on target OCI DBSystem 7 | hosts: target[0] 8 | roles: 9 | - target_enable_tde_role 10 | -------------------------------------------------------------------------------- /setup_STEP1b_convert_to_CDB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP1b_convert_to_CDB.yml --module-path modules/ -i inventory --extra-vars @setup.json --extra-vars @noncdb_2_cdb.json -vvv --step 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP1b_convert_to_CDB.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Convert to CDB in target OCI DBSystem 6 | - name: Convert to CDB in target OCI DBSystem 7 | hosts: target[0] 8 | roles: 9 | - target_plug_noncdb_to_cdb_role 10 | -------------------------------------------------------------------------------- /setup_STEP2_convert_to_ExaCS_RAC.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP2_convert_to_ExaCS_RAC.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP2_convert_to_ExaCS_RAC.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Convert source SI to target RAC on OCI ExaCS DBSystem (racnode1) 6 | - name: Convert source SI to target RAC on OCI DBSystem (racnode1) 7 | hosts: target[0] 8 | roles: 9 | - target_convert_to_exacs_racnode1_role 10 | 11 | # Convert source SI to target RAC on OCI ExaCS DBSystem (racnode2+) 12 | - name: Convert source SI to target RAC on OCI ExaCS DBSystem (racnode2+) 13 | hosts: target[1:] 14 | roles: 15 | - target_convert_to_exacs_racnode2+_role 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /setup_STEP2_convert_to_VMDB_RAC.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP2_convert_to_VMDB_RAC.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP2_convert_to_VMDB_RAC.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Convert source SI to target RAC on OCI DBSystem (racnode1) 6 | - name: Convert source SI to target RAC on OCI DBSystem (racnode1) 7 | hosts: target[0] 8 | roles: 9 | - target_convert_to_racnode1_role 10 | 11 | # Convert source SI to target RAC on OCI DBSystem (racnode2) 12 | - name: Convert source SI to target RAC on OCI DBSystem (racnode2) 13 | hosts: target[1] 14 | roles: 15 | - target_convert_to_racnode2_role 16 | 17 | -------------------------------------------------------------------------------- /setup_STEP3_backup_config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook setup_STEP3_backup_config.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /setup_STEP3_backup_config.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Backup configuration in OCI DBSystem 6 | - name: Backup configuration in OCI DBSystem 7 | hosts: target[0] 8 | roles: 9 | - target_backup_config_role 10 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_additional_recovery_script.j2: -------------------------------------------------------------------------------- 1 | set DECRYPTION identified by "{{ rman_password_on_transit }}"; recover database; 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_backup_source_to_oss_inc0_script.j2: -------------------------------------------------------------------------------- 1 | SET ENCRYPTION IDENTIFIED BY "{{ rman_password_on_transit }}" ONLY; run { {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG TAG="{{ oracle_source_database_sid }}"; } 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_backup_source_to_oss_inc1_script.j2: -------------------------------------------------------------------------------- 1 | SET ENCRYPTION IDENTIFIED BY "{{ rman_password_on_transit }}" ONLY; run { {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG TAG="{{ oracle_source_database_sid }}"; } 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_configure_channel_device_to_oss_script.j2: -------------------------------------------------------------------------------- 1 | CONFIGURE CHANNEL DEVICE TYPE "SBT_TAPE" PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_configure_script.j2: -------------------------------------------------------------------------------- 1 | CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE; CONFIGURE BACKUP OPTIMIZATION OFF; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO "%F"; CONFIGURE ENCRYPTION FOR DATABASE ON; 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_recover_database_from_backup_inc1_script.j2: -------------------------------------------------------------------------------- 1 | set DECRYPTION identified by "{{ rman_password_on_transit }}"; run { set ARCHIVELOG DESTINATION to "{{ grid_target_reco_dg }}"; {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} recover database; } 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_restore_controlfile_script.j2: -------------------------------------------------------------------------------- 1 | set dbid {{ oracle_source_dbid }}; set DECRYPTION identified by "{{ rman_password_on_transit }}"; run { SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO "%F"; allocate channel c1 device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; RESTORE CONTROLFILE FROM AUTOBACKUP; } 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_restore_database_from_backup_inc0_script.j2: -------------------------------------------------------------------------------- 1 | set DECRYPTION identified by "{{ rman_password_on_transit }}"; allocate channel for maintenance device type disk; DELETE NOPROMPT OBSOLETE; allocate channel for maintenance type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; run { set ARCHIVELOG DESTINATION to "{{ grid_target_reco_dg }}"; set NEWNAME for database to "{{ grid_target_data_dg }}"; {% for item in rman_channels %} allocate channel {{ item }} device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})" FORMAT "BACKUP_%U"; {% endfor %} restore database; } 2 | -------------------------------------------------------------------------------- /templates/rman_scripts/rman_restore_spfile_script.j2: -------------------------------------------------------------------------------- 1 | set dbid {{ oracle_source_dbid }}; startup force nomount; set DECRYPTION identified by "{{ rman_password_on_transit }}"; run { SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO "%F"; allocate channel c1 device type sbt PARMS "SBT_LIBRARY={{ lib_dir }}/libopc.so, SBT_PARMS=(OPC_PFILE={{ config_file }})"; RESTORE SPFILE to "{{ oracle_target_ohome_dir }}/dbs/spfile{{ oracle_source_database_sid }}.ora" FROM AUTOBACKUP;} 2 | -------------------------------------------------------------------------------- /templates/setup.json_template.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks:False 2 | # setup.json - please fill empty values of variables which have not been discovered/configured so far. 3 | { 4 | "opc_installer_zip_src_location": "", 5 | "oci_endpoint_url": "", 6 | "oci_tenancy": "", 7 | "oci_user": "", 8 | "oci_authtoken_pass": "", 9 | "oci_oss_container": "", 10 | 11 | "oracle_source_RAC": "{{ hostvars[groups['source'][0]].oracle_source_RAC }}", 12 | "oracle_source_database_sid": "{{ hostvars[groups['source'][0]].oracle_source_database_sid }}", 13 | "oracle_source_ohome_dir": "{{ hostvars[groups['source'][0]].oracle_source_ohome_dir }}", 14 | "oracle_source_dbid": "{{ hostvars[groups['source'][0]].oracle_source_dbid }}", 15 | "oracle_source_wallet_dir": "{{ hostvars[groups['source'][0]].oracle_source_wallet_dir }}", 16 | "oracle_source_database_unique_name": "{{ hostvars[groups['source'][0]].oracle_source_database_unique_name }}", 17 | "oracle_source_version": "{{ hostvars[groups['source'][0]].oracle_source_version }}", 18 | "oracle_source_sysdba_password": "", 19 | 20 | "oracle_target_ohome_dir": "{{ hostvars[groups['target'][0]].oracle_target_ohome_dir }}", 21 | "oracle_target_adump_dir": "{{ hostvars[groups['target'][0]].oracle_target_adump_dir }}", 22 | "oracle_target_racnode1_adump_dir": "{{ hostvars[groups['target'][0]].oracle_target_racnode1_adump_dir }}", 23 | "oracle_target_racnode2_adump_dir": "{{ hostvars[groups['target'][0]].oracle_target_racnode2_adump_dir }}", 24 | "grid_target_ohome_dir": "{{ hostvars[groups['target'][0]].grid_target_ohome_dir }}", 25 | "oracle_target_database_unique_name": "{{ hostvars[groups['target'][0]].oracle_target_database_unique_name }}", 26 | "oracle_target_wallet_dir": "{{ hostvars[groups['target'][0]].oracle_target_wallet_dir }}", 27 | "grid_oracle_database_sid": "{{ hostvars[groups['target'][0]].grid_oracle_database_sid }}", 28 | "grid_target_data_dg": "{{ hostvars[groups['target'][0]].grid_target_data_dg }}", 29 | "grid_target_reco_dg": "{{ hostvars[groups['target'][0]].grid_target_reco_dg }}", 30 | 31 | "oracle_target_database_oci_endpoint_url": "", 32 | "oracle_target_database_oci_tenancy": "", 33 | "oracle_target_database_oci_user": "", 34 | "oracle_target_database_oci_authtoken_pass": "", 35 | "oracle_target_database_oci_bucketname": "", 36 | 37 | "prepare_rman_on_source": "True", 38 | "tde_upload_to_oss": "{{ hostvars[groups['source'][0]].tde_upload_to_oss }}", 39 | "backup_level0": "True", 40 | "backup_level1": "True", 41 | 42 | "clear_source_on_target": "True", 43 | "prepare_rman_on_target": "True", 44 | "tde_download_from_oss": "{{ hostvars[groups['source'][0]].tde_download_from_oss }}", 45 | "restore_level0": "True", 46 | "restore_level1": "True", 47 | "open_resetlogs": "True", 48 | "datapatch_on_target": "True", 49 | "register_in_OCI": "True", 50 | 51 | "convert_to_RAC": "{{ hostvars[groups['target'][0]].convert_to_RAC }}", 52 | "convert_to_ExaCS": "{{ hostvars[groups['target'][0]].convert_to_ExaCS }}" 53 | } 54 | -------------------------------------------------------------------------------- /templates/sqlnet/sqlnet.ora.j2: -------------------------------------------------------------------------------- 1 | ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY={{ oracle_target_wallet_dir }}/$ORACLE_UNQNAME))) 2 | 3 | SQLNET.ENCRYPTION_SERVER=REQUIRED 4 | SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED 5 | SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128) 6 | SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1) 7 | SQLNET.ENCRYPTION_CLIENT=REQUIRED 8 | SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED 9 | SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128) 10 | SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1) 11 | -------------------------------------------------------------------------------- /templates/sqlnet/tnsnames.ora.j2: -------------------------------------------------------------------------------- 1 | {{ oracle_source_database_unique_name }} = 2 | (DESCRIPTION = 3 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_fqdn }})(PORT = 1521)) 4 | (CONNECT_DATA = 5 | (SERVER = DEDICATED) 6 | (SERVICE_NAME = {{ oracle_source_database_unique_name }}.{{ target_dns_domain }}) 7 | (FAILOVER_MODE = 8 | (TYPE = select) 9 | (METHOD = basic) 10 | ) 11 | ) 12 | ) 13 | {% for item in pdbs_list_without_pdbseed %} 14 | 15 | {{ item }} = 16 | (DESCRIPTION = 17 | (ADDRESS = (PROTOCOL = TCP)(HOST = {{ target_fqdn }})(PORT = 1521)) 18 | (CONNECT_DATA = 19 | (SERVER = DEDICATED) 20 | (SERVICE_NAME = {{ item }}.{{ target_dns_domain }}) 21 | (FAILOVER_MODE = 22 | (TYPE = select) 23 | (METHOD = basic) 24 | ) 25 | ) 26 | ) 27 | 28 | {% endfor %} 29 | -------------------------------------------------------------------------------- /tests_after_setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | #Copyright (c) 2020, Oracle and/or its affiliates. 4 | #The Universal Permissive License (UPL), Version 1.0 5 | # 6 | ansible-playbook tests_after_setup.yml --module-path modules/ -i inventory --extra-vars @setup.json 7 | 8 | -------------------------------------------------------------------------------- /tests_after_setup.yml: -------------------------------------------------------------------------------- 1 | #Copyright (c) 2020, Oracle and/or its affiliates. 2 | #The Universal Permissive License (UPL), Version 1.0 3 | # 4 | 5 | # Test and validate source on target OCI DBSystem 6 | - name: Test and validate source on target OCI DBSystem 7 | hosts: target 8 | roles: 9 | - target_tests_and_validation_role 10 | --------------------------------------------------------------------------------