The second day was just as informative as the first. I am bummed we are done but I needed to get back to work anyway.
Some interesting things from Day 2:
create | drop if [not] exists
Long time coming, IMO. Gives you the ability to write SQL like the following
create database if not exists db with log; create table if not exists tab1 ( field1 integer, field2 char(2) ); drop table if exists tab2;Index Extent Sizing
You can now specify the first and next extent sizes for your indexes instead of relying on the engine to guestimate what your index extent sizes should be based on index key size and table size.
Deep Embed of DataBlades
A major barrier to entry for people playing around with DataBlades is you had to install them before you could use them. In 11.7 all DataBlades that are included at no additional charge (TimeSeries, Basic Text Search, Spatial, Node and others) are pre-install but not active until you attempt to use the functionality. Nice.
Enhancements to dbschema
Added ability to omit table owner from dbschema output, but more importantly dbschema can now be used to produce the onspaces, onlog, etc. steps necessary to recreate an instance.
Backup to the Amazon Cloud
I admit, I initially put this in the "Cool, but whatever. I have no use for this feature." Now that you can store up to 5TB in Amazon S3, the feature is simple to use and I can apply a backup or restore filter to compress the backup to minimize storage costs and network traffic it definitely deserves more consideration. Only works with ontape, get it to work with onbar and we are definitely in business.
Cloning an Instance
Now here is a feature I will be using. In fact, as soon as I complete this blog post I will be using the feature to initialize HDR in my test environment. Instance cloning is just what it sounds like, make an exact copy of Instance A over here and call it Instance B. If you use HDR this can be used to replace the backup Primary/restore to Secondary/start HDR steps and it should be much faster.
ER Enhancement CDR_LOG_LAG_ACTION
If you are running ER and your snoopy thread is running behind you can get into a log wrap condition. Instead of blocking the engine in DDRBLOCK, you can tell the engine to do something else. My favorite other action is logstage. Log stage will compress and temporarily copy the logical log the snoopy thread needs to a directory so the snoopy thread can read the logs it needs and the engine can overwrite the logs it needs to and life goes on. Nice.
High Availability Enhancements - Transaction Survival and DDL on Secondary
If you are executing a DML against a updatable secondary and the primary goes down in 11.7 the transaction will not fail immediately. The engine will retry for a configurable number of seconds assuming a new primary will be put into place and life will go on.
You can now execute create table, create index, drop table, etc. commands on a secondary. Still no update statistics on a secondary available...
Automatic Storage Provisioning
This was the focus of Day 2, complete with a Hands on Lab. Neat stuff, but may make the old timey Informix DBA scratch their heads a little bit. I fall into this category and the idea of defining a pool of unused disk space for the engine to dynamically allocate chunks (or extend existing chunks) from goes against everything I believe in. I'm not saying this feature doesn't have value, I'm just saying I am a control freak and I want to tell the engine when and where to add chunks.
I will admit that the ability to extend an existing chunk to increase the size of a dbspace vs. adding a new chunk was very cool.