两台服务器,主机运行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问题)
谢谢!
问题解决。。。不是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
饿,没法修改了。补充下环境:
主机:
rhel 7.6,备机 centos 7.9
评论
有用 0提示已经很明显了 删了56.dbf 再试试看 ORA-19504: failed to create file “/nfs/56.dbf”
ORA-27038: created file already exists
评论
有用 0回复:
没用的,报错是56.dbf文件存在,我重新命令备份为34.dbf(34.dbf事先不存在),报同样的错。
大概就是文件刷刷刷写完,大小也在增长,最后一步就报文件存在了。
评论
有用 0直接 mount -t nfs 1.1.1.1:/data /nfs ,写那么多参数估计有影响
评论
有用 0@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检查下NFS那边的情况
看下
nfs服务器cat /etc/exports 配置参数
客户端 cat /etc/fstab 配置参数
评论
有用 0@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/etc/exports参数修改成这样试试rw,sync,no_wdelay,insecure_locks,no_root_squash
也看下挂载目录的权限和属组
评论
有用 0@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经过群里专家指导,在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
墨值悬赏

