If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

ASM Instance not recognized by DBCA :(

Well, I'm currently building an Oracle ASM solution for a developer's server. It is built on Oracle 10.2.0.1 Enterprise Edition and Red Hat Enterprise Linux 4 ES, running on a VMWare virtual machine. I am not using ASM with cluster, though; it is just a single-instance database.

There are two Oracle homes: the home for the database is /app/oracle/oracle/product/10.2.0/db_1, while the home for ASM is /app/oracle/oracle/product/10.2.0/asm. Why did I created a separated home for the ASM? Frankly, I ain't even sure; I was just following the installation steps here. It was said that Oracle reccommend to install ASM on its own home:

Oracle recommends that you install Automatic Storage Management in its own Oracle home, regardless of whether you plan to only have one or multiple database instances. Installing Automatic Storage Management in its own Oracle home helps ensure higher availability and manageability.

With separate Oracle homes, you can upgrade Automatic Storage Management and databases independently, and you can remove database software without impacting the Automatic Storage Management instance. Ensure that the Automatic Storage Management version is the same or later than the Oracle Database version.

If an Automatic Storage Management installation does not already exist and you select the Oracle Universal Installer option to install and configure Automatic Storage Management only, then Oracle Universal Installer installs Automatic Storage Management in its own Oracle home.

Note that I have not created any database yet; my plan is to create the ASM instance first, then using the mounted ASM disks for the database that will be created later.

I have finished creating ASM diskgroups, and restarting the Red Hat server afterward. After restarting the server, I successfully started the ASM instance as well.

So you see, on the steps above, first I set the ORACLE_SID variable to the name of the ASM instance (export ORACLE_SID=+ASM). Then I also set the ORACLE_HOME variable to the ASM home (../product/10.2.0/asm/ instead of ../product/10.2.0/db_1/). After starting the ASM as shown above, I also ran the asmcmd to verify my disk groups.

Well, I guess the result above shows that the ASM instance has already been up and running, and all the disk groups have been mounted. Am I correct?

Then, the next step is to create a database that will use the ASM disk groups. My initial plan is to create this database on the ../product/10.2.0/db_1/ oracle home (not the ../product/10.2.0/asm home), because the documentation says that it is reccommended to put ASM in its own separate home, so I would do so.

Note that 'lab' is the name of the database I was about to create; it's just my habit of setting the ORACLE_SID variable before creating the database of the same name.

In the DBCA GUI interface, I chose 'Automatic Storage Management' as the database Storage Option. Of course, since the ASM instance (+ASM) has been already up and running, I expected the database will be able to use the ASM diskgroups to store its file......

Turned out I was wrong, since the DBCA gave me this error message:

Originally Posted by Database Configuration Assistant

DBCA could not startup the ASM instance configured on this node. To proceed with database creation using ASM you need the aSM instance to be up and running. Do you want to recreate the ASM instance on this node?

AAARRGGGHHH!!!

Well I chose not to recreate the ASM instance, because I'm afraid it will conflict with the existing ASM instance which, by the way, has already been up and running as shown above. So I cancelled DBCA and decided to re-try it as shown below:

Yes, in my second attempt, I tried to use +ASM as the current ORACLE_SID, because I suspected the reason of the error is somehow related to the ORACLE_SID variable. Furthermore, I also installed from the ASM Oracle home (../product/10.2.0/asm instead of ../product/10.2.0/bin) because I felt safer that way. Of course that would defeat the purpose of "installing ASM on its own separate home", but what's important to me is having the database up and running first, and worrying about multiple home issues later.

Guess what, I still got the same error message in this second attempt:

Originally Posted by Database Configuration Assistant

DBCA could not startup the ASM instance configured on this node. To proceed with database creation using ASM you need the aSM instance to be up and running. Do you want to recreate the ASM instance on this node?

The question is why? I have started the ASM instance flawlessly. Furthermore, the execution of asmcmd has also shown that the ASM diskgroups have been mounted. Why the DBCA just keeps failing to recognize the ASM instance?

Update: while starting listener after the machine reboot helped on the first time, it didn't help on the second time.

See, I started the listener, go to dbca, and created the database using ASM. Of course it worked at the first time. Alas, during database creation process, dbca failed to extent a SYS table because the SYS tablespace is too small (my fault).

So, I restarted the server again, started the listener and the +ASM instance, and ran the dbca.

Guess what, it didn't work the second time; displaying the dreaded error message again:

DBCA could not startup the ASM instance configured on this node. To proceed with database creation using ASM you need the aSM instance to be up and running. Do you want to recreate the ASM instance on this node?

And this is really frustrating, because I did EXACTLY THE SAME STEPS with the first time (starting listener, starting ASM instance, etc). And the first time I did it, it was successful. I wonder why it failed on the second time. Same steps, different results --the very definition of insanity.