使用ansible-playbook自動化安裝Oracle DG資料庫19c

zetan·chen發表於2024-04-25

【用劇本安裝Oracle DG資料庫】

源庫是RAC,安裝的話可以參考之前內容,目標庫DG是單機檔案系統

說明:源庫是RAC架構,DG是單機檔案系統架構,管理使用dgbroker管理(這裡使用命令列操作),安裝單機資料庫然後使用createDuplicateDB方式建立DG庫,由於劇本指令碼較多,可以留言傳送指令碼

所有劇本目錄資訊

tree  oracle_dg/
oracle_dg/
├── files 一些安裝包
│   ├── compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
│   ├── expect-5.45-14.el7_1.x86_64.rpm
│   ├── oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
│   ├── pdksh-5.2.14-37.el5.x86_64.rpm
│   ├── tcl-8.5.13-8.el7.i686.rpm
│   └── tcl-8.5.13-8.el7.x86_64.rpm
├── tasks 劇本任務
│   ├── 01_change_os_setting_19cR3.yml
│   ├── 02_change_oracle_params_19cR3.yml
│   ├── 03_add_oracle_group_user_19cR3.yml
│   ├── 04_install_oracle_database_soft_19cR3.yml
│   ├── 05_run_oracle_rootsh_dg_node_19cR3.yml
│   ├── 06_run_oracle_listener_rac_and_dg_node_19cR3.yml
│   ├── 07_run_oracle_tnsnames_rac_and_dg_node_19cR3.yml
│   ├── 08_run_force_logging_standby_logfile_primary_node_19cR3.yml
│   ├── 09_run_dg_createduplicatedb_dg_node_19cR3.yml
│   ├── 10_seting_dgparameter_primary_dg_node_19cR3.yml
│   ├── 11_using_current_logfile_dg_node_19cR3.yml
│   ├── init_cluster.yml
│   ├── main_mauel.yml
│   ├── main.yml
│   ├── prepare.yml
│   └── split.yml
├── templates 一些指令碼
│   ├── add_standbylogfile.sql
│   ├── auto_grid_ssh02.sh
│   ├── auto_grid_ssh.sh
│   ├── auto_oracle_ssh02.sh
│   ├── auto_oracle_ssh.sh
│   ├── check_force_logging.sql
│   ├── check_standbylogfile.sql
│   ├── db.rsp
│   ├── dg_node_dgparameter_setting.sql
│   ├── dg_using_current_logfile.sql
│   ├── grid.rsp
│   ├── netca.rsp
│   ├── open_force_logging.sql
│   ├── primary_node_dgparameter_setting.sql
│   ├── sshUserSetup.sh
│   └── tnsnames.ora
└── vars 變數
    ├── main.yml
    └── main.yml_bak(這個是不使用dbbroker方式管理DG,不建議)

設定ansible hosts

[oracle_dg]
10.0.0.xx ansible_user=root ansible_ssh_pass=Lh22m2aJ6313 cluster_role=dg
10.0.0.xxx ansible_user=root ansible_ssh_pass=Lh22m2aJ6313 cluster_role=node1
10.0.0.xxx ansible_user=root ansible_ssh_pass=Lh22m2aJ6313 cluster_role=node2

設定劇本的環境變數

---

# OS
soft_dir: /home/soft       資料庫介質目錄
oracle_passwd: oracle      Oracle賬號密碼
oracle_base_dir: /u01/app  資料庫軟體目錄

# DB
oracle_sid: orcl           資料庫sid
characterset: ZHS16GBK     資料庫字符集
oracle_release_update: 34419443 資料庫RU版本
primary_standby_logfile: 120    standlog檔案大小M單位
data_dir: /home/oracle/oradata  資料庫資料目錄
archived_dir: /home/oracle/archivelog  資料庫歸檔目錄

最後安裝日誌資訊,以下遮蔽掉了IP資訊

ansible-playbook oracle_dg.yaml 

PLAY [oracle_dg] ************************************************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************************************************
ok: [10.0.0.xx]
ok: [10.0.0.xxx]
ok: [10.0.0.xxx]

TASK [oracle_dg : set hostname on dgnode] ***********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : create soft directory on dg node] *************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : copy expect tcl  rpm package on all node] *****************************************************************************************************************************
skipping: [10.0.0.xxx] => (item=expect-5.45-14.el7_1.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=tcl-8.5.13-8.el7.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=expect-5.45-14.el7_1.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=pdksh-5.2.14-37.el5.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=tcl-8.5.13-8.el7.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=pdksh-5.2.14-37.el5.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm) 
ok: [10.0.0.xx] => (item=expect-5.45-14.el7_1.x86_64.rpm)
ok: [10.0.0.xx] => (item=tcl-8.5.13-8.el7.x86_64.rpm)
ok: [10.0.0.xx] => (item=pdksh-5.2.14-37.el5.x86_64.rpm)
ok: [10.0.0.xx] => (item=compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm)
ok: [10.0.0.xx] => (item=oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm)

TASK [oracle_dg : install expect tcl  rpm on all node] **********************************************************************************************************************************
skipping: [10.0.0.xxx] => (item=[]) 
skipping: [10.0.0.xxx] => (item=[]) 
ok: [10.0.0.xx] => (item=[u'/home/soft/tcl-8.5.13-8.el7.x86_64.rpm', u'/home/soft/expect-5.45-14.el7_1.x86_64.rpm'])

TASK [oracle_dg] ************************************************************************************************************************************************************************
ok: [10.0.0.xx]
ok: [10.0.0.xxx]
ok: [10.0.0.xxx]

TASK [oracle_dg : declare dg host group] ************************************************************************************************************************************************
ok: [10.0.0.xx] => (item=10.0.0.xx)
ok: [10.0.0.xx] => (item=10.0.0.xxx)
ok: [10.0.0.xx] => (item=10.0.0.xxx)
ok: [10.0.0.xxx] => (item=10.0.0.xx)
ok: [10.0.0.xxx] => (item=10.0.0.xxx)
ok: [10.0.0.xxx] => (item=10.0.0.xxx)
ok: [10.0.0.xxx] => (item=10.0.0.xx)
ok: [10.0.0.xxx] => (item=10.0.0.xxx)
ok: [10.0.0.xxx] => (item=10.0.0.xxx)

TASK [oracle_dg : change SELinux is disable] ********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : stop firewall] ********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : stop auto start a firewall] *******************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : install oracle-database-preinstall   rpm] *****************************************************************************************************************************
skipping: [10.0.0.xxx] => (item=oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm) 
skipping: [10.0.0.xxx] => (item=oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm) 
ok: [10.0.0.xx] => (item=oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm)

TASK [oracle_dg : stop auto start a avahi-daemon] ***************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : stop avahi-daemon] ****************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : stop auto start a chronyd] ********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : stop chronyd] *********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : backup for /etc/hosts] ************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : create file for oracle.hosts] *****************************************************************************************************************************************
skipping: [10.0.0.xxx] => (item=###FOR DG BEGIN) 
skipping: [10.0.0.xxx] => (item=###Source Public IP) 
skipping: [10.0.0.xxx] => (item=10.0.0.xxx     rac01) 
skipping: [10.0.0.xxx] => (item=10.0.0.xxx     rac02) 
skipping: [10.0.0.xxx] => (item= ) 
skipping: [10.0.0.xxx] => (item=###Source Scan IP) 
skipping: [10.0.0.xxx] => (item=###FOR DG BEGIN) 
skipping: [10.0.0.xxx] => (item=10.0.0.189     rac-scan) 
skipping: [10.0.0.xxx] => (item=###Source Public IP) 
skipping: [10.0.0.xxx] => (item= ) 
skipping: [10.0.0.xxx] => (item=10.0.0.xxx     rac01) 
skipping: [10.0.0.xxx] => (item=###DG Public IP) 
skipping: [10.0.0.xxx] => (item=10.0.0.xxx     rac02) 
skipping: [10.0.0.xxx] => (item=10.0.0.xx      dbca_stby) 
skipping: [10.0.0.xxx] => (item= ) 
skipping: [10.0.0.xxx] => (item=###FOR DG END) 
skipping: [10.0.0.xxx] => (item=###Source Scan IP) 
skipping: [10.0.0.xxx] => (item=10.0.0.189     rac-scan) 
skipping: [10.0.0.xxx] => (item= ) 
skipping: [10.0.0.xxx] => (item=###DG Public IP) 
skipping: [10.0.0.xxx] => (item=10.0.0.xx      dbca_stby) 
skipping: [10.0.0.xxx] => (item=###FOR DG END) 
ok: [10.0.0.xx] => (item=###FOR DG BEGIN)
ok: [10.0.0.xx] => (item=###Source Public IP)
ok: [10.0.0.xx] => (item=10.0.0.xxx     rac01)
ok: [10.0.0.xx] => (item=10.0.0.xxx     rac02)
ok: [10.0.0.xx] => (item= )
ok: [10.0.0.xx] => (item=###Source Scan IP)
ok: [10.0.0.xx] => (item=10.0.0.189     rac-scan)
ok: [10.0.0.xx] => (item= )
ok: [10.0.0.xx] => (item=###DG Public IP)
ok: [10.0.0.xx] => (item=10.0.0.xx      dbca_stby)
ok: [10.0.0.xx] => (item=###FOR DG END)

TASK [oracle_dg : create file for rac oracle.hosts] *************************************************************************************************************************************
skipping: [10.0.0.xx] => (item=###FOR DG BEGIN) 
skipping: [10.0.0.xx] => (item=###DG Public IP) 
skipping: [10.0.0.xx] => (item=10.0.0.xx      dbca_stby) 
skipping: [10.0.0.xx] => (item=###FOR DG END) 
ok: [10.0.0.xxx] => (item=###FOR DG BEGIN)
ok: [10.0.0.xxx] => (item=###FOR DG BEGIN)
ok: [10.0.0.xxx] => (item=###DG Public IP)
ok: [10.0.0.xxx] => (item=###DG Public IP)
ok: [10.0.0.xxx] => (item=10.0.0.xx      dbca_stby)
ok: [10.0.0.xxx] => (item=10.0.0.xx      dbca_stby)
ok: [10.0.0.xxx] => (item=###FOR DG END)
ok: [10.0.0.xxx] => (item=###FOR DG END)

TASK [oracle_dg : backup for grub.cfg] **************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : change for grub.cfg] **************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: Consider using the replace, lineinfile or template module rather than running 'sed'.  If you need to use command because replace, lineinfile or template is insufficient you
can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [10.0.0.xx]

TASK [oracle_dg : make grub2] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : backup for /etc/sysctl.conf] ******************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : sysctl] ***************************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 2 (type int) in a string field was converted to u'2' (type string). If this does not look like what you expect, quote the entire value to ensure it does not
change.
ok: [10.0.0.xx]

TASK [oracle_dg : sysctl] ***************************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : sysctl] ***************************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 6815744 (type int) in a string field was converted to u'6815744' (type string). If this does not look like what you expect, quote the entire value to ensure it
does not change.
ok: [10.0.0.xx]

TASK [oracle_dg : stat /etc/ntp.conf] ***************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : move file /etc/ntp.conf] **********************************************************************************************************************************************
skipping: [10.0.0.xx]
fatal: [10.0.0.xxx]: FAILED! => {"msg": "The conditional check '( result.stat.exists ) and ( cluster_role == \"dg\" )' failed. The error was: error while evaluating conditional (( result.stat.exists ) and ( cluster_role == \"dg\" )): 'dict object' has no attribute 'stat'\n\nThe error appears to be in '/root/auto/ansible_dg/roles/oracle_dg/tasks/02_change_oracle_params_19cR3.yml': line 76, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: move file /etc/ntp.conf\n      ^ here\n"}
...ignoring
fatal: [10.0.0.xxx]: FAILED! => {"msg": "The conditional check '( result.stat.exists ) and ( cluster_role == \"dg\" )' failed. The error was: error while evaluating conditional (( result.stat.exists ) and ( cluster_role == \"dg\" )): 'dict object' has no attribute 'stat'\n\nThe error appears to be in '/root/auto/ansible_dg/roles/oracle_dg/tasks/02_change_oracle_params_19cR3.yml': line 76, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: move file /etc/ntp.conf\n      ^ here\n"}
...ignoring

TASK [oracle_dg : stat /var/run/ ntpid.pid] *********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : remove file /var/run/ntpd.pid] ****************************************************************************************************************************************
skipping: [10.0.0.xx]
fatal: [10.0.0.xxx]: FAILED! => {"msg": "The conditional check '( result.stat.exists ) and ( cluster_role == \"dg\" )' failed. The error was: error while evaluating conditional (( result.stat.exists ) and ( cluster_role == \"dg\" )): 'dict object' has no attribute 'stat'\n\nThe error appears to be in '/root/auto/ansible_dg/roles/oracle_dg/tasks/02_change_oracle_params_19cR3.yml': line 86, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: remove file /var/run/ntpd.pid\n      ^ here\n"}
...ignoring
fatal: [10.0.0.xxx]: FAILED! => {"msg": "The conditional check '( result.stat.exists ) and ( cluster_role == \"dg\" )' failed. The error was: error while evaluating conditional (( result.stat.exists ) and ( cluster_role == \"dg\" )): 'dict object' has no attribute 'stat'\n\nThe error appears to be in '/root/auto/ansible_dg/roles/oracle_dg/tasks/02_change_oracle_params_19cR3.yml': line 86, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: remove file /var/run/ntpd.pid\n      ^ here\n"}
...ignoring

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 2047 (type int) in a string field was converted to u'2047' (type string). If this does not look like what you expect, quote the entire value to ensure it does not
change.
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 16384 (type int) in a string field was converted to u'16384' (type string). If this does not look like what you expect, quote the entire value to ensure it does
not change.
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 1024 (type int) in a string field was converted to u'1024' (type string). If this does not look like what you expect, quote the entire value to ensure it does not
change.
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 65536 (type int) in a string field was converted to u'65536' (type string). If this does not look like what you expect, quote the entire value to ensure it does
not change.
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: The value 10240 (type int) in a string field was converted to u'10240' (type string). If this does not look like what you expect, quote the entire value to ensure it does
not change.
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : pam_limits] ***********************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : check group for oinstall] *********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for oinstall] ***********************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for dba] **************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for dba] ****************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for oper] *************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for oper] ***************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for backupdba] ********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for backupdba] **********************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for dgdba] ************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for dgdba] **************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for kmdba] ************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for kmdba] **************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for asmadmin] *********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for asmadmin] ***********************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for asmdba] ***********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for asmdba] *************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for asmoper] **********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for asmoper] ************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check group for racdba] ***********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add group for racdba] *************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check user for grid] **************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add user for grid] ****************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check user for oracle] ************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : add user for oracle] **************************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : change password for grid] *********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : change password for oracle] *******************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : create directory for grid base] ***************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: Consider using the file module with state=directory rather than running 'mkdir'.  If you need to use command because file is insufficient you can add 'warn: false' to this
command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [10.0.0.xx]

TASK [oracle_dg : create directory for oracle base] *************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : create directory for grid home] ***************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : change owner for grid] ************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: Consider using the file module with owner rather than running 'chown'.  If you need to use command because file is insufficient you can add 'warn: false' to this command
task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [10.0.0.xx]

TASK [oracle_dg : change owner for oracle] **********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : change] ***************************************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: Consider using the file module with mode rather than running 'chmod'.  If you need to use command because file is insufficient you can add 'warn: false' to this command task
or set 'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [10.0.0.xx]

TASK [oracle_dg : add bash_profile for grid] ********************************************************************************************************************************************
skipping: [10.0.0.xxx] => (item={u'line': u' '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'### for grid '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export LANG=en_US.UTF-8'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK'}) 
skipping: [10.0.0.xxx] => (item={u'line': u' '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_BASE=/u01/app/grid'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'### for grid '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_HOME=/u01/app/19.3.0/grid'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export LANG=en_US.UTF-8'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_BASE=/u01/app/grid'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_HOME=/u01/app/19.3.0/grid'}) 
ok: [10.0.0.xx] => (item={u'line': u' '})
ok: [10.0.0.xx] => (item={u'line': u'### for grid '})
ok: [10.0.0.xx] => (item={u'line': u'export LANG=en_US.UTF-8'})
ok: [10.0.0.xx] => (item={u'line': u'export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK'})
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_BASE=/u01/app/grid'})
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_HOME=/u01/app/19.3.0/grid'})

TASK [oracle_dg : add bash_profile for oracle] ******************************************************************************************************************************************
skipping: [10.0.0.xxx] => (item={u'line': u' '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'### for oracle '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export LANG=en_US.UTF-8'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_BASE=/u01/app/oracle'}) 
skipping: [10.0.0.xxx] => (item={u'line': u' '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'### for oracle '}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export LANG=en_US.UTF-8'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_BASE=/u01/app/oracle'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db'}) 
ok: [10.0.0.xx] => (item={u'line': u' '})
ok: [10.0.0.xx] => (item={u'line': u'### for oracle '})
ok: [10.0.0.xx] => (item={u'line': u'export LANG=en_US.UTF-8'})
ok: [10.0.0.xx] => (item={u'line': u'export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK'})
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_BASE=/u01/app/oracle'})
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db'})

TASK [oracle_dg : create directory for oracle home] *************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : add bash_profile for oracle] ******************************************************************************************************************************************
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_BASE=/u01/app/oracle'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_SID=orcl'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export PATH=$ORACLE_HOME/bin:$PATH'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_BASE=/u01/app/oracle'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export ORACLE_SID=orcl'}) 
skipping: [10.0.0.xxx] => (item={u'line': u'export PATH=$ORACLE_HOME/bin:$PATH'}) 
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_BASE=/u01/app/oracle'})
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db'})
ok: [10.0.0.xx] => (item={u'line': u'export ORACLE_SID=orcl'})
ok: [10.0.0.xx] => (item={u'line': u'export PATH=$ORACLE_HOME/bin:$PATH'})

TASK [oracle_dg : copy db.rsp] **********************************************************************************************************************************************************
skipping: [10.0.0.xxx] => (item=db.rsp) 
skipping: [10.0.0.xxx] => (item=db.rsp) 
ok: [10.0.0.xx] => (item=db.rsp)

TASK [oracle_dg : chenge owner for response file] ***************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : copy and unzip db file] ***********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
[WARNING]: Consider using the unarchive module rather than running 'unzip'.  If you need to use command because unarchive is insufficient you can add 'warn: false' to this command task
or set 'command_warnings=False' in ansible.cfg to get rid of this message.
changed: [10.0.0.xx]

TASK [oracle_dg : change dir oracle home files permission] ******************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : execute database  soft installation] **********************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
fatal: [10.0.0.xx]: FAILED! => {"changed": true, "cmd": "/u01/app/oracle/product/19.3.0/db/runInstaller -silent -force -responseFile /tmp/db.rsp -ignorePrereq -ignoreInternalDriverError -waitforcompletion", "delta": "0:01:12.512206", "end": "2024-04-19 16:39:53.076090", "msg": "non-zero return code", "rc": 6, "start": "2024-04-19 16:38:40.563884", "stderr": "", "stderr_lines": [], "stdout": "Launching Oracle Database Setup Wizard...\n\n[WARNING] [INS-13014] Target environment does not meet some optional requirements.\n   CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2024-04-19_04-38-40PM.log\n   ACTION: Identify the list of failed prerequisite checks from the log: installActions2024-04-19_04-38-40PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.\nThe response file for this session can be found at:\n /u01/app/oracle/product/19.3.0/db/install/response/db_2024-04-19_04-38-40PM.rsp\n\nYou can find the log of this install session at:\n /tmp/InstallActions2024-04-19_04-38-40PM/installActions2024-04-19_04-38-40PM.log\n\nAs a root user, execute the following script(s):\n\t1. /u01/app/oraInventory/orainstRoot.sh\n\t2. /u01/app/oracle/product/19.3.0/db/root.sh\n\nExecute /u01/app/oraInventory/orainstRoot.sh on the following nodes: \n[dbca_stby]\nExecute /u01/app/oracle/product/19.3.0/db/root.sh on the following nodes: \n[dbca_stby]\n\n\nSuccessfully Setup Software with warning(s).\nMoved the install session logs to:\n /u01/app/oraInventory/logs/InstallActions2024-04-19_04-38-40PM", "stdout_lines": ["Launching Oracle Database Setup Wizard...", "", "[WARNING] [INS-13014] Target environment does not meet some optional requirements.", "   CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2024-04-19_04-38-40PM.log", "   ACTION: Identify the list of failed prerequisite checks from the log: installActions2024-04-19_04-38-40PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.", "The response file for this session can be found at:", " /u01/app/oracle/product/19.3.0/db/install/response/db_2024-04-19_04-38-40PM.rsp", "", "You can find the log of this install session at:", " /tmp/InstallActions2024-04-19_04-38-40PM/installActions2024-04-19_04-38-40PM.log", "", "As a root user, execute the following script(s):", "\t1. /u01/app/oraInventory/orainstRoot.sh", "\t2. /u01/app/oracle/product/19.3.0/db/root.sh", "", "Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: ", "[dbca_stby]", "Execute /u01/app/oracle/product/19.3.0/db/root.sh on the following nodes: ", "[dbca_stby]", "", "", "Successfully Setup Software with warning(s).", "Moved the install session logs to:", " /u01/app/oraInventory/logs/InstallActions2024-04-19_04-38-40PM"]}
...ignoring

TASK [oracle_dg : root.sh script for dg node] *******************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : root.sh script for dg node] *******************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : set listener.ora for rac node1] ***************************************************************************************************************************************
skipping: [10.0.0.xx] => (item=##FOR DG BEGIN) 
skipping: [10.0.0.xx] => (item=SID_LIST_LISTENER =) 
skipping: [10.0.0.xx] => (item=    (SID_LIST =) 
skipping: [10.0.0.xx] => (item=            (SID_DESC =) 
skipping: [10.0.0.xx] => (item=                    (GLOBAL_DBNAME = orcl)) 
skipping: [10.0.0.xx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)) 
skipping: [10.0.0.xx] => (item=                    (SID_NAME = orcl1)) 
skipping: [10.0.0.xx] => (item=            )) 
skipping: [10.0.0.xxx] => (item=##FOR DG BEGIN) 
skipping: [10.0.0.xx] => (item=    )) 
skipping: [10.0.0.xxx] => (item=SID_LIST_LISTENER =) 
skipping: [10.0.0.xx] => (item=##FOR DG END) 
skipping: [10.0.0.xxx] => (item=    (SID_LIST =) 
skipping: [10.0.0.xxx] => (item=            (SID_DESC =) 
skipping: [10.0.0.xxx] => (item=                    (GLOBAL_DBNAME = orcl)) 
skipping: [10.0.0.xxx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)) 
skipping: [10.0.0.xxx] => (item=                    (SID_NAME = orcl1)) 
skipping: [10.0.0.xxx] => (item=            )) 
skipping: [10.0.0.xxx] => (item=    )) 
skipping: [10.0.0.xxx] => (item=##FOR DG END) 
ok: [10.0.0.xxx] => (item=##FOR DG BEGIN)
ok: [10.0.0.xxx] => (item=SID_LIST_LISTENER =)
ok: [10.0.0.xxx] => (item=    (SID_LIST =)
ok: [10.0.0.xxx] => (item=            (SID_DESC =)
ok: [10.0.0.xxx] => (item=                    (GLOBAL_DBNAME = orcl))
ok: [10.0.0.xxx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db))
ok: [10.0.0.xxx] => (item=                    (SID_NAME = orcl1))
ok: [10.0.0.xxx] => (item=            ))
ok: [10.0.0.xxx] => (item=    ))
ok: [10.0.0.xxx] => (item=##FOR DG END)

TASK [oracle_dg : set listener.ora for rac node2] ***************************************************************************************************************************************
skipping: [10.0.0.xx] => (item=##FOR DG BEGIN) 
skipping: [10.0.0.xx] => (item=SID_LIST_LISTENER =) 
skipping: [10.0.0.xx] => (item=    (SID_LIST =) 
skipping: [10.0.0.xx] => (item=            (SID_DESC =) 
skipping: [10.0.0.xxx] => (item=##FOR DG BEGIN) 
skipping: [10.0.0.xxx] => (item=SID_LIST_LISTENER =) 
skipping: [10.0.0.xx] => (item=                    (GLOBAL_DBNAME = orcl)) 
skipping: [10.0.0.xxx] => (item=    (SID_LIST =) 
skipping: [10.0.0.xx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)) 
skipping: [10.0.0.xxx] => (item=            (SID_DESC =) 
skipping: [10.0.0.xx] => (item=                    (SID_NAME = orcl2)) 
skipping: [10.0.0.xxx] => (item=                    (GLOBAL_DBNAME = orcl)) 
skipping: [10.0.0.xx] => (item=            )) 
skipping: [10.0.0.xxx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)) 
skipping: [10.0.0.xxx] => (item=                    (SID_NAME = orcl2)) 
skipping: [10.0.0.xx] => (item=    )) 
skipping: [10.0.0.xxx] => (item=            )) 
skipping: [10.0.0.xx] => (item=##FOR DG END) 
skipping: [10.0.0.xxx] => (item=    )) 
skipping: [10.0.0.xxx] => (item=##FOR DG END) 
ok: [10.0.0.xxx] => (item=##FOR DG BEGIN)
ok: [10.0.0.xxx] => (item=SID_LIST_LISTENER =)
ok: [10.0.0.xxx] => (item=    (SID_LIST =)
ok: [10.0.0.xxx] => (item=            (SID_DESC =)
ok: [10.0.0.xxx] => (item=                    (GLOBAL_DBNAME = orcl))
ok: [10.0.0.xxx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db))
ok: [10.0.0.xxx] => (item=                    (SID_NAME = orcl2))
ok: [10.0.0.xxx] => (item=            ))
ok: [10.0.0.xxx] => (item=    ))
ok: [10.0.0.xxx] => (item=##FOR DG END)

TASK [oracle_dg : stop lsnrctl for rac node1] *******************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xxx]

TASK [oracle_dg : start lsnrctl for rac node1] ******************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xxx]

TASK [oracle_dg : set listener.ora for rac dg] ******************************************************************************************************************************************
skipping: [10.0.0.xxx] => (item=##FOR DG BEGIN) 
skipping: [10.0.0.xxx] => (item=SID_LIST_LISTENER =) 
skipping: [10.0.0.xxx] => (item=    (SID_LIST =) 
skipping: [10.0.0.xxx] => (item=            (SID_DESC =) 
skipping: [10.0.0.xxx] => (item=                    (GLOBAL_DBNAME = orcl_stby)) 
skipping: [10.0.0.xxx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)) 
skipping: [10.0.0.xxx] => (item=                    (SID_NAME = orcl_stby)) 
skipping: [10.0.0.xxx] => (item=            )) 
skipping: [10.0.0.xxx] => (item=    )) 
skipping: [10.0.0.xxx] => (item=##FOR DG BEGIN) 
skipping: [10.0.0.xxx] => (item=##FOR DG END) 
skipping: [10.0.0.xxx] => (item=SID_LIST_LISTENER =) 
skipping: [10.0.0.xxx] => (item=    (SID_LIST =) 
skipping: [10.0.0.xxx] => (item=            (SID_DESC =) 
skipping: [10.0.0.xxx] => (item=                    (GLOBAL_DBNAME = orcl_stby)) 
skipping: [10.0.0.xxx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)) 
skipping: [10.0.0.xxx] => (item=                    (SID_NAME = orcl_stby)) 
skipping: [10.0.0.xxx] => (item=            )) 
skipping: [10.0.0.xxx] => (item=    )) 
skipping: [10.0.0.xxx] => (item=##FOR DG END) 
changed: [10.0.0.xx] => (item=##FOR DG BEGIN)
changed: [10.0.0.xx] => (item=SID_LIST_LISTENER =)
changed: [10.0.0.xx] => (item=    (SID_LIST =)
changed: [10.0.0.xx] => (item=            (SID_DESC =)
changed: [10.0.0.xx] => (item=                    (GLOBAL_DBNAME = orcl_stby))
changed: [10.0.0.xx] => (item=                    (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db))
changed: [10.0.0.xx] => (item=                    (SID_NAME = orcl_stby))
changed: [10.0.0.xx] => (item=            ))
changed: [10.0.0.xx] => (item=    ))
changed: [10.0.0.xx] => (item=##FOR DG END)

TASK [oracle_dg : stop lsnrctl for dg node] *********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : start lsnrctl for dg node] ********************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : copy tnsnames for all node] *******************************************************************************************************************************************
changed: [10.0.0.xx] => (item=tnsnames.ora)
ok: [10.0.0.xxx] => (item=tnsnames.ora)
ok: [10.0.0.xxx] => (item=tnsnames.ora)

TASK [oracle_dg : chenge owner for tnsnames file] ***************************************************************************************************************************************
changed: [10.0.0.xx]
changed: [10.0.0.xxx]
changed: [10.0.0.xxx]

TASK [oracle_dg : copy force_logging standbylogfile sql] ********************************************************************************************************************************
skipping: [10.0.0.xx] => (item=check_force_logging.sql) 
skipping: [10.0.0.xx] => (item=check_standbylogfile.sql) 
skipping: [10.0.0.xx] => (item=open_force_logging.sql) 
skipping: [10.0.0.xx] => (item=add_standbylogfile.sql) 
skipping: [10.0.0.xxx] => (item=check_force_logging.sql) 
skipping: [10.0.0.xxx] => (item=check_standbylogfile.sql) 
skipping: [10.0.0.xxx] => (item=open_force_logging.sql) 
skipping: [10.0.0.xxx] => (item=add_standbylogfile.sql) 
ok: [10.0.0.xxx] => (item=check_force_logging.sql)
ok: [10.0.0.xxx] => (item=check_standbylogfile.sql)
ok: [10.0.0.xxx] => (item=open_force_logging.sql)
ok: [10.0.0.xxx] => (item=add_standbylogfile.sql)

TASK [oracle_dg : check force_logging sql] **********************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xxx]

TASK [oracle_dg : debug] ****************************************************************************************************************************************************************
skipping: [10.0.0.xx]
ok: [10.0.0.xxx] => {
    "msg": "database is already in force logging mode YES"
}
skipping: [10.0.0.xxx]

TASK [oracle_dg : execute open database force_logging sql] ******************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : check database standbylogfile sql] ************************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xxx]

TASK [oracle_dg : debug] ****************************************************************************************************************************************************************
skipping: [10.0.0.xx]
ok: [10.0.0.xxx] => {
    "msg": "database current standbylogfile is 6"
}
skipping: [10.0.0.xxx]

TASK [oracle_dg : execute database add standbylogfile sql] ******************************************************************************************************************************
skipping: [10.0.0.xx]
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]

TASK [oracle_dg : create database data dir directory on dg node] ************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

TASK [oracle_dg : create database archived dir directory on dg node] ********************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
ok: [10.0.0.xx]

TASK [oracle_dg : execute dg database installation] *************************************************************************************************************************************
skipping: [10.0.0.xxx]
skipping: [10.0.0.xxx]
changed: [10.0.0.xx]

PLAY RECAP ******************************************************************************************************************************************************************************
10.0.0.xxx                 : ok=16   changed=5    unreachable=0    failed=0    skipped=87   rescued=0    ignored=2   
10.0.0.xxx                 : ok=9    changed=1    unreachable=0    failed=0    skipped=94   rescued=0    ignored=2   
10.0.0.xx                  : ok=77   changed=34   unreachable=0    failed=0    skipped=26   rescued=0    ignored=1   

安裝完成後使用dgbroker管理DG

主庫:
asmcmd mkdir  /DATA/dgtest  grid使用者建立目錄

ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/home/oracle/oradata/ORCL_STBY/datafile','+DATA' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/home/oracle/oradata/ORCL_STBY/datafile/orcl/onlinelog','+DATA' SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO sid='*';
alter system set dg_broker_config_file1='+DATA/dgtest/dr1orcl.dat'  SID='*' scope=both;
alter system set dg_broker_config_file2='+DATA/dgtest/dr2orcl.dat'  SID='*' scope=both;
ALTER SYSTEM SET dg_broker_start=true  SID='*' scope=both;

從庫:
ALTER SYSTEM SET dg_broker_start=false scope=both;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='+DATA', '/home/oracle/oradata/ORCL_STBY/datafile' SCOPE=SPFILE sid='*';
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='+DATA','/home/oracle/oradata/ORCL_STBY/datafile/orcl/onlinelog' SCOPE=SPFILE sid='*';
alter system set dg_broker_config_file1='/u01/app/oracle/product/19.3.0/db/dbs/dr1orcl.dat'  SID='*' scope=both;
alter system set dg_broker_config_file2='/u01/app/oracle/product/19.3.0/db/dbs/dr2orcl.dat'  SID='*' scope=both;
ALTER SYSTEM SET dg_broker_start=true scope=both;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

主庫:
vim config_primary_stby_database.sql CREATE CONFIGURATION dg_config AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl; ADD DATABASE orcl_stby AS CONNECT IDENTIFIER IS orcl_stby MAINTAINED AS PHYSICAL; ENABLE CONFIGURATION; SHOW CONFIGURATION;

dgmgrl sys/Ora_2023_1234@orcl @onfig_primary_stby_database.sql

相關文章