When talking about Oracle 12c most will concentrate just the new features, whilst of course it’s important to be familiar with new features of Oracle 12c. It is important to be aware of features which are either being de-supported or deprecated with this database version. Especially if one needs to migrate many legacy database which may have created very long time ago and move from version to version.
Compared to other versions, Oracle12c has few obsolete features, none critical. There are two different categories.
- Deprecated means that Oracle is supporting the technology until end of 12.1 version lifetime but no more.
- De-supported means it is still existing in the database but no support, bug fix any more .
I recommend when spotting the use of any of these features we advice the customers to consider other available options. The full list of this part is in oracle official document: Database Upgrade Guide 12c
Picked up a few key ones that are more commonly used and likely will run into during the migration. It is my subjective personal list of priorities (random), for the full list check the online document:
- IGNORECASE and SEC_CASE_SENSITIVE_LOGON: Passwords are now ALWAYS case sensitive. I had a very nice issue few weeks ago, where the legacy application always sent the password in upper case doesn’t matter how we typed that. It was introduced in 11g, now it deprecated.
- Stored Outlines: is a collection of hints associated with a specific SQL statement that allows a standard execution plan to be maintained, regardless of changes in the system environment or associated statistics. Plan stability is based on the preservation of execution plans at a point in time where the performance of a statement is considered acceptable. The outlines are stored in the OL$, OL$HINTS, and OL$NODES tables, but the [USER|ALL|DBA]_OUTLINES and [USER|ALL|DBA]_OUTLINE_HINTS views should be used to display information about existing outlines. If we have this Still supported for backward compatibility, but strongly recommended to use plan baselines instead
- Streams and Advanced Replication: – deprecated, consider other options or use Oracle GoldenGate to replace all features. Advanced replication allows the simultaneous transfer of data between two or more Master Sites (8i new feature). Oracle Streams are a generic mechanism for sharing data which can be used as the basis of many processes including messaging, replication and warehouse ETL processes (9i new hope).
- Deprecated DBMS_NETWORK_ACL_ADMIN PL/SQL package Procedures: Oracle allows access to external network services using several PL/SQL APIs (UTL_TCP, UTL_SMTP, UTL_MAIL …etc.), all of which are implemented using the TCP protocol. Not all of the them deprecated but many:
- DROP_ACL … etc.
- Depreciated Parameters…these Oracle initialization settings are no longer recommended to use :
- background_dump_dest … etc
To get all of them run this SQL:
Select name from v$parameter
Where isdepreciated = ‘TRUE’
Order by name;
- OEM Database Control is de-supported and is no longer available: we use more Cloud Control 12c
- Oracle Warehouse Builder (OWB) Not Installed with Oracle Database: go into retirement. The good news is that the ODI (Data Integrator) family will get bigger now. Not such bad news for the best ETL tool.
- De-support of CSSCAN and CSALTER: Database Migration Assistant for Unicode is a next-generation migration tool that provides end-to-end solution for migrating databases from standard character sets to Unicode. The standard CSSCAN and CSALTER utilities will be removed from the database installation and de-supported.
- And finally one of my favorite – INHERIT PRIVILEGES: Privilege checking in oracle 12c implements a new restriction. When a user runs an invoker’s rights procedure (PLSQL whose AUTHID value is CURRENT_USER), oracle checks the procedure owner’s privileges before initiating or running the code. The owner must have the INHERIT PRIVILEGES object privilege on the invoking user or the INHERIT ANY PRIVILEGES privilege. If this is not the case, the runtime system raises an error.
Invoker rights procedures and functions can present a security risk by allowing privilege escalation if the contents of the procedure and functions are not checked for malicious code. That’s the reason why “fixed” in 12c but it used to allowed previous releases.
The next step would be to look into the (normal and hidden) parameters default values, this especially can help explain some f the mystery behaviors. Watch this space for more…