Friday, July 19, 2013
Oracle 12c Books
Thursday, July 18, 2013
Upgrading your ODM Repository for SQL Dev 4
For those users of Oracle Data Miner (ODM) that is part of SQL Developer, now that Oracle have finally released SQL Developer 4, you might want to upgrade to this new release. There are a lot of new features. Some of these are available for 11.2g and 12.1c databases and some are only available for 12.1c users.
I will have another blog post soon on the new Oracle Data Miner (ODM) features that are available in SQL Developer 4.
The instructions given below are what I did to upgrade so that I could use the new ODM tool/SQL Developer 4.
Step 1 – Install SQL Developer 4 : I have another blog post on what this involves, so check it out and complete the steps before you continue with the result of the steps below.
Step 2 – Make ODM Visible : After SQL Developer 4 opens you should see all your migrated connections. To make ODM visible you need to click on the Tools menu, select Oracle Data Miner and then Make Visible. This will open a number of tabs on the left hand side of SQL Developer. These will include Data Miner (connections), Workflow Structure and Workflow Jobs.
Step 3 – Open an ODM Connection : Take one your ODM connections and double click on it. SQL Developer 4 / ODM will check what versions of the ODM repository exists in your database. If this is your first time connecting from SQL Developer 4, you will be told that you will need to upgrade your repository
Step 4 – Upgrade the ODM Repository : Select the Yes button on the Upgrade Repository window. You will then be asked for the SYS password. If you do not have access to this you can talk nicely to your DBA and ask them to enter the password for you.
You may or may not get a warning message like the following. Just click OK to continue.
Step 5 – Start the Repository Upgrade : When the Migrate Data Miner Repository window opens, just click the Start button.
This might be a good time to go off an make yourself a coffee. The upgrade process tool approx. 8 minutes on my laptop. If you were running this on a server located somewhere then the script will take a little bit longer to run!
The progress bar will let you know how things are progressing. It also gives some messages to let you known at what stage of the process it is at.
Step 6 – All finished : When the Repository Migration has finished you will get a window with a message saying Task Successfully Complete. Click on the Close button to close this window.
Step 7 – Open an Existing Workflow : Just to make sure that everything has worked with the install and ODM Repository migration, open one of your existing workflows. If it opens then everything should be OK.
When you open the workflow, the new Workflow Editor tab opens on the right hand side of SQL Developer. This seems to have replaced the Component Palette we had with the pervious version of the ODM tool. Expand the headings under the Workflow Editor to see the different nodes that are available. Most of these are the same but we have 2 new nodes under the Data section. These are Graph and SQL Query. I’ll have more on these in another post or posts.
Wednesday, July 17, 2013
Auto-Starting your pluggables in 12c
After installing 12c you get your container database and a pluggable. But the problem that most people have is that when they restart their server or in my case my VMs the container database gets started but the pluggable database does not automatically start. This means that you have to manually go in an start it. But this is a pain. Surely there is an easy way to get your pluggable databases to start. You would have though that Oracle would have some easy way of doing this. If there is, I haven’t found it yet.
But I have come across how to automatically start your 12c pluggable databases, using a trigger.
CREATE or REPLACE trigger OPEN_ALL_PLUGGABLES
after startup
on database
BEGIN
execute immediate 'alter pluggable database all open';
END open_all_pdbs;
Let us test this out. I’ve started my VirtualBox VM that has 12c installed on Windows 7. Here is the code that I ran to verify that the container has been started and the pluggable is in MOUNTED mode.
C:\Users\oracle>sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 17 15:27:35 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions
SQL> select name,DB_UNIQUE_NAME from v$database;
NAME DB_UNIQUE_NAME
--------- ------------------------------
ORCL orcl
SQL> SELECT v.name, v.open_mode, NVL(v.restricted, 'n/a') "RESTRICTED", d.status
2 FROM v$pdbs v, dba_pdbs d
3 WHERE v.guid = d.guid
4 ORDER BY v.create_scn;
NAME OPEN_MODE RES STATUS
------------------------------ ---------- --- -------------
PDB$SEED READ ONLY NO NORMAL
PDB12C MOUNTED n/a NORMAL
SQL>
Next we will create the procedure (given above).
To test the automatic starting of the pluggables, we need to shut down the container database, by issuing the shutdown command.
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> select name,DB_UNIQUE_NAME from v$database;
select name,DB_UNIQUE_NAME from v$database
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
This shows us that the container database is shutdown.
Now we can start the container and test to see if the pluggable database is started automatically by the trigger.
SQL> startup
ORACLE instance started.
Total System Global Area 855982080 bytes
Fixed Size 2408408 bytes
Variable Size 562036776 bytes
Database Buffers 285212672 bytes
Redo Buffers 6324224 bytes
Database mounted.
Database opened.
SQL>
SQL> select name,DB_UNIQUE_NAME from v$database;
NAME DB_UNIQUE_NAME
--------- ------------------------------
ORCL orcl
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> SELECT v.name, v.open_mode, NVL(v.restricted, 'n/a') "RESTRICTED", d.status
2 FROM v$pdbs v, dba_pdbs d
3 WHERE v.guid = d.guid
4 ORDER BY v.create_scn;
NAME OPEN_MODE RES STATUS
------------------------------ ---------- --- -------------
PDB$SEED READ ONLY NO NORMAL
PDB12C READ WRITE NO NORMAL
SQL>
We can see that the pluggable was started.
Tuesday, July 16, 2013
Installing & Setting up SQL Developer 4
The EA1 release of SQL Developer 4 comes without the JDK install. For SQL Developer 4 you will need to install JDK 1.7. There is a link from the SQL Developer 4 download page.
After installing JDK 1.7 or maybe you have it installed already, you are ready to setup SQL Developer 4. The following instructions are for installing SQL Developer 4 on Windows.
After downloading it from the download page, all you have to do is to unzip the download. There is no install program. You are almost ready to start using SQL Developer.
There are 2 types of setup for SQL Developer. The first is where you have not used SQL Developer before. Point 1 below shows what is involved with this scenario. Point 2 below shows what is involved if you have used previous releases of SQL Developer.
0. Common steps to installing and setting up SQL Developer
- Unzip the SQL Developer 4 download file to a location where you want the software to be located.
- Go down the directories to where the sqldeveloper.exe is located.
- Create a shortcut on your desktop for this file.
- Double click on the shortcut on your desktop
- Enter the location where JDK 1.7 was installed
- C:\Program Files\Java\jdk1.7.0_25
- SQL Developer will start
1. Scenario: Env. that has not used SQL Dev before
- You will be asked about Importing Preferences from a previous SQL Developer installation. As you don’t have any in this scenario, only the No button will be clickable. The setup of SQL Developer will complete and will open.
- Creating a connect to a 12c pluggable database. In a previous blog post I installed 12c on a Windows 7 64 bit Virtualbox VM. The pluggable DB created was called pdb12c and a schema called brendan.
- To create a connection to this schema. Click on the green + icon under the connections tab. The New/Select Database Connection window will open. Enter the usual details, but set the Service Name to pdh12c instead of using of using a SID. Click the Test button and you should see the Status: Success message
- Double click on the connection to open the SQL Worksheet
- Finally enjoy 12c
- When asked about importing preferences from your previous SQL Developer installation, say Yes. This will take the connections from the most recent version of SQL Developer that you have installed. If you want to change this click on the button and select the version from the list
- The install will progress updating everything and pull in your connects.
- When finished SQL Developer 4 will open
- But before you get going you should test that your connections work. An easy way of doing this is to use the pingall command. Open a SQL worksheet, connect to one of your schemas (this will test that your connection works), type pingall and press F5. This will test all of your connections and tell you which ones are currently working and which connections are not (you will see a –1ms).
- You can now enjoy SQL Developer 4.
\AppData\Roaming\SQL Developer\system4.0.0.12.27
When you have renamed or removed this directory, try starting SQL Dev 4 again. Everything should work now. Well it did for me.
Many thanks to Turloch in Oracle for his help.
Monday, July 15, 2013
Installing Oracle 12c on Windows 7 64bit
Here are the steps I when through to install Oracle 12.1c on Windows 7 64 bit.
- Unzip the two 12c downloads files into the same directory. I called this directory database
- Go down a couple of levels in the database directory until you come to the directory that contains setup.exe. Double click on this to start the installer.
- Step 1 – Configure Security Updates: Un-tick the tick-box and click the Next button. A warning message will appear. You can click on the Yes button to proceed.
- Step 2 – Software Update : select the Skip Software Updates option and then click the Next button.
- Step 3 – Installation Option : select the Create and Configure a Database option and then click the Next button.
- Step 4 – System Class: Select the Server Class option and then click the Next button
- Step 5 – Grid Installation Options : Select the Single Instance Database Installation option and then click the next button.
- Step 6 – Install Types : Select the Typical install option and then click the Next button.
- Step 7 - Installation Location : Select the Use Windows Built-in Account option and then click the Next button. An warning message appears. Click the Yes button.
- Step 8 – Typical Installation. Set Global Database Name to cdb12c for the container database name. Set the Administrative password for the container database. Set the name of the pluggable database that will be created. Set this to pdb12c. Or you can accept the default names. Then click the Next button. If you get a warning message saying the password does not conform to the recommended standards, you can click the Yes button to ignore this warning and proceed.
- Step 9 – Prerequisite Checks : the install will check to see that you have enough space and necessary permissions etc.
- Step 10 – Summary – You should now be ready to start the install. Click the Install button.
You can now sit back, relax and watch the installation of 12.1c complete.
You may get some Windows Security Alert windows pop up. Just click on the Allow Access button.
Then the Database Configuration Assistant will start. This step might take a while to complete.
When everything is done you will get something like the following
Now you are almost ready to start using your Pluggable 12c database on windows. The final two steps that you need to do is to add an entry to your tnsnames.ora file. You can manually do this if you know what you are doing or you can select Net Configuration Assistant under the Oracle –Ora12cDB Home 1 section of the windows menu. The second thing you need to do is to create a new user/schema.
Check out my previous blog post called ‘My first steps with 12c’ for how to do these last two steps. The ‘My fist steps with 12c’ post was based on installing 12c on Linux 6.
Friday, July 12, 2013
Oracle 12c Advanced Analytics Option new features
With the release of Oracle 12c (finally) now have a lot of learning to do. Oracle 12c is a different beast to what we have been used to up to now.
As part of the 12c there are a number of new in-database Advanced Analytics features. These are separate to the Advanced Analytics new features that come as part of the Oracle Data Miner tool, that is part of SQL Developer.
This post will only look at the new features that are part of the 12c Database. The new in-Database Advanced Analytics features include:
- Using Decisions Trees for Text analysis is now possible. Up to now (11.2g) when you wanted to do text classification you had to exclude Decision Trees from the process. This was because the Decision Trees algorithm could not support nested data.
- Additionally for text mining some of the text processing has been moved from having a separate step, to being part of the some of the algorithms.
- A number of additional features are available for Clustering. These include a cluster distance (from the centroid) and details functions.
- There is a new clustering algorithm (in addition to the K-Means and O-Cluster algorithms), called Expectation Maximization algorithm. This creates a density model that can be give better results when data from different domains are combined for clustering. This algorithm will also determine the optimal number of clusters.
- There are two new Feature Extraction methods that are scalable for high dimensional data, large number of records, for both structured and unstructured. This can be used to reduce the number of dimensions to use as input to the data mining algorithms. The first of these is called Singular Value Decomposition (SVD) and is widely used in text mining. The second method can be considered a special scoring method of SVD is called Principal Component Analysis (PCA). With this method it produces projections that are scaled with the data variance.
- A new feature of the GLM algorithm is that it will perform a feature section step. This is used to reduce the number of predictors used by the algorithm and allow for faster builds. This will makes the outputs more understandable and model more transparent. This feature is not default so you will need to set this on if you want to use it with the GLM algorithm.
- In previous versions of the database, there could be some performance issues that relate to the data types used. In 12c these has been addressed for BINARY_DOUBLE and BINARY_FLOAT. So if you are using these data types you should now see faster scoring of the data in 12c
- There is new in-database feature called Predictive Queries. This allows on-the-fly models that are temporary models that are formed as part of an analytics clause. These models cannot be tuned and you cannot see the details of the model produced. They are formed for the query and do not exist afterwards.
SELECT cust_id, age, pred_age, age-pred_age age_diff, pred_det FROM
(SELECT cust_id, age, pred_age, pred_det,
RANK() OVER (ORDER BY ABS(age-pred_age) DESC) rnk FROM
(SELECT cust_id, age,
PREDICTION(FOR age USING *) OVER () pred_age,
PREDICTION_DETAILS(FOR age ABS USING *) OVER () pred_det
FROM mining_data_apply_v))
WHERE rnk <= 5;
These are the new in-database Advanced Analytics (Data Mining) features. Apart from the new algorithms or changes to them, most of the other changes gives greater transparency into what the algorithms/models are doing. This is good as it allows us to better understand and see what is happening.
The rest of the new Advanced Analytics Option new features will be part of Oracle Data Miner tool in SQL Developer 4. My next blog post will cover the new features in SQL Developer 4.
I haven’t mentioned anything about ORE. The reason for that is that it comes as a separate install and its current version 1.3 works the same in 11.2.0.3g as well as 12c. I’ve had some previous blog posts on this and you can check out the ORE website on OTN.
Thursday, July 11, 2013
My first steps with Oracle 12c
This must be the first time that I have done an install of an newly release Oracle Database, where everything worked first time. Typically I have learned from the past and have left it a few months before attempting an install.
Many thanks to Tim Hall (www.oracle-base.com) for his install instructions for Linux 6 and Oracle 12c. These are a lot simpler to follow than the actual Oracle Install documentation.
After the install had finished I was able to log into the Database Express webpage on the server. This is a cut down version of the old EM and it looks like Oracle is pushing everyone to their standalone EM tool.
[The following is what I did. I’m sure there are better and quicker ways of doing the following]
I had rebooted the VM I created for 12c and when I logged back in I could not log into the container DB or to Database Express. After a bit of digging around I found out that I needed to create a could of scripts that will run every time the VM is started so that it will start the DBs. So to get things (DB) started I ran
sqlplus / as sysdba
This got be logged into the container in nomount mode. Now I needed to start the container with the START command.
SQL> startup
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2293928 bytes
Variable Size 578817880 bytes
Database Buffers 255852544 bytes
Redo Buffers 2318336 bytes
Database mounted.
Database opened.
SQL> show user
USER is "SYS"
To see the container DB details
SQL> select name,DB_UNIQUE_NAME from v$database;
NAME DB_UNIQUE_NAME
--------- ------------------------------
CDB12C cdb12c
and to see its current status
SQL> select status from v$instance;
STATUS
------------
OPEN
To see what pluggable DBs you have
SQL> SELECT v.name, v.open_mode, NVL(v.restricted, 'n/a') "RESTRICTED", d.status
FROM v$pdbs v, dba_pdbs d
WHERE v.guid = d.guid
ORDER BY v.create_scn; 2 3 4
NAME OPEN_MODE RES STATUS
------------------------------ ---------- --- -------------
PDB$SEED READ ONLY NO NORMAL
PDB12C MOUNT NO NORMAL
If PDB12C has an OPEN_MODE of MOUNT do the following to open the pluggable database
SQL> ALTER PLUGGABLE DATABASE pdb12c OPEN;
(I previous had START instead of OPEN)
To see what active services I have
SQL> select name FROM v$active_services;
NAME
----------------------------------------------------------------
pdb12c.localdomain
cdb12cXDB
cdb12c.localdomain
SYS$BACKGROUND
SYS$USERS
To create a new schema in the PDB (pdb12c) I did
sqlplus / as sysdba
SQL> ALTER SESSION SET CONTAINER = pdb12c;
SQL> create user brendan identified by brendan
2 default tablespace users
3 temporary tablespace temp;
User created.
SQL> grant connect, resource to brendan1;
Grant succeeded.
SQL>
Next I opened the listener and reloaded to take in the services and the PDB that I wanted to use called PDB12c.
oracle@Oracle-12-1c etc]$ lsnrctl
LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 09-JUL-2013 15:26:50
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start stop status services
version reload save_config trace
spawn quit exit set*
show*
LSNRCTL> reload
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
LSNRCTL> services
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "cdb12c.localdomain" has 1 instance(s).
Instance "cdb12c", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "cdb12cXDB.localdomain" has 1 instance(s).
Instance "cdb12c", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: Oracle-12-1c.localdomain, pid: 3138>
(ADDRESS=(PROTOCOL=tcp)(HOST=Oracle-12-1c.localdomain)(PORT=27389))
Service "pdb12c.localdomain" has 1 instance(s).
Instance "cdb12c", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
The command completed successfully
LSNRCTL> exit
Next I needed to add an entry for the PDB into the tnsnames.ora file located in
/u01/app/oracle/product/12.1.0/db_01/network/admin
and added the following for the PDB and saved the tnsnames.ora file.
PDB12C =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle-12-1c.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PDB12C.localdomain)
)
)
Then I was able to connect to the PDB for my ‘brendan’ schema
[oracle@Oracle-12-1c etc]$ sqlplus brendan/brendan@pdb12c
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 9 17:22:30 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Last Successful login time: Tue Jul 09 2013 15:29:18 +01:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
I hope you might find this useful. All of the above are my notes and for me to remember what I did on my first time using 12c.
Tuesday, October 23, 2012
Oracle Database next release (12c) new features
At Oracle Open World there was a number of presentation on the new features that we will see in the new release of the database, which is being called 12c, where c is for the cloud.
The 12c Database/Next Release was announce during Larry’s Sunday keynote speech.
Health Warning: As with all the presentations at OOW that talked about what may be in or may be in the next release, there is no guarantee that these features will actually be in the released version of the database. Here is the slide that gives the Safe Harbor statement.
In addition to this key note there was a few additional presentations on 12c with the main one, for me, by Tom Kyte on the Thursday morning.
- The 12c database will be a multi-tenant database. What does this mean? If means that we can have multiple databases running on the same server sharing the same memory and process management. Under the current configuration, when we create a new database on a server we create a separate set of processes and memory allocation. Oracle is calling this, Pluggable Databases
- MapReduce in the Database - MapReduce can be run from PL/SQL directly in the database.
- Improved default value management. We will be able to clearly how to allocate a value to or calculate a value as a default for a column. The first of these is that we will be able to assign a sequence to a column. Example x int default s.nextval primary key. We can then insert into a table and not worry about how to calculate a primary key value, insert into t(y) values ('hello world');. We will also be able to specify a default value when no value is being inserted into a column, z number default on null 42
- Increased size for VARCHAR2, NVARCHAR2 and RAW data types up to 32K in size. You will need to se the Max_SQL_String_Size in the init.ora to EXTENDED. But this new size limit is not supported in clustered and index organised tables.
- Some improvements to PARTITIONing, with asynchronous global index maintenance for DROP and TRUNCATE partition. New CASCADE functionality for TRUNCATE and EXCHANGE partition. You will be able to perform multiple partition operations with a single DDL command.
- There will be better Statistics for query performance including Hybrid Historgrams, Session Private Statistics and statistics will be gathered during data loads automatically.
- Temporary UNDO for objects will be handled in TEMP
- Greater insight of data usage i.e .what is being used or not being used and how frequently. This allows policies in table definition (new ILM clause) to compress or archive data after time.
ALTER TABLE orders
ILM ADD CompressionPolicy
COMPRESS Partitions for Query
AFTER 90 days from creation;
This post focused on the core database new features what may be coming in 12c.
In my next blog post I will look at some of the coding/development changes that are coming in 12c and associated Oracle development tools