Merry Christmas to everybody :)
This year, my present will be the Forms Resizer tool free for you!
You can use, play, modify and deploy it as you need and as you want. There is no license at all attached to it.
But, I won't continue to update, maintain it in any way, so there will not be any new version, any support, and I won't respond to any question about it.
Backblaze has two interesting blog posts about enterprise vs consumer drives. Their conclusions are that drives fail either when they're young, or when they're old, but not when they're in mid-life. They also found no real difference failure rates between the two classes. http://blog.backblaze.com/2013/11/12/how-long-do-disk-drives-last/ http://blog.backblaze.com/2013/12/04/enterprise-drive-reliability/
Thank you for visiting. This blog has been closed down and merged with the WebCenter Blog, which contains blog posts and other information about ECM, WebCenter Content, the content-enabling of business applications and other relevant topics. Please be sure to visit and bookmark https://blogs.oracle.com/webcenter/ and subscribe to stay informed about these topics and many more. From there, use the #ECM hashtag to narrow your focus to topics that are strictly related to ECM.
See you there!
A nice little feature in Oracle Database 12c is to query patching information via SQL. You can do this from SQLPlus or any other SQL interface jdbc/odbc etc. You can find more details here
However you won't be surprised to find that the following query doesn't currently return any useful information.
SYS@//oracle12c/orcl > select DBMS_QOPATCH.GET_OPATCH_LIST from dual; GET_OPATCH_LIST ------------------------------------------------------------------------------------------------------------------------ <patches/>
I’ve been using the very useful scripts from FlashDBA to run SLOB2 on our new system, but unfortunately the analyze one is not RAC aware, so I’ve modified it, in very minor ways, such that it can use an AWR Global report (
awrgrpt.sql) as input and still extract the same values that the original does.
I call the script slob2-rac-analyze.sh
Here is an example run – ignore the numbers as they are not representative of anything in particular.
a555.net(jeff.a1):/app/support/SLOB: ./slob2-rac-analyze.sh rac_awr_12jul2013/awr.20.032/awr.20.032.txt > slob.csv
Info : Analyzing file rac_awr_12jul2013/awr.20.032/awr.20.032.txt
Info : Filename = awr.20.032.txt
Info : Update Pct = 20
Info : Workers = 032
Info : Read IOPS = 85.8
Info : Write IOPS = 33.0
Info : Redo IOPS = 15.6
Info : Total IOPS = 134.4
Info : Read Num Waits = 712
Info : Read Wait Time = 0.58
Info : Read Latency us = 814.606
Info : Write Num Waits = 926
Info : Write Wait Time = 0.28
Info : Write Latency us = 302.375
Info : Redo Num Waits = 2043
Info : Redo Wait Time = 0.37
Info : Redo Latency us = 181.106
Info : Num CPUs = 384
Info : Num CPU Cores = 192
Info : Num CPU Sockets = 24
Info : Linux Version = Red Hat Enterprise Linux Server release 6.3 (Santiago)
Info : Kernel Version = 2.6.32-279.2.1.el6.x86_64
Info : Processor Type = Intel(R) Xeon(R) CPU E7- 2830 @ 2.13GHz
Info : SLOB Run Time = 300
Info : SLOB Work Loop = 0
Info : SLOB Scale = 10000
Info : SLOB Work Unit = 256
Info : SLOB Redo Stress = LIGHT
Info : SLOB Shared Data Mod = 0
Info : No more files found
Info : =============================
Info : AWR Files Found = 1
Info : AWR Files Processed = 1
Info : Errors Experienced = 0
Info : =============================
Jonathan Lewis has a nice article covering the different AWR Reports.
I’ve only tested it on the system at work and it seems to work OK – your mileage may vary and I’d be happy to hear comments to the contrary, in relation to the changes I’ve made for use on RAC, but obviously the script is still 99% unchanged, so please contact FlashDBA if there are any generic issues you want to raise.
I’m not a unix shell script guy, but it seems to work…see what you think.
A new feature in Oracle Database 12c is the ability to intercept and translate third party SQL to Oracle syntactically correct SQL before it is parsed and executed. So you can now intercept SQL from applications using jdbc and odbc that were designed to run against a non Oracle database and potentially run them completely unchanged. The only work necessary is done by the database development/management team. In Oracle Database 12c we also currently support the automatic translation of some databases SQL. Currently this is limited to Sybase but we're working on others. You can find all the details here
You can also use the frame work against an application that already successfully runs against an Oracle Database. You might want to do this for migration/performance/security reasons. It also gives you an opportunity to try out an important part of the framework "Translation Profiles".
The following SQL demonstrates a simple use case. I'm using the Swingbench Order Entry schema but the sample schema OE would work just as well.
First grant the privilege to the user you want to create the SQL profile on in this case SOE. You need to do this as sys or system
grant create sql translation profile to SOE
Then connect to the user you've just granted the privilege to (SOE) and create a SQL Translation profile.
-- Drop the profile if it already exists -- exec DBMS_SQL_TRANSLATOR.DROP_PROFILE('ORDERS_APP_PROFILE'); -- Create a Translation Profile exec dbms_sql_translator.create_profile('ORDERS_APP_PROFILE');
Then add some SQL to be translated. In our simple example we are translating a count against the ORDERS table and translating it to run against the ORDERS_SOUTH table
-- Create a Translation in that profile BEGIN DBMS_SQL_TRANSLATOR.REGISTER_SQL_TRANSLATION( profile_name => 'ORDERS_APP_PROFILE', sql_text => 'select count(*) from orders', translated_text => 'select count(*) from orders_south'); END;
At this stage it's worth seeing whats been populated. You can see the SQL via the following views.
select * FROM USER_SQL_TRANSLATION_PROFILES; select * from USER_SQL_TRANSLATIONS;
Then test how this changes the execution by creating our new "ORDERS_SOUTH" table
-- Count the rows we get back from orders select count(*) from orders; -- Create a new table orders_south with just ten rows in create table orders_south as select * from orders where rownum < 11;
Now we've done that enable the sql translation profile we want to use
-- Set the session to use the sql translation profile alter session set sql_translation_profile = ORDERS_APP_PROFILE -- For testing make the sqlplus look like a foreign tool alter session set events = '10601 trace name context forever, level 32';
Now when we re run our query it will use the ORDERS_SOUTH table even though we've explicitly asked for a count against the ORDERS table.
select count(*) from orders;
-- We should just see 10 rows as opposed to hundreds of thousands
And thats a quick example of SQL Translator profiles in Oracle Database 12c
This blog is going production... Just like Oracle Database 12c.
Comments and code snippets to follow
In 2011, I joined many others in the Movember event for the first time. This is a fund-raising effort where participants grow a mustache for the month of November and collect donations to support men’s health, specifically prostate and testicular cancers. Individuals can participate on their own or as a team, but no matter what you donate, it all goes to the same place. In my first year, I managed to collect $754 from 15 donors! Hopefully, I’ll exceed my previous year’s fundraising this year…just not sure what mustache style will bring in the most money yet?!
To see photo updates of how my ‘stache is coming along and to make donations, go to my page on Movember. Thanks for any donation you can make!