Archive

I recently tried to troubleshoot an application issue that was related to a text index. The index itself appeared in valid state but there was obviously some kind of a problem with it.
I started with the following

In this post I would like to draw your attention to the Optimizer in Oracle 10g.
The best place to start is the DBMS_STATS package reference page.

The DBMS_STATS package contains all the procedures required to maintain the optimizer statistics of any schema.
Once you get familiar with the documentation of the package, you will actually know which approach is best for your database and schemas. In my case I have to gather schema statistics once per week with a specific estimate_percent value and I have to gather schema index statistics every night. For this purpose I have created the following simple PL/SQL. I recommend if you create jobs and schedule them as appropriate.

Happy New Year!
Wish you all the great stuff you have been dreaming about to come true in 2010!

I haven’t posted for a long time but my excuse is the busy season at work. At the end of the day I am finding a minute to share a simple but useful hint on generating the COMPILE SQL for invalid PUBLIC SYNONYM objects.

Every time you drop and recreate an object such as a SEQUENCE, the PUBLIC SYNONYM for that objects invalidates (if such exists). In order to generate the COMPILE commands you could use SQL similar to the following two examples:

I just noticed that the Oracle instance that I am working with has the SMP_% tables added from the Oracle Enterprise Manager. Since I don’t need them I decided to drop them. Here is my sql that generates the delete statements:

select ‘drop table ‘||table_name||’;’ from user_tables where table_name like ‘SMP_%’;

The main reason behind this is the fact that I needed more space for 2 more Oracle databases on a SLES10 Linux system. The partition mounted on /u01 was initially created as 21GB but I quickly depleted the space with 3 oracle 10g databases that took more than 17GB and the space left was not sufficient for the 2 new databases that I had to create.

Before I advanced with the extension of the VMDK file I connected to each separate instance and performed “shutdown immediate” command as sysdba.
Then I stopped the listener, dbconsole, isqlplus and once I confirmed that no oracle related processes were present on the system I performed a shutdown “shutdown -h now”.

In order to extend an existing hard drive attached to a virtual machine you have to make sure no snapshots of the virtual machine are present. I know that this is quite uncomfortable considering the risky operation that you are about to perform but there is a work around. (The work around is not in this post, so please let me know if you are interested or simply search for it. There is a good chance that I will have an article concerning that topic)

When I finished the clusterware install in the lab environment I have continued with the database software itself but it appears that I needed a VMware ESXi Update 3 required! The kernel version of SLES failed verification and upon an upgrade of the kernel through YAST both machines were unusable since they would not boot.

This is an obstacle until completed since I can’t continue with the How-to until this is done.

In Part 9 of the Oracle RAC How-to we have completed successfully the installation of the Oracle Clusterware services on the shared storage for the two Suse Linux Enterprise Server 9 SP5 nodes.

Let’s say you had a field CITIZEN in table called EMPLOYEE that was created as VARCHAR2(10) but this has to be changed to VARCHAR2(3). The syntax to change the the column datatype in Oracle is as follows:

ALTER TABLE table_name MODIFY ( column_name VARCHAR2(3));

If there is existing column data you should first export that data and then import it after the datatype change. Make sure the exported data will be suitable for import upon the change (You can’t import a row with CITIZEN column of 5 after you have changed the column to VARCHAR2(3)).

Install the xntpd service and configure it.
You can use the Yast management console to do so.
It is extremely important that both nodes are configured to use ntp server and that they are regularly being updated.
If there is any difference at all within the date of all nodes this could result into inoperable cluster.

1. Copy the cpio.gz file to the first node and unzip the contents of the cpio file