Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >XTTS系列之三:中转空间的选择和优化

XTTS系列之三:中转空间的选择和优化

作者头像
Alfred Zhao
发布于 2023-10-10 10:10:44
发布于 2023-10-10 10:10:44
32100
代码可运行
举报
运行总次数:0
代码可运行

通常选择XTTS做迁移的数据库都不会太小的,至少都是几T、几十T这样的规模,这种级别的数据量原有空间不够用,所以在迁移过程临时用作存放迁移数据库备份文件的空间也是需要提前考虑规划的问题。

最近就有客户有这样场景,数据库的数据量已经达到了60T+,也是优先选择XTTS的方案做U2L迁移测试。

至于这个中转空间,目前是在存储上划分了对应空间给到源端,目标端XD是使用ACFS挂载的集群文件系统

测试阶段发现性能不理想,主要是源端备份到挂载的存储速度太慢基本要一周时间,算了下平均都达不到100MB/s,另外由于文件数量大,scp传输也花费了几十个小时,只有目标端应用还算可以。

这说明目标端一体机的性能还是不错的,那这种场景下,如何优化这个时间呢?

简单说,确认该加的并行要加,各种找瓶颈解决瓶颈,比如计算能力、带宽、存储IO能力等。

这些都没啥或者也没改进的情况,

可以先思考下面这个问题:

Q.一体机目标端ACFS挂载的目录能否直接通过NFS挂载到源端,优化其操作时间?

如果答案是可以,那么scp这个时间自然就完全不需要了,直接省去了这一步骤。

而且,因为源端备份本来就慢,所以NFS挂载到目录也完全能满足这个需求。

现在我告诉你,答案经测试就是可以的。

无操作无真相,我这里就在自己测试环境试下Linux的情况:

  • 1.ACFS挂载目录NFS挂载到其他机器
  • 2.测试rman备份到NFS挂载点成功
  • 3.测试xtts脚本备份到NFS挂载点成功
  • 4.总结

1.ACFS挂载目录NFS挂载到其他机器

首先,客户环境要求暂时无法使用图形界面,创建ACFS可参考:

在创建ACFS系统之后,挂载到/xtts目录,启用NFS服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@db01rac1 ~]# 
service nfs status
service nfs start

vi /etc/exports

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/xtts *(rw)

显示NFS相关信息的命令:

showmount -e

exportfs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@db01rac1 ~]# showmount -e
Export list for db01rac1:
/xtts *
[root@db01rac1 ~]# 
[root@db01rac1 ~]# 
[root@db01rac1 ~]# exportfs
/xtts           <world>

创建完成之后,使用NFS挂载到源端环境,源端环境需要做如下操作:

创建挂载点目录/xtts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /xtts

配置/etc/fstab,新增内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
192.168.1.11:/xtts     /xtts nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600

我这里是Linux系统,如果是其他Unix系统,其实是不太一样的,具体可参考:

  • Mount Options for Oracle files for RAC databases and Clusterware when used with NFS on NAS devices (Doc ID 359515.1)

具体参考下面表格,根据你的需求选择即可:

挂载并确认挂载点成功:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mount -a
df -h /xtts

[root@bogon xtts]# mount -a
[root@bogon xtts]# df -h /xtts
Filesystem          Size  Used Avail Use% Mounted on
192.168.1.11:/xtts  5.0G  623M  4.4G  13% /xtts

2.测试rman备份到NFS挂载点成功

测试挂载的文件系统是否能否支持xtts脚本执行正常的备份?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@bogon xtts]# 
[root@bogon xtts]# ls -ld /xtts
drwxr-xr-x. 4 54321 54321 32768 Jun 30 00:29 /xtts

备份users表空间测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RMAN> backup tablespace users format '/xtts/test%U.bak';

...
ORA-19504: failed to create file "/xtts/testvf2071lq_4079_1_1.bak"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 13: Permission denied
...

意料之中的失败,就是授权问题,但这个授权是需要在NFS服务端去授权:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@db01rac1 xtts]$ chmod 777 /xtts

然后再次在NFS客户端执行备份,成功写入没问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RMAN> backup tablespace users format '/xtts/test%U.bak';

Starting backup at 01-JUL-23
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=247 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=369 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=488 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=609 device type=DISK
allocated channel: ORA_DISK_5
channel ORA_DISK_5: SID=731 device type=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: SID=852 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=00007 name=/flash/oradata/DEMO/users01.dbf
channel ORA_DISK_1: starting piece 1 at 01-JUL-23
channel ORA_DISK_1: finished piece 1 at 01-JUL-23
piece handle=/xtts/testvg2071t2_4080_1_1.bak tag=TAG20230701T231337 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 01-JUL-23

Starting Control File and SPFILE Autobackup at 01-JUL-23
piece handle=/hdd/orabak/AUTO_c-3869296410-20230701-06.CTL comment=NONE
Finished Control File and SPFILE Autobackup at 01-JUL-23

3.测试xtts脚本备份到NFS挂载点成功

下面进一步测试xtts脚本调用备份是否可以,先改下配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@bogon xtt]$ grep -vE '^$|^#' xtt.properties 
tablespaces=TEST
platformid=13
src_scratch_location=/u01/media/src_backups
dest_datafile_location=+DATADG
dest_scratch_location=/xtts
parallel=3
rollparallel=2
getfileparallel=4
srcconnstr=sys/oracle@jingyu
destconnstr=sys/oracle@jingyu
allowstandby=1

修改 src_scratch_location 为 /xtts,这样就省去了scp传输的过程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@bogon xtt]$ grep -vE '^$|^#' xtt.properties 
tablespaces=TEST
platformid=13
src_scratch_location=/xtts
dest_datafile_location=+DATADG
dest_scratch_location=/xtts
parallel=3
rollparallel=2
getfileparallel=4
srcconnstr=sys/oracle@jingyu
destconnstr=sys/oracle@jingyu
allowstandby=1

执行xtts脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@bogon xtt]$ 
$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3

--如果报错,再次执行,只需要加-L参数或手工清除错误日志
$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3 -L

测试执行成功,跑了两次,全量增量都没问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@bogon xtt]$ ls -lrth /xtts/
total 103M
drwx------. 2 root   root      64K Jun  1 14:31 lost+found
-rw-r-----. 1 oracle oinstall 2.3M Jul  1 23:13 testvg2071t2_4080_1_1.bak
-rw-r-----. 1 oracle oinstall 101M Jul  1 23:57 TEST_34.tf 		<-----  第一次全量生成文件
-rw-r-----. 1 oracle oinstall  56K Jul  1 23:58 vj2074hh_4083_1_1		<-----  第一次增量生成文件

此时目标端查看,就直接有这些文件了,权限到时恢复前改下就OK。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@db01rac1 xtts]$ ls -lrth
total 103M
drwx------ 2 root  root   64K Jun  1 14:31 lost+found
-rw-r----- 1 10001 10001 2.3M Jul  1 23:13 testvg2071t2_4080_1_1.bak
-rw-r----- 1 10001 10001 101M Jul  1 23:57 TEST_34.tf
-rw-r----- 1 10001 10001  56K Jul  1 23:58 vj2074hh_4083_1_1

4.总结

XTTS用的中转空间可以使用目标端的ACFS挂载目录,再通过NFS挂载到源端,至少可以节省scp的传输时间。

另外目标端通常新硬件,通常性能要比之前源环境的更好一些,也能加快些速度。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
XTTS系列之五:警惕大文件表空间
在上篇《XTTS系列之四:迷迷糊糊的并行度》验证之后,就让测试组在RMAN配置中设置好正确的并行。然后重新将备份任务执行,平均速度直接由之前的150MB/s提升为1200MB/s。优化效果非常明显,速度直接提升了8倍。但是由于用户的数据库存在大文件表空间,当执行到大文件表空间时,速度又降到150MB/s的速度,无法使用并行。
Alfred Zhao
2023/10/10
2710
XTTS系列之四:迷迷糊糊的并行度
项目测试组又反馈一个问题,XTTS执行全量备份速度慢,影响测试进度。 实际算了下,平均速度才150MB/s.. 这个速度在客户生产环境的确是不够看,首先询问是否开了并行,开了多少?
Alfred Zhao
2023/10/10
3010
在NAS设备上用NFS服务为RAC数据库和集群件存储oracle文件时的mount选项
今天在家折腾自己的小实验室,把自己NAS上的一个目录用NFS挂载到一套11g RAC的实验环境中。 当我在备份数据库到NAS上时,发现一个奇怪的问题,同样的目录下,默认backup 备份集的情况,备份是成功的,但如果使用backup as copy备份则会报错,现象如下:
Alfred Zhao
2019/05/24
1.8K0
XTTS系列之二:不可忽略的BCT
重要系统Oracle数据库U2L迁移场景中,如果客户来问我建议,我都会回复说首选就是XTTS,除非XTTS经测试实在是无法满足停机窗口,否则就不要考虑OGG这类方案。 换句话说,选择OGG做迁移的场景,都是没有其他办法时才会选用的方案了。
Alfred Zhao
2023/10/10
3070
XTTS系列之一:U2L迁移解决方案之XTTS的使用
本系列的定位是对XTTS及相关技术进行深入的学习研究。作为本系列的开篇,本着实用性的原则,我先把一次实际生产环境U2L的迁移实战实施方案进行提炼简化,旨在能清楚说明该如何使用XTTS这种解决方案来进行U2L迁移,先达到可以跟着做下来的初级目标,如果有兴趣再去深入研究相关细节。
Alfred Zhao
2019/07/29
2.3K0
举一反三:跨平台版本迁移之 XTTS 方案操作指南
作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工作经验,曾任职于大型的国家电信、省级财政、省级公安的维护,性能调优等。精通 Oracle 数据库管理,调优,问题诊断。擅长 SQL 调优,Oracle Rac 等维护,管理。
数据和云
2018/07/27
1.8K0
举一反三:跨平台版本迁移之 XTTS 方案操作指南
Oracle异构平台迁移利器之XTTS(使用rman方式)
XTTS(Cross Platform Transportable Tablespaces)属于跨平台迁移表空间,它是从Oracle 8i开始就引入的一种基于表空间传输的物理迁移方法,命名为TTS,经历各个版本的不断演进,从11gR2开始,在相对停机时间要求日益减少的情况,为了应对越来越大的数据量跨平台迁移,Oracle推出了新的解决方案—加强版TTS(以下简称XTTS),XTTS使用增量备份的方式实现跨平台的数据迁移,从真正意义上大大缩短停机时间。在U2L如火如荼的今天,通过XTTS快捷、高效、平稳、安全的将Oracle数据库“小型机+集中式存储”环境迁移至“X86架构平台+分布式存储”已然成为一大神技。
AiDBA宝典
2022/11/07
6K0
Oracle异构平台迁移利器之XTTS(使用rman方式)
时过境迁:Oracle跨平台迁移之XTTS方案与实践
作者简介 谢金融 云和恩墨东区交付部 Oracle 工程师,多年来从事 Oracle 第三方服务,曾服务过金融、制造业、物流、政府等许多行业的客户,精通数据库迁移、性能优化和故障诊断。 本文由恩墨大讲
数据和云
2018/03/05
3.7K0
时过境迁:Oracle跨平台迁移之XTTS方案与实践
Oracle数据库工程师手记:备份恢复双城记(三)
本文作者系大连健哥, POSTGRESQL、ORACLE 数据库资深从业人员、IT 技术的深度爱好者。相信科学改变人类、技术创造未来。个人主页:https://www.cnblogs.com/gaojian/,经其本人授权发布。
SQLplusDB
2022/08/19
3450
Oracle 主库rac + 备库rac 11.2.0.4的DG环境部署
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
AiDBA宝典
2023/04/27
4.1K0
Oracle 主库rac + 备库rac 11.2.0.4的DG环境部署
如何不使用图形来创建ACFS文件系统
客户需求,提供在19c环境下,ACFS的命令行操作的具体步骤,便于在图形界面不可用场景使用。 当然,如果有图形可操作,还是推荐首选图形,避免复杂度以及不必要的错误。
Alfred Zhao
2023/08/24
3970
记录一则xtts测试遇到的诡异现象
背景:在一次xtts的测试中遇到因源库数据文件名称包含特殊字符导致表空间全量备份缺失文件,之所以说是诡异现象,是因为xtts的全备日志不报任何错误,在恢复阶段才发现缺少文件,这个缺陷比较隐晦,尤其在迁移的表空间较多的场景下,不注意的话很难第一时间发现。 环境:客户环境是AIX 5.3 + Oracle 10.2.0.3,使用xtts脚本2.0版本,本文在测试环境OEL 5.7 + Oracle 10.2.0.5 下,使用xtts脚本3.0实验,同样可以重现这个现象,说明是普遍现象。
Alfred Zhao
2019/02/15
5950
【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)
XTTS(Cross Platform Transportable Tablespaces)属于跨平台迁移表空间,它是从Oracle 8i开始就引入的一种基于表空间传输的物理迁移方法,命名为TTS,经历各个版本的不断演进,从11gR2开始,在相对停机时间要求日益减少的情况,为了应对越来越大的数据量跨平台迁移,Oracle推出了新的解决方案—加强版TTS(以下简称XTTS),XTTS使用增量备份的方式实现跨平台的数据迁移,从真正意义上大大缩短停机时间。在U2L如火如荼的今天,通过XTTS快捷、高效、平稳、安全的将Oracle数据库“小型机+集中式存储”环境迁移至“X86架构平台+分布式存储”已然成为一大神技。
AiDBA宝典
2021/05/27
2.8K0
Oracle数据库工程师手记:备份恢复双城记(二)
本文作者系大连健哥, POSTGRESQL、ORACLE 数据库资深从业人员、IT 技术的深度爱好者。相信科学改变人类、技术创造未来。个人主页:https://www.cnblogs.com/gaojian/,经其本人授权发布。
SQLplusDB
2022/08/19
4460
一条简单的报警信息发现的oracle bug(r8笔记第42天)
系统中有这样一条报警信息,看似比较简单,但是引起了我的注意,主要原因是因为这是一个10gR2的备库,备库如果出现这样的问题,看起来似乎是在归档删除上存在一些问题。 [DB监控系统]_ora_test_s2_yangjr@10.127.2.133_报警 ZABBIX-监控系统: ------------------------------------ 报警内容: Free disk space is less than 20% on volume /opt -------------------------
jeanron100
2018/03/19
6100
续:跨平台版本迁移之 XTTS 方案操作指南
运行数据库对比脚本,通过创建 dblink,运行相关的数据库对象比对脚本。这里我们主要比对了存储过程,函数,触发器,试图,索引,表等等。
数据和云
2018/07/27
1.3K0
续:跨平台版本迁移之 XTTS 方案操作指南
问题:Duplicate报错RMAN-03009, ORA-17628, ORA-19505
前面文章提到,这周末帮一个客户测试报错场景: 客户通过duplicate生产备库的方式创建cascade备库。 发现每次都会遇到两个文件报错,ORA-17628: Oracle error 19505错误,且每一次跑,报错文件不一样。 现在想帮客户验证,这属于是正常现象还是bug。
Alfred Zhao
2023/05/23
1.1K0
案例:DG主库未设置force logging导致备库坏块
DG搭建时,官方文档手册有明确提到要设置数据库为force_logging,防止有nologging操作日志记录不全导致备库应用时出现问题。 虽然是老生常谈的安装规范,但现实中总会遇到不遵守规范的场景,最近就在某客户现场遇到一则这样的案例,因为DG主库设置force_logging晚于DG搭建,导致备库出现坏块,使用dbv检查就表现为DBV-201错误。
Alfred Zhao
2020/06/08
7100
recover database noredo时报错ORA-19573
环境: RHEL6.4 + Oracle 11.2.0.4 Primary RAC + Standby RAC
Alfred Zhao
2019/05/24
8050
Oracle 控制文件(CONTROLFILE)
为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份
Leshami
2018/08/07
7220
推荐阅读
相关推荐
XTTS系列之五:警惕大文件表空间
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验