Error “platform=${platform/\)/%29}: bad substitution” when installing an Enterprise Manager Agent with AgentPull method on AIX

Today, I have been asked to deploy several Oracle Enterprise Manager agents on AIX 7.1 servers.
For this type of request, I have a preference for the “AgentPull” method when I don’t have a suitable Gold Image available.
Unfortunately, it seems that the “AgentPull” script does not work properly on AIX machines because when executing it, I got the following error: “platform=${platform/)/%29}: bad substitution“.

Continue reading “Error “platform=${platform/\)/%29}: bad substitution” when installing an Enterprise Manager Agent with AgentPull method on AIX”

How “Oracle Flashback Query” can save you from performing a full database restore or a TSPITR

Recently, I have been contacted several times by developers following manipulation errors that led to unwanted deletions of rows in a table on Oracle database. This can unfortunately happen frequently, especially on test or development environments.

The first thing that comes to mind is to restore a full backup of the database or perform a restore of the tablespace where the table is located (TSPITR) to retrieve the deleted rows. But there may be another faster solution if you do it quickly: using “Oracle Flasback Query“.

This feature can also be used to compare the content of a table with its content in the past, see the rows inserted/deleted/updated since a certain time,…

Continue reading “How “Oracle Flashback Query” can save you from performing a full database restore or a TSPITR”

Avoid TNS-00584 errors on listener restart

If you use the “TCP.VALIDNODE_CHECKING“, “TCP.INVITED_NODES” or “TCP.EXCLUDED_NODES” parameters in your listener’s sqlnet.ora file, you may have already encountered the following error when starting or restarting your listener:

TNS-12560: TNS:protocol adapter error
TNS-00584: Valid node checking configuration error

The problem is easy to fix when you have only a few hostnames referenced, but when the list is long, finding the server that caused the error can be much more time consuming.

Continue reading “Avoid TNS-00584 errors on listener restart”

How to restore root access on a KVM guest running Oracle Linux 7 on Exadata (X8M)

A few days ago, I made a handling error on an Oracle Linux 7 virtual machine on a freshly configured Exadata X8M. I inadvertently renamed the files “/etc/pam.d/password-auth” and “/etc/pam.d/system-auth”. Result: I was no longer able to connect to the VM in ssh, or even via the virsh console.

I will describe here the steps to regain access by renaming the files with the right name, but it is also applicable if you have lost your root password.

Continue reading “How to restore root access on a KVM guest running Oracle Linux 7 on Exadata (X8M)”

Simulate a where clause on a “long” type column from SQLPlus

As a DBA you sometimes have to take time to look for tricks to accomplish tasks that seem simple at first glance. A few days ago, I was asked to identify tables that had sequences prefixed by the schema name as a default value in the columns. You may think: it’s an easy task, just filter on the “data_default” column of the “dba_tab_columns” view, but unfortunately it’s not that simple using SQLPlus. The “data_default” column is in “longdatatype, so you cannot include it directly in the “where” clause of a query.

Continue reading “Simulate a where clause on a “long” type column from SQLPlus”

Retrieve serial numbers and other useful information from Exadata

It’s been a while since my last post!
Today, I wanted to share with you some useful commands to extract information from Exadata (product name, serial numbers, …).
This can be helpful for the opening of an new SR for example, or for inventorying components in a CMDB.

Here is the list of interesting elements that can be extracted (the list is not exhaustive, but these are the ones I use most often):

Exadata product name
Exadata rack serial number
Compute nodes and cell nodes serial number
Compute nodes and cell nodes internal component’s serial number
Inifiniband switches serial number
Cisco switch serial number
PDU’s serial number

Continue reading “Retrieve serial numbers and other useful information from Exadata”

How user authentication works in a shared MongoDB cluster

Today, I want to clarify an important point about users authentication in a MongoDB sharded cluster because this seems to be misunderstood by some people.

In a such environment, there are two notions to understand about user authentication, especially when you are DBA:

  • cluster¬†authentication, that is, the authentication made when connected trough a “mongos” process.
  • local¬†authentication, that is, the authentication made when connected locally on a shard trough a “mongod” process.

Continue reading “How user authentication works in a shared MongoDB cluster”