Search

OakieTags

Who's online

There are currently 1 user and 28 guests online.

Online users

Recent comments

Oracle

Voting Disk Lies (CRS-4000)

Add this to the category of annoyingly unhelpful error messages.

I’m working on a mostly-automated process to create a new cluster by cloning another existing cluster. After running OUI (Oracle Universal Installer – called by config.sh to just run config assistants) there is a single ASM diskgroup which contains both the OCR and Voting Disk; however I wanted to switch the voting disks over to some different physical devices.

Upon which I received this errors:


(root)# /oracle/11203/grid/bin/crsctl replace votedisk +CLST3_VOTING
Failed to create voting files on disk group CLST3_VOTING.
Change to configuration failed, but was successfully rolled back.
CRS-4000: Command Replace failed, or completed with errors.

Lovely… so very informative. And just to be clear, it didn’t complete with errors, it completely failed. Thanks Oracle.

Voting Disk Lies (CRS-4000)

Add this to the category of annoyingly unhelpful error messages.

I’m working on a mostly-automated process to create a new cluster by cloning another existing cluster. After running OUI (Oracle Universal Installer – called by config.sh to just run config assistants) there is a single ASM diskgroup which contains both the OCR and Voting Disk; however I wanted to switch the voting disks over to some different physical devices.

Upon which I received this errors:


(root)# /oracle/11203/grid/bin/crsctl replace votedisk +CLST3_VOTING
Failed to create voting files on disk group CLST3_VOTING.
Change to configuration failed, but was successfully rolled back.
CRS-4000: Command Replace failed, or completed with errors.

Lovely… so very informative. And just to be clear, it didn’t complete with errors, it completely failed. Thanks Oracle.

Why doesn’t ALTER SYSTEM SET EVENTS set the events or tracing immediately?

I received a question about ALTER SYSTEM in the comments section of another blog post recently.

Basically the question was that while ALTER SESSION SET EVENTS ’10046 … ‘ enabled the SQL Trace for the current session immediately, ALTER SYSTEM on the other hand didn’t seem to do anything at all for other sessions in the instance.

There’s an important difference in the behavior of ALTER SYSTEM when changing paramters vs. setting events.

For example, ALTER SYSTEM SET optimizer_mode = CHOOSE would change the value of this parameter immediately, for:

Linux HugePages for Oracle on Amazon EC2

One of the optimizations available to us when running Oracle on Linux is huge page support. This feature of the Linux kernel enables processes to allocate memory pages of size 2M (instead of 4k). In addition, memory allocated using hugepages is pinned in physical memory. It cannot be swapped out.

It is now common practice to enable huge page support for Oracle databases with large SGAs (one rule of thumb is 8G). Without this feature, the SGA can be, and often is, paged out. Paging out portions of the SGA can result in disastrous consequences from a performance standpoint. There are a variety of load patterns that perform particularly poorly without hugepages. Running with large numbers of processes, sudden increases in processes (connection storms), and highly concurrent access of diverse sets of SGA pages all can bring an Oracle system without hugepages to its knees.

Quiz Night

Okay, it’s a little early in the day (for me at least) to say “night” – but here’s a fun little detail I picked up in Prague yesterday. What do you think will happen when you try to execute the following two queries:


select 0/0 from dual;

select count(*) from (select 0/0 from dual);

I’ve only tried it on 11.2.0.4 and 12.1.0.1 – I could imagine the results might be different if you’re still running 8i or 9i.

If those are too easy, you might want to think about an example that Julian Dontcheff produced at OpenWorld:


select power(0,0) from dual;

What SHOULD the answer be, and what do you think Oracle will supply ?

Tomcat, Oracle Linux and VMware

Following from yesterday’s post about Cloud Control 12cR3, Oracle Linux and VMware, I thought I would just mention something I put live yesterday evening.

We have a 3rd party Java-based application that runs on Tomcat 7 and Java 7 that until recently was running on RHEL5 on physical hardware. It runs against an Oracle database, but that is not housed on this server. This application is not that big, but it is *very* high profile as it is what we use to process our REF submissions. If you know anything about higher education in the UK, you’ll know that REF is a very big deal, especially as we are within a couple of months of the next submission.

Cloud Control 12cR3, Oracle Linux and VMware

I mentioned some time ago that I was pushing my current company to move much of their gear on to VMware, mostly because of poor resource utilization on many of the servers. That process is still under way.

One thing I wanted to mention specifically was our use of Cloud Control 12cR3. Up until recently, we were using physical kit for this. We had an 11.2 database on HP-UX, With HA provided by HP Service Guard. We had two management servers on physical kit running RHEL5 pointing at this Service Guard package to give us some resiliency in of the OMS. It worked, but it was over complicated and I was never really happy with it for a number of reasons:

FBI decode

It probably won’t surprise many people to hear me say that the decode() function can be a bit of a nuisance; and I’ll bet that quite a lot of people have had trouble occasionally trying to get function-based indexes that use this function to behave properly. So (to put it all together and support the general directives that case is probably a better choice than decode() and that the cast() operator is an important thing to learn) here’s an example of how function-based indexes don’t always allow you to work around bad design/code. (Note: this is a model of a problem I picked up at a client site, stripped to a minimum – you have to pretend that I’m not allowed to fix the problem by changing code).

First we create some data and indexes, and gather all relevant stats:

Performance Reports in SQL Developer 4 EA2

SQL Developer 4 EA2 includes a performance node in the DBA tree.

sqldev-performance

 

You can use this to view ADDM, AWR and ASH reports directly from SQL Developer. I know I can get these from Cloud Control, but previously I tended to pull these out from the command line on the server. This is a much better approach IMHO.

SQL Developer 4 EA2 Connecting to SQL Server

I wrote a blog post some time ago about using SQL Developer 3.x to connect to SQL Server. I tried the same thing today from SQL Developer 4 EA2 and it works just fine.

You have to download the 3rd party JDBC driver and point SQL Developer to it. You can read how to do it here.

Cheers

Tim…

Update: My colleague just told me this.

“If you at any point decide to use Windows authentication to connect (like I just did), you might hit this error:

Status : Failure -I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.