暂无图片
RMAN备份文件到nfs提示ORA-27038: created file already exists
我来答
分享
baalchina
2021-08-10
RMAN备份文件到nfs提示ORA-27038: created file already exists

两台服务器,主机运行Oracle 11gr2,备份服务器起了nfs服务,将目录挂载给主机,想在主机上将备份文件备份到备份服务器。

主机挂载nfs的参数如下:

mount -v -t nfs -o rw,bg,noac,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600,nolock 1.1.1.1:/data /nfs
复制

主机运行RMAN,如下:

backup datafile 1 format '/nfs/56.dbf';
复制

然后RMAN就报错:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/09/2021 21:10:59
ORA-19504: failed to create file "/nfs/56.dbf"
ORA-27038: created file already exists
Additional information: 1

复制

此时主机和备机上看文件,都已经生成了,大小也正常,但是就是最后一步报错。

网上查了资料,说要开nolock参数,我取消挂载之后用新命令挂载也试过了,但时还是报同样的错误。

这个请问该如何排查呢?(是nfs问题,还是oracle rman问题)

谢谢!

我来答
添加附件
收藏
分享
问题补充
12条回答
默认
最新
baalchina

问题解决。。。不是nfs问题,是rman命令造成的。

使用这个命令```
backup datafile 1 format ‘/nfs/%U.dbf’;

就能正常备份了:
复制

RMAN> backup datafile 1 format ‘/nfs/%U.dbf’;

Starting backup at 22-AUG-21
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/erpdb/system01.dbf
channel ORA_DISK_1: starting piece 1 at 22-AUG-21
channel ORA_DISK_1: finished piece 1 at 22-AUG-21
piece handle=/nfs/0u076cm6_1_1.dbf tag=TAG20210822T224422 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 22-AUG-21
channel ORA_DISK_1: finished piece 1 at 22-AUG-21
piece handle=/nfs/0v076cmv_1_1.dbf tag=TAG20210822T224422 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 22-AUG-21

复制
暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
baalchina

饿,没法修改了。补充下环境:

主机:
rhel 7.6,备机 centos 7.9

暂无图片 评论
暂无图片 有用 0
打赏 0
墨天轮福利君
升级问题到: 紧急故障
暂无图片 评论
暂无图片 有用 0
打赏 0
DonACE

提示已经很明显了 删了56.dbf 再试试看 ORA-19504: failed to create file “/nfs/56.dbf”
ORA-27038: created file already exists

暂无图片 评论
暂无图片 有用 0
打赏 0
baalchina

回复:

没用的,报错是56.dbf文件存在,我重新命令备份为34.dbf(34.dbf事先不存在),报同样的错。

大概就是文件刷刷刷写完,大小也在增长,最后一步就报文件存在了。

暂无图片 评论
暂无图片 有用 0
打赏 0
cqiwen

直接 mount -t nfs 1.1.1.1:/data /nfs ,写那么多参数估计有影响

暂无图片 评论
暂无图片 有用 0
打赏 0
baalchina

@cqiwen

不行哦。。。78.dbf在我操作之前是不存在的

RMAN>  backup datafile 1 format '/nfs/78.dbf';

Starting backup at 10-AUG-21
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1814 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/erpdb/system01.dbf
channel ORA_DISK_1: starting piece 1 at 10-AUG-21
channel ORA_DISK_1: finished piece 1 at 10-AUG-21
piece handle=/nfs/78.dbf tag=TAG20210810T172811 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 10-AUG-21
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/10/2021 17:28:29
ORA-19504: failed to create file "/nfs/78.dbf"
ORA-27038: created file already exists
Additional information: 1


复制
暂无图片 评论
暂无图片 有用 0
打赏 0
DonACE

检查下NFS那边的情况
看下
nfs服务器cat /etc/exports 配置参数
客户端 cat /etc/fstab 配置参数

暂无图片 评论
暂无图片 有用 0
打赏 0
baalchina

@DonACe

服务器:

[root@nfs data]# cat /etc/exports
/data/	1.1.1.1.0/24(rw,sync,no_root_squash,no_all_squash

复制

客户端我还没有写到fstab里,只是mount挂载了。

另外,和nfs服务器linux本身的权限有关系吗?

暂无图片 评论
暂无图片 有用 0
打赏 0
DonACE

/etc/exports参数修改成这样试试rw,sync,no_wdelay,insecure_locks,no_root_squash
也看下挂载目录的权限和属组

暂无图片 评论
暂无图片 有用 0
打赏 0
baalchina

@DonACE

还是不行呢。。。

RMAN> backup datafile 1 format '/nfs/1.dbf';

Starting backup at 10-AUG-21
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1814 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/erpdb/system01.dbf
channel ORA_DISK_1: starting piece 1 at 10-AUG-21
channel ORA_DISK_1: finished piece 1 at 10-AUG-21
piece handle=/nfs/1.dbf tag=TAG20210810T175559 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 10-AUG-21
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/10/2021 17:56:16
ORA-19504: failed to create file "/nfs/1.dbf"
ORA-27038: created file already exists
Additional information: 1
复制

在主机上看:

[oracle@oracle ~]$ ll /nfs
total 2727888
-rw-r----- 1 oracle oinstall 859807744 Aug 10 17:56 1.dbf
-rw-r----- 1 oracle oinstall 859807744 Aug 10 12:43 56.dbf
-rw-r----- 1 oracle oinstall 859807744 Aug 10 17:28 78.dbf

复制

其中1是按照刚才的新参数挂载的。56、78.dbf都是之前挂载的。

感觉像是权限不对?是不是应该改成755…

暂无图片 评论
暂无图片 有用 0
打赏 0
baalchina

经过群里专家指导,在nfs服务器上新建了oracle用户属于oinstall组

[root@nfs ~]# groupadd oinstall
[root@nfs ~]# groupadd dba
[root@nfs ~]# useradd -g oinstall -G dba oracle
[root@nfs ~]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
复制

exports参数如下:

/data/ 1.1.1.1/24(rw,all_squash,sync,anonuid=1001,anongid=1001)
复制

挂载参数如下:

mount -v -t nfs -o rw,bg,noac,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600,nolock 1.1.1.1:/data /nfs
复制

报错依旧。。。。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~