暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

AIX+Oracle使用RMAN备份至NFS注意事项及案例分析

原创 王君慧 2023-06-27
906

注意事项:使用RMAN备份至NFS的注意事项

大数据量环境下备份的内存问题

​ 对于AIX操作系统来说,其内存分为两大类内存,计算型内存以及文件型内存,对应topas命令即:

​ 计算型内存:%Comp ,对于数据库服务器来说主要由Oracle占用,如SGA与PGA

​ 文件型内存:%Nconcomp,%Client (分配给其它类型文件系统的数据缓存,如NFS)

​ 当使用NFS,且备份的数据量较大时,文件型内存中的%Client部分可能会存在较大的使用,由于文件内存不会自动释放,所以有可能造成内存的资源短缺以及paging space使用率过高,对于此方面参数,Oracle官方文档给出的参数如下:

1687844368258.jpg

原文链接:

https://docs.oracle.com/en/database/oracle/oracle-database/19/cwaix/tuning-virtual-memory-manager.html#GUID-5C2A39DA-0BA9-4581-ABB8-E5E9422A9F38

​ 但实际生产来说,如参照官方文档参数,数据量较大的情况下,备份到NFS中时会占用大量的文件型内存(最高扩展至总内存的90%,后续通过lrud进程清理释放),大量的文件内存占用可能导致操作系统内存不足,所以为了保障充足的内存,建议调整maxperm%,maxclient%参数为20

Parameter Value
maxperm% 20
maxclient% 20

​ 当然实际参数值也可以根据需求调整,注意的是当文件内存使用达到设置的上限上限,如上述20%或90%时,操作系统会自动启动lrud进程进行内存清理,该进程可能会占用较多的cpu资源。

大数据量环境下的NFS备份分片问题

​ 在默认情况下,Oracle Rman 的每个channel 的默认备份片中的数据文件数量为64,而在备份目标存储为nfs时,较大的文件分片的传输效率可能存在降低的风险(linux 操作系统未发现该问题),在IBM官方文档中,也有类似的问题描述:

https://www.ibm.com/docs/en/aix/7.2?topic=scenarios-improving-nfs-client-large-file-writing-performance

​ 对于这种情况,建议通过控制备份片大小解决,通过控制filesperset,或者通过限制每个备份片channel的piece大小进行优:

​ 指定filesperset:

RMAN> backup filesperset 4 database format '/bakdir/%U';

​ 指定每个channel的备份片大小:

RMAN> run{ allocate channel t1 type disk maxpiecesize=100G; ackup filesperset 4 database format '/bakdir/%U'; ...... }

案例分析:RMAN备份缓慢问题分析处理

问题描述

在使用rman备份到NFS时,通过多个channel 指定到NFS存储的不同机头对应IP,出现备份速率逐渐下降、文件内存占用过高问题

微信图片编辑_20230626235937.jpg

问题分析

%Client 占用主要为文件传输至NFS导致,同时参考IBM官网文档看,NFS确实存在大文件写入效率缓慢的问题,那么处理方向可以如下两方面:

1.限制文件内存大小

2.限制RMAN备份到NFS中的备份片大小

处理方案

调整系统参数,限制文件内存使用

调整系统参数,maxclient与maxperm由官方文档的90降低到20:

vmo -p -o maxperm%=20
vmo -p -o maxclient%=20

限制rman备份片大小,保障NFS备份效率

调整RMAN备份脚本,限制备份片大小为100G

RUN
{
  ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/orabak/nfsdir1/%U'  MAXPIECESIZE=100G;
  ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/orabak/nfsdir2/%U'  MAXPIECESIZE=100G; 
  ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/orabak/nfsdir3/%U'  MAXPIECESIZE=100G;
  ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/orabak/nfsdir4/%U'  MAXPIECESIZE=100G;   
  BACKUP DATABASE PLUS ARCHIVELOG;
}

注:nfsdir[n]是同一NFS的不同机头IP,分别挂载到本地的目录名称。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论