OOW’09 - What’s wrong with this picture?
A good friend of mine present at OOW’09 send me these interesting picture, can you see something strange here?

Cheers,
Francisco Munoz Alvarez
A good friend of mine present at OOW’09 send me these interesting picture, can you see something strange here?

Cheers,
Francisco Munoz Alvarez
For a long time Metalink was a good friend and partner, helping me to find some good solutions and supporting me to solve some daily or critical situations. Now is official in the metalink note 841061.1:
“Beginning October 2, 2009 you will be automatically prompted to verify your SSO account or to create a new SSO account when you log in to Classic MetaLink / My Oracle Support. You will begin using your SSO login after the upgrade to My Oracle Support and retirement of Classic MetaLink is complete on November 8, 2009.”
So, bye bye Metalink, welcome My Oracle Support
Cheers,
Francisco Munoz Alvarez
SANGAM’09 at Bangalore, India is already behind and I don’t have words to express how wonderful experience it was, I just can say I’ll never forget. India is a fantastic country and a beautiful place to visit. I want to say thank you to the AIOUG directors for the invitation to speak in their first conference, it was fantastic and I’m 100% sure that AIOUG have a great future and I’ll be more than glad to help and participate any time requested!
Regarding my ACE program presentation in the end of my “Logging or No Logging” speech, I’ll love to see more Indian nominations for ACE Awards, due to the great capacity and knowledge of all professionals in the region, please, if you know someone that fit on this category, please submit a nomination and help Oracle to detect and award the best of the best on your country. (Nominations here)
World’s First OLTP Database Machine with Sun FlashFire Technology !
This Tuesday,September 15th, Mr. Larry Ellison will unveil this innovative new product, the world’s first OLTP database machine with Sun FlashFire technology. Don’t miss the first Oracle-Sun product announcement webcast and click here to register.

Cheers,
Francisco Munoz Alvarez
My next presentations this year will be at:
See you!
Francisco Munoz Alvarez
After months of tests, Oracle released today the newest release of 11g Database (11.2.0.1 - for Linux x86 and 64bit only), with more than 200 new features and a lot of excellent surprises.
Oracle Database 11g Release 1 (11.1 – Released at August 2007) and Release 2 (11.2 – Released today) are the versions with the bigger number of new capabilities ever build and released by Oracle, that’s way was not a complete surprise when it received the 2009 Best Database of the year award by InfoWorld magazine, and certified by Garner as the Database #1 in the world with 48.9% of the worldwide market..
Capabilities as Real Application Testing, Active Data Guard, Advance Compression, In-Memory Database Cache, ASM Cluster File System (ACFS), the Grid Infrastructure Installation option, Desktop and Server class options, Intelligent Data Placement, Oracle Restart,Transparent Tablespace Encryption, Automatic Compilation for Java and PL/SQLs, ADDM for RAC,RAC One Node option, SecureFiles, online upgrade, Flashback Data Archive, Advisors for Streams, Partitioning and Repair to name some, are new functionalities that in the past where only available at DBA dreams.
If you are looking to upgrade your current DB, direct upgrades are only allowed for versions:
9.2.0.8 or higher
10.1.0.5 or higher
10.2.0.2 or higher
11.1.0.6 or higher
Some deprecated initialization parameters are:
remote_os_authent
commit_write
cursor_space_for_time
instance_groups
log_archive_local_first
plsql_debug replaced by plsql_optimize_level
plsql_v2_compatibility
resource_manager_cpu_allocation
standby_archive_dest
transaction_lag attribute
ddl_wait_for_locks
logmnr_max_persistent_sessions
plsql_compiler_flags
max_enabled_roles
background_dump_dest replace by diagnostic_dest
user_dump_dest replaced by diagnostic_dest
Always remember that today the most IT and Business challenges/goals are related to:
Clearly Oracle 11g is the best option available in the market to allow you and your business to achieve all these goals. Some of the new functionalities included with 11g are:
The new data types available in Oracle 11g are:
Real Application Testing or RAT will make it easier to do upgrades, hardware replacements and operating system changes. RAT consists of two components:
The following features are desupported in 11g:
For more information and to download 11gR2 please refer to:
http://www.oracle.com/technology/index.html and
http://www.oracle.com/pls/db112/portal.all_books
If after all this information you still thinking about not move to 11g, please think again a do a favor to yourself and your company, try it
Kind Regards,
Francisco Munoz Alvarez
Sometimes understanding the Oracle Database Editions is a little confuse, and on my opinion know all the options available in the market is something very important and fundamental for any DBA. The main idea of this post is to help you to understand a little bit more about all available options in the Oracle market, learn some key differences and functionalities of each Edition.
All the time I receive questions regarding Oracle Database Editions like:
So many people don’t understand the diversity of Editions available with Oracle Databases, most of the time everyone associate it with the Enterprise Edition only, saying “Oracle is so expensive! Let’s look to other brands due that we can’t afford it!”, That’s a huge mistake, if you want the best available in the market you need to pay for it, but you need to understand all the options available for you by Oracle Corporation before take a precipitate and wrong decision, you always can find an edition that is affordable for your budget, and I can guarantee that you will not find the same performance and functionality at any other product in the market.
This is like buy a car, you can always dream to have a top brand vehicle, but you don’t need to buy the most expensive model if you only need a compact one, it will be more affordable and you know that you can trust in the quality of the product. The same happens with Oracle Databases. Oracle have available several editions of their Database product, all are the same product (internal code) but depending of the edition it can have some limitations or additional options to improve the performance, security, availability, and management of your 11g Database.
Oracle Database 11g is available in a choice of editions tailored to meet your business, personal, or IT needs, and also offers several extra options to enhance your Database capabilities depending of your applications requirements. Oracle have basically 5 different editions available for you, all are build using the same reliable database engine architecture and are compatible with each other, making this way an upgrade to be a very easy task to the DBA and this will also help to make your database grow at the same speed of your business.
The Editions available are: Express Edition, Personal Edition, Standard One Edition, Standard Edition and Enterprise Edition, now let’s take a quick look on each one:
Now let’s take a closer look to all availabilities and restrictions of each Oracle Edition:
|
Limitations/ Availability |
Express Edition | Personal Edition | Standard Edition One | Standard Edition | Enterprise Edition |
| Number of CPU/Sockets | 1 CPU | No Limit | 2 Sockets | 4 Sockets | No Limit |
| RAM | 1GB | OS Maximum | OS Maximum | OS Maximum | OS Maximum |
| Max. Number of Users | No Limit | 1 | No Limit | No Limit | No Limit |
| Databases per Host | 1 | No Limit | No Limit | No Limit | No Limit |
| Minimum User License Requirements | Not Apply | Not Apply | 5 Named Users Plus | 5 Named Users Plus | 25 Named Users Plus per CPU |
| Database Size | 4GB | No Limit | No Limit | No Limit | No Limit |
| Windows | Available | Available | Available | Available | Available |
| Linux | Available | No Available | Available | Available | Available |
| Unix | No Available | No Available | Available | Available | Available |
| 64-Bit | No Available | Available | Available | Available | Available |
Now you have a clear idea of all available Editions of Oracle in the market, in the next post I’ll go thru the most important options and packs available to enhance your database to achieve all your personal or company goals.
Cheers,
Francisco Munoz Alvarez
Well after I nice weekend, I started my week with a car accident when going to work
, here are some pictures when recovering my car from the trees. yes, the trees. To avoid crash with several other cars that stopped on front of me (due to a nice guy crossing the high way with a baby in a bike) I end out of the street with a lot of lucky to find a tree to stop my car to go down hill.
Cheers,
Francisco Munoz Alvarez
One of my DBA’s just ask me why he was receiving the following error each time he tried to setup the host information thru the dbconsole (OEM):
- RemoteOperationException: ERROR: NMO not setuid-root (Unix-only)
The answer is very easy, this error occurs when you forgot to run the root.sh after you finished your installation, you can solve this problem easily running the root.sh which is located in $ORACLE_HOME/root.sh (as root) and the error will disappear.
Kind Regards,
Francisco Munoz Alvarez
By Francisco Munoz Alvarez 
How to find Sessions Generating Lots of Redo
To find sessions generating lots of redo, you can use either of the following methods. Both methods examine the amount of undo generated. When a transaction generates undo, it will automatically generate redo as well.
The methods are:
1) Query V$SESS_IO. This view contains the column BLOCK_CHANGES which indicates how much blocks have been changed by the session. High values indicate a session generating lots of redo.
The query you can use is:
SQL> SELECT s.sid, s.serial#, s.username, s.program,
2 i.block_changes
3 FROM v$session s, v$sess_io i
4 WHERE s.sid = i.sid
5 ORDER BY 5 desc, 1, 2, 3, 4;
Run the query multiple times and examine the delta between each occurrence of BLOCK_CHANGES. Large deltas indicate high redo generation by the session.
2) Query V$TRANSACTION. These view contains information about the amount of undo blocks and undo records accessed by the transaction (as found in the USED_UBLK and USED_UREC columns).
The query you can use is:
SQL> SELECT s.sid, s.serial#, s.username, s.program,
2 t.used_ublk, t.used_urec
3 FROM v$session s, v$transaction t
4 WHERE s.taddr = t.addr
5 ORDER BY 5 desc, 6 desc, 1, 2, 3, 4;
Run the query multiple times and examine the delta between each occurrence of USED_UBLK and USED_UREC. Large deltas indicate high redo generation by the session.
You use the first query when you need to check for programs generating lots of redo when these programs activate more than one transaction. The latter query can be used to find out which particular transactions are generating redo.
Useful Scripts
To see the redo generated since instance started:
col name format a30 heading ‘Statistic|Name’
col value heading ‘Statistic|Value’
start title80 “Redo Log Statistics”
spool rep_out\&db\red_stat
SELECT name, value
FROM v$sysstat
WHERE name like ‘%redo%’
order by name
/
spool off
pause Press enter to continue
ttitle off
The redo generated during my session since the session started:
select value redo_size
from v$mystat, v$statname
where v$mystat.STATISTIC# = v$statname.STATISTIC#
and name = ‘redo size’
/
The redo generated by current user sessions:
select v$session.sid, username, value redo_size
from v$sesstat, v$statname, v$session
where v$sesstat.STATISTIC# = v$statname.STATISTIC#
and v$session.sid = v$sesstat.sid
and name = ‘redo size’
and value > 0
and username is not null
order by value
/
Provide a current status for redo logs:
column first_change# format 999,999,999 heading Change#
column group# format 9,999 heading Grp#
column thread# format 999 heading Th#
column sequence# format 999,999 heading Seq#
column members format 999 heading Mem
column archived format a4 heading Arc?
column first_time format a25 heading First|Time
break on thread#
set pages 60 lines 132 feedback off
start title132 ‘Current Redo Log Status’
spool rep_out\&db\log_stat
select thread#, group#, sequence#,
bytes, members,archived,status,first_change#,
to_char(first_time,’dd-mon-yyyy hh24:mi’) first_time
from sys.v_$log
order by thread#, group#;
spool off
pause Press Enter to continue
set pages 22 lines 80 feedback on
clear breaks
clear columns
ttitle off
/
Provide redo log groups and log switch (archive generation) information:
set echo on
set linesize 150
set pagesize 500
column day format a16 heading ‘Dia’
column d_0 format a3 heading ‘00′
column d_1 format a3 heading ‘01′
column d_2 format a3 heading ‘02′
column d_3 format a3 heading ‘03′
column d_4 format a3 heading ‘04′
column d_5 format a3 heading ‘05′
column d_6 format a3 heading ‘06′
column d_7 format a3 heading ‘07′
column d_8 format a3 heading ‘08′
column d_9 format a3 heading ‘09′
column d_10 format a3 heading ‘10′
column d_11 format a3 heading ‘11′
column d_12 format a3 heading ‘12′
column d_13 format a3 heading ‘13′
column d_14 format a3 heading ‘14′
column d_15 format a3 heading ‘15′
column d_16 format a3 heading ‘16′
column d_17 format a3 heading ‘17′
column d_18 format a3 heading ‘18′
column d_19 format a3 heading ‘19′
column d_20 format a3 heading ‘20′
column d_21 format a3 heading ‘21′
column d_22 format a3 heading ‘22′
column d_23 format a3 heading ‘23′
column Total format 9999
column status format a8
column member format a40
column archived heading ‘Archived’ format a8
column bytes heading ‘Bytes|(MB)’ format 9999
Ttitle ‘Log Info’ skip 2
select l.group#,f.member,l.archived,l.bytes/1078576 bytes,l.status,f.type
from v$log l, v$logfile f
where l.group# = f.group#
/
Ttitle off
prompt =========================================================================================================================
Ttitle ‘Log Switch on hour basis’ skip 2
select to_char(FIRST_TIME,’DY, DD-MON-YYYY’) dia,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’00′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’00′,1,0))) d_0,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’01′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’01′,1,0))) d_1,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’02′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’02′,1,0))) d_2,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’03′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’03′,1,0))) d_3,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’04′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’04′,1,0))) d_4,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’05′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’05′,1,0))) d_5,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’06′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’06′,1,0))) d_6,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’07′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’07′,1,0))) d_7,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’08′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’08′,1,0))) d_5,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’09′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’09′,1,0))) d_9,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’10′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’10′,1,0))) d_10,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’11′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’11′,1,0))) d_11,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’12′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’12′,1,0))) d_12,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’13′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’13′,1,0))) d_13,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’14′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’14′,1,0))) d_14,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’15′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’15′,1,0))) d_15,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’16′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’16′,1,0))) d_16,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’17′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’17′,1,0))) d_17,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’18′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’18′,1,0))) d_18,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’19′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’19′,1,0))) d_19,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’20′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’20′,1,0))) d_20,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’21′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’21′,1,0))) d_21,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’22′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’22′,1,0))) d_22,
decode(sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’23′,1,0)),0,’-',sum(decode(substr(to_char(FIRST_TIME,’HH24′),1,2),’23′,1,0))) d_23,
count(trunc(FIRST_TIME)) Total
from v$log_history
group by to_char(FIRST_TIME,’DY, DD-MON-YYYY’)
order by to_date(substr(to_char(FIRST_TIME,’DY, DD-MON-YYYY’),5,15) )
/
Ttitle off
How to check for LOGGING/NOLOGGING objects in the DB:
Two example methods of querying the database for this information:
select owner , table_name, index_name
from dba_indexes
where logging=’NO’;
select tablespace_name, logging
from dba_tablespaces/
Kind Regards,
Francisco Munoz Alvarez
Powered by WordPress