Saturday, December 31, 2016

OEM 13c New Features - System Broadcast

I can’t finish the year without a post about OEM 13c. I finally had some time to install it and from first hand go through its new features.  I find this “System Broadcast” feature so useful, especially when you have tons of users using OEM.

You can try to email users, give them a call but they will always forget about the next maintenance window and call you right away when OEM is not available. This feature helps you to send a notification to all the users or a particular list of users.

System Broadcast messages (up to 200 characters) can only be sent using EMCLI, there’s no graphical option yet.

Here’s an example on how to send a message to a user named OEMADMIN:

$ emcli send_system_broadcast -toOption="SPECIFIC" -to="OEMADMIN" -message="OEM will be down for maintenance Friday December 30th"
Successfully requested to send System Broadcast to users.

This is what you see once you login to OEM console:




Send the message to all the users:


$ emcli send_system_broadcast -toOption="ALL" -message="OEM will be down for maintenance Friday December 30th"
Successfully requested to send System Broadcast to users.

You need to be logged in EMCLI to be able to send these messages, if you are not you’ll get this error:

$ emcli send_system_broadcast -toOption="ALL" -message="OEM will be down for maintenance Friday December 30th"
Status:Unauthorized 401

As I said, you need to be logged in EMCLI:

$emcli login -username=sysman
Enter password:

Login successful

$ emcli send_system_broadcast -toOption="ALL" -message="OEM will be down for maintenance Friday December 30th"
Successfully requested to send System Broadcast to users.

Here’s the verb syntax:

emcli send_system_broadcast
      -toOption="ALL|SPECIFIC"
      [-to="comma separated user names"]
      [-messageType="INFO|CONF|WARN|ERROR|FATAL" (default is INFO)]
      -message="message details"

[ ]  indicates that the parameter is optional.


Thank you and happy new year!
Alfredo

Sunday, December 18, 2016

ORA-01555 query duration 0 seconds with Dataguard

How many times we have calls from users complaining about their process that failed due to an ORA-01555 error?

We know that if the queries are not well tuned and they modify a lot of data, the image held in the UNDO Tablespace could not be consistent with the real data. But have you ever seen this error right away after executing a SQL statement against a table?

I just did couple of days ago. Here’s the story:

ORA-01555 error appeared in the alertlog’s database with a query duration of 0 seconds.

ORA-01555 caused by SQL statement below (SQL ID: d3rt4tyudufeu, Query Duration=0 sec, SCN: 0x034f.34f660b4)

Any queries plus an analyze table failed right away with ORA-01555:

ERROR at line 1: ORA-0155: snapshot too old: rollback segment number 10 with name "SYSSMU11_1072300523734$" too small

So weird.
After researching a bit on MOS, found a note regarding a bug.

Some minutes later we also started to receive ORA-600 errors related so scn numbers.

ORA-error stack (00600[ktbdchk1: bad dscn])

The MOS note mentions the ORA-01555 and the ORA-600 errors as part of bug 22241601 with a Dataguard configuration. Is worth to mention that yes, we were doing switchover testing recently in this 12.1.0.2 environment.

ALERT Bug 22241601 ORA-600 [kdsgrp1] / ORA-1555 / ORA-600 [ktbdchk1: bad dscn] / ORA-600 [2663] due to Invalid Commit SCN in INDEX (Doc ID 1608167.1)

The solution is to apply the patch but there’s also a tested workaround that is to rebuild online all the indexes of that table.

Hope this helps.

Alfredo