暂无图片
Rman 备份到 NFS失败
我来答
分享
JiekeXu
暂无图片
2021-07-21
Rman 备份到 NFS失败

由于原来的 NFS 过于老旧,空间小,故换一台新的 NFS 服务器,通过修改 IP 的方式替换,但替换后,rman 无法备份到 NFS,几度怀疑是文件系统或者挂载的问题,将原来的 XFS 格式化成 ext4 挂载参数改成如下也是不行。
mount -t nfs -o rw,bg,hard,nointr,vers=3 ……

Rman(RAC 19.4)报错如下:
图片.png

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 07/20/2021 20:23:53
ORA-19504: failed to create file "/nfs/orabak_edw/coaa_m904f42l_1_1"
ORA-17503: ksfdopn:11 Failed to open file /nfs/orabak_edw/coaa_m904f42l_1_1
ORA-17500: ODM err:Communication error on send
复制

顶级目录/nfs 权限为 777
drwxrwxrwx 4 root root 46 Jul 20 17:33 nfs

二级目录orabak_edw权限为777
drwxrwxrwx 2 root root 20K Jul 21 08:09 orabak_edw

oracle 用户 vi 、echo 手动写文件没有问题
echo aaa > /nfs/orabak_edw/a.test

NFS 挂载命令:
mount -t nfs 10.100.xx.xx:/oranfs/edw /nfs/orabak_edw

mount | grep ora
10.100.xx.xx:/oranfs/edw on /nfs/orabak_edw type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.100.xx.x,local_lock=none,addr=10.100.xx.xx)

服务端 mount
mount | grep ora
/dev/mapper/datavg01-lvnfs01 on /oranfs type ext4 (rw,relatime,data=ordered)

NFS 客户端和服务端操作系统版本RHEL7.6
Red Hat Enterprise Linux Server release 7.6 (Maipo)
Linux dc-edw-rac1 3.10.0-957.el7.x86_64 #1 SMP Thu Oct 4 20:48:51 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

排查尝试多次将服务端的IP 换回原来的IP后第一次备份成功了,将文件系统改成 xfs 后就不成功了,即使改回 ext4 也没有成功备份过。

最后,无奈之际将NFS服务端的 IP 修改为一个新的未使用过的 IP 重启主机,已ext4方式挂载后可以成功备份到 NFS。

现在就是想用老的 NFS IP 挂载,怎么都不会成功,请问各位专家这个问题会出在哪里?是 NFS 的问题还是 Oracle 的问题呢?

我来答
添加附件
收藏
分享
问题补充
11条回答
默认
最新
JiekeXu
暂无图片

挂载还有原来的命令,原来的方法,把客户端所在的两台数据库服务器 reboot 后,很神奇的备份到 NFS 就成功了。超出了我的认知范围。。。

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

老的nfs服务器没关或者IP没改吧,感觉是IP冲突。可以在用rman之前自己手动copy文件到那个新的nfs目录中去,看下有没有报错。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘晓鹏

找存储厂商要一个官方建议的mount参数试试~
这个是我们这边用的
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 1.1.1.1:/backup /u01/rman_dbbackup

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

我个人感觉应该还是NFS的通讯问题

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

其实我有两个疑惑,一是 NFS 挂载存在问题,RHEL 6 的参数和 HREL7 挂载方法有区别,某些参数没有使用正确导致时灵时不灵;二是数据库里记录了 NFS 的位置了,一旦有一次报错就不会成功了,具体怎么记录在哪记录不得而知。领导更偏向于疑惑二,让从数据库层找问题。。。

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


暂无图片 评论
暂无图片 有用 1
打赏 0
Murkey

如果是备份,我认为正常的mount的就可以,可以问问NFS提供商mount方式,配置方式是否有区别呢

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

MOS 也已经查过了,没有找到满意的答案。

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

修改下nfs服务端的配置为 (rw,no_root_squash,insecure) 试试?

暂无图片 评论
暂无图片 有用 1
打赏 0
jieguo

比较像这个bug:

MOUNT DETAILS CACHED IN SGA ARE NOT CLEANED UP EVEN AFTER REMOUNT(20720667)

不过按理12.2以后版本应该fix了。

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

本文涵盖了一些与直接 NFS 相关的常见问题(文档 ID 1496040.1)。Q. 我们在使用嵌套 NFS 挂载时遇到问题,无法访问子 NFS 挂载中的文件。使用内核 NFS 时一切正常。尝试在嵌套挂载中打开或创建文件时会出现以下错误。


ORA-01119: 创建数据库文件“*”时出错


ORA-17502: ksfdcre:4 无法创建文件*


ORA-17500: ODM err: 权限拒绝


答:默认情况下,Linux使用相同的超级块,以防NFS文件系统具有相同的fsid,对于嵌套的NFS挂载也是如此。使用相同的超级块,dNFS无法将这些嵌套的NFS 挂载识别为单独的文件系统。Linux挂载选项“noshar cache”强制内核为这些嵌套的NFS的挂载提供单独的超级块。因此,使用dNFS与嵌套的NFS进行挂载的解决方法是,在挂载父级和子级挂载时指定“noshar cache”挂载选项。


nfsserver:/vol/vol0/nested_parent on /u01 类型 nfs (rw,bg,hard,rsize=65536,wsize=6553,vers=3,nointr,timeo=600,tcp,nosharecache)


nfsserver:/vol/vol0/nested_child on /u01/oradata 类型 nfs (rw,bg,hard,rsize=65536,wsize=6553,vers=3,nointr,timeo=600,tcp,nosharecache)

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


请输入正文
提交
相关推荐
redo日志是否都应该放在快速存储上面
回答 5
已采纳
肯定是能放到SSD就放到SSD上最好了看看这个,了解一下https://developer.aliyun.com/article/78949
windows下启动数据库报错ora-00214
回答 3
可以尝试重建控制文件。
如何查看sqlplus文件内容?
回答 6
已采纳
strings$ORACLEHOME/lib/libsqlplus.so
达梦迁移工具具体怎么使用啊,是DM7=>oracle,数据源和目的中,信息填写有什么要求啊?
回答 1
简单给你说一下过程:打开达梦迁移工具》新建工程》然后左边树形栏会显示你新建的工程,在数据类型映射里面,你可以定义dm7Oracle迁移的映射关系,调度和作业里面你可以建相应的调度和作业,然后还有个迁移
oracle中大数据量如何加速处理
回答 2
11g的话,要看你现在的导入导出逻辑是怎么写的了,没准代码上还能提效。我这边之前上项目的团队带过来的导入导出程序模板,后来被我发现存在致命的效率问题(对表里面的某个blob值进行逐行读写),经常导致数
AWR分析报告问题求助:Hi,老师,请教下我们这DB有可能是什么问题导致,排查的方向是什么,谢谢。
回答 9
1、看看能不能堵塞cursorpin的源头2、是不是当时执行的sql量比以前大很多3、看看是不是有io抖动或者sga的自动调整
编辑器打开trc文件会造成(Windows+11gR2 11.2.0.1)
回答 3
把trc文件复制一份,用emeditor文本编辑器打开复制的trc文件
删除索引不成功,提示ORA-00054,有哪些解决方案?
回答 2
已采纳
解决处理方法:1.等待其他会话释放资源2.找出占用资源的会话,并删除3.重启数据库
Oracle 释放空间和降低高水位有什么区别?
回答 1
Oracle释放空间和降低高水位都是用于释放表或索引所占用的空间的操作,但它们的目的和方式有所不同。释放空间的目的是将不再需要的空间返回给操作系统,以便其他应用程序可以使用这些空间。Oracle中使用
mysql中 || 的作用是什么? || 在oracle中的作用是什么?
回答 2
已采纳
oracle中是用||连接的。mysql的连接不是这个,而是concat。