Skip to main content
Delphix

Troubleshooting HostChecker Errors (KBA1324)

 

KBA

KBA#1324

Issue

When running HostChecker with option 4 ("Check Oracle DB instance"), receive the following error "Failed to connect via jdbc as "jdbc:oracle:xxx@xxxxx.xxx.com:1525:PROD". Please check your listener settings and fix them."

To troubleshoot:

  1. Verify that the port being used is the correct port for the Oracle listener.
    Note: The default port for Oracle servers is 1521.
    To determine the port the Oracle listener is using run the command lsnrctl status on the Oracle server.

  2. Verify that the Oracle instance name is correct. 

  3. If the Oracle instance can be added as environment on a Delphix Engine, verify the connection string using the following steps:
    1. Open the Admin App, and navigate to Manage > Environments.
    2. Choose the Environment in question, and click Databases on the right-hand side.
    3. For the database in question, click on "Show Details>>".
    4. A connection string will appear. Verify that this connection string matches the connection string in the error message. If it does not, the error would be in the connection string in HostChecker.

Issue

When running HostChecker to check an Oracle installation the following error is raised:

Proceed with checking Oracle installation at /u01/app/oracle/product/11.2.0.3/db 
: (Y/[N]) Y 
Step 1: OS user "delphix_os" does not have SYSDBA privileges for Oracle Home /u01/app/oracle/product/11.2.0.3/db. Please make sure OS user "delphix_os" has enough privileges

To troubleshoot:

In order to connect to Oracle as SYSDBA the Unix login should be a member of the Unix 'OSDBA' group.  

On Unix systems a user may be a member of more than one group. In order to connect to Oracle as SYSDBA when using Delphix, the delphix_os user's primary group should be a member of the Unix 'OSDBA' group (dba by default). Oracle requires: 

  • One of the groups of which the user is a member should be either the OSDBA or OSOPER groups as defined in config.c (config.s on some platforms) and as linked into the 'oracle' executable.
  • The group must be a valid group as defined in /etc/group (or as defined in NIS by 'ypcat group')
  • The users PRIMARY group (Ie: the one shown by the 'id' command) cannot be the special group 'daemon'.

The OSDBA groups is the same group as has been historically used to allow CONNECT INTERNAL.

  1. Verify that the delphix_os user's primary group is the OSDBA group (dba by default)
    1. You can compare the delphix_os user and the oracle user gid by typing "id oracle" and "id delphix_os" at the Unix/Linux prompt
  2. The 'OSDBA' and 'OSOPER' groups are chosen at installation time and usually both default to the group 'dba'. These groups are compiled into the 'oracle' executable and so are the same for all databases running from a given ORACLE_HOME directory. The actual groups being used for OSDBA can be checked as follows

    1. Depending on the platform, check for either file.

      cd $ORACLE_HOME/rdbms/lib
      cat config.c
      or
      cat config.s
    2. Verify that the '#define SS_DBA_GRP "group"' names the chosen OSDBA group.

  • To change the OSDBA or OSOPER groups, this file needs to be modified either directly or using the installer.
     

Example: For an OSDBA group of 'mygroup'

If the platform has config.c (HP-UX, Compaq Tru64 Unixware and Linux):

Change: #define SS_DBA_GRP "dba"
to: #define SS_DBA_GRP "mygroup"

If the platform has config.s:

Note that due to the way different compilers under different architectures generate assembler code, it's not possible to give a universal rule. 

Examples:

Sun SPARC Solaris:
------------------
Change both occurrences of 
.ascii "dba\0"
to
.ascii "mygroup\0"

IBM AIX/Intel Solaris:
----------------------
Change both occurrences of 
.string "dba"
to
.string "mygroup"

To effect any changes to the groups and to be sure those changes are being used in the groups defined in this file, relink the Oracle executable. Be sure to shutdown all databases before re linking:

cd $ORACLE_HOME/rdbms/lib
mv config.o config.o.orig
make -f ins_rdbms.mk ioracl

 

Note

Note:

config.o will be re-created by make because of dependencies automatically.


For a group to be accepted by Oracle as the OSDBA or OSOPER group it must:

  • Be compiled into the Oracle executable 

  • The group name must exist in /etc/group (or in 'ypcat group' if NIS is being used)

  • It CANNOT be the group called 'daemon'