[INS-06006] Passwordless SSH connectivity not set up between the following nodes(s)

Symptom: Installing 11.2.0.4 Grid Infrastructure patch set, runInstaller reports error: [INS-06006] Passwordless SSH connectivity not set up between the following nodes(s): [racnode1].

Root cause: Hostname is in mixed case (upper and lower)

Passwordless set up between the nodes in the RAC cluster was done using hostnames in lower case.

Solution: change the hostnames to lower case in the /etc/hosts file and re-run the installer.

 

Oracle references:

Upper or mixed case hostname being used, this is being investigated in bug 17580744

BUG 17666448 – INS-06006 OCCURS IF HOSTNAME IS IN CAPITAL LETTERS FOR GI INSTALLATION

BUG 17675476 – PASSWORDLESS SSH CONNECTIVITY NOT SET UP BETWEEN THE FOLLOWING NODES

Advertisements

Oracle DataPump 10g v 11g

With original Export utility running on a live database, a parameter CONSISTENT=Y is usually set so the objects in the backup is consistent to a single point in time. For Data Pump Export, that parameter does not exist.

According to 10g Oracle documentation: http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/dp_export.htm#sthref181
A parameter comparable to CONSISTENT is not needed, use FLASHBACK_SCN and FLASHBACK_TIME for this functionality.

The default value of either FLASHBACK_SCN or FLASHBACK_TIME is none.

What you run a Data Pump export on a live database without setting the value of FLASHBACK_SCN or FLASHBACK_TIME, the no. of records in the parent table (parent1) is not same as number of records in child table (child1_of_parent1).

This means
a. The export dump file could capture data from different transactions, and
b. The dump file may be useless if the records in the dump file violated referential integrity constraint on the tables.

Use the following during the export:

FLASHBACK_TIME="TO_TIMESTAMP('08-05-2014 09:00:00', 'DD-MM-YYYY HH24:MI:SS')"

Conclusion is:

a. The behavior of Data Pump Export utility is different from original Export utility in terms of how the active transactions are treated.
b. The original Export utility, when setting consistent=y, will create export dump file of database objects from the point in time at the beginning of the Export session.
c. Without setting values for FLASHBACK_SCN or FLASHBACK_TIME, Data Pump Export utility may create an inconsistent export.
d. To ensure a consistent export with Data Pump export, either set the FLASHBACK_SCN or FLASHBACK_TIME parameter, or restart the database in restrict mode before the export session starts.

The parameter CONSISTENT=Y can be used with Oracle Datapump 11g. According to 11g Oracle documentation: http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm you can continue using FLASHBACK_SCN or FLASHBACK_TIME.

DST upgrade to 14 after upgrading database from 10.2.0.4 to 11.2.0.3

Current timezone version is lower than 14 (typically 4):

When upgrading from 10.1.0.x , 10.2.0.x or 11.1.0.x to 11.2.0.3:
For 10.2.0.2 , 10.2.0.3 , 10.2.0.4 or 10.2.0.5 there is no need to apply any patchset before upgrading to 11.2.0.3

Upgrade to 11.2.0.3.No need to apply DST patches on the 10.2.0.2 , 10.2.0.3 , 10.2.0.4 or 10.2.0.5 side first. You can skip any DST related upgrade instructions.
The 11.2.0.3 RDBMS DST version after the upgrade to 11.2.0.3 will be the same DST version as used in 10.2.0.2 , 10.2.0.3 , 10.2.0.4 or 10.2.0.5.

After the upgrade to 11.2.0.3 you can:
(recommended) update the 11.2.0.3 database(s) to DSTv14 (standard DST version of 11.2.0.3) by following Note 977512.1 Updating the RDBMS DST version in 11gR2 (11.2.0.1 and up) using DBMS_DST from step 3a) onwards, when going to DSTv14 there is no need to apply any DST patch to the 11.2.0.3 home

(optional) update to a higher DST than 14 version if this is needed.
Apply the latest 11.2.0.3 DST update patch after the upgrade to 11.2.0.3 and use DDBMS_DST.

The lastest DST patch and related note on how to apply this is found in Note 412160.1 Updated Time Zones in Oracle Time Zone File patches under “C) Notes covering the current DST available updates”. Simply follow the note for the latest DST update. If decided it is possible to upgrade the database’s timezone after the database upgrade by following the above metalink notes. In this case timezone was upgraded at the same time database was upgraded.

SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup upgrade
ORACLE instance started.

Total System Global Area 2138521600 bytes
Fixed Size 2161024 bytes
Variable Size 1543505536 bytes
Database Buffers 570425344 bytes
Redo Buffers 22429696 bytes
Database mounted.
Database opened.
SQL>
SQL> set serveroutput on
SQL>

— check if previous prepare window is ended

SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE ‘DST_%’
ORDER BY PROPERTY_NAME;

2 3 4
PROPERTY_NAME VALUE
—————————— ——————————
DST_PRIMARY_TT_VERSION 4
DST_SECONDARY_TT_VERSION 0
DST_UPGRADE_STATE NONE

— If there are objects containing TSTZ data in recycle bin,
— please purge the bin now.
— Otherwise dbms_dst.begin_upgrade will report “ORA-38301: Can not perform DDL/DML over objects in Recycle Bin”.

SQL> SQL> purge dba_recyclebin;

DBA Recyclebin purged.

— clean used tables

SQL> SQL> TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;

Table truncated.

SQL> TRUNCATE TABLE sys.dst$affected_tables;

Table truncated.

SQL> TRUNCATE TABLE sys.dst$error_table;

Table truncated.

— this alter session might speed up DBMS_DST on some db’s
— see Bug 10209691 / Bug 12658443

SQL> SQL> alter session set “_with_subquery”=materialize;

Session altered.

— to avoid the issue in note 1407273.1

SQL> SQL> alter session set “_simple_view_merging”=TRUE;

Session altered.

— Set client_info so one can use:
— select …. from V$SESSION where CLIENT_INFO = ‘upg_tzv’;

SQL> SQL> EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO(‘upg_tzv’);

PL/SQL procedure successfully completed.

— start the actual upgrade window

SQL> SQL> EXEC DBMS_DST.BEGIN_UPGRADE(14);

— the message
— “An upgrade window has been successfully started.”
— will be seen

SQL> SQL> EXEC DBMS_DST.BEGIN_UPGRADE(14);

An upgrade window has been successfully started.

PL/SQL procedure successfully completed.

— check if this select give no rows, if it does something went wrong

SQL> SQL> SELECT * FROM sys.dst$error_table;

no rows selected

— check if this select gives

SQL> SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE ‘DST_%’
ORDER BY PROPERTY_NAME;

2 3 4
PROPERTY_NAME VALUE
—————————— ——————————
DST_PRIMARY_TT_VERSION 14
DST_SECONDARY_TT_VERSION 4
DST_UPGRADE_STATE UPGRADE

— Optionally you can check what user tables still need to be updated using DBMS_DST.UPGRADE_DATABASE

SQL> SQL> select OWNER, TABLE_NAME, UPGRADE_IN_PROGRESS from ALL_TSTZ_TABLES where UPGRADE_IN_PROGRESS=’YES’;

OWNER TABLE_NAME UPG
—————————— —————————— —
ASO AQ$_ASO_ORDER_FEEDBACK_T_S YES
OKC AQ$_OKC_AQ_EV_TAB_S YES
AR AQ$_AR_REV_REC_QT_S YES
XNP AQ$_XNP_OUT_MSG_QTAB_S YES
CS AQ$_CS_SERVICE_REQUEST_OQT_S YES
CS AQ$_CS_SERVICE_REQUEST_IQT_S YES
APPLSYS AQ$_WF_DEFERRED_TABLE_M_S YES
APPLSYS AQ$_WF_OUT_S YES
APPLSYS AQ$_WF_REPLAY_IN_S YES
APPLSYS AQ$_WF_IN_S YES
APPLSYS AQ$_WF_ERROR_S YES

OWNER TABLE_NAME UPG
—————————— —————————— —
APPLSYS AQ$_WF_DEFERRED_S YES
APPLSYS AQ$_WF_REPLAY_OUT_S YES
APPLSYS AQ$_WF_JMS_IN_S YES
APPLSYS AQ$_WF_JMS_OUT_S YES
APPLSYS AQ$_WF_CONTROL_S YES
APPLSYS AQ$_WF_NOTIFICATION_IN_S YES
APPLSYS AQ$_WF_NOTIFICATION_OUT_S YES
APPLSYS AQ$_WF_WS_JMS_IN_S YES
APPLSYS AQ$_WF_JAVA_DEFERRED_S YES
APPLSYS AQ$_WF_WS_JMS_OUT_S YES
APPLSYS AQ$_WF_JAVA_ERROR_S YES

OWNER TABLE_NAME UPG
—————————— —————————— —
APPLSYS AQ$_WF_JMS_JMS_OUT_S YES
APPLSYS AQ$_WF_WS_SAMPLE_S YES
APPLSYS AQ$_FND_CP_GSM_IPC_AQTBL_S YES
APPLSYS AQ$_FND_CP_GSM_IPC_AQTBL_L YES
APPLSYS AQ$_FND_CP_TM_AQTBL_S YES
APPLSYS AQ$_FND_CP_TM_RET_AQTBL_S YES
AR AQ$_AR_REV_REC_QT_L YES
ASO AQ$_ASO_ORDER_FEEDBACK_T_L YES
XNP AQ$_XNP_OUT_MSG_QTAB_L YES
APPLSYS AQ$_WF_NOTIFICATION_OUT_L YES
OKC AQ$_OKC_AQ_EV_TAB_L YES

OWNER TABLE_NAME UPG
—————————— —————————— —
CS AQ$_CS_SERVICE_REQUEST_OQT_L YES
CS AQ$_CS_SERVICE_REQUEST_IQT_L YES
APPLSYS AQ$_WF_WS_JMS_IN_L YES
APPLSYS AQ$_WF_DEFERRED_TABLE_M_L YES
APPLSYS AQ$_WF_OUT_L YES
APPLSYS AQ$_WF_REPLAY_IN_L YES
APPLSYS AQ$_WF_IN_L YES
APPLSYS AQ$_WF_ERROR_L YES
APPLSYS AQ$_WF_DEFERRED_L YES
APPLSYS AQ$_WF_REPLAY_OUT_L YES
APPLSYS AQ$_WF_JMS_IN_L YES

OWNER TABLE_NAME UPG
—————————— —————————— —
APPLSYS AQ$_WF_JMS_OUT_L YES
APPLSYS AQ$_WF_CONTROL_L YES
APPLSYS AQ$_WF_NOTIFICATION_IN_L YES
APPLSYS AQ$_WF_JAVA_DEFERRED_L YES
APPLSYS AQ$_WF_WS_JMS_OUT_L YES
APPLSYS AQ$_WF_JAVA_ERROR_L YES
APPLSYS AQ$_WF_JMS_JMS_OUT_L YES
APPLSYS AQ$_WF_WS_SAMPLE_L YES
APPLSYS AQ$_FND_CP_TM_AQTBL_L YES
APPLSYS AQ$_FND_CP_TM_RET_AQTBL_L YES
APPLSYS AQ$_FND_CP_GSM_OPP_AQTBL_S YES

OWNER TABLE_NAME UPG
—————————— —————————— —
APPLSYS AQ$_FND_CP_GSM_OPP_AQTBL_L YES

56 rows selected.

SQL> SQL>

— now restart the database

SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 2138521600 bytes
Fixed Size 2161024 bytes
Variable Size 1543505536 bytes
Database Buffers 570425344 bytes
Redo Buffers 22429696 bytes
Database mounted.
Database opened.

SQL> alter session set “_with_subquery”=materialize;

Session altered.

SQL> alter session set “_simple_view_merging”=TRUE;

Session altered.

SQL> SQL> EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO(‘upg_tzv’);

PL/SQL procedure successfully completed.

SQL> SQL> set serveroutput on
VAR numfail number
BEGIN
DBMS_DST.UPGRADE_DATABASE(:numfail,
parallel => TRUE,
log_errors => TRUE,
SQL> SQL> log_errors_table => ‘SYS.DST$ERROR_TABLE’,
2 3 4 5 6 log_triggers_table => ‘SYS.DST$TRIGGER_TABLE’,
7 error_on_overlap_time => FALSE,
8 error_on_nonexisting_time => FALSE);
9 DBMS_OUTPUT.PUT_LINE(‘Failures:’|| :numfail);
10 END;
11 /

— ouput of this will be a list of tables like:

— Table list: SYSMAN.AQ$_MGMT_NOTIFY_QTABLE_S
— Number of failures: 0
— ….
— Table list: SYSMAN.MGMT_PROV_ASSIGNMENT
— Number of failures: 0
— Table list: SYSMAN.MGMT_CONFIG_ACTIVITIES
— Number of failures: 0
— Failures:0

— this select should , if no errors where given also give “no rows”, if it does something went wrong

output:

Table list: “ASO”.”AQ$_ASO_ORDER_FEEDBACK_T_S”
Number of failures: 0
Table list: “OKC”.”AQ$_OKC_AQ_EV_TAB_S”
Number of failures: 0
Table list: “AR”.”AQ$_AR_REV_REC_QT_S”
Number of failures: 0
Table list: “XNP”.”AQ$_XNP_OUT_MSG_QTAB_S”
Number of failures: 0
Table list: “CS”.”AQ$_CS_SERVICE_REQUEST_OQT_S”
Number of failures: 0
Table list: “CS”.”AQ$_CS_SERVICE_REQUEST_IQT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_DEFERRED_TABLE_M_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_OUT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_REPLAY_IN_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_IN_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_ERROR_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_DEFERRED_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_REPLAY_OUT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JMS_IN_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JMS_OUT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_CONTROL_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_NOTIFICATION_IN_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_NOTIFICATION_OUT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_WS_JMS_IN_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JAVA_DEFERRED_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_WS_JMS_OUT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JAVA_ERROR_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JMS_JMS_OUT_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_WS_SAMPLE_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_GSM_IPC_AQTBL_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_GSM_IPC_AQTBL_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_TM_AQTBL_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_TM_RET_AQTBL_S”
Number of failures: 0
Table list: “AR”.”AQ$_AR_REV_REC_QT_L”
Number of failures: 0
Table list: “ASO”.”AQ$_ASO_ORDER_FEEDBACK_T_L”
Number of failures: 0
Table list: “XNP”.”AQ$_XNP_OUT_MSG_QTAB_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_NOTIFICATION_OUT_L”
Number of failures: 0
Table list: “OKC”.”AQ$_OKC_AQ_EV_TAB_L”
Number of failures: 0
Table list: “CS”.”AQ$_CS_SERVICE_REQUEST_OQT_L”
Number of failures: 0
Table list: “CS”.”AQ$_CS_SERVICE_REQUEST_IQT_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_WS_JMS_IN_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_DEFERRED_TABLE_M_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_OUT_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_REPLAY_IN_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_IN_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_ERROR_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_DEFERRED_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_REPLAY_OUT_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JMS_IN_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JMS_OUT_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_CONTROL_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_NOTIFICATION_IN_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JAVA_DEFERRED_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_WS_JMS_OUT_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JAVA_ERROR_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_JMS_JMS_OUT_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_WF_WS_SAMPLE_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_TM_AQTBL_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_TM_RET_AQTBL_L”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_GSM_OPP_AQTBL_S”
Number of failures: 0
Table list: “APPLSYS”.”AQ$_FND_CP_GSM_OPP_AQTBL_L”
Number of failures: 0
Failures:0

PL/SQL procedure successfully completed.

— this select should , if no errors where given also give “no rows”, if it does something went wrong

SQL> SQL> SELECT * FROM sys.dst$error_table;

no rows selected

— if there where no failures then end the upgrade.

SQL> SQL> VAR fail number
BEGIN
DBMS_DST.END_UPGRADE(:fail);
DBMS_OUTPUT.PUT_LINE(‘Failures:’|| :fail);
END;
/

SQL> 2 3 4 5
An upgrade window has been successfully ended.
Failures:0

PL/SQL procedure successfully completed.

–last checks

SQL> SQL> SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE ‘DST_%’
ORDER BY PROPERTY_NAME;

2 3 4
PROPERTY_NAME VALUE
—————————— ——————————
DST_PRIMARY_TT_VERSION 14
DST_SECONDARY_TT_VERSION 0
DST_UPGRADE_STATE NONE

SQL> SQL> SELECT * FROM v$timezone_file;

FILENAME VERSION
——————– ———-
timezlrg_14.dat 14

Your database DST version is now updated to .

SQL> select VERSION from v$timezone_file;

VERSION
———-
14

SQL> select TZ_VERSION from registry$database;

TZ_VERSION
———-
4

–if they differ after an upgrade then updating registry$database can be done by

SQL> update registry$database set TZ_VERSION = (select version FROM v$timezone_file);

1 row updated.

SQL> commit;

Commit complete.

SQL> select TZ_VERSION from registry$database;

TZ_VERSION
———-
14

ORA-15020: discovered duplicate ASM disk

I was installing Grid infrastructure for a standalone server.

By default, the diskstring was ORCL:* but I changed it to /dev/oracleasm/disks. However, ths disks were visible on both diskstrings. After the change, I faced the following error message at the end of installation:

INFO: Command /u01/app/grid/product/11.2.0/grid/bin/asmca -silent -oui_internal -configureASM -diskString /dev/oracleasm/disks -diskGroupName CRS -diskList /dev/oracleasm/disks/CRSVOL1,/dev/oracleasm/disks/CRSVOL2,/dev/oracleasm/disks/CRSVOL3 -redundancy EXTERNAL
INFO: ... GenericInternalPlugIn.handleProcess() entered.
INFO: ... GenericInternalPlugIn: getting configAssistantParmas.
INFO: ... GenericInternalPlugIn: checking secretArguments.
INFO: ... GenericInternalPlugIn: starting read loop.
INFO: Read: SYS_PASSWORD_PROMPT
INFO: Processing: SYS_PASSWORD_PROMPT for argument tag -sysAsmPassword
INFO: Read: ASMSNMP_PASSWORD_PROMPT
INFO: Processing: ASMSNMP_PASSWORD_PROMPT for argument tag -asmMonitorPassword
INFO: End of argument passing to stdin
INFO: Read:
INFO: Read: Configuring ASM failed with the following message:
INFO: Read: One or more diskgroup(s) creation failed as below:
INFO: Read: DiskGroup CRS creation failed with the following message:
INFO: Read: ORA-15018: diskgroup cannot be created
INFO: Read: ORA-15020: discovered duplicate ASM disk "CRS_0002"
INFO: Read:
INFO: Read:
INFO: Completed Plugin named: Automatic Storage Management Configuration Assistant

Solution:

I changed the diskstring to ORCL as shown below and ran the below command as grid user

 /u01/app/grid/product/11.2.0/grid/bin/asmca -silent -oui_internal -configureASM -diskString ORCL:* -diskGroupName CRS -diskList ORCL:CRSVOL1,ORCL:CRSVOL2,ORCL:CRSVOL3 -redundancy EXTERNAL

If the ASM configuration assitant fails during the installation, then you can run the command manually after changing the diskstring and skip the step on the GUI installer after the command completes successfully.

In my case, the corrected command ran successfully.

DNS configuration for the SCAN used with Oracle Database 11gR2

This post provides the basic DNS configuration steps necessary to use the Single Client Access Name (SCAN) introduced in Oracle 11g Release 2 RAC.

I’m not an network guy and don’t claim to know much about DNS.

This post represents the minimum you can do to make a SCAN work. The DNS configuration in the post has been done on a DNS server installed on a separate VM called romford.mpoojari.co.uk where romford is the hostname (dns server name) and mpoojari.co.uk is the domain name. The IP address of this server will be 192.168.0.10 (static IP).

DNS installation

Install and configure RHEL 5.4 VM

[root@romford etc]# uname -a
Linux romford.mpoojari.co.uk 2.6.18-194.el5 #1 SMP Mon Mar 29 22:10:29 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

Ensure you have choose DNS Name server and Server configuration tools(select bind packages) during the installation phase.

Check if the following DNS Server Packages are installed

[root@romford ~]# rpm -qa | grep bind
bind-libs-9.3.6-4.P1.el5_4.2
ypbind-1.19-12.el5
system-config-bind-4.0.3-4.0.1.el5
bind-utils-9.3.6-4.P1.el5_4.2
bind-chroot-9.3.6-4.P1.el5_4.2
bind-9.3.6-4.P1.el5_4.2

Three packages must be installed on Linux for DNS Server:
•bind (includes DNS server, named)
•bind-utils (utilities for querying DNS servers about host information)
•bind-libs (libraries used by the bind server and utils package)

You should be able to locate /etc/named.conf
If not copy  all the files under /usr/share/doc/bind-9.3.4/sample/etc  to /etc
Also copy all the files under /usr/share/doc/bind-9.3.4/sample/var  to /var

[root@romford etc]# ls -ltr /usr/share/doc/bind-9.3.6/sample/etc
total 32
-rw-r--r-- 1 root root  524 Jan 20  2010 named.root.hints
-rw-r--r-- 1 root root  775 Jan 20  2010 named.rfc1912.zones
-rw-r--r-- 1 root root 4298 Jan 20  2010 named.conf
-rw-r--r-- 1 root root    0 Jan 20  2010 rndc.conf

[root@romford etc]# ls -ltr /usr/share/doc/bind-9.3.6/sample/var/
total 8
drwxr-xr-x 4 root root 4096 Nov 24 14:01 named
[root@romford etc]# ls -ltr /usr/share/doc/bind-9.3.6/sample/var/named/
total 88
-rw-r--r-- 1 root root  427 Jan 20  2010 named.zero
-rw-r--r-- 1 root root 1892 Jan 20  2010 named.root
-rw-r--r-- 1 root root  426 Jan 20  2010 named.local
-rw-r--r-- 1 root root  424 Jan 20  2010 named.ip6.local
-rw-r--r-- 1 root root  427 Jan 20  2010 named.broadcast
-rw-r--r-- 1 root root  195 Jan 20  2010 localhost.zone
-rw-r--r-- 1 root root  198 Jan 20  2010 localdomain.zone
-rw-r--r-- 1 root root   56 Jan 20  2010 my.internal.zone.db
-rw-r--r-- 1 root root   56 Jan 20  2010 my.external.zone.db
drwxr-xr-x 2 root root 4096 Jan 20  2010 data
drwxr-xr-x 2 root root 4096 Nov 24 14:01 slaves

1. Generate the DNS Key

[root@romford etc]# which dns-keygen
/usr/sbin/dns-keygen

[root@romford etc]# dns-keygen
j30zdeKhACTGFWSdxGgHVSC3jFm0ejIAn5p4mJkYmA0cyHp4jDaT30SYQLMR

2. Configure the named.conf file

Add the DNS key to the /etc/named.conf under the below section and should look like

replace

key ddns_key
{
        algorithm hmac-md5;
        secret "use /usr/sbin/dns-keygen to generate TSIG keys";
};

to

key ddns_key
{
         algorithm hmac-md5;
         secret "j30zdeKhACTGFWSdxGgHVSC3jFm0ejIAn5p4mJkYmA0cyHp4jDaT30SYQLMR";
 };

Add the below line in the /etc/named.conf .

zone "mpoojari.co.uk" IN {
 type master;
 file "mpoojari.co.uk.zone";
 allow-update { none; };
};

3. Create the zone file under /var/named

[root@romford etc]# ls -ltr /var/named
total 44
drwxr-xr-x 2 root root 4096 Nov 24 16:27 slaves
-rw-r--r-- 1 root root  427 Nov 24 16:27 named.zero
-rw-r--r-- 1 root root 1892 Nov 24 16:27 named.root
-rw-r--r-- 1 root root  426 Nov 24 16:27 named.local
-rw-r--r-- 1 root root  424 Nov 24 16:27 named.ip6.local
-rw-r--r-- 1 root root  427 Nov 24 16:27 named.broadcast
-rw-r--r-- 1 root root   56 Nov 24 16:27 my.internal.zone.db
-rw-r--r-- 1 root root   56 Nov 24 16:27 my.external.zone.db
-rw-r--r-- 1 root root  195 Nov 24 16:27 localhost.zone
-rw-r--r-- 1 root root  198 Nov 24 16:27 localdomain.zone
drwxr-xr-x 2 root root 4096 Nov 24 16:27 data

[root@romford etc]# cd /var/named
[root@romford named]# cp localdomain.zone mpoojari.co.uk.zone
[root@romford named]# ls -ltr
total 48
drwxr-xr-x 2 root root 4096 Nov 24 16:27 slaves
-rw-r--r-- 1 root root  427 Nov 24 16:27 named.zero
-rw-r--r-- 1 root root 1892 Nov 24 16:27 named.root
-rw-r--r-- 1 root root  426 Nov 24 16:27 named.local
-rw-r--r-- 1 root root  424 Nov 24 16:27 named.ip6.local
-rw-r--r-- 1 root root  427 Nov 24 16:27 named.broadcast
-rw-r--r-- 1 root root   56 Nov 24 16:27 my.internal.zone.db
-rw-r--r-- 1 root root   56 Nov 24 16:27 my.external.zone.db
-rw-r--r-- 1 root root  195 Nov 24 16:27 localhost.zone
-rw-r--r-- 1 root root  198 Nov 24 16:27 localdomain.zone
drwxr-xr-x 2 root root 4096 Nov 24 16:27 data
-rw-r--r-- 1 root root  198 Nov 24 16:33 mpoojari.co.uk.zone

Add the below entries to the zone file /var/named/mpoojari.co.uk.zone (and /var/named/localdomain.zone file not required as my domain is mpoojari.co.uk)

 
rac1            IN A            192.168.0.101
rac2            IN A            192.168.0.102
rac1-vip        IN A            192.168.0.221
rac2-vip        IN A            192.168.0.222
rac1-priv       IN A            192.168.1.101
rac2-priv       IN A            192.168.1.102
rac-scan        IN A            192.168.0.51
rac-scan        IN A            192.168.0.52
rac-scan        IN A            192.168.0.53

4. Configure a reverse proxy
To identify the SCAN name from any of the IPS’s we need to configure a reverse proxy .
Add the below entry to /etc/named.conf

zone "0.168.192.in-addr.arpa." IN {
 type master;
 file "0.168.192.in-addr.arpa";
 allow-update { none; };
 };

5. Create the reverse proxy file under /var/named

 
[root@ast1 named]# cat 0.168.192.in-addr.arpa
$ORIGIN 0.168.192.in-addr.arpa.
$TTL 1H
@       IN      SOA     mpoojari.co.uk.     root.mpoojari.co.uk. (      2
                                                3H
                                                1H
                                                1W
                                                1H )
0.168.192.in-addr.arpa.         IN NS      mpoojari.co.uk.

101     IN PTR  rac1.mpoojari.co.uk.
102     IN PTR  rac2.mpoojari.co.uk.
221     IN PTR  rac1-vip.mpoojari.co.uk.
222     IN PTR  rac2-vip.mpoojari.co.uk.
51      IN PTR  rac-scan.mpoojari.co.uk.
52      IN PTR  rac-scan.mpoojari.co.uk.
53      IN PTR  rac-scan.mpoojari.co.uk.

The named.conf file finally looks like as shown below

[root@romford etc]# cat /etc/named.conf
options
{
        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        // Set IP address correctly.
        listen-on port 53 { 127.0.0.1; 192.168.0.10; };

        // My Additions
        // Forwarder: Anything this DNS can't resolve gets forwarded to my ISPs DNS.
        // forwarders { 194.168.4.100; 194.168.8.100; };
        // End My Additions

        // Put files that named is allowed to write in the data/ directory:
        directory "/var/named"; // the default
        dump-file               "data/cache_dump.db";
        statistics-file         "data/named_stats.txt";
        memstatistics-file      "data/named_mem_stats.txt";

};
zone "mpoojari.co.uk" IN {
        type master;
        file "mpoojari.co.uk.zone";
        allow-update { none; };
};
zone "0.168.192.in-addr.arpa." IN {
        type master;
        file "0.168.192.in-addr.arpa";
        allow-update { none; };
};
key ddns_key
{
        algorithm hmac-md5;
        secret "j30zdeKhACTGFWSdxGgHVSC3jFm0ejIAn5p4mJkYmA0cyHp4jDaT30SYQLMR";
};

6. Restart the named service as below

[root@romford named]# service named stop
Stopping named:                                            [  OK  ]

[root@romford named]# service named start
Starting named:                                            [  OK  ]

7. Edit the /etc/resolv.conf and put your domain name and the DNS server name on all nodes

[root@romford named]# cat /etc/resolv.conf
search localdomain mpoojari.co.uk
nameserver 192.168.0.10

8. On the DNS server

[root@romford named]# cat /etc/nsswitch.conf |grep dns
#       dns                     Use DNS (Domain Name Service)
#hosts:     db files nisplus nis dns
hosts:      dns files nis

9. Do a nslookup on SCAN and observe the IP addresses round-robin resolution

[root@romford etc]# nslookup rac-scan.mpoojari.co.uk
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.52
Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.53
Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.51

[root@romford etc]# nslookup rac-scan.mpoojari.co.uk
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.51
Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.52
Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.53

[root@romford etc]# nslookup rac-scan.mpoojari.co.uk
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.53
Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.51
Name:   rac-scan.mpoojari.co.uk
Address: 192.168.0.52

If try to ping rac-scan.testenv.com at this moment, you will find it displays one of SCAN ip addresses but it will not be able to be reached. This is correct behavior. Also at this stage, I have not installed rac1 and rac2 nodes hence they will not be able to be reached.

Once the GI software has been installed and is running it will bring these IP addresses online and at that point the SCAN IP should be pingable.

10. nslookup on VIP names

[root@romford etc]# nslookup rac1-vip
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   rac1-vip.mpoojari.co.uk
Address: 192.168.0.221

[root@romford etc]# nslookup rac2-vip
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   rac2-vip.mpoojari.co.uk
Address: 192.168.0.222

Troubleshooting

Error while restarting named service,

[root@romford etc]# service named restart
Stopping named:                                            [  OK  ]
Locating /var/named/chroot//etc/named.conf failed:
                                                           [FAILED]

I’ve commented, “#ROOTDIR=/var/named/chroot” in /etc/sysconfig/named.
And now service named will start!

[root@romford etc]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]

Network Configuration of rac nodes

Node1

  • Set DNS server ip address to 192.168.0.10
  • Set gateway ip address to 192.168.0.1
  • Set hostname as rac1.mpoojari.co.uk
  • set static IP to 192.168.0.101 (eth0)
  • set static IP to 192.168.1.101 (eth1)
  • Set subnet mask 255.255.255.0

Node2

  • Set DNS server ip address to 192.168.0.10
  • Set gateway ip address to 192.168.0.1
  • Set hostname as rac2.mpoojari.co.uk
  • set static IP to 192.168.0.102 (eth0)
  • set static IP to 192.168.1.102(eth1)
  • Set subnet mask 255.255.255.0

At this stage,

rac1 is reachable from DNS server, romford and from rac2
rac2 is reachable from DNS server, romford and from rac1

SCAN name is also pingable on rac1 and rac2.

Note that hosts files  do not contain any IP addresses as it is DNS resolved.

RMAN-06059: expected archived log not found

RMAN-06059: expected archived log not found

RMAN attempted to backup an archive log file, but couldn’t find it.

This can happen for a variety of reasons; the file has been manually moved or deleted, the archive log destination has recently been changed, the file has been compressed, etc.

Starting backup at 26-JUL-12
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 07/26/2012 22:55:32
RMAN-06059: expected archived log not found, lost of archived log compromises recoverability
ORA-19625: error identifying file /app/oracle/product/10.2/dbs/arch1_1_781981525.dbf
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3

Your options are either to restore the missing file(s), or to perform a crosscheck. To perform a crosscheck, run the following command from within RMAN:

change archivelog all crosscheck;
It is advisable to perform a full backup of the database at this point.

When an archive log crosscheck is performed, RMAN checks each archive log in turn to make sure that it exists on disk (or tape). Those that are missing are marked as unavailable. If you have got missing logs, this won’t bring them back. It will allow you to get past this error and back-up the database though.

ERROR conn.ConnectionService verifyRepositoryEx.433 – Invalid Connection Pool. ERROR = ORA-28000: the account is locked

Issue below can occur on any platform on Oracle Database 10g and 11g database console.

Oracle Database Console started up without any error messages. EM Database console upon access showed database status down and listener status up. On reviewing the sysman log file found the following error:

2012-05-21 17:25:50,426 [HttpRequestHandler-15749845] ERROR

conn.ConnectionService verifyRepositoryEx.433 - Invalid Connection
Pool. ERROR = ORA-28000: the account is locked

Checked the database for SYSMAN

SQL> select username,account_status from dba_users where username in
('SYSMAN','DBSNMP');

USERNAME                       ACCOUNT_STATUS
------------------------------ ------------------------------
DBSNMP                         OPEN 
SYSMAN                         LOCKED(TIMED)

Password for SYSMAN was unknown for me at this stage and the configuration files had encrypted password in it.

Stopped the em console using

emctl stop dbconsole

Then on the database, changed the SYSMAN password as below:

SQL> alter user sysman identified by password account unlock;

User altered.

targets.xml

bash-3.00$ cd $ORACLE_HOME/<hostname_sid>/sysman/emd
bash-3.00$ ls -ltr targets.xml
-rw-r----- 1 oracle oinstall 894 May 21 17:25 targets.xml

bash-3.00$ cp targets.xml targets.xml.21052012

—Change from

<Property NAME="UserName" VALUE="ea8d8c4d8bb0ec12" ENCRYPTED="TRUE"/>
<Property NAME="password" VALUE="21a4a57992210188" ENCRYPTED="TRUE"/>

—to

<Property NAME="UserName" VALUE="SYSMAN" ENCRYPTED="FALSE"/>
<Property NAME="password" VALUE="password" ENCRYPTED="FALSE"/>

emoms.properties

bash-3.00$ cd $ORACLE_HOME/<hostname_sid>/config
bash-3.00$ cp emoms.properties emoms.properties.21052012

—Change from

oracle.sysman.eml.mntr.emdRepPwd=21a4a57992210188
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE

—to

oracle.sysman.eml.mntr.emdRepPwd=password
oracle.sysman.eml.mntr.emdRepPwdEncrypted=FALSE

During the DB console startup the password and username will get encrypted in the above 2 files.

bash-3.00$ emctl start dbconsole

Now while accessing the DB console showed up the login page and the new SYSMAN credentials worked!