1

I'm using RHEL 5 with Oracle 11g and I'm testing data guard.

I am trying to setup data guard by following this link:

http://www.databasejournal.com/features/oracle/article.php/3816751/Oracle-11g-Data-Guard-Building-a-Physical-Standby-Database.htm

I use the following command:

[oracle@linux-test ~]$ rman target sys/oracle auxiliary sys/oracle@stdby

Recovery Manager: Release 11.1.0.6.0 - Production on Tue Oct 6 11:54:47 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ORCL (DBID=1227314034)

connected to auxiliary database: STDBY (not mounted)

RMAN> RUN {
   ALLOCATE CHANNEL d1 TYPE DISK;
   ALLOCATE CHANNEL d2 TYPE DISK;
   ALLOCATE AUXILIARY CHANNEL cnv1 TYPE DISK;
   ALLOCATE AUXILIARY CHANNEL cnv2 TYPE DISK;
   DUPLICATE TARGET DATABASE
       FOR STANDBY
       FROM ACTIVE DATABASE
       DORECOVER
       SPFILE
          SET db_unique_name='stdby' 
          SET control_files='/home/u01/app/oracle/oradata/orcl/control01.ctl'
          SET log_file_name_convert='/home/u01/app/oracle/oradata/orcl/','/home/u01/app/oracle/oradata/stdby/'
          SET log_archive_dest_1='location=/home/u01/app/oracle/flash_recovery_area/STDBY/ valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=stdby'
          SET log_archive_dest_2='service=orcl ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=orcl'
          SET fal_client='stdby'
          SET fal_server='orcl'
          SET standby_file_management='AUTO'
          SET log_archive_config='dg_config=(orcl,stdby)'
      NOFILENAMECHECK;
  }

When it's starting datafile copy, I get this error:

channel d1: starting datafile copy
input datafile file number=00001 name=/home/u01/app/oracle/oradata/orcl/system01.dbf
channel d2: starting datafile copy
input datafile file number=00002 name=/home/u01/app/oracle/oradata/orcl/sysaux01.dbf
RMAN-03009: failure of backup command on d1 channel at 10/06/2009 11:56:41
ORA-19558: error de-allocating device
ORA-19557: device error, device type: DISK, device name: 
ORA-17627: ORA-01041: internal error. hostdef extension doesn't exist
ORA-17627: ORA-01041: internal error. hostdef extension doesn't exist
ORA-03113: end-of-file on communication channel
channel d1 disabled, job failed on it will be run on another channel
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 10/06/2009 11:56:54
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on d2 channel at 10/06/2009 11:56:54
ORA-19558: error de-allocating device
ORA-19557: device error, device type: DISK, device name: 
ORA-17627: ORA-01041: internal error. hostdef extension doesn't exist
ORA-17627: ORA-01041: internal error. hostdef extension doesn't exist
ORA-03113: end-of-file on communication channel

I have googled it but I still have no solution yet.

Any idea please?

Sarith

1 Answer 1

1

Oracles documentation states:

ORA-01041: internal error. hostdef extension doesn't exist
    Cause: Pointer to hstdef extension in hstdef is null.
    Action: Report as a bug

So, if you have support from them, I'd suggest that you contact them. Digging into errors in Oracle can really drive you mad sometimes.

But from what I have understood the error have to do with the connection between the databases (or the database and the client), so there are a few things you can check.

First of all, it could be that simple that the files just doesn't exists.

So verify that these files exists (and can be read by the database):

/home/u01/app/oracle/oradata/orcl/system01.dbf
/home/u01/app/oracle/oradata/orcl/sysaux01.dbf

Also verify that the ORACLE_HOME is set correctly, and that the tnsnames.ora contains the definition to both of the databases (it should since you are connected to both of them, but better verify it), and also check if you're using a different tnsnames than the database.

The listener could be a problem as well, perhaps the stdby never gets registered there, you can try to add it manually in the listener file instead of letting it register itself.

I have also had problems if the hostname used doesn't exist in the /etc/hosts file, even if using a dns, so that is something you could try as well.

If it still doesn't help. have a look in the alert log and trace files, perhaps they provide more information of the problem.

That's all the ideas I've got, hope it helps you a bit at least.

Update: hmm, after checking a bit more, it looks to me that one issue could be that you actually don't specify the location of the db-files.

Try to add:

set db_file_name_convert='/home/u01/app/oracle/oradata/orcl/', 
    '/home/u01/app/oracle/oradata/stdby/'

after the spfile statement

You might also want to add parameter_value_convert 'orcl','stdby' not sure if it is neccessary, but it looks like it could be a good idea.

1
  • Hi Jimmy, thank for your reply. I want to confirm that I can connect to the standby database cos the memory script can copy spfile and controlfile to the standby host. Moreover, datafiles include example.dbf, users01.dbf are copies to the standby host except only system01.dbf and sysaux01.dbf. Because of I don't have Oracle support that why I need help from community.
    – Sarith
    Oct 7, 2009 at 1:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .