deploy/ansible/roles-db/4.1.3-ora-dg/tasks/ora-dg-postprocessing-primary.yaml (191 lines of code) (raw):
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
---
# DGMGRL Config on Primary
# # Set Primary and Secondary node names.
# - name: Setting the primary and Secondary DB names
# ansible.builtin.set_fact:
# ora_primary: "{{ ansible_play_hosts_all[0] }}" # Oracle Primary Host
# ora_secondary: "{{ ansible_play_hosts_all[1] }}" # Oracle Secondary Host
# current_host: "{{ ansible_hostname }}"
- name: "Oracle Data Guard - Check SAP Restore on secondary is completed"
ansible.builtin.stat:
path: /usr/sap/install/downloads/{{ db_sid | upper }}/restore_completed.txt
register: secondary_completed
when: node_tier in ["oracle","oracle-asm"]
- name: "Execute Block only if secondary DB restore is completed"
block:
# Restart the LSNRCTL START
- name: "Oracle Data Guard - Post Processing: Restart lsnrctl on Primary"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.shell: lsnrctl reload
register: lsnrctl_start_primary_results
failed_when: lsnrctl_start_primary_results.rc > 0
args:
creates: /etc/sap_deployment_automation/dgscripts/lsnrctl_started_primary.txt
chdir: /etc/sap_deployment_automation/dgscripts
executable: /bin/csh
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Restart lsnrctl on Primary (Debug)"
ansible.builtin.debug:
var: lsnrctl_start_primary_results.stdout_lines
verbosity: 2
- name: "Oracle Data Guard - Post Processing: Restart lsnrctl on Primary (save output)"
ansible.builtin.copy:
dest: /etc/sap_deployment_automation/lsnrctl_start_primary.log
content: "{{ lsnrctl_start_primary_results.stdout }}"
mode: '0777'
when: lsnrctl_start_primary_results.stdout is defined
- name: "Oracle Data Guard - Post Processing: Create lsnrctl_started_sec.txt"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.file:
path: /etc/sap_deployment_automation/dgscripts/lsnrctl_started_primary.txt
state: touch
mode: '0755'
when: lsnrctl_start_primary_results.rc == 0
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Enable DG Broker on Primary"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.shell: sqlplus / as sysdba @enabledgbroker.sql
register: dg_broker_primary_results
failed_when: dg_broker_primary_results.rc > 0
args:
creates: /etc/sap_deployment_automation/dgscripts/enable_dg_broker.txt
chdir: /etc/sap_deployment_automation/dgscripts
executable: /bin/csh
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: - Pause 30 secs"
ansible.builtin.pause:
seconds: 30
- name: "Oracle Data Guard - Post Processing: Enable DG Broker on Primary"
ansible.builtin.debug:
var: dg_broker_primary_results.stdout_lines
verbosity: 2
- name: "Oracle Data Guard - Post Processing: Enable DG Broker on Primary (save output)"
ansible.builtin.copy:
dest: /etc/sap_deployment_automation/dgscripts/dg_broker_primary.log
content: "{{ dg_broker_primary_results.stdout }}"
mode: '0777'
when: dg_broker_primary_results.stdout is defined
- name: "Oracle Data Guard - Post Processing: Create enable_dg_broker.txt"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.file:
path: /etc/sap_deployment_automation/dgscripts/enable_dg_broker.txt
state: touch
mode: '0755'
when: dg_broker_primary_results.rc == 0
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Create dgmgrl configuration on Primary"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.shell: dgmgrl / as sysdba @dgconfig.dgmgrl
register: dgconfig_results
failed_when: dgconfig_results.rc > 0
args:
creates: /etc/sap_deployment_automation/dgscripts/dg_config.txt
chdir: /etc/sap_deployment_automation/dgscripts
executable: /bin/csh
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Create dgmgrl configuration on Primary (debug)"
ansible.builtin.debug:
var: dgconfig_results.stdout_lines
verbosity: 2
- name: "Oracle Data Guard - Post Processing: Create dgmgrl configuration on Primary (save output)"
ansible.builtin.copy:
dest: /etc/sap_deployment_automation/dgscripts/dg_create.log
content: "{{ dgconfig_results.stdout }}"
mode: '0777'
when: dgconfig_results.stdout is defined
- name: "Oracle Data Guard - Post Processing: Create dg_config.txt"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.file:
path: /etc/sap_deployment_automation/dgscripts/dg_config.txt
state: touch
mode: '0755'
when: dgconfig_results.rc == 0
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Enable dgmgrl configuration"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.shell: dgmgrl / as sysdba "ENABLE CONFIGURATION"
register: enable_dgconfig_results
failed_when: enable_dgconfig_results.rc > 0
args:
creates: /etc/sap_deployment_automation/dgscripts/dg_enable.txt
chdir: /etc/sap_deployment_automation/dgscripts
executable: /bin/csh
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Create dgmgrl configuration on Primary (debug)"
ansible.builtin.debug:
var: enable_dgconfig_results.stdout_lines
verbosity: 2
- name: "Oracle Data Guard - Post Processing: Create dgmgrl configuration on Primary (save output)"
ansible.builtin.copy:
dest: /etc/sap_deployment_automation/dgscripts/dg_enable.log
content: "{{ enable_dgconfig_results.stdout }}"
mode: '0777'
when: enable_dgconfig_results.stdout is defined
- name: "Oracle Data Guard - Post Processing: Create dg_enable.txt"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.file:
path: /etc/sap_deployment_automation/dgscripts/dg_enable.txt
state: touch
mode: '0755'
when: enable_dgconfig_results.rc == 0
# Enable the DB trigger for SAP HA
- name: "Oracle Data Guard - Post Processing: Enable DB Trigger"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.shell: sqlplus / as sysdba @dbtrigger.sql
register: enable_dbtrigger_results
failed_when: enable_dbtrigger_results.rc > 0
args:
creates: /etc/sap_deployment_automation/dgscripts/enable_dbtrigger.txt
chdir: /etc/sap_deployment_automation/dgscripts
executable: /bin/csh
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Create dbtrigger on Primary (debug)"
ansible.builtin.debug:
var: enable_dbtrigger_results.stdout_lines
verbosity: 2
- name: "Oracle Data Guard - Post Processing: Create dbtrigger configuration on Primary (save output)"
ansible.builtin.copy:
dest: /etc/sap_deployment_automation/dgscripts/enable_dbtrigger.log
content: "{{ enable_dbtrigger_results.stdout }}"
mode: '0777'
when: enable_dbtrigger_results.stdout is defined
- name: "Oracle Data Guard - Post Processing: Create enable_dbtrigger.txt"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.file:
path: /etc/sap_deployment_automation/dgscripts/enable_dbtrigger.txt
state: touch
mode: '0755'
when: enable_dbtrigger_results.rc == 0
# Enable the DB trigger for SAP HA
- name: "Oracle Data Guard - Post Processing: Enable DB Trigger"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.shell: sqlplus / as sysdba @dbtrigger.sql
register: enable_dbtrigger_results
failed_when: enable_dbtrigger_results.rc > 0
args:
creates: /etc/sap_deployment_automation/dgscripts/enable_dbtrigger.txt
chdir: /etc/sap_deployment_automation/dgscripts
executable: /bin/csh
# when: current_host == ora_primary
- name: "Oracle Data Guard - Post Processing: Create dbtrigger on Primary (debug)"
ansible.builtin.debug:
var: enable_dbtrigger_results.stdout_lines
verbosity: 2
- name: "Oracle Data Guard - Post Processing: Create dbtrigger configuration on Primary (save output)"
ansible.builtin.copy:
dest: /etc/sap_deployment_automation/dgscripts/enable_dbtrigger.log
content: "{{ enable_dbtrigger_results.stdout }}"
mode: '0777'
when: enable_dbtrigger_results.stdout is defined
- name: "Oracle Data Guard - Post Processing: Create enable_dbtrigger.txt"
become: true
become_user: "{{ oracle_user_name }}"
ansible.builtin.file:
path: /etc/sap_deployment_automation/dgscripts/enable_dbtrigger.txt
state: touch
mode: '0755'
when: enable_dbtrigger_results.rc == 0
- name: "Create post processing completed"
become: true
become_user: root
ansible.builtin.file:
path: /usr/sap/install/downloads/{{ db_sid | upper }}/post_processing_completed.txt
state: touch
mode: '0755'
owner: oracle
group: oinstall
when:
- secondary_completed.stat.exists
...
# /*---------------------------------------------------------------------------8
# | END |
# +------------------------------------4--------------------------------------*/