Skip navigation.

Feed aggregator

ORA-02030 and invisible objects. The database bites back !

The Anti-Kyte - Thu, 2013-05-02 07:25

Being Luis Suarez’s agent must be an interesting job right now.
Maybe the man was a bit peckish.
Alternatively, maybe he’s resigned to the FA’s reluctance to introduce a mid-season break and was simply making his own arrangements for time off during the season.
Either way, this particular agent may well be trying to sign Luis up for an ad campaign for a popular brand of toothpaste.

Oracle DBA’s may sometimes have some sympathy with Suarez, although they’re more likely to end up chewing the desk in frustration, rather than their fellow DBA’s (unless the Christmas Party has really gotten out of hand).
Every so often, Oracle throws out an error that, on the face of it, makes absolutely no sense…

The user

Let’s start by creating an ordinary, every-day user – not quite a dba :

GRANT connect, resource TO nqdba IDENTIFIED BY pwd;

At this point, as you’d expect, this user doesn’t have access to very much :

SQL> desc dba_tables
ERROR:
ORA-04043: object "SYS"."DBA_TABLES" does not exist

SQL> desc v$instance
ERROR:
ORA-04043: object "SYS"."V_$INSTANCE" does not exist

It’s probably worth noting that the public synonym is being referenced for V$INSTANCE.
Although the describe is on V$INSTANCE, the error is about V_$INSTANCE. The relevance of this will become apparent shortly.

Grant Select

For now though, our hard-pressed DBA may decide to solve this problem for the user by doing the following :

GRANT SELECT ON dba_tables TO nqdba
/

Grant succeeded.

…and now for V$INSTANCE…

GRANT SELECT ON v$instance TO nqdba
                *
ERROR at line 1:
ORA-02030: can only select from fixed tables/views

That’s interesting, the grant on DBA_TABLES works no problem. However, V$INSTANCE is having none of it.
Also, the error is on V$INSTANCE – i.e. the synonym, rather than V_$INSTANCE, the underlying object.
I wonder if there’s an object other than the synonym with this name …

SQL> SELECT owner, object_type
  2  FROM dba_objects
  3  WHERE object_name = 'V$INSTANCE' 
  4  /

OWNER			       OBJECT_TYPE
------------------------------ -------------------
PUBLIC			       SYNONYM

SQL> 

So, there’s apparently nothing apart from the synonym.
To eliminate the synonym as the cause of our problem, let’s try the following :

CREATE PUBLIC SYNONYM sparkly_white FOR v$instance
/
GRANT SELECT ON sparkly_white TO nqdba
/

Grant succeeded.

SQL>

So, granting via a synonym that’s NOT V$INSTANCE works fine. Therefore, there must be an object owned by SYS that is also called V$INSTANCE.

Them Dynamically Fixed thingys

The error states that we can only select from “fixed tables/views”. The syntax here is interesting.
V$ views are more properly referred to as Dynamic Performance Views. These views are based on what are known as fixed tables. These tables are essentially representations of C structs deep in the Oracle Kernel.

Let’s see what the V_$INSTANCE view is actually based on…

set long 5000
SELECT text
FROM dba_views
WHERE owner = 'SYS'
AND view_name = 'V_$INSTANCE';

…run this and we get…

select "INSTANCE_NUMBER","INSTANCE_NAME","HOST_NAME",
   "VERSION","STARTUP_TIME","STATUS",
    "PARALLEL","THREAD#","ARCHIVER",
    "LOG_SWITCH_WAIT","LOGINS","SHUTDOWN_PENDING",
    "DATABASE_STATUS","INSTANCE_ROLE","ACTIVE_STATE",
    "BLOCKED","EDITION" 
from v$instance

which is extremely confusing. The view is apparently pointing back to the synonym ( which after all, is the only object that we can find with that name in DBA_OBJECTS).

At this point, we give up on the conventional data dictionary views and dive into the twighlight world of V$FIXED_VIEW_DEFINITION. We should find the true view statement here, with luck…

SELECT  view_definition
FROM v$fixed_view_definition
WHERE view_name = 'V$INSTANCE'
/

Finally, we can see that there is actually an object called v$instance apart from the synonym, although this query yields the scarcely-more-helfpul…

SELECT INSTANCE_NUMBER , INSTANCE_NAME , HOST_NAME , 
    VERSION , STARTUP_TIME , STATUS , 
    PARALLEL , THREAD# , ARCHIVER , 
    LOG_SWITCH_WAIT , LOGINS , SHUTDOWN_PENDING, 
    DATABASE_STATUS, INSTANCE_ROLE, ACTIVE_STATE, 
    BLOCKED, EDITION 
FROM GV$INSTANCE 
WHERE inst_id = USERENV('Instance')

If we now perform the same check to find out what GV$INSTANCE is pointing at, the results are a bit more revealing :

select ks.inst_id,ksuxsins,ksuxssid,
    ksuxshst,ksuxsver,ksuxstim,
    decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE','UNKNOWN'),
    decode(ksuxsshr,0,'NO',1,'YES',2,NULL),ksuxsthr,
    decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),
    decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,
    'CHECKPOINT', 5,'REDO GENERATION'),
    decode(ksuxsdba,0,'ALLOWED','RESTRICTED'),
    decode(ksuxsshp,0,'NO','YES'),
    decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),
    decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN'), 
    decode(qui_state,0,'NORMAL',1,'QUIESCING',2,'QUIESCED','UNKNOWN'), 
    decode(bitand(ksuxsdst, 1), 0, 'NO', 1, 'YES', 'NO'), 
    decode(ksuxsedition, 1, 'PO', 2, 'SE', 4, 'EE', 8,'XE', 'UNKNOWN') 
from x$ksuxsinst ks, x$kvit kv, x$quiesce qu 
where kvittag = 'kcbwst'

Finally, we can see that V$INSTANCE is ultimately referencing fixed tables.

The solution

The solution to this problem is simple enough…well, simple enough when you know it. Simply grant the privilege on the underlying view. So…

GRANT SELECT ON v_$instance TO nqba
/

Grant succeeded.
V$FIXED_TABLE

At this point you may be thinking that it would be really useful if there was a list of those dynamic/fixed view thingys available. Well, as you’re a proper DBA, you probably wouldn’t use the term thingys, but I know where you’re coming from…

SELECT name, type
FROM v$fixed_table
WHERE name = 'V$INSTANCE'
/

There you go. If you’re trying to grant select on any of the tables listed in V$FIXED_TABLE, you’ll more than likely hit this particular error. Additonally, if the table is listed here, it means that you should be able to still see it even if the database itself is not opened.

To demonstrate, connect to an idle instance. If you’re running XE, simply shutdown the database then issue the following command at the prompt :

sqlplus /nolog

This will enable the prompt but you won’t be connected to the database. To connect :

conn sys as sysdba

… and supply the password when prompted.
You will now get the message :

Connected to an idle instance

NOTE – an alternative way to do this on linux would be to switch to the oracle owner :

sudo su oracle
sqlplus / as sysdba

So, you’re connected to an idle instance. It hasn’t just been banned for 10 matches for being a bit bitey, it’s idle because it’s not been started.
Now mount the database ( at this point it will still not be properly started – i.e. started and open) :

startup mount

Now we can see that the database is not currently mounted, after all, you can’t query anything…

SELECT * FROM dba_tables
              *
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only


SQL> 

…except for…

SQL> SELECT instance_name, status
  2  FROM v$instance;

INSTANCE_NAME	 STATUS
---------------- ------------
XE		 MOUNTED

SQL> 

Just as useful, you can still see V$FIXED_TABLE when the database is mounted ( or unmounted for that matter), so you can always check to see which tables you can query.

Incidentally, once you’ve finished playing, you can either shutdown the database again :

shutdown

…or open it…

ALTER DATABASE OPEN
/

Deb has expressed her utter bafflement as to why a footballer would bite a fellow player. Then again, that’s not too surprising…she is a vegitarian after all.


Filed under: Oracle, SQL Tagged: grant select on v$ views, ORA-02030, synonyms, v$fixed_table, v$fixed_view_definition, v$instance, v_$instance

Goodies - APEX 4.2.2 Sample and Packaged Apps

Dimitri Gielis - Thu, 2013-05-02 05:31
After reading Michael Hichwa's blog post about APEX 4.2.2 where he mentions the patch set includes a major upgrade of all 18 productivity and all 16 database sample applications, I decided to install all of them again and check them out.



Those apps are a great way to see how to do certain things and see working applications behind the scenes. The packaged applications you first have to unlock before you can see the pages and source.

As APEX is meta-data driven you can also query for specific information.

I was for example interested in knowing which apps where using the Responsive Design Theme (Theme 25). Following query shows you per application which theme is used.
As you can see the sample apps are using Blue Responsive (theme 25) and most of the packaged apps are using the Cloud Apps theme. As those also have a mobile version, you can see the JQuery Mobile Smartphone theme is used there too.

select a.application_name, a.alias, a.compatibility_mode, a.pages, a.installation_scripts,
       listagg(t.theme_number, ',') within group (order by t.theme_number) as theme_numbers,
       listagg(t.theme_name, ',') within group (order by t.theme_name) as theme_names
  from apex_applications a, apex_application_themes t
 where a.application_id = t.application_id
group by a.application_name, a.alias, a.compatibility_mode, a.pages, a.installation_scripts   
order by 1

Here's the result:


The sample and packaged apps are not only nice examples (and useful apps), but they also contain some plugins that are not on the official Oracle Plugins page.

There are 21 plugins used in the sample and packaged apps. But two I believe are the same (CSS Bar Chart vs CSS Bar Charts and Slider vs APEX Slider), so that brings the total to 19 plugins to checkout!
And there are some really nice ones, like the Gantt Chart (completely in css, so works on the iPad) :


and Flot Pie Chart (build in JavaScript and CSS) :


Running following query shows you all the plugins in your workspace and in which application it was used:

select p.plugin_type, p.display_name, p.name,
       count(a.application_name) as nbr_app_using_plugin,
       listagg(a.application_name, ',') within group (order by a.application_name) as applications
from apex_appl_plugins p, apex_applications a
where p.application_id = a.application_id
group by p.plugin_type, p.display_name, p.name
order by 1,2

Here's the result:


I would definitely recommend having a look at the apps, the APEX team did a nice job on those.
Categories: Development

New study highlights the concrete value of cloud computing

Chris Foot - Thu, 2013-05-02 04:06

As interest in cloud computing steadily rises, studies are showing that the benefits to these technologies are finally paying off. With remote database support, businesses can leverage cloud solutions for a significant positive impact, including a major boost in efficiency, productivity and savings for a competitive advantage. 

An annual survey by RightScale of IT and business executives demonstrated that firms are adopting cloud computing at a rapid rate, and further, that companies which expand investments in these technologies reap more rewards and experience fewer challenges.

"In our 2013 State of the Cloud survey, we were able to gather meaningful insights as to how an organization's level of cloud maturity impacts both the benefits they are able to realize and the challenges they perceive," said Michael Crandell, CEO of RightScale. "The results reveal a clear cloud value imperative: more cloud adoption unlocks more cloud value."

RightScale defined a cloud maturity model in the survey in order to segment companies based on their level of adoption and analyze which methods are most effective. The majority of businesses fell into the "Cloud Focused" category, demonstrating heavy and strategic use of these tools to transform the business, followed by "Cloud Beginners" that are still working on initial projects. Only 8 percent of companies have no plans to use the cloud. Organizations reported experiencing significantly more benefits as they progress from throughout the maturity model. While 30 percent of Cloud Beginners gained faster access to infrastructure, an overwhelming 87 percent of Cloud Focused respondents realized the same outcome. Further, the risks decrease with maturity: Security was reported as a challenge to 38 percent of Cloud Beginners as compared to 28 percent of Cloud Focused companies.

Challenges fade
InfoWorld contributor David Linthicum noted that these findings are unsurprising and in step with cloud computing market revenues have indicated. He explained that as businesses become more comfortable with cloud computing concepts, the less significant issues such as security, compliance and resiliency may seem. For example, he pointed out that many firms find ownership daunting, but issues relating to managing cloud solutions can be quickly mitigated with proactive and strategic planning.

As cloud computing becomes more sophisticated, the potential opportunities that come with deployment are endless. And by seeking dba services, businesses will be able to fully leverage these solutions with minimal risks and a considerable competitive edge during the transition.

RDX offers a full suite of cloud migration and administrative services that can be tailored to meet any customer's needs. To learn more our full suite of cloud migration and support services, please visit our Cloud DBA Service page or contact us.

Pricing strategies for services

Arvind Jain - Wed, 2013-05-01 23:11

How can a services provider (Advanced Services, Technical Services or Professional Services) make sure it has priced its services just right?There are three ways to do pricing
1)      Cost Plus
2)      EVC (Economic Value to Customer)
3)      Competitive Marketplace

Just going by Cost Plus, you leave money on table. EVC is theoretically best pricing but you cannot price case by case (so you set list price and give discounts to adjust for case by case basis). Competitive Marketplace is what most people do but then you are treating your services as commodity.
I suggest that you follow a more methodical approach about pricing strategies for services.1)      Creating a pricing model, which takes into account your fixed costs and business strategy.  A baseline formula would let you know what price range is NOT feasible.  Say your prices will not be less than this amount so that you maintain your Gross Margin and survive in the industry.

2)      Break down your costs into buckets (Server, support, manpower, gas, commute, task time, delivery model and expertise) and then have a variable formulae based on weightage to what you have in plenty and what is scarce for you.

3)      Research your industry (business cycle, technology trend)

4)      Research your customers (segment the market, are you their strategic partner, long term potential).

There is a constant pressure on services to invest in new practice areas, either because these investments would help meet business unit sales quotas or because the business units need more people/partners out there, evangelizing new sort of technologies. Evaluate those opportunities so as to keep your costs low. 

Get yourself Organized!

Tim Dexter - Wed, 2013-05-01 21:16

A request from Leslie today to help her out on the user docs. In them we state that we support the MSWord organization charts but we do not give any detail.

Use the organization chart functionality in the templates and the chart that is rendered in the output. Figure 4-18 shows an example of an organization chart.

Figure 4-18 Sample Organization Chart

Description of Figure 4-18 follows

Its been a  while since I have looked at them but we mean just that. You build an org chart with names in the boxes, BIP will render it, simple.

Oh, you wanted it to load the names into the chart dynamically from the dataset? Sorry, no dice, at least not with the MSWord Org Chart object.

However, you can create your own org chart structure using MSShapes and use BIP's ability to fill those shapes with text from your data. Thats documented pretty well and is very easy to do. Taking it to obvious final step; completely data driven org chart structure and text. Thats a bit tougher. It can be done with the shape copy and move commands but its going to take some planning. You need to think about how wide your 'page' is, what to do when you reach the edge and need to continue with the same level in the hierarchy, etc.

To get you started, I have created a sample template and data for the first two scenarios. They will work with all releases of BIP and XMLP. The third will take me a little longer :0)

Categories: BI & Warehousing

JMX access to vFabric SQLFire

Pas Apicella - Wed, 2013-05-01 18:31
With the release of vFabric SQLFire 11 we can now start a JMX manager with the locator itself. To do that we add the following to the sqlfire.properties file of the locator itself.

jmx-manager=true
jmx-manager-start=true
jmx-manager-ssl=false
jmx-manager-http-port=8083

Then with the locator started we can verify we have it running on the default port of 1099 as shown below.

[Thu May 02 09:45:49 papicella@:~/sqlfire/vFabric_SQLFire_11_b40332/pasdemos/agent-test/locator ] $ netstat -an | grep 1099
tcp4       0      0  127.0.0.1.1099         127.0.0.1.64803        ESTABLISHED
tcp4       0      0  127.0.0.1.1099         127.0.0.1.64801        ESTABLISHED
tcp4       0      0  127.0.0.1.64801        127.0.0.1.1099         ESTABLISHED
tcp4       0      0  127.0.0.1.64803        127.0.0.1.1099         ESTABLISHED
tcp4       0      0  127.0.0.1.1099         127.0.0.1.64799        ESTABLISHED
tcp4       0      0  127.0.0.1.64799        127.0.0.1.1099         ESTABLISHED
tcp46      0      0  *.1099                 *.*                    LISTEN    

Finally start jconsole and connect using a service URL as follows

Format:

service:jmx:rmi://{hotname}/jndi/rmi://{hostname}:1099/jmxrmi

Example:

service:jmx:rmi://Pas-Apicellas-MacBook-Pro.local/jndi/rmi://Pas-Apicellas-MacBook-Pro.local:1099/jmxrmi

Once connected you can browse the MBean as shown in the image below.



More Information

http://pubs.vmware.com/vfabric53/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.1/manage_guide/jmx/jmx_intro.htmlhttp://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

Oracle Priority Service Infogram for 01-MAY-2013

Oracle Infogram - Wed, 2013-05-01 17:31

Exalogic
Exalogic: System Administrator-Friendly Software at Oracle Exalogic, the Exalogic Elastic Cloud product management blog.
XML
At the XML Orbblog: Analysis of JSON use cases compared to XML.
VM
Designing, Creating and Testing an Oracle VM 3.2 Environment at Oracle's Virttualization Blog.
Linux
From TECHSOURCE, the Linux version of the seven deadly sins. Only the karma on these is more immediate. For goodness’ sake don't try this at home. And don't try it at work. Find a Linux box you don't like and check out: The 7 Deadly Linux Commands...if you dare.
Performance
From the Striving for Optimal Performance blog: ITL Deadlocks (script). Or, how to show people you can break the database without even writing any SQL at all.
Over at Oracle SQL Tuning Tools and Tips: Differences between TKPROF and Trace Analyzer TRCANLZR (TRCA).
Richard Foote, guru of all things indexing, brings us: Storage Indexes vs Database Indexes IV: 8 Column Limit (Eight Line Poem).
RDBMS
Flash drives have been a hot and controversial subject for ages. Here's a good summation before you invest, at the specialty blog flashdba: Does My Database Need Flash?
Mobile Security
Some pretty solid predictions from CSO, Security and Risk: 4 Mobile Security Predictions to Help CIOs Plan for the Future.
Demantra
At the Oracle Demantra blog: EBS Weblogic Demantra Logging Into Application Servlet Mode.
Java
The Jave Sourcebrings us the ambitiously titled posting: Everything on the NetBeans Platform.
Hyperion
Oracle Announces New Release of Oracle Hyperion Enterprise Performance Management System.
BPM
The Oracle Middleware Blog has a quick but handy posting on a post-upgrade process they had to go through: How to Enable Web Forms Manually.
Oracle Support
The Oracle Wikiinforms us that there is OTN Forums Migration and Upgrade right around the corner.
...And Finally
After years of dithering, I finally got an iMac for our home. No regrets at all, elegant, and much familiar territory from my iPad, but there is a lot to learn. Here's a handy set of tips: 10 Awesome OS X Tips and Tricks, at Online Tech Tips.

grumpy old dba at great lakes oracle conference ... join us!

Grumpy old DBA - Wed, 2013-05-01 17:20
Not very long before we kick off the 2013 Great Lakes Oracle Conference in Cleveland ( 2013 Great Lakes Oracle Conference ).  This will be our biggest and best ever conference.

Key notes by Tom Kyte and 2 from CJ Date ( the godfather of relational database design ).  Workshop sessions by Joel Kallman ( Apex I never new it was this easy ) / Tom Kyte / Craig Shallahamer.

Two days of sessions by top Oracle national class presenters Oakies / Aces / Ace Directors ... we got the whole enchilada ... please check it out and think about attending ... May 13/14/15 2013.

Hope to see you there!  If not this year then next year and think about submitting a presentation abstract next year ( yeah that's you Mr. Gorbachev and the pythian gang!  also you Enkitec people )!

Categories: DBA Blogs

Integrating ADF Mobile with Oracle WebCenter

Bex Huff - Wed, 2013-05-01 15:52

Another talk I gave at Collaborate 2013 is this one on ADF Mobile and WebCenter. It builds off my talk from last year about general techniques, and gets into specific about the new ADF Mobile technology, and how to integrate it with WebCenter content and WebCenter Portal.

Integrating ADF Mobile with WebCenter from Brian Huff

read more

Categories: Fusion Middleware

Seamless Integrations between WebCenter Content, Site Studio, and WebCenter Sites

Bex Huff - Wed, 2013-05-01 15:48

At Collaborate 2013 this year, Tony Field and I put together a talk about a topic that has been been floating around the WebCenter community as of late...How do I integrate WebCenter Sites (Fatwire) with WebCenter Content or Site Studio? We put together a handful of integration techniques, but the main focus was on upcoming features in the next version of WebCenter... specifically the official Sites/Content connector, and support for External Repositories. Cool by themselves, but when combined with Site Studio for External Applications, it's a compelling set of integration options:

Seamless Integrations between WebCenter Content, Site Studio, and WebCenter Sites from Brian Huff

read more

Categories: Fusion Middleware

<strong>Contributions by Angela Golla,

Oracle Infogram - Wed, 2013-05-01 13:04
Contributions by Angela Golla, Infogram Deputy Editor

Oracle Magazine
The May / June issue of Oracle Magazine is now available.  It features articles on Oracle Cloud, SOA and more.  Be sure to check it out. 

Experts say third-party services critical for database optimization

Chris Foot - Wed, 2013-05-01 12:13

The database is the central repository of an enterprise's total assets, and therefore it is imperative that companies deploy the proper solutions and services to support functionality. As managing the data center becomes more complex, experts agree it is important to leverage remote database support for support in ensuring proper bandwidth, optimal connectivity and overall administration so that analytics and other operations can run smoothly.

In an interview with Smart Business, Mike Tighe, executive director of data products for Comcast Business, explained that the data center itself doesn't affect value or generate ROI, but management of critical IT functions does.

"The function of a data center is to ensure availability of IT applications and data," Tighe told the source. "If employees don't have access, they can't be as productive and in some cases, the business can't run."

Tighe further predicted that the concept of leasing as opposed to owning IT infrastructure will only accelerate as businesses increasingly migrate to the cloud, which offers more rapid deployment of applications and enhanced scalability. He noted that more companies will likely outsource IT, such as with dba services, for higher security and uptime.

"When IT becomes an important component of how you run your business, you have to ensure high availability," Tighe stated to Smart Business. "If, for example, you install specialized applications used for resource planning and creation of content, but the server starts going down because of power or network connectivity loss, it impacts your business's ability to run."

Maximizing Oracle benefits
These considerations are particularly important when it comes to maintaining Oracle performance. TechTarget reported that there are many powerful functions that come with Oracle products, such as SQL construction, application development and database optimization, but seeking third-party tools can be even more beneficial. By filling in gaps in these systems with the help of Oracle experts, firms can effectively enhance the native tools to these technologies while customizing the application for unique and specialized advantages. For example, the source pointed out that cross-platform data replication helps to unify information across multiple database platforms, while other solutions offer improved disaster recovery, business continuity and cross-platform data sharing.

With support from third-party services, enterprises can generate greater value from the database by uncovering bottlenecks, debugging issues more quickly and optimizing performance to support new features and capabilities.

RDX is a leading provider of advanced remote database management and monitoring solutions. For more information about database administration and management, please visit our Services page or contact us.

Oracle 12c Gives Fresh Life to the Relational Database Movement

Iggy Fernandez - Wed, 2013-05-01 11:57
Reblogged from So Many Oracle Manuals, So Little Time: FOR IMMEDIATE RELEASE San Francisco (April 1, 2013) – In a dramatic move calculated to give fresh life to the moribund relational database movement, the latest version of Oracle Corporation’s flagship database has eliminated the famous “join penalty” by making it possible to store rows from […]
Categories: DBA Blogs

Gamifying the DBA Experience

Steve Karam - Wed, 2013-05-01 11:12
GamificationThis entry is part 5 of 5 in the series Grow Your Career 

All work and no play makes us dull DBAs.

Being a DBA can be a really thankless job. From Jr. Shutdown Immediaters to Sr. Rockstar Oracle DBA ACE OCM PMP LOL A+ BBQs, we’ve all trudged into work at some point in our careers only to find that we have three impossible tasks, four humiliating tasks, and no less than seven “why is the database causing this query to be slow we haven’t changed it in two years” tasks. Yet we keep on doing it, day after day, for love of the data. Or something like that.

I wrote an article a while back about galvanizing the DBA team into action and making them stand out a bit more in the corporate world. In the end, a lot of that boils down to making sure the DBA team looks less like a cranky support group that constantly needs disk space and expensive Oracle licenses and more like a team that wants to work as a key part of bringing new products to market (and thus earning money). But even then, it can be a tedious, mind numbing task at times.

So how can we spice up the DBA experience and the IT life in general?

Gamification, of course

scoreboardEverybody loves games. More to the point, people like being competitive and reveling in a sense of accomplishment and achievement. The idea behind gamification is that many things in the day-to-day non-gamified world can have principles of game theory attached to them. For the most part, the current trend of gamification is a corporate strategy that can be used to further engage a customer base (and is predicted to be a $1.6bn market by 2016 as a result). But even from a departmental or team point of view, it can have great benefits to increase morale, productivity, and accomplishment. And with a little luck and project management, it can be used to solve critical issues for your business.

What gamification is:

  • Making tasks more like missions. Everything from tuning a query to backing up a database can be a mission. Instead of becoming yet another ‘requirement’, tasks can become goals.
  • Providing a system of Achievements, Badges, Rewards, etc. Modern games are nothing if they don’t have some sort of achievement system that allows players to share their accomplishments across their social network or game community. Within a business, that community can be the IT group (like the DBA team), the department as a whole, or even business-wide.
  • Competition! Pitting people against each other in a fun, non-threatening way is a great way to improve morale and encourage growth of skills outside of the standard “do this and do it well or you won’t get a raise” paradigm.
  • Leaderboards, which are good for tracking the competition and achievements but are also useful for status and review purposes. What’s the point of earning achievements if they aren’t tracked, or competing without scores?

What gamification is not:

  • Strapping your DBA team into slingshots and giving them an achievement for knocking over the most developers.
  • An IT version of Thunderdome where two DBAs enter, and one DBA leaves.
Let the Games Begin

So it sounds great in theory, but what can we possibly do to bring it into our DBA practices? As with all answers regarding database management, it depends. If you’re a consulting organization, gamifying is simple because you generally are performing work and solving problems for a wide array of clients. You track team members’ status and customer satisfaction anyways because it is part of the business model. For a DBA team inside an IT department at a major corporation, it can become a little more difficult. So let’s look into some of the ways you can make games part of your actual work.

Backup and Restore Challenges

Setting up and monitoring a good backup and disaster recovery solution can be a serious pain in the neck. But everyone would agree it is absolutely vital to your company and your job security. But even worse than setting it up and monitoring it is having to actually put those backups to use in the case of a critical failure. Whether the problem is a single corrupt data block or an entire database ground to dust, having to actually perform a restore when the heat is on and the managers are circling and all your plans for the weekend are being piled up in the “it’s the thought that counts” bin like so much garbage… well, it sucks. There, I said it.

Help ButtonMaybe that (with a hint of staffing problems and financial woes) is why companies are failing to adequately test their DR plans. That’s a highly dangerous practice, right there with giving developers DBA access to production and typing drop database commands and saying just kidding while you fumble for the backspace key. What is the point of organizing and configuring a complex backup solution if you only plan on testing it when disaster strikes? I can’t count the number of times I’ve worked with clients who said “oh, we needed that file?” or “well, the logs all looked okay” as their hopes for database recovery dropped like their company’s stock price after a three day outage.

So test your backup and recovery plan. But you can make it more fun by running simultaneous tests or presenting interesting and sometimes horrifying cases to the team when they are asked to perform restores. In this article I wrote about the Backup/Restore Workshop day when I worked for Oracle University, and how one student took his preparations to a whole new level, ultimately giving me the old what for, so to speak. Make a competition out of it. Challenge your DBAs to recover from sticky situations and to do it quickly and efficiently. Engage other teams too (such as application server administrators), who ultimately should be part of backup and recovery testing. Doing so invites the teams to improve their speed while also giving the business a good idea of where there may be bottlenecks.

Questionable Query Quality

Not only is this topic worth 192 points in a triple word score in Words with Friends, it’s also a serious issue that almost every DBA/Development group has to face. Writing queries can be a very tedious task to the point where many groups skip that whole tuning thing and go straight for production, guns blazing. This is, of course, a bad idea.

Winner Is YouAt one company I worked for we came up with a really interesting, fun, and productive way of tackling this issue: we pitted the query developers against each other in battle. Developers would requested to put a comment in their SQL code with their name so we could 1) track who wrote it, and 2) hold contests periodically. So when someone did “SELECT /* Steve Karam */ count(*) from RIDUCLOUSLYHUGETABLE;” we knew who it was and where to go to get it fixed.

That can make for some seriously awesome competition. Each month, quarter, release, etc. you can host ‘award ceremonies’ honoring the best and worst of the time window. Grab explain plans for all the queries and come up with valuable metrics to track like:

  • Most readable
  • Best use of indexes
  • Least blocks touched
  • Most convoluted query
  • Least likely to make it to production
  • Most likely to result in concurrency waits

It’s all in good fun. And it makes query reviews almost bearable. In fact, I’ve noticed in cases where I used this (whether in real environments or in training sessions) the participants were not embarrassed or angry about writing a bad query. They wanted to figure out how to make it better so they could be in a different acknowledgement tier the next time around.

Professional Growth Challenge

While there are a ton of competition ideas within the DBA team (best use of indexes, most SQL profiles used, fastest mouseslinger in the Grid) there is also that of professional development. How about a competition on who can get their OCP certification first? Or one of the many Oracle Expert certifications out there? Heck, even a contest to see who can rack up the most obscure or highest count of certifications from anywhere in the industry would be fun and potentially enlightening. Not only will the team benefit from the certifications and the process to get them, but it makes the team look better as a whole when everyone is clamoring to get professionally acknowledged the fastest.

If you have a really top notch team, then challenge them to get their OCM. While this will require some company backing to keep it fair since the OCM is an expensive and time consuming test to take, it definitely has its rewards. It is a great way to encourage professional growth within your team using pre-built metrics.

D&D Tabletop Drills

My current company had a pretty cool idea as the result of a stability and process review initiative. We started doing tabletop drills once per quarter. For these drills we assembled a team of moderators (usually one manager from each IT group) that came up with a couple scenarios of problems that can occur in our production systems. A ‘player’ is chosen from each team to act as representative: one DBA, one applications administrator, one system administrator, etc. And we would get everyone in a room, surrounded by observers, and act it out.

diceThe idea is to act out the response to the crisis exactly as we would if it were really happening. Sometimes input is needed; for instance, if they discover that this scenario includes application servers being down, they can ask how many are down. Moderators answer questions and keep track of the progress to gauge how the activity goes as a whole, whether SLAs were acknowledged and met, and what can be improved. Following the activity, observers, moderators, and participants have a discussion about the scenarios as a whole and what action items should occur as a result of the findings.

I like it because it’s like the IT version of Dungeons and Dragons. We’ve got game masters and a group going through a perilous journey through a broken and charred land that was once a shining beacon of production goodness. Heck, we could even include dice next time. “How many DBs are down?” “Roll 2d6″. Critical hit, go to DR!

What’s In It For Me?

Even though there are built-in rewards to many challenges — better queries, faster backups, certifications, what have you — people still want to have something a little more, particularly in the gamified experience. So what can you offer up your team or colleagues for a job well done?

Achievements: One of the cornerstones of game theory, achievements are fun and fulfilling. Use stickers, logos, Portal shoutouts, even badges inside the company intranet to show accomplishments. I personally think it would be neat to see “Achievements” next to Job Description, Contact Information, and Org Chart in my company portal filled in with things like “Onward and Upward – Upgraded three databases in a two week period” or “Did I Do That? – Fixed a fat-finger mistake with flashback or restores”. In fact, I would go out of my way to do amazing things just to earn more achievements.

Seminars and Conferences: Maybe the DBA with the most accomplishments gets to go to Oracle Open World this year. Or perhaps the developers with the best (or worst, to be more logical) queries get tickets to the next big Java conference. Whatever the case may be, I’ve noticed a growing number of companies unwilling to send their teams to conferences. In some cases they believe them to be merely a chance for the DBA (or other professional) to find another job. In others, they see it as a waste of money compared to other training. While ultimately these are horrible reasons to deny technical conferences to your team, perhaps using achievements and fulfillment of goals as a way to send people will improve performance as well.

A break: You could always give the winner a day to work from home (or off, you taskmaster you). Or for the thrill seeking types, the ‘losers’ have to give the winner a week off on call by taking it for them.

Will Turner: What are they wagering?

‘Bootstrap’ Bill Turner: Oh, the only thing we have. Years of service.

Company Certifications: Why not create a set of certifications within your own organization? As someone who has been in education and publishing for quite a while and as one of the lead writers of the Oracle 10g Certified Master exam, you can trust me when I say that certifications are an outstanding way to bring job satisfaction and a feeling of recognition to an IT team. Come up with certifications within your company that can be awarded for exemplary work or completion of certain achievements. Use those certifications during review time as a concrete measurement of success within the company. Make it possible for anyone to get certified in-house (e.g. developers can get in-house DBA certifications) to keep the career paths open at your organization. There are many ways you can acknowledge people for hard work; a certification they can put on their company profile, their emails, or even their resume can go a long way toward that goal.

The HammerLet them destroy something: This one sounds funny, and it is… but next time you migrate from one server to another or decommission an environment, let the winners of various competitions be the ones to type and press enter on that DROP USER command or DROP DATABASE. A company I worked for a long time ago did this. We finally moved off of an old and painful architecture. Once the database was moved over and the old one set to be deleted, we allows developers to drop the tables they hated the most and gave the honor of dropping the main schema to our lead (and most overworked) customer service representative. It was a great way to celebrate the occasion.

Conclusion

Some of these ideas may seem far fetched or downright silly. But you have to track employee progress, tasks, and status anyways. Why not do it in a way that gives everyone a sense of competition and accomplishment?

Gamification doesn’t have to be strictly for companies to rope in consumers. By using it within teams it can also improve morale, grow employees at a professional level, and give everyone something to strive for.

The post Gamifying the DBA Experience appeared first on Steve Karam :: The Oracle Alchemist.

Inject market data to address external compensation inequalities

TalentedApps - Wed, 2013-05-01 08:11

Ever changing labor market conditions and supply demand fluctuations make sure that organizations don’t design employee compensation strategy in a vacuum. Success of your compensation strategy not only depends on your system’s ability to provide market data analysis during decision-making but also on how well you analyze the external data during your planning phase.

compensation inequalitiesYou start this exercise by deciding on the source of market data as per your industry benchmarks. Relying on multiple survey sources for market salary data will be more beneficial than depending on a single source. In case you opt for multiple sources, you need to decide on mathematical techniques you are going to use to combine multiple sources into an easily comparable source to make comparison with the internal data a smooth exercise.

Getting your current job descriptions updated into your internal system is a must have requirement before you proceed any further. While analyzing the survey data, you need to make sure that you are matching your detailed job description with benchmark job descriptions as matching just a job title or a brief summary can result in wastage of money, time and resources. You also need to have a plan in place for the cases where you don’t find job match in benchmark data.

How you utilize survey results after your internal analysis depends on your current or desired market position. Either you can decide to pay as per market dynamics or you can decide to lead the market. It’s very unlikely that you will decide to pay below market standards after putting so much effort in analysis. You can also opt for total compensation offerings to match or lead the market rather than focusing only on base pay.

It’s easier said than done, you need real experts for a detailed market data analysis internally as software in place will not help if you fail to analyze the data correctly.


Tagged: Market Data

Social Collaboration Adoption Best Practices

WebCenter Team - Wed, 2013-05-01 07:59

 It's fitting this week that we are focusing around social collaboration, since the key buzzwords at the Gartner Portals, Content & Collaboration Summit have been social, mobile, cloud and information. As the event comes to a close, John Brunswick shares his best practices for social collaboration adoption and how you can see the best results when implementing social technologies.

Want to get the most from your social collaboration investments?  If you already have or are contemplating investment in this technology, consider the following to boost your social collaboration adoption.

1. Drive Awareness - Your line of business leaders hold the key to success.  Ideally they proactively request this type of tooling in support of an existing use case, but that is rare.  If you are looking to drive adoption, hold a lunch and learn and using "business speak" share external case studies and focus on capabilities - instead of product functions.
2. Deploy Within an Existing Process - Start viewing social collaboration more along the lines of process management.  Identify "unstructured" processes with definitive start and end points that exist today.  Social collaboration deployed to resolve challenges with existing unstructured business process are most likely to succeed.
3. Require a Strong "Why" - Ensure that rationale for a given social collaboration use is justified.  Address this upfront, as the actual use - or lack of use - of your deployment will objectively confirm if the "why" was compelling enough.
4. Focus on Low Friction Experience - Regardless of the quality of your underlying technology, it needs to be easily accessible for end users.  Success occurs when use takes place within existing flows of work, without additional need for login, frequent context and window switching.
5. Avoid "Just Because"  - Social collaboration is a spice, not the main dish.  Keep in mind that social collaboration is most impactful in the context of business entities and existing work flows.  Social collaboration works when it is "purpose driven".

My first 6 months @ Pythian

Pythian Group - Wed, 2013-05-01 07:07

“What have I gotten myself into” ran through my head during the first week of training at Pythian. The environment was great, the people were great, the work was great, but many doubts ran through my head as I ran from training meeting to training meeting – how am I going to retain all this information (my memory skills are bad as it is), am I going to meet their expectations, am I too junior for this, I can’t seem to catch up on anything, is this the right career choice.
6 months later and I’m still here! I feel more comfortable with the work, I know I am meeting expectations, I have confidence in my skills, my organizational skills have improved, I know I’ve made the right career choice, even my memory has gotten much better! What changed over the past 6 months you ask? Well, here is how it started.

I was happy and content at my previous employer. I knew what I was doing, I had the skills and knowledge, and I was regarded as one of their senior employees. Although it was mainly recruiting work I was performing, it was under a Sales umbrella. I had always wanted to follow the path of an HR professional, may it be recruiting, organizational design, compensation, employee relations, training – all of which fell under the umbrella of HR. I arrived at Pythian because I was contacted by a previous colleague with an opportunity that I could not resist. Finally, I will get a chance to get my hands dirty and work on my true passion – Human Resourcing (HR). Contrary to some beliefs, HR professionals are not “paper pushers”, administrators or strictly recruiters but in fact we are pieces of the strategic puzzle in any organization. The harsh reality though is that much of the world still believes that we are administrators. So, for me I really wanted to join an organization that leverages HR as a strategic partner for the organization.

What Pythian offered me was the “3 Pillars of Growth” – Sales, Service Delivery and HR. These 3 ‘pillars’ are crucial in helping grow a business. This was further solidified for me by the people I met, the new/ existing plans and programs within HR, and the focus on culture Pythian provided for the growth of the business. This was a great opportunity for me to grow as a person and my career, and be part of a strategic team.

So I arrive at Pythian and was excited to learn the things I have always wanted to learn while providing the expertise I already possessed. In fact, I was delegated as the lead on a major, high profile project within the first week. However, shortly after doubt crept in as I found myself feeling like I could barely tread water (ask my wife, I’m not a very strong swimmer). Here I was absorbing so much information about the company, policies, procedures and now I have to figure out how to role out a project while I was still learning about the internal processes (and performing my main responsibility of recruiting). I rapidly felt like I was taking on too much water and started drowning. I started to loose confidence in my abilities and doubted the decision to take on this roll. I had several discussions with my work colleagues and my peers about my concerns. However, the one discussion that really changed my mind set was a conversation with my wife, she told me – “You worked too hard for this, don’t let yourself be your worst enemy.” There it was, clear as day! It was all my own insecurities, my own self-doubts, myself talking me out of this equation. So, I worked hard to observe and utilize the tools I had been provided throughout my career and at Pythian.

Once I was more open, I quickly noticed that Pythian really believes in their employees. They really empower their employees to do well and have a company culture to nurture their growth. They are always to open to new ideas and are always willing to take on risks with you. In the event that your new idea does not work, they still support you and move on to other ideas without pointing fingers or seeing you as a failure. Pythian’s unwritten culture is to make sure their employees don’t fail. Being in HR here, I was able to observe these facts are not just in our department but it is well exemplified in all business units across Pythian, starting from the CEO and Founder, to the Senior Executive team, to the Leadership team, and so on. I also had the opportunity to address my concerns to my own colleagues and manager and they were nothing but supportive. They provided immediate feedback and were able to provide relatable experiences with me.

Today, I feel like I am a much better swimmer. With the support I was provided by my colleagues, my managers, and the company my confidence in my abilities have grown and I know I have and will continue to add value to the organization. I feel I have met the expectations of the people who hired me, and I know I have made the right decision in joining this team.

This was my own experience of the first 6 months at Pythian. I hope that others have had similar or will have similar experiences as I have had (although I hope they are better swimmers). It has been tough but I’ve enjoyed every second of it. Life is a journey after all!

Categories: DBA Blogs

Storage Indexes vs Database Indexes IV: 8 Column Limit (Eight Line Poem)

Richard Foote - Tue, 2013-04-30 23:19
As Exadata Storage Indexes (SI) are purely memory only structures located on the Exadata storage servers, care needs to be taken in how much memory they can potentially consume. As a result, there is a limit of 8 columns (or 8 SIs) that can be defined for a given 1M storage region at any point […]
Categories: DBA Blogs

Explain Plan in vFabric SQLFire improved

Pas Apicella - Tue, 2013-04-30 19:42
With the recently released vFabric SQLFire 11 version the query execution plan is much easier to read then previously. An example below.

  
[Wed May 01 11:32:11 papicella@:~/sqlfire/vFabric_SQLFire_11_b40332/pasdemos/sqlfire ] $ sqlf
sqlf version 10.4
sqlf> connect peer 'bind-address=localhost;mcast-port=12333;host-data=false' as peerClient;
sqlf> explain select * from emp where deptno = 20;
MEMBER_PLAN                                                                                                                     
--------------------------------------------------------------------------------------------------------------------------------
ORIGINATOR 192.168.14.167(73118)<v6>:61492 BEGIN TIME 2013-05-01 11:32:39.735 END TIME 2013-05-01 11:32:39.777
DISTRIBUTION to &
Slowest Member Plan:
member 192.168.14.167(72048)<v1>:42223 begin_execution 2013-05-01 11:32:39.74 end_execution 2013-05-01 11:&
Fastest Member Plan:
member 192.168.14.167(72048)<v1>:42223 begin_execution 2013-05-01 11:32:39.74 end_execution 2013-05-01 11:&

3 rows selected
sqlf> select STMT_ID, STMT_TEXT from SYS.STATEMENTPLANS;
STMT_ID                             |STMT_TEXT                                                                                                                       
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
00000001-ffff-ffff-ffff-000400000016| select * from emp where deptno = <?>                                                                                           

1 row selected
sqlf> explain '00000001-ffff-ffff-ffff-000400000016';
stmt_id 00000001-ffff-ffff-ffff-000400000016 SQL_stmt select * from emp where deptno = <?> begin_execution 2013-05-01 11:32:39.735 end_execution 2013-05-01 11:32:39.777
QUERY-SCATTER  execute_time 0.0 ms
  QUERY-SEND 
    RESULT-RECEIVE 
      SEQUENTIAL-ITERATION (0.38%) execute_time 0.136 ms returned_rows 5 no_opens 1
        RESULT-HOLDER  returned_rows 5 no_opens 1
          DISTRIBUTION-END (99.61%) execute_time 35.073 ms returned_rows 5
member 192.168.14.167(72048)<v1>:42223 begin_execution 2013-05-01 11:32:39.74 end_execution 2013-05-01 11:32:39.774
QUERY-RECEIVE 
  RESULT-SEND 
    RESULT-HOLDER  returned_rows 5 no_opens 1
      ROWIDSCAN (1.71%) execute_time 0.148 ms returned_rows 5 no_opens 1 node_details EMP : 
        CONSTRAINTSCAN (98.28%) execute_time 8.482 ms returned_rows 5 no_opens 1 scan_qualifiers None scanned_object APP.6__EMP__DEPTNO:base-table:APP.EMP scan_type  node_details WHERE : ((DEPTNO = CONSTANT:20) and true) 
http://feeds.feedburner.com/TheBlasFromPas
Categories: Fusion Middleware

OTN Forum software is going to be upgraded in May 2013

Christopher Jones - Tue, 2013-04-30 17:23
Update: the migration has been delayed so they can "establish thread level redirects across the site". Yay!

In case you missed the notifications, the Oracle Technology Network forum software is going to be upgraded this weekend. This is great, since the old software is getting long-in-the-tooth and doesn't allow a bunch of useful features. The current forums will be in read-only mode over the weekend.

On launch of the new version, a minimal set of features will be supported. Once the upgrade is stable, then additional features will be turned on.

As a side part to the migration project, some little used and obsolete forums will be removed. Some other categories will be reworked.

You can get more information about the migration here. One thing to note is that the forum software is powered by Jive; i.e it is a packaged application so not all features you (and I) have requested will magically become feasible. And also, for better or worse, Jive has renamed "forums" as "spaces" - apparently we can't change this.