我将 RHEL 5 与 Oracle 11g 一起使用,并且正在测试数据保护。
我正在尝试通过以下链接设置数据保护:
我使用以下命令:
[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;
}
当它开始数据文件复制时,我收到此错误:
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
我已经用谷歌搜索了它,但我仍然没有解决方案。
请问有什么想法吗?
萨里特
Oracles 文档指出:
所以,如果你得到他们的支持,我建议你联系他们。挖掘 Oracle 中的错误有时真的会让你发疯。
但据我了解,该错误与数据库(或数据库与客户端)之间的连接有关,因此您可以检查一些事项。
首先,文件不存在可能很简单。
所以验证这些文件是否存在(并且可以被数据库读取):
还要验证 ORACLE_HOME 设置是否正确,并且 tnsnames.ora 包含两个数据库的定义(它应该因为您连接到它们两个,但最好验证它),并检查您是否使用与数据库不同的 tnsnames。
监听器也可能是一个问题,也许 stdby 永远不会在那里注册,您可以尝试在监听器文件中手动添加它,而不是让它自己注册。
如果使用的主机名在 /etc/hosts 文件中不存在,即使使用 dns,我也会遇到问题,因此您也可以尝试。
如果它仍然没有帮助。查看警报日志和跟踪文件,也许它们提供了有关问题的更多信息。
这就是我的所有想法,希望它至少对你有一点帮助。
更新: 嗯,在检查了更多之后,在我看来,一个问题可能是您实际上没有指定 db 文件的位置。
尝试添加:
在 spfile 语句之后
您可能还想添加
parameter_value_convert 'orcl','stdby'
不确定是否有必要,但看起来这可能是个好主意。