How to manage Oracle database upgrades and annual releases
Oracle consultants offer tips and advice on upgrading databases, including new considerations created by the annual release schedule that Oracle is now following.
Oracle's shift to annual releases of its flagship database software has added new upgrade planning issues for users. But the process of managing Oracle database upgrades is still essentially the same, according to technical consultants who offered their advice on how to ensure upgrades go smoothly.
The best practices they said organizations should adhere to when upgrading Oracle databases include reviewing database certifications for packaged applications, testing the potential performance impact, and creating rollback and recovery plans in case the upgrade process goes awry. Database administrators (DBAs) should also take particular care during upgrades of mission-critical systems through the use of hot backups and other measures, the consultants said.
Oracle began the annual database release schedule in 2018 when it rolled out Oracle Database 18c, which was followed by the Oracle Database 19c update this year. Those names may give DBAs some pause in planning Oracle database upgrades, because the previous version was Oracle 12c Release 2.
"There's a lot of confusion around Oracle changing the release schedule," said Jeffrey McDonald, an Oracle solutions architect for enterprise infrastructure at IT services firm PCM in El Segundo, Calif.
However, while Oracle's naming convention may have changed, 12c is still the underlying technology for now. Oracle 18c is essentially release 126.96.36.199, and 19c is 188.8.131.52.
More upgrade questions ahead for Oracle users
McDonald advised users of older releases to consider upgrading to 18c or 19c, which are relatively minor updates -- at least for 12c users. Organizations may have to think harder about whether to upgrade when Oracle rolls out the next major version of the software, he said. The vendor has yet to specify when that will happen, but it described Oracle 19c as the last planned release in the 12c line.
Bharath Terala, Oracle practice manager at Apps Associates LLC in Acton, Mass., highly recommended users upgrade older versions of Oracle Database if only to maintain technical support for their systems. For example, patching and extended support for the final release of Oracle 11g are scheduled to end in December 2020, while the end date for the initial 12.1 version of Oracle 12c is July 2021.
Before upgrading, though, DBAs and IT managers must review platform certifications and supported database combinations for applications like Oracle E-Business Suite, Terala said. Even a minor upgrade could introduce subtle problems that break existing applications, he cautioned. It's also important, he added, to check the initialization parameters for each database release to get a full understanding of the pros and cons, as well as the impact they have on things like indexes and execution of SQL queries.
Terala also urged organizations to build out a robust release management process that ensures proper testing prior to making any changes to their production databases. And they should be prepared for problems in systems that can result from a database upgrade.
"Having a fallback plan is key in case the team encounters any unforeseen challenges post-upgrade," he said.
Plan for data and process problems
Data integrity should be another top concern in planning Oracle database upgrades.
"It doesn't matter how fast you can do the upgrade if you cannot guarantee your data," said Kate Gawron, a senior Oracle database administrator at N4Stack, an IT consulting and services provider in Nottingham, England.
Like Terala, Gawron said to make sure you have a tested recovery plan so you can restore database systems, if needed. If an upgrade goes wrong, it's crucial to be able to get your old database back up and running as soon as possible. Some of the problems Gawron has encountered during Oracle database upgrades include data corruption issues and upgrade process failures.
Data can get corrupted when transferring database files, she said. If so, you'll see errors around block corruption when you try to start the new database. It's hard to detect such corruption until you do start the database, but Gawron said you can create a checksum copy before moving a file and compare it to the data afterward to make sure they're the same.
To help avoid failures during upgrades, Gawron said DBAs should run the preupgrade scripts that Oracle provides to check for potential problems and then follow any recommendations before beginning the upgrade process. After an upgrade is completed, she added, the entire upgrade log -- not just the final summary -- should be checked for errors.
A new Oracle home for your database
Another good upgrade practice is to deploy your database in a new Oracle home directory, rather than the existing one, according to Gawron. Doing so makes rollback and recovery procedures cleaner and easier if something goes wrong during a database upgrade.
If it's practical for your business, it's also a good idea to install new server hardware at the same time. Often, the servers that run databases need upgrading, too.
"If you're already accepting the downtime of a database upgrade, it makes sense to look at the servers, too, and take the opportunity to upgrade those if you can," Gawron said.
Mission-critical systems should be handled extra carefully when doing Oracle database upgrades. Gawron recommended Oracle's transportable tablespaces or database features in such cases. Using them in conjunction with the incremental restore feature in Oracle Recovery Manager (RMAN) allows you to copy a database and move it to a new system for testing, she said. When you're ready to switch over to the upgraded database, an RMAN restore will bring the new system in line with the old one.
McDonald said real-time data integration and replication tools like Oracle's GoldenGate software can simplify the process of synchronizing data between two systems for high availability and disaster recovery. DBAs can then do a rolling database upgrade by taking one location out of service, upgrading it, bringing it back online, synchronizing the data again and repeating the process on the other system.