By Mouhamadou Diaw
Recently I was deploying some ODA X8-2M. To install the 19.8 software, I decide to reimage the server with the 19.8 image. In this blog I describe the main steps I did.
First, we will need to download following patches from Oracle support website
-Patch 30403643: Oracle Database Appliance 19.8.0.0.0 OS ISO IMAGE for all platforms
-Patch 30403673: Oracle Database Appliance GI Clone for ODACLI/DCS stack (and
-Patch 30403662: Oracle Database Appliance RDBMS Clone for ODACLI/DCS stack
We suppose that the ILOM is already configured and that you can connect via the ILOM. The default credentials for the ILOM is root/changeme
The first is to unzip the patch 30403643 on your workstation. This will provide the following iso file oda_bm_19.8.0.0.0_200718.iso.
The principle is to boot with the corresponding image iso. This is done using the ILOM interface. For this just follow this Oracle documentation
1. Open a browser and connect to Oracle Integrated Lights Out Manager (ILOM) on Node 0 as root.
https://ilom-ip-address
2. Launch the Remote Console.
a. Expand Remote Control in the left navigation.
b. Click the Redirection tab.
c. Click Launch for the Remote Console in the Actions menu.
The state of the system determines what appears on the Console page.
3. Add the image.
a. Click the KVMS tab, then select Storage.
b. Click Add.
c. Browse to the Oracle Database Appliance Bare Metal ISO Image, highlight the image, then click Select.
d. Click Connect.
The mounting of the ISO image is successful when the Connect button changes to a Disconnect button.
e. Click OK
The CD-ROM icon in the top right corner is highlighted.
4. Configure the CD-ROM as the next boot device.
a. Expand Host Management in the left menu of the ILOM Remote Console tab.
b. Click Host Control.
c. Select CDROM from the Next Boot Device menu, then click Save.
5. Power cycle the node.
a. Click Power Control in the Host Management menu.
b. Select Power Cycle , then click Save.
Below some screenshots after server reboot
The process of reimaging will take some time. To follow the progress you can open a second terminal with the the ALT-F2 key and then tape the command
1
|
# cat /proc/mdstat |
At the end of the reimaging, the ODA will restart. We can then verify the components of the server. Connecting with root, the default password is welcome1
Now we can configure the first network of the ODA. This is done by the command configure-firstnet. You will have to give some basic information
Now that the first network configuration is done, we can update the repository with the 2 following patches
-p30403662_198000_Linux-x86-64.zip
-p30403673_198000_Linux-x86-64.zip
You will need to transfer them in the ODA using your favorite tool (WinSCP, ftp …). Then we can uncompress them
1
2
3
4
5
6
7
8
9
10
11
|
[root@oak oda] # unzip p30403673_198000_Linux-x86-64.zip Archive: p30403673_198000_Linux-x86-64.zip extracting: odacli-dcs-19.8.0.0.0-200713-GI-19.8.0.0.zip inflating: README.txt [root@oak oda] # unzip p30403662_198000_Linux-x86-64.zip Archive: p30403662_198000_Linux-x86-64.zip extracting: odacli-dcs-19.8.0.0.0-200713-DB-19.8.0.0.zip replace README.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y inflating: README.txt [root@oak oda] # |
And then update the repository with the grid stack
1
2
3
4
5
6
7
8
9
10
11
|
[root@oak oda] # /opt/oracle/dcs/bin/odacli update-repository -f /tmp/oda/odacli-dcs-19.8.0.0.0-200713-GI-19.8.0.0.zip { "jobId" : "e9a571ca-f2cd-46ba-b8eb-8e337dbb8375" , "status" : "Created" , "message" : "/tmp/oda/odacli-dcs-19.8.0.0.0-200713-GI-19.8.0.0.zip" , "reports" : [ ], "createTimestamp" : "August 05, 2020 01:19:48 AM PDT" , "resourceList" : [ ], "description" : "Repository Update" , "updatedTime" : "August 05, 2020 01:19:48 AM PDT" } |
The status of the job can be viewed using the command describe-job with the jobid. It should return SUCCESS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@oak oda] # /opt/oracle/dcs/bin/odacli describe-job -i "e9a571ca-f2cd-46ba-b8eb-8e337dbb8375" Job details ---------------------------------------------------------------- ID: e9a571ca-f2cd-46ba-b8eb-8e337dbb8375 Description: Repository Update Status: Success Created: August 5, 2020 1:19:48 AM PDT Message: /tmp/oda/odacli-dcs-19 .8.0.0.0-200713-GI-19.8.0.0.zip Task Name Start Time End Time Status ---------------------------------------- ----------------------------------- ----------------------------------- ---------- [root@oak oda] # |
After update the repository with the DB stack
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@oak oda] # /opt/oracle/dcs/bin/odacli update-repository -f /tmp/oda/odacli-dcs-19.8.0.0.0-200713-DB-19.8.0.0.zip { "jobId" : "bb83a202-6cf5-4663-a446-c974a0f3a2a5" , "status" : "Created" , "message" : "/tmp/oda/odacli-dcs-19.8.0.0.0-200713-DB-19.8.0.0.zip" , "reports" : [ ], "createTimestamp" : "August 05, 2020 01:21:01 AM PDT" , "resourceList" : [ ], "description" : "Repository Update" , "updatedTime" : "August 05, 2020 01:21:01 AM PDT" } [root@oak oda] # |
The status should return SUCCESS
1
|
[root@oak oda] # /opt/oracle/dcs/bin/odacli describe-job -i "bb83a202-6cf5-4663-a446-c974a0f3a2a5" |
Now we can create the appliance. This can be done via the web interface. You will need the ports 7070 and 7093 to be opened
If you plan to use the web interface just connect to this URL with the oda-admin ( you will be asked to change the password)
1
|
https: //ODA-host-ip-address :7093 /mgmt/index .html |
In my case the deployment is done using a json file. This json file can be generated from the web console. But you can also find some example in the net. But I recommend generating the file using the web console, this will reduce errors in the file.
Below the example of my file (please replace the hidden values with your values). We suppose that that the hostname of my ODA is serveroda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
[root@serveroda ~] # cat serveroda.json { "instance" : { "instanceBaseName" : "serveroda-c" , "dbEdition" : "EE" , "objectStoreCredentials" : null, "name" : "serveroda" , "systemPassword" : "***********" , "timeZone" : "Europe/Zurich" , "domainName" : "XXXXXXXXX" , "dnsServers" : [ "XXXXXXXX" , "XXXXXXXX" ], "ntpServers" : [ "XXXXXXXXXXX" , "XXXXXXXXXXX" , "XXXXXXXXXXX" ], "isRoleSeparated" : true , "osUserGroup" : { "users" : [ { "userName" : "oracle" , "userRole" : "oracleUser" , "userId" : 1001 }, { "userName" : "grid" , "userRole" : "gridUser" , "userId" : 1000 } ], "groups" : [ { "groupName" : "oinstall" , "groupRole" : "oinstall" , "groupId" : 1001 }, { "groupName" : "dbaoper" , "groupRole" : "dbaoper" , "groupId" : 1002 }, { "groupName" : "dba" , "groupRole" : "dba" , "groupId" : 1003 }, { "groupName" : "asmadmin" , "groupRole" : "asmadmin" , "groupId" : 1004 }, { "groupName" : "asmoper" , "groupRole" : "asmoper" , "groupId" : 1005 }, { "groupName" : "asmdba" , "groupRole" : "asmdba" , "groupId" : 1006 } ] } }, "nodes" : [ { "nodeNumber" : "0" , "nodeName" : "serveroda" , "network" : [ { "ipAddress" : "XXXXXXXXXX" , "subNetMask" : "255.255.255.0" , "gateway" : "XXXXXXXXX" , "nicName" : "btbond1" , "networkType" : [ "Public" ], "isDefaultNetwork" : true } ] } ], "grid" : { "vip" : [], "diskGroup" : [ { "diskGroupName" : "DATA" , "diskPercentage" : 80, "redundancy" : "NORMAL" }, { "diskGroupName" : "RECO" , "diskPercentage" : 20, "redundancy" : "NORMAL" } ], "language" : "en" , "enableAFD" : "TRUE" , "scan" : null }, "database" : null } [root@serveroda ~] # |
To create the Appliance, we run following command. The output was truncated
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@serveroda ~] # odacli create-appliance -r serveroda.json …. … Enter an initial password for Web Console account (oda-admin): Confirm the password for Web Console account (oda-admin): { "jobId" : "d4c6762e-7bbd-48d2-aac3-f9c975514ebd" , "status" : "Created" , "message" : null, "reports" : [ ], "createTimestamp" : "August 07, 2020 09:48:50 AM UTC" , "resourceList" : [ ], "description" : "Provisioning service creation" , "updatedTime" : "August 07, 2020 09:48:50 AM UTC" } |
The status of the job should return SUCCESS. Otherwise you can check dcs-agent.log located in /opt/oracle/dcs/log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
[root@serveroda0 ~] # odacli describe-job -i "d4c6762e-7bbd-48d2-aac3-f9c975514ebd" Job details ---------------------------------------------------------------- ID: d4c6762e-7bbd-48d2-aac3-f9c975514ebd Description: Provisioning service creation Status: Success Created: August 7, 2020 9:48:50 AM CEST Message: Task Name Start Time End Time Status ---------------------------------------- ----------------------------------- ----------------------------------- ---------- network update August 7, 2020 9:48:51 AM CEST August 7, 2020 9:48:57 AM CEST Success updating network August 7, 2020 9:48:51 AM CEST August 7, 2020 9:48:57 AM CEST Success Setting up Network August 7, 2020 9:48:51 AM CEST August 7, 2020 9:48:52 AM CEST Success OS usergroup 'asmdba' creation August 7, 2020 9:48:57 AM CEST August 7, 2020 9:48:57 AM CEST Success OS usergroup 'asmoper' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success OS usergroup 'asmadmin' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success OS usergroup 'dba' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success OS usergroup 'dbaoper' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success OS usergroup 'oinstall' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success OS user 'grid' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success OS user 'oracle' creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success Default backup policy creation August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success Backup config metadata persist August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success SSH equivalance setup August 7, 2020 9:48:58 AM CEST August 7, 2020 9:48:58 AM CEST Success Grid home creation August 7, 2020 9:48:59 AM CEST August 7, 2020 9:51:35 AM CEST Success Creating GI home directories August 7, 2020 9:48:59 AM CEST August 7, 2020 9:48:59 AM CEST Success Cloning Gi home August 7, 2020 9:48:59 AM CEST August 7, 2020 9:51:32 AM CEST Success Updating GiHome version August 7, 2020 9:51:32 AM CEST August 7, 2020 9:51:35 AM CEST Success Storage discovery August 7, 2020 9:51:35 AM CEST August 7, 2020 9:56:05 AM CEST Success Grid stack creation August 7, 2020 9:56:05 AM CEST August 7, 2020 10:09:00 AM CEST Success Configuring GI August 7, 2020 9:56:05 AM CEST August 7, 2020 9:57:07 AM CEST Success Running GI root scripts August 7, 2020 9:57:07 AM CEST August 7, 2020 10:04:45 AM CEST Success Running GI config assistants August 7, 2020 10:04:46 AM CEST August 7, 2020 10:05:22 AM CEST Success Post cluster OAKD configuration August 7, 2020 10:09:00 AM CEST August 7, 2020 10:11:44 AM CEST Success Disk group 'RECO' creation August 7, 2020 10:11:52 AM CEST August 7, 2020 10:12:04 AM CEST Success Register Scan and Vips to Public Network August 7, 2020 10:12:05 AM CEST August 7, 2020 10:12:40 AM CEST Success Volume 'commonstore' creation August 7, 2020 10:12:40 AM CEST August 7, 2020 10:13:37 AM CEST Success ACFS File system 'DATA' creation August 7, 2020 10:13:37 AM CEST August 7, 2020 10:13:54 AM CEST Success Install oracle-ahf August 7, 2020 10:13:54 AM CEST August 7, 2020 10:15:24 AM CEST Success Provisioning service creation August 7, 2020 10:15:24 AM CEST August 7, 2020 10:15:24 AM CEST Success persist new agent state entry August 7, 2020 10:15:24 AM CEST August 7, 2020 10:15:24 AM CEST Success persist new agent state entry August 7, 2020 10:15:24 AM CEST August 7, 2020 10:15:24 AM CEST Success Restart Zookeeper and DCS Agent August 7, 2020 10:15:24 AM CEST August 7, 2020 10:15:25 AM CEST Success |
After the deployment we can check the component version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@serveroda ~] # odacli describe-component System Version --------------- 19.8.0.0.0 Component Installed Version Available Version ---------------------------------------- -------------------- -------------------- OAK 19.8.0.0.0 up-to- date GI 19.8.0.0.200714 up-to- date DCSAGENT 19.8.0.0.0 up-to- date ILOM 4.0.4.38.a.r132148 4.0.4.51.r134837 BIOS 52020500 52021300 OS 7.8 up-to- date FIRMWARECONTROLLER VDV1RL02 VDV1RL04 FIRMWAREDISK 1120 1102 HMP 2.4.5.0.1 up-to- date |
As we can see following components are not up-to-dated
-ILOM
-BIOS
-FIRMWARECONTROLLER
To update these components, in my case, we had to apply the patch 19.8 and we had to manually patch the ILOM and the BIOS. These steps are described in the Part II of this blog
Kurt Cobain
27.07.2023If it seems to be suspended by post-installation scripts :
Crtl+b +c >>> New anacunda Window
ls -larth /tmp
cat /tmp/ks-script-wctqdc
ls -larth /mnt/sysimage/root/Extras
watch "ls -larth /mnt/sysimage/root/Extras"
You will see the progression...
cp /run/install/repo/Extras/* /mnt/sysimage/root/Extras to is very slow