When running dbnodeupdate.sh for updating a db server the "-l" argument is always required to specify the source location of the new release/update. From here we will now call this 'location' the repository'. The repository comes in two different flavors: as an ISO and as Oracle ULN channel. Let's start with the ULN channel.
Exadata ULN Channels
For the different Exadata releases starting 220.127.116.11.0 a corresponding 'base channel' is available on linux.oracle.com (ULN). Exadata customers can register to ULN with their CSI, subscribe to the channel (e.g. patch/release) they require and then synchronize one or more channels to with the local (in house) repository. This local repository can then be made available to the internal data-center by publishing it via a web server.
Note: it is not recommended to use an Exadata db server as local YUM repository
Instructions how to subscribe a system to ULN and synchronize to a local repository are the same as for Oracle Linux and Oracle VM, so generic instructions can be found on OTN here. The README of a specific Exadata release will always mention what channels are made available for that release. You can also find this information via MOS 888828.1 and also in 1473002.1.
Additional to the 'base channel', there is also a 'latest channel'. Currently for Exadata there is a latest channel for 11.2 and 12.1 releases. The content of the 'latest' channel will never remain the same (unlike the 'base' channel) as long as there will be updates for that 11.2 or 12.1 release. When for example a new Exadata 12 release will be published this will be added to the existing latest channel (in addition to a 'base channel' also made available). This is the primary reason for the 'latest' channel being much larger (and taking more time to synchonize) than a base channel.
For Exadata installations on release later than 18.104.22.168.1, the 'latest' channel brings additional options. With the latest channel it's now possible to specify what release you want to update to. For example when on 22.214.171.124.0 planning to update to a later (but not the latest 12.1.release, just as an example) you can use the 'latest' channel and specify the "-t" flag to specify what release you want to update to.
Note that this can only be done with the 'latest' channel and that without specifying the "-t" argument by default the db server will be updated to the most recent release it can find in that channel. Of course there is also the option to just grab the 'base' channel and update without specifying any "-t' option.
Exadata channel as ISO
For those not able or willing to synchronize repositories with Oracle ULN there is also an ISO image available. The ISO image is built (and zipped) by Oracle and is only available for 'base' channel content. An ISO is ~1GB and about the same size as the sum of all packages of the corresponding base channel on ULN.
Using ISO or ULN
For local YUM repositories (synchronized from Oracle ULN):
For using an ISO (example with the 126.96.36.199.0 iso):
./dbnodeupdate.sh -u -l ./p17809253_112330_Linux-x86-64.zip
The ISO file should not be unzipped and there is no need to make an local 'loop mount' to use the iso - this is all done by the dbnodeupdate.sh script
For each type of repository some validation checks will be done to see if it a usable is a repository, checks are done for expected files and also if the available Exadata release in the repository is a later release than the one currently installed - because if not, an update would not be possible.
When specifying an http repository it's required to specify the top level directory containing the 'YUM metadata repository directory'. Typically this is the directory that has the 'repodir' directory in it. (see example here). When an http location cannot be identified as a valid repository an you would see a suggestion how to locate the right url.