ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Windows平台RMAN备份到网络映射驱动器(ORA-19504 ORA-27040 OSD-04002)

Windows平台RMAN备份到网络映射驱动器(ORA-19504 ORA-27040 OSD-04002)

原创 Linux操作系统 作者:尛样儿 时间:2012-05-16 01:06:29 0 删除 编辑
         在Windows平台执行RMAN备份到通过网络映射的Z盘,收到ORA-19504 ORA-27040 OSD-04002的报错,下面是现象及解决方法。

一.现象:
       
C:\Users\LIUBINGLIN>rman target /

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 5月 16 00:42:53 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: ORCL (DBID=1290386656)

RMAN> backup device type disk format 'z:\%U' datafile 4;

启动 backup 于 16-5月 -12
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=24 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=D:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-5月 -12
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 05/16/2012 00:43:22 上) 失败
ORA-19504: 无法创建文件"Z:\0SNB36L8_1_1"
ORA-27040: 文件创建错误, 无法创建文件
OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。


二.参考METALINK文章,文章号:ID 145843.1

How to Configure RMAN to Write to Shared Drives on Windows NT/2000/2003 [ID 145843.1]

 修改时间 29-JUN-2011     类型 BULLETIN     状态 PUBLISHED 

Applies to:

Oracle Server - Standard Edition
Oracle Server - Personal Edition
Oracle Server - Enterprise Edition - Version: 9.0.1.0 and later    [Release: 9.0.1 and later]
Microsoft Windows (32-bit)
Microsoft Windows x64 (64-bit) - OS Version: 7
Microsoft Windows x64 (64-bit) - Version: 2008 R2
Microsoft Windows (32-bit) - OS Version: 7
Microsoft Windows x64 (64-bit)
Microsoft Windows Itanium (64-bit)
z*OBSOLETE: Microsoft Windows 2000

Purpose

Following are step-by-step instructions for configuring RMAN to write to mapped (shared/networked) drive(s) on Windows platfoms

Scope and Application

RMAN users who are familiar with basic RMAN functionality as well as database configuration on the Windows Platform.

How to Configure RMAN to Write to Shared Drives on Windows NT/2000/2003


WRITING FILES TO A MAPPED DRIVE WITH RMAN
----------------------------------------------------------------------------
The problem of backing up to a mapped network drive using the SYSTEM account is a security issue.  By default, Oracle requires the SYSTEM user to have privileges to write to the drives.  Microsoft considers granting SYSTEM owned service access to a shared drive a security issue.
However, there is a workaround that allows Oracle to access a shared drive.
The Oracle services are originally configured to log on using the SYSTEM account.  The SYSTEM account should not be granted access to the shared drive, therefore the Oracle services for the TARGET DB need to be reconfigured to logon using an Administrator account (preferably a Domain Administrator).

THE STEPS NEEDED TO RESOLVE THIS ISSUE
----------------------------------------------------------------------------
1. On the machine where you wish to write the files to, create a shared drive granting the user 'Administrator' FULL Control.
   Note: For reference below, this Administrator will use the password 'test',   this will be referred to as the "Destination" machine.
2. On the machine with the TARGET DB, verify the Administrator user has the same password of the user that shared the drive on the destination machine.   In the example here, the password would be 'test'.
3. Map a network drive on the TARGET machine to the shared drive on the   destination machine.  When mapping this drive, use the Administrator   user with the password 'test'.
4. On the TARGET machine, BOTH the OracleTNSListener Service and the  OracleService services must be configured to start using the   Administrator/test account.
   (As discussed above, Oracle uses the Local System account by default.)
   a. Go to the Control Panel and then open up the Services panel.
   b. Double click on the appropriate service   (TNSListener or OracleService).
   c. Change the "Log on as" user from the "Local System Account" to    "This Account".
   d. Specify the service to log on as the Administrator user. 
   c. Click on "OK".
5. Shutdown the TARGET database and stop and start the services on the Target   machine.  Restart the TARGET database.
6. You should now be able to use RMAN from the Catalog machine to copy the   datafiles.  In the RMAN script, specify the drive letter that you mapped   in step 3.
Special Windows 2003/2008/XP/7/Vista Update :
As Windows has a changed access behavior, the solution is a little restrict :
    Don't use local drive letters for mapping network shares.
    Workaround is to use UNC locations directly, e.g. backup to \\B\share
    Since this is in fact an absolute location this is always the same for any   node in the network.
    So whether accessed from node A or node B, \\B\share is always the shared   location on B.
FINAL NOTES
----------------------------------------------------------------------------
It is recommended to use the Domain Administrator account to ensure that passwords are the same across the various machines.  If there is no domain, use the local Administrator account and ensure that the passwords are the same for this account across all of the machines.
If your backups are to be automated using the AT command, it is best to start up the SCHEDULE service under the same Administrator account that the OracleService and the OracleTNSListener services use.
In the event that you HAVE to use a user account for the Oracle Services, rather then using the SYSTEM account, you can create a batch file that reconnects the shared drives at system startup.  The batch file runs automatically as a service when the server starts and would establish the connection to the shared drives, regardless of which user logs into the system.  This process of creating the batch file is outlined in the Microsoft's Knowledgebase  Article ID: 243486 - "How to Run a Batch File Before Logging on to Your Computer."  The batch file is not supported by Oracle and is only mentioned here as an alternative way to reconnect the shared drives.
COMMON MISTAKES
----------------------------------------------------------------------------
If the OracleService and OracleTNSListener services are not configured to use the same account as the shared drive, you can expect the following errors:
    RMAN-10035: exception raised in RPC: ORA-19504: failed to create file 
    ORA-27040: skgfrcre: create error, unable to create file
    OSD-04002: unable to open file   O/S-Error: (OS 5) Access is denied.
    ORA-19600: input file is datafile
    ORA-19601: output file is datafile-copy     to be created
    RMAN-10031: ORA-19624 occurred during call to          DBMS_BACKUP_RESTORE.COPYDATAFILE
If the mapped drive is created on the CATALOG machine and NOT on the TARGETmachine, you can expect the following errors.
    RMAN-10035: exception raised in RPC: ORA-19504: failed to create file  
    ORA-27040: skgfrcre: create error, unable to create file
    OSD-04002: unable to open file
    O/S-Error: (OS 3) The system cannot find the path specified.
    ORA-19600: input file is datafile 1
    ORA-19601: output file is datafile-copy 0 < path and file name of file> to be created
    RMAN-10031: ORA-19624 occurred during call to      DBMS_BACKUP_RESTORE.COPYDATAFILE

三.重启数据库服务后执行RMAN备份。
RMAN> exit

RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
ORA-03113: 通信通道的文件结尾
进程 ID: 2896
会话 ID: 150 序列号: 4


恢复管理器完成。

C:\Users\LIUBINGLIN>rman target /

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 5月 16 01:04:57 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: ORCL (DBID=1290386656)

RMAN> backup device type disk format 'z:\%U' datafile 4;

启动 backup 于 16-5月 -12
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=141 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=D:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-5月 -12
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 05/16/2012 01:05:11 上) 失败
ORA-19504: 无法创建文件"Z:\0TNB37U6_1_1"
ORA-27040: 文件创建错误, 无法创建文件
OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。

RMAN> backup device type disk format '\\192.168.4.100\My Documents\%U' datafile 4;

启动 backup 于 16-5月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=D:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-5月 -12
通道 ORA_DISK_1: 已完成段 1 于 16-5月 -12
段句柄=\\192.168.4.100\MY DOCUMENTS\0UNB37V6_1_1 标记=TAG20120516T010542 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 16-5月 -12

启动 Control File and SPFILE Autobackup 于 16-5月 -12
段 handle=D:\ORCL\AUTOBACKUP\2012_05_16\O1_MF_S_783392750_7V537HO9_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 16-5月 -12

RMAN>

--end--

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23135684/viewspace-729877/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle数据库管理员,Oracle数据库系统构架员;2012年7月出版《构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化》一书;Oracle 10g OCM。

注册时间:2010-01-05

  • 博文量
    483
  • 访问量
    5249471