4.6.4 Procedure 32: Perform the DIU Upgrade

Note:

Ensure that the legacy upgrade preceding DIU is accepted; otherwise, an error can occur when the background DIU upgrade starts.

Table 4-13 Procedure 32: Perform the DIU Upgrade

S. No STEPS This procedure performs Dual Image Upgrade on the server. NOTE: DIU upgrade should be done first on ELAP B, then on ELAP A. NOTE: Upgrade is supported only from 11.0.0.4.X to 11.1.Y release. For all other releases, install procedure shall be followed. Check off (✔️) each step as it is completed. Boxes have been provided for this purpose beside each step number. If this procedure fails, contact My Oracle Support and ask for ASSISTANCE.
 

MPS X:

Run the steps below first on MPS B, and then on MPS A.

MPS B is the B side of the server. MPS B can either be Active or Standby.

1

☐

MPS X: Login prompt is displayed.

<hostname> console login:

Note: Press enter if no login prompt is displayed.

2

☐

MPS X: Log in as “root” user.

[hostname] console login: root

password: password

3.

☐

MPS X : Put ISO image on ELAP server.

Use any of the following methods to put ELAP 11.1 DIU ISO image with diuPreUpgrade_elap.sh on the ELAP server.

c. Perform ISO image generation from USB media using Appendix B

d. Copy ISO to /var/TKLC/upgrade directory. Add diuPreUpgrade_elap.sh to the /tmp directory

Note: To perform this step, the provisional IP of the ELAP server must be set via platcfg menu.

4

☐

Create a terminal window log in MPS X.

If not already connected, connect to the APPD card via the serial port.

For connecting the APPD card, disconnect the console cable from the serial port on the APPD A card’s adapter. The cable should be disconnected at the point where it connects to the serial port labeled ‘S1’ on the APPD A card’s adapter and use it for serial access. Cable part numbers - 830-1220-xx

5

☐

MPS X: Copy DIU pre upgrade script on server and change permissions

[root@MPS-A ]# chmod +x diuPreUpgrade_elap.sh
[root@MPS-A ]# chown root:root diuPreUpgrade_elap.sh

6.

☐

MPS X: Enable root login on both servers

Note: This must be enabled on both servers.

[root@manaus-a elapall]# /usr/TKLC/plat/sbin/rootSshLogin --permit

Successfully updated config file with permitRootLogin yes.

FILE: /etc/ssh/sshd_config

Restarting the sshd daemon...

The sshd daemon has been restarted.

The root ssh login is set to yes.

[root@manaus-b elapall]# /usr/TKLC/plat/sbin/rootSshLogin --permit

Successfully updated config file with permitRootLogin yes.

FILE: /etc/ssh/sshd_config

Restarting the sshd daemon...

The sshd daemon has been restarted.

The root ssh login is set to yes.

7.

☐

Ensure hastatus and drbdadm status of both servers.

#hastatus
The servers should be ACTIVE/STANDBY or viceversa state.

#drbdadm status

on Active:
drbd0 role:Primary

disk:UpToDate open:yes

Tacna-a role:Secondary

peer-disk:UpToDate

on Standby:

drbd0 role:Secondary

disk:UpToDate open:no

Tacna-b role:Primary

peer-disk:UpToDate

Note: If MPS B is already upgraded, then skip this step.

8.

☐

MPS X: Move all custom files and run pre upgrade script

NOTE: All custom files, scripts, folders need to be migrated to remote/mate server before the DIU process is started. These need to be restored back to their place after the DIU process is completed.

<

NOTE:- Before running the pre-upgrade script, ensure the mount point `/var/TKLC/elap/free` is not in active use. Specifically, verify that no interactive shells (e.g., `bash`) or other processes have their current working directory set to `/var/TKLC/elap/free` (or any subdirectory), as this will cause the unmount step to fail with “target is busy.”

Run the pre-upgrade script


[root@manaus-b ]# ./diuPreUpgrade_elap.sh

[INFO] Setting SPLIT_MIRROR=1 in /usr/TKLC/plat/etc/upgrade/upgrade.conf

[INFO] + mkdir -p '/usr/TKLC/plat/etc/upgrade'

[INFO] + printf '%s\n' 'SPLIT_MIRROR=1' > '/usr/TKLC/plat/etc/upgrade/upgrade.conf'

[INFO] + cat '/usr/TKLC/plat/etc/upgrade/upgrade.conf'

SPLIT_MIRROR=1

[INFO] Running on side-B

[INFO] Discovered side-A

[INFO] Existing pre-DIU state found. Preserving the first captured state.

[INFO] Complete pre-DIU state already exists on side-A. Preserving it and skipping copy.

[INFO] Stopping and masking ELAP services only: TKLCha TKLCharsync Elap ExQueue RemoveInfoMsgs runGsConn runGS runExInit periodckd mysqld@app

[INFO] [side-B] Stopping TKLCha

[INFO] [side-A] Stopping TKLCha

[INFO] [side-B] Stopping TKLCharsync

[INFO] [side-A] Stopping TKLCharsync

[INFO] [side-B] Elap already stopped

[INFO] [side-A] Elap already stopped

[INFO] [side-B] Stopping ExQueue

[INFO] [side-A] Stopping ExQueue

[INFO] [side-B] Stopping RemoveInfoMsgs

[INFO] [side-A] Stopping RemoveInfoMsgs

[INFO] [side-B] Stopping runGsConn

[INFO] [side-A] Stopping runGsConn

[INFO] [side-B] Stopping runGS

[INFO] [side-A] Stopping runGS

[INFO] [side-B] Stopping runExInit

[INFO] [side-A] Stopping runExInit

[INFO] [side-B] Stopping periodckd

[INFO] [side-A] Stopping periodckd

[INFO] [side-B] mysqld@app already stopped

[INFO] [side-A] mysqld@app already stopped

[INFO] [side-B] Masking TKLCha

Created symlink /etc/systemd/system/TKLCha.service -> /dev/null.

[INFO] [side-A] Masking TKLCha

Created symlink /etc/systemd/system/TKLCha.service -> /dev/null.

[INFO] [side-B] Masking TKLCharsync

Created symlink /etc/systemd/system/TKLCharsync.service -> /dev/null.

[INFO] [side-A] Masking TKLCharsync

Created symlink /etc/systemd/system/TKLCharsync.service -> /dev/null.

[INFO] [side-B] Masking Elap

Created symlink /etc/systemd/system/Elap.service -> /dev/null.

[INFO] [side-A] Masking Elap

Created symlink /etc/systemd/system/Elap.service -> /dev/null.

[INFO] [side-B] Masking ExQueue

Created symlink /etc/systemd/system/ExQueue.service -> /dev/null.

[INFO] [side-A] Masking ExQueue

Created symlink /etc/systemd/system/ExQueue.service -> /dev/null.

[INFO] [side-B] Masking RemoveInfoMsgs

Created symlink /etc/systemd/system/RemoveInfoMsgs.service -> /dev/null.

[INFO] [side-A] Masking RemoveInfoMsgs

Created symlink /etc/systemd/system/RemoveInfoMsgs.service -> /dev/null.

[INFO] [side-B] Masking runGsConn

Created symlink /etc/systemd/system/runGsConn.service -> /dev/null.

[INFO] [side-A] Masking runGsConn

Created symlink /etc/systemd/system/runGsConn.service -> /dev/null.

[INFO] [side-B] Masking runGS

Created symlink /etc/systemd/system/runGS.service -> /dev/null.

[INFO] [side-A] Masking runGS

Created symlink /etc/systemd/system/runGS.service -> /dev/null.

[INFO] [side-B] Masking runExInit

Created symlink /etc/systemd/system/runExInit.service -> /dev/null.

[INFO] [side-A] Masking runExInit

Created symlink /etc/systemd/system/runExInit.service -> /dev/null.

[INFO] [side-B] Masking periodckd

Created symlink /etc/systemd/system/periodckd.service -> /dev/null.

[INFO] [side-A] Masking periodckd

Created symlink /etc/systemd/system/periodckd.service -> /dev/null.

[INFO] [side-B] Masking mysqld@app

Created symlink /etc/systemd/system/mysqld@app.service -> /dev/null.

[INFO] [side-A] Masking mysqld@app

Created symlink /etc/systemd/system/mysqld@app.service -> /dev/null.

[INFO] Detected free folder to preserve: /var/TKLC/elap/free/backup

[INFO] Detected free folder to preserve: /var/TKLC/elap/free/comcol

[INFO] Detected free folder to preserve: /var/TKLC/elap/free/logsExport

[INFO] Precheck(start): verifying /var/TKLC/elap/free is not busy

Required space already present (>=30G). Exiting no need to move free folders...

Run vgs to make sure Free space is 30G in vgroot

[root@manaus-b elapall]# 

VG #PV #LV #SN Attr VSize VFree

vgdrbd0 1 2 0 wz--n- 32.96g 22.96g

vgroot 1 10 0 wz--n- <409.41g <30.33g

[root@manaus-b elapall]# 

9

☐

MPS X: Start platcfg utility.

$ su – platcfg

10

☐

MPS X: Navigate to the Upgrade menu.

**NOTE**: Make sure to select Dual Image Upgrade only.

The platcfg Main Menu appears.

  1. On the Main Menu, select Maintenance and press [ENTER].

    Platform configuration Main Menu with Maintenance selected.

  2. Select the Dual Image Upgrade menu and press [ENTER].

    Maintenance Menu with Dual Image Upgrade selected.

11.

☐

MPS X: Validate ISO file.

Validate ISO file using Procedure A.2.

12.

☐

MPS X: Select Early Upgrade Checks

Select the “Early Upgrade Checks” menu to verify that the system is ready for upgrade.


Dual Image Upgrade Menu with Early Upgrade Checks selected.

If the Early Upgrade Checks fail due to the drbd not replicating related alarms, then ignore such alarms using the following commands:

Exit the platcfg menu.

  • Change to root user using the “su –" command.

  • vim /usr/TKLC/plat/etc/upgrade/upgrade.conf

  • Edit the following line to include the NTP related alarms.

    • EARLY_CHECK_ALARM_WHITELIST=TKSPLATMA30

    • Add the following alarm code to ignore tpdApplicationProcessError Problem: TKSPLATMI2

    • Add the following line for the tpdPdcError related alarms:

    • EARLY_CHECK_ALARM_WHITELIST=TKSPLATMA5,TKSPLATMI39

Note: There should not be any space between two alarms i.e. between TKSPLATMI2 and TKSPLATMI39

EARLY_CHECK_ALARM_WHITELIST= TKSPLATMA5, TKSPLATMA30, TKSPLATMI2, TKSPLATMI39, TKSPLATMI9

Run early checks again after allowlisting the alarms. Early checks should completely be passed.

13

☐

MPS X: Navigate to the Initiate Upgrade menu

Select the Initiate Background Upgrade menu and press [ENTER].


Dual Image Upgrade Menu with Initiate Background Upgrade selected.

14

☐

MPS X: Select the Upgrade Media.

The screen displays a message that it is searching for upgrade media. When the upgrade media is found, an Upgrade Media selection menu appears similar as shown in the example below.

Select the desired upgrade media and press [ENTER].


Choose Upgrade Media Menu displaying the available ELAP DIU ISO images.

In case there is a failure in the upgrade process, then run the following command to verify whether the raid is synced or not:

[root@manaus-b elapall]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sdc3[3] sda3[2]

34569216 blocks super 1.2 [2/2] [UU]

bitmap: 1/1 pages [4KB], 65536KB chunk

md2 : active raid1 sdc2[3] sda2[2]

429294592 blocks super 1.2 [2/2] [UU]

bitmap: 2/4 pages [8KB], 65536KB chunk In this output both md1 and md2 are in sync , as the output end with [UU] md1 ... [UU]

md2 ... [UU]

  When the raid not in sync the output look-like:

[root@manaus-b elapall]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sda3[2]

34569216 blocks super 1.2 [2/1] [U_]

bitmap: 1/1 pages [4KB], 65536KB chunk

md2 : active raid1 sda2[2]

429294592 blocks super 1.2 [2/1] [U_]

bitmap: 2/4 pages [8KB], 65536KB chunk

unused devices: <none>

Here, both md1 and md2 sync is broken as cleealy seen by [U_] in the output.

If the raid is not in sync, then run the following command:

  • mdadm --add /dev/md1 /dev/sdX
  • mdadm --add /dev/md2 /dev/sdX
    

where sdX can be any of sda, sdb, or sdc according to LV configurations. This can be verified using lsblk command – “lsblk -o NAME,SIZE,MODEL,SERIAL,TYPE”

 

lsblk output showing device names, sizes, models, serial numbers, and types for disk identification.

The command output shows sdb as the USB device and sdc as the SSD. Synchronize only with the SSD. Match each SSD partition to the corresponding md device by comparing their sizes. In this example, sdc3 (33 GB) corresponds to md1 (33 GB), and sdc2 (409.5 GB) corresponds to md2 (409.4 GB). To add sdc3 to md1, run:
mdadm --add /dev/md1 /dev/sdc3
mdadm --add /dev/md2 /dev/sdc2
 

The following command can be used to check the status of the sync after running the above command:

[root@manaus-b elapall]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sdc3[3] sda3[2]

34569216 blocks super 1.2 [2/2] [UU]

bitmap: 1/1 pages [4KB], 65536KB chunk

md2 : active raid1 sdc2[3] sda2[2]

429294592 blocks super 1.2 [2/1] [U_]

[=============>.......] recovery = 67.6% (290331648/429294592) finish=9.0min speed=254696K/sec

bitmap: 2/4 pages [8KB], 65536KB chunk

unused devices: <none>

Wait till the time recovery is completed for both md1 and md2.

15

☐

MPS X: Upgrade proceeds.

Apply Upgrade.

Many informational messages appear on the terminal screen as the upgrade proceeds.

After the background upgrade is done, the system will return to this screen.

After this, select [EXIT] and press [ENTER].

From the Dual image Upgrade Menu, select [EXIT] and press [ENTER}.


Dual Image Upgrade Menu with Exit selected after the background upgrade.

From the maintenance menu, select Dual Image Upgrade and then Press Enter.


Maintenance Menu with Dual Image Upgrade selected for applying the upgrade.

From the Dual Image Upgrade Menu, select Apply Upgrade and press [ENTER]].


Dual Image Upgrade Menu with Apply Upgrade selected.

Select YES and press ENTER.


Confirmation prompt asking whether to apply the upgrade, with Yes selected.

When the upgrade process is complete, the server reboots.

16

☐

MPS X: Upgrade completed.

After the final reboot, the screen displays the login prompt as displayed in the example below.


Terminal output at the end of the upgrade followed by the server login prompt.

Make sure to verify that the state is transitioned from “Applying upgrade” to “Upgrade Applied” and we get Completed Result: SUCCESS.

17

☐

MPS X: log in as “root” user.

[hostname] consolelogin: root
password: password

18

☐

MPS X: Check the Upgrade log.

Examine the upgrade logs in the directory /var/TKLC/log/upgrade and verify that no errors and warnings were reported.

$  grep –i error /var/TKLC/log/upgrade/upgrade.log

Check the output of the upgrade log. Contact My Oracle Support following the instructions on the front page or the instructions on the Appendix E, if the output contains any error except the following:

 [root@Salta-B core]# grep -i error /var/TKLC/log/upgrade/upgrade.log

1673985608::ERROR: run-r1841b65093e14801be5696ea62d92ac2 is not recognized as a systemdystem service!

1673985608::ERROR: Could not stop run-r1841b65093e14801be5696ea62d92ac2!

1673985608::ERROR: service_conf reconfig failed!

1726140936::ERROR: SEQ: 83 UPTIME: 12737 BIRTH: 1726139350 TYPE: SET ALARM: TKSPLATMI2|tpdApplicationProcessError|1.3.6.1.4.1.323.5.3.18.3.1.3.2|32501|Processing Error|Software Program Error|HOST-RESOURCES-MIB::hrSWRunName:1.3.6.1.2.1.25.4.2.1.2:OCTET_STRING:eaglelog

$  grep -i warning /var/TKLC/log/upgrade/upgrade.log

Examine the output of the above command to determine if any warnings were reported.

Contact My Oracle Support following the instructions on the front page or the instructions on the Appendix E, if the output contains any warnings beside the following:

[root@Salta-B core]# grep -i error /var/TKLC/log/upgrade/upgrade.log

1789628974::Sep 17 03:07:08 Recife-B ExQueue[1728]: 2026-09-17 03:07:06 [140507027259584] INFO - Error loading log configuration from database: 1005:DbSession.C:162:The thread is not attached to a session.

1789628974::Sep 17 03:07:08 Recife-B ExQueue[1728]: 2026-09-17 03:07:06 [140507027259584] WARN - 1001:DbSession.C:128:Database Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

[root@Salta-B core]# grep -i warning /var/TKLC/log/upgrade/upgrade.log

1789628551: :warning: Hostname not changed because it is the same.

1789628974::1789628973 : Warning : systemctl is-enabled services failed with rc=1

1789628974::Sep 17 03:08:45 Recife-B Elap[11789]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:20 Recife-B Elap[15634]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:06 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:07 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:12 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:16 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:17 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:22 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:26 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:27 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:09:32 Recife-B runGS[2191]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::Sep 17 03:07:07 Recife-B runExInit[1636]: WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a future version.

1789628974::1789628973 : Warning : systemctl status services failed with rc=3 

19

☐

MPS X: Check that the upgrade completed successfully.

Run the command from the root user:

var/TKLC/backout/diUpgrade --status

20

☐

MPS X: Check that the upgrade completed successfully.

Verify that the following output is displayed. If it is not, contact My Oracle Support following the instructions on the front page or the instructions on the Appendix E.


diuUpgrade status output showing Upgrade Applied and completed upgrade phases.

21

☐

Retrieve and restore free directory data backup taken

Retrieve the backup tar file back to the local server (from remote or mate) Option 1 – If the backup is placed on the remote server, then follow the below steps:
  1. On the local server, start an SFTP session to the remote system:
    $ sftp <remote_user>
    @<remote_host_or_ip>
  2. In the SFTP prompt, navigate to the directory containing the backup and download it:
     $ sftp> cd <remote_backup_directory>
       $ sftp> lcd /var/TKLC/elap/free
                                        $ sftp> get free_<hostname>_<YYYY-MM-DD>_<HHMMSS>.tgz
                                        $ sftp> bye
                                  
Option 2 – Retrieve using SCP (from mate to local)
  1. Run the following command on the local server:
    $ scp elapdev@mate:/var/TKLC/elap/free/free_<hostname>_<YYYY-MM-DD>_<HHMMSS>.tgz /var/TKLC/elap/free
  2. Run the below restore command to extract the archive and overwrite existing files while preserving permissions:
    $ sudo tar -C /var/TKLC/elap -xzpf /var/TKLC/elap/free/free_<hostname>_<YYYY-MM-DD>_<HHMMSS>.tgz –overwrite

22

☐

Note down the timestamp in log.

Run the following command:

$ date

23

☐

Repeat all above steps from 1-22 on MPS-A I

Run all the above steps on MPS-A now, in the same order.

24

☐

Run PostDIUValidation.sh only on MPS-A

Complete the PostDIUValidation.sh only on MPS-A . This automatically works on MPS-B

[root@manaus-a bin]# /usr/TKLC/elap/bin/PostDIUValidation.sh

25

☐

Reboot Servers

Reboot Active server first. Once it is up, reboot another server.

# reboot

Note:

Once an upgrade is done, the system reports an internal disk error and clears it only when you accept the upgrade.