The documentation is here: http://www.oracle.com/pls/db121/homepage
and New Features here: http://docs.oracle.com/cd/E16655_01/server.121/e17906/chapter1.htm#NEWFTCH1
I've just dipped my toe in, downloaded and installed. The installation is almost identical to V11R2 (./runInstaller), but there is a new checkbox during database creation - "Create As Container Database".
I've just had a quick look through the new features and here are some highlights:
Containers and pluggable databases and multitenant– this is
the big new feature that I haven’t looked into yet.
Move a datafile online
Dbms_utility_expand_sql_text – shows the underlying tables
in a query that has views – useful for performance tuning.
Varchar(2) columns go from 4000 bytes to 32767 bytes. Not
sure how useful that is really
Online move partition
Adaptive Query Optimization and Adaptive SQL Plan Management
– this is a biggie – sort of automatic tuning while a query is being executed
Dynamic statistics, and statistics improvements generally
ILM (Information Lifecycle Management) – basically automatic
archiving to different tiered storage and compression
In-database archiving – rows are marked invisible to the
application if archived, improving performance
Some datapump enhancements
There are some new entries in the alert log that I noticed after install, not sure yet what they mean:
RECOMMENDATION:
Total System Global Area size is 4818 MB. For optimal performance,
prior to the next instance restart:
1. Increase the number of unused large pages by
at least 2409 (page size 2048 KB, total size 4818 MB) system wide to
get 100% of the System Global Area allocated with large pages
Mon Jul 01 07:52:46 2013
2. Large pages are automatically locked into physical memory.
Increase the per process memlock (soft) limit to at least 4826 MB to lock
100% System Global Area's large pages into physical memory
Total System Global Area size is 4818 MB. For optimal performance,
prior to the next instance restart:
1. Increase the number of unused large pages by
at least 2409 (page size 2048 KB, total size 4818 MB) system wide to
get 100% of the System Global Area allocated with large pages
Mon Jul 01 07:52:46 2013
2. Large pages are automatically locked into physical memory.
Increase the per process memlock (soft) limit to at least 4826 MB to lock
100% System Global Area's large pages into physical memory
and
CELL communication is configured to use 0 interface(s):
CELL IP affinity details:
NUMA status: non-NUMA system
cellaffinity.ora status: N/A
CELL communication will use 1 IP group(s):
Grp 0:
Picked latch-free SCN scheme 3
CELL IP affinity details:
NUMA status: non-NUMA system
cellaffinity.ora status: N/A
CELL communication will use 1 IP group(s):
Grp 0:
Picked latch-free SCN scheme 3
and, interestingly:
Autotune of undo retention is turned on.
I noticed a LOT more background processes:
oracle 16275 1 0 07:57 ? 00:00:00 ora_pmon_ANDYPLG
oracle 16277 1 0 07:57 ? 00:00:00 ora_psp0_ANDYPLG
oracle 16279 1 0 07:57 ? 00:00:00 ora_vktm_ANDYPLG
oracle 16283 1 0 07:57 ? 00:00:00 ora_gen0_ANDYPLG
oracle 16285 1 0 07:57 ? 00:00:00 ora_mman_ANDYPLG
oracle 16289 1 0 07:57 ? 00:00:00 ora_diag_ANDYPLG
oracle 16291 1 0 07:57 ? 00:00:00 ora_dbrm_ANDYPLG
oracle 16293 1 0 07:57 ? 00:00:03 ora_dia0_ANDYPLG
oracle 16295 1 0 07:57 ? 00:00:03 ora_dbw0_ANDYPLG
oracle 16297 1 0 07:57 ? 00:00:02 ora_lgwr_ANDYPLG
oracle 16299 1 0 07:57 ? 00:00:01 ora_ckpt_ANDYPLG
oracle 16301 1 0 07:57 ? 00:00:01 ora_lg00_ANDYPLG
oracle 16303 1 0 07:57 ? 00:00:00 ora_lg01_ANDYPLG
oracle 16305 1 0 07:57 ? 00:00:00 ora_smon_ANDYPLG
oracle 16307 1 0 07:57 ? 00:00:00 ora_reco_ANDYPLG
oracle 16309 1 0 07:57 ? 00:00:00 ora_lreg_ANDYPLG
oracle 16311 1 0 07:57 ? 00:00:06 ora_mmon_ANDYPLG
oracle 16313 1 0 07:57 ? 00:00:02 ora_mmnl_ANDYPLG
oracle 16315 1 0 07:57 ? 00:00:00 ora_d000_ANDYPLG
oracle 16317 1 0 07:57 ? 00:00:01 ora_s000_ANDYPLG
oracle 16329 1 0 07:57 ? 00:00:00 ora_tmon_ANDYPLG
oracle 16331 1 0 07:57 ? 00:00:00 ora_tt00_ANDYPLG
oracle 16333 1 0 07:57 ? 00:00:00 ora_smco_ANDYPLG
oracle 16401 1 0 07:57 ? 00:00:00 ora_aqpc_ANDYPLG
oracle 16405 1 0 07:57 ? 00:00:05 ora_p000_ANDYPLG
oracle 16407 1 0 07:57 ? 00:00:05 ora_p001_ANDYPLG
oracle 16409 1 0 07:57 ? 00:00:02 ora_p002_ANDYPLG
oracle 16411 1 0 07:57 ? 00:00:03 ora_p003_ANDYPLG
oracle 16413 1 0 07:57 ? 00:00:01 ora_p004_ANDYPLG
oracle 16415 1 0 07:57 ? 00:00:01 ora_p005_ANDYPLG
oracle 16417 1 0 07:57 ? 00:00:00 ora_p006_ANDYPLG
oracle 16419 1 0 07:57 ? 00:00:00 ora_p007_ANDYPLG
oracle 16421 1 0 07:57 ? 00:00:00 ora_p008_ANDYPLG
oracle 16423 1 0 07:57 ? 00:00:00 ora_p009_ANDYPLG
oracle 16425 1 0 07:57 ? 00:00:00 ora_p00a_ANDYPLG
oracle 16427 1 0 07:57 ? 00:00:00 ora_p00b_ANDYPLG
oracle 16429 1 0 07:57 ? 00:00:00 ora_p00c_ANDYPLG
oracle 16431 1 0 07:57 ? 00:00:00 ora_p00d_ANDYPLG
oracle 16433 1 0 07:57 ? 00:00:00 ora_p00e_ANDYPLG
oracle 16435 1 0 07:57 ? 00:00:00 ora_p00f_ANDYPLG
oracle 16463 1 0 07:57 ? 00:00:03 ora_cjq0_ANDYPLG
oracle 16468 1 0 07:58 ? 00:00:00 ora_w000_ANDYPLG
oracle 16663 1 0 07:58 ? 00:00:00 ora_qm02_ANDYPLG
oracle 16669 1 0 07:58 ? 00:00:00 ora_q003_ANDYPLG
oracle 18143 1 0 08:08 ? 00:00:00 ora_w001_ANDYPLG
oracle 24619 1 0 08:48 ? 00:00:00 ora_w002_ANDYPLG
oracle 25254 1 0 08:52 ? 00:00:00 ora_w003_ANDYPLG
oracle 27432 1 0 09:05 ? 00:00:00 ora_w004_ANDYPLG
oracle 27434 1 0 09:05 ? 00:00:00 ora_w005_ANDYPLG
oracle 28912 28911 0 09:13 ? 00:00:00 oracleANDYPLG (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 29087 1 0 09:14 ? 00:00:00 ora_p00g_ANDYPLG
oracle 29089 1 0 09:14 ? 00:00:00 ora_p00h_ANDYPLG
oracle 29091 1 0 09:14 ? 00:00:00 ora_p00i_ANDYPLG
oracle 29093 1 0 09:14 ? 00:00:00 ora_p00j_ANDYPLG
oracle 29095 1 0 09:14 ? 00:00:00 ora_p00k_ANDYPLG
oracle 29097 1 0 09:14 ? 00:00:00 ora_p00l_ANDYPLG
oracle 29111 1 0 09:14 ? 00:00:00 ora_q001_ANDYPLG
oracle 16277 1 0 07:57 ? 00:00:00 ora_psp0_ANDYPLG
oracle 16279 1 0 07:57 ? 00:00:00 ora_vktm_ANDYPLG
oracle 16283 1 0 07:57 ? 00:00:00 ora_gen0_ANDYPLG
oracle 16285 1 0 07:57 ? 00:00:00 ora_mman_ANDYPLG
oracle 16289 1 0 07:57 ? 00:00:00 ora_diag_ANDYPLG
oracle 16291 1 0 07:57 ? 00:00:00 ora_dbrm_ANDYPLG
oracle 16293 1 0 07:57 ? 00:00:03 ora_dia0_ANDYPLG
oracle 16295 1 0 07:57 ? 00:00:03 ora_dbw0_ANDYPLG
oracle 16297 1 0 07:57 ? 00:00:02 ora_lgwr_ANDYPLG
oracle 16299 1 0 07:57 ? 00:00:01 ora_ckpt_ANDYPLG
oracle 16301 1 0 07:57 ? 00:00:01 ora_lg00_ANDYPLG
oracle 16303 1 0 07:57 ? 00:00:00 ora_lg01_ANDYPLG
oracle 16305 1 0 07:57 ? 00:00:00 ora_smon_ANDYPLG
oracle 16307 1 0 07:57 ? 00:00:00 ora_reco_ANDYPLG
oracle 16309 1 0 07:57 ? 00:00:00 ora_lreg_ANDYPLG
oracle 16311 1 0 07:57 ? 00:00:06 ora_mmon_ANDYPLG
oracle 16313 1 0 07:57 ? 00:00:02 ora_mmnl_ANDYPLG
oracle 16315 1 0 07:57 ? 00:00:00 ora_d000_ANDYPLG
oracle 16317 1 0 07:57 ? 00:00:01 ora_s000_ANDYPLG
oracle 16329 1 0 07:57 ? 00:00:00 ora_tmon_ANDYPLG
oracle 16331 1 0 07:57 ? 00:00:00 ora_tt00_ANDYPLG
oracle 16333 1 0 07:57 ? 00:00:00 ora_smco_ANDYPLG
oracle 16401 1 0 07:57 ? 00:00:00 ora_aqpc_ANDYPLG
oracle 16405 1 0 07:57 ? 00:00:05 ora_p000_ANDYPLG
oracle 16407 1 0 07:57 ? 00:00:05 ora_p001_ANDYPLG
oracle 16409 1 0 07:57 ? 00:00:02 ora_p002_ANDYPLG
oracle 16411 1 0 07:57 ? 00:00:03 ora_p003_ANDYPLG
oracle 16413 1 0 07:57 ? 00:00:01 ora_p004_ANDYPLG
oracle 16415 1 0 07:57 ? 00:00:01 ora_p005_ANDYPLG
oracle 16417 1 0 07:57 ? 00:00:00 ora_p006_ANDYPLG
oracle 16419 1 0 07:57 ? 00:00:00 ora_p007_ANDYPLG
oracle 16421 1 0 07:57 ? 00:00:00 ora_p008_ANDYPLG
oracle 16423 1 0 07:57 ? 00:00:00 ora_p009_ANDYPLG
oracle 16425 1 0 07:57 ? 00:00:00 ora_p00a_ANDYPLG
oracle 16427 1 0 07:57 ? 00:00:00 ora_p00b_ANDYPLG
oracle 16429 1 0 07:57 ? 00:00:00 ora_p00c_ANDYPLG
oracle 16431 1 0 07:57 ? 00:00:00 ora_p00d_ANDYPLG
oracle 16433 1 0 07:57 ? 00:00:00 ora_p00e_ANDYPLG
oracle 16435 1 0 07:57 ? 00:00:00 ora_p00f_ANDYPLG
oracle 16463 1 0 07:57 ? 00:00:03 ora_cjq0_ANDYPLG
oracle 16468 1 0 07:58 ? 00:00:00 ora_w000_ANDYPLG
oracle 16663 1 0 07:58 ? 00:00:00 ora_qm02_ANDYPLG
oracle 16669 1 0 07:58 ? 00:00:00 ora_q003_ANDYPLG
oracle 18143 1 0 08:08 ? 00:00:00 ora_w001_ANDYPLG
oracle 24619 1 0 08:48 ? 00:00:00 ora_w002_ANDYPLG
oracle 25254 1 0 08:52 ? 00:00:00 ora_w003_ANDYPLG
oracle 27432 1 0 09:05 ? 00:00:00 ora_w004_ANDYPLG
oracle 27434 1 0 09:05 ? 00:00:00 ora_w005_ANDYPLG
oracle 28912 28911 0 09:13 ? 00:00:00 oracleANDYPLG (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 29087 1 0 09:14 ? 00:00:00 ora_p00g_ANDYPLG
oracle 29089 1 0 09:14 ? 00:00:00 ora_p00h_ANDYPLG
oracle 29091 1 0 09:14 ? 00:00:00 ora_p00i_ANDYPLG
oracle 29093 1 0 09:14 ? 00:00:00 ora_p00j_ANDYPLG
oracle 29095 1 0 09:14 ? 00:00:00 ora_p00k_ANDYPLG
oracle 29097 1 0 09:14 ? 00:00:00 ora_p00l_ANDYPLG
oracle 29111 1 0 09:14 ? 00:00:00 ora_q001_ANDYPLG
There are 4 CPUs on the host, so I don't know why there appear to be so many parallel processes, if that's what they are.
Still trying to get a handle on the containers - I created a container called ANDYPLG, then a pluggable database inside that using the dbca called ANDYPLG1.
As you can see from the background processes, that doesn't show up.
There is a new v$services view which shows the database:
SQL> select pdb from v$services;
PDB
------------------------------
ANDYPLG1
CDB$ROOT
CDB$ROOT
CDB$ROOT
CDB$ROOT
PDB
------------------------------
ANDYPLG1
CDB$ROOT
CDB$ROOT
CDB$ROOT
CDB$ROOT
I tried to create a user in ANDYPLG1, but got this:
ORA-65096: invalid common user or role name
Did a Google, and found that you can't do this in a container. It has to be in the pluggable database, so you need to switch to that first:
SQL> alter session set container=ANDYPLG1;
Session altered.
Session altered.
SQL> create user andy identified by andy;
User created.
User created.
I'll have a play over the next few weeks and post results here.