Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >XTTS系列之四:迷迷糊糊的并行度

XTTS系列之四:迷迷糊糊的并行度

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

项目测试组又反馈一个问题,XTTS执行全量备份速度慢,影响测试进度。 实际算了下,平均速度才150MB/s.. 这个速度在客户生产环境的确是不够看,首先询问是否开了并行,开了多少?

回复是说有开32个并行,在xtt.properties配置文件中指定的。 另外也注意在RMAN中show all的配置是默认没有指定的。 同时有个重要的现象,在备份过程中,每次只生成一个数据文件,按照顺序写的。

这个现象一描述出来,就严重怀疑是并行没生效,怀疑是xtt.properties配置文件单独设置那个并行不生效。 用我自己的测试环境直接验证下吧,然后再给项目测试组去看到底该如何设置并行。 这里模拟3个场景:

  • 1.RMAN未配置并行,只在xtt配置文件中指定并行
  • 2.RMAN配置并行,xtt配置文件中不指定并行
  • 3.RMAN和xtt配置文件均指定并行

先做下准备工作: 在我的测试环境准备两个表空间TEST、JINGYU, 其中TEST表空间有2个数据文件,JINGYU表空间有1个数据文件,每个数据文件大小设置为1G(之前初始设置100M,结果发现太小的话不好观察且时间误差大); 测试XTTS脚本全量备份阶段的实际效率。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlplus sys/oracle@jingyu as sysdba

SQL> 
select FILE_NAME, bytes/1024/1024 "MB" from dba_data_files where TABLESPACE_NAME in ('TEST','JINGYU');

FILE_NAME                                                                                        MB
---------------------------------------------------------------------------------------- ----------
/flash/oradata/DEMO/fb6d1d5d4f0a245be0530b01a8c024da/datafile/jingyu1.dbf                      1024
/flash/oradata/DEMO/fb6d1d5d4f0a245be0530b01a8c024da/datafile/test.308.1140833299              1024
/flash/oradata/DEMO/fb6d1d5d4f0a245be0530b01a8c024da/datafile/test1.dbf                        1024

1.RMAN未配置并行,只在xtt配置文件中指定并行

这也就是项目测试组目前的设置情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
grep -vE '^$|^#' xtt.properties


RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;

[oracle@bogon xtt]$ grep -vE '^$|^#' xtt.properties
tablespaces=TEST,JINGYU
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

[oracle@db01rac1 xtt]$ 
$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3

注意:有个小技巧,为了反复全新测试这个XTTS第一次全备场景,在每次执行前可直接删除TMPDIR下的临时文件以及src_scratch_location下面备份出来的文件。 建议TMDIR设置在xtts脚本中的一个单独目录,这样好做清理。 比如我这里是:TMPDIR=/home/oracle/xtt/tmp 同时注意tmp目录下面的文件删除,tmp目录本身不能删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set lines 180 pages 200  
COL INPUT_TYPE FORMAT a20
COL STATUS FORMAT a20
COL minutes FORMAT 999.999
COL Input_mb FORMAT 99,999.99
COL Output_mb FORMAT 99,999.99

SELECT SESSION_KEY, INPUT_TYPE, STATUS,
TO_CHAR(START_TIME,'yyyy-mm-dd hh24:mi:ss') start_time,
TO_CHAR(END_TIME,'yyyy-mm-dd hh24:mi:ss') end_time,
INPUT_BYTES/1024/1024 Input_mb,
OUTPUT_BYTES/1024/1024 Output_mb,
ELAPSED_SECONDS Seconds
FROM V$RMAN_BACKUP_JOB_DETAILS
ORDER BY SESSION_KEY;

本次测试结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SESSION_KEY INPUT_TYPE           STATUS               START_TIME          END_TIME              INPUT_MB  OUTPUT_MB    SECONDS
----------- -------------------- -------------------- ------------------- ------------------- ---------- ---------- ----------
       5073 DATAFILE FULL        COMPLETED            2023-07-04 12:33:19 2023-07-04 12:33:50   2,048.00   2,048.00         31
       5075 DATAFILE FULL        COMPLETED            2023-07-04 12:33:52 2023-07-04 12:34:07   1,024.00   1,024.00         15

可以看到,在xtt.properties配置文件中指定了3个并行度,rman配置文件默认为1的情况下: TEST表空间2个数据文件,从2023-07-04 12:33:19 到 2023-07-04 12:33:50,耗时31秒。 JINGYU表空间1个数据文件,从2023-07-04 12:33:52 到 2023-07-04 12:34:07,耗时15秒。 整个任务共耗时46秒。整体平均速度68MB/s。

从这个数据判断,这种配置组合下并没有用到并行。

2.RMAN配置并行,xtt配置文件中不指定并行

那如果换过来测试呢?只在RMAN配置并行,xtt配置文件中不指定并行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
grep -vE '^$|^#' xtt.properties


RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;

using target database control file instead of recovery catalog
old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

[oracle@bogon xtt]$ grep -vE '^$|^#' xtt.properties
tablespaces=TEST,JINGYU
platformid=13
src_scratch_location=/xtts
dest_datafile_location=+DATADG
dest_scratch_location=/xtts
parallel=1
rollparallel=2
getfileparallel=4
srcconnstr=sys/oracle@jingyu
destconnstr=sys/oracle@jingyu


[oracle@db01rac1 xtt]$ 
rm -rf ./tmp/*
rm -rf /xtts/*.tf

$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3

结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> /
SESSION_KEY INPUT_TYPE           STATUS               START_TIME          END_TIME              INPUT_MB  OUTPUT_MB    SECONDS
----------- -------------------- -------------------- ------------------- ------------------- ---------- ---------- ----------
       5078 DATAFILE FULL        COMPLETED            2023-07-04 12:44:23 2023-07-04 12:44:49   3,072.00   3,072.00         26

[oracle@bogon xtts]$ ls -lrth
total 3.1G
drwx------. 2 root   root      64K Jun  1 14:31 lost+found
-rw-r-----. 1 oracle oinstall 1.1G Jul  4 12:44 TEST_35.tf
-rw-r-----. 1 oracle oinstall 1.1G Jul  4 12:44 TEST_34.tf
-rw-r-----. 1 oracle oinstall 1.1G Jul  4 12:44 JINGYU_36.tf

可以看到,在xtt.properties配置文件中指定了1个并行度,rman配置文件设置为3的情况下: TEST表空间2个数据文件和JINGYU表空间1个数据文件,作为一个任务跑,从2023-07-04 12:44:23 到 2023-07-04 12:44:49,耗时26秒。

从这个数据判断,这种配置组合下用到了并行。 整个过程耗时也是26秒。整体平均速度118MB/s。

3.RMAN和xtt配置文件均指定并行

这里均指定并行度3:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;

old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

[oracle@bogon xtt]$ grep -vE '^$|^#' xtt.properties
tablespaces=TEST,JINGYU
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

[oracle@db01rac1 xtt]$ 
rm -rf ./tmp/*
rm -rf /xtts/*.tf

$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3

结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> /
SESSION_KEY INPUT_TYPE           STATUS               START_TIME          END_TIME              INPUT_MB  OUTPUT_MB    SECONDS
----------- -------------------- -------------------- ------------------- ------------------- ---------- ---------- ----------
       5081 DATAFILE FULL        COMPLETED            2023-07-04 12:57:16 2023-07-04 12:57:42   2,048.00   2,048.00         26
       5083 DATAFILE FULL        COMPLETED            2023-07-04 12:57:45 2023-07-04 12:58:00   1,024.00   1,024.00         15

这个结果感觉是有点儿问题,但可以肯定TEST和JINGYU这两个表空间是串行执行的,可是TEST表空间内部的数据文件看起来有用到并行,但效果非常不好,为了排除掉我测试环境本身性能不稳定导致,所以清空环境重测一遍:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> /
SESSION_KEY INPUT_TYPE           STATUS               START_TIME          END_TIME              INPUT_MB  OUTPUT_MB    SECONDS
----------- -------------------- -------------------- ------------------- ------------------- ---------- ---------- ----------
       5085 DATAFILE FULL        COMPLETED            2023-07-04 13:01:26 2023-07-04 13:01:42   2,048.00   2,048.00         16
       5087 DATAFILE FULL        COMPLETED            2023-07-04 13:01:45 2023-07-04 13:02:01   1,024.00   1,024.00         16

嗯,这次结果就非常清晰好看了:

TEST和JINGYU这两个表空间是串行执行的,然后TEST表空间内部的数据文件确认有用到并行。 可以看到,在xtt.properties配置文件中指定了3个并行度,rman配置文件也设置为3的情况下: TEST表空间2个数据文件,从2023-07-04 13:01:26 到 2023-07-04 13:01:42,耗时16秒。这一阶段平均速度128MB/s。 JINGYU表空间1个数据文件,从2023-07-04 13:01:45 到 2023-07-04 13:02:01,耗时16秒。这一阶段平均速度64MB/s。 总耗时32秒。

总结

按照我测试环境的验证结果:

  • 1.RMAN未配置并行,只在xtt配置文件中指定并行 不同表空间是串行执行,表空间内部的数据文件也是串行。 也就是说全部串行操作,效率最差! 总耗时46秒。整体平均速度68MB/s。
  • 2.RMAN配置并行,xtt配置文件中不指定并行 有用到并行。 总耗时26秒。整体平均速度118MB/s。
  • 3.RMAN和xtt配置文件均指定并行 不同表空间是串行执行,表空间内部的数据文件有用到并行。 第一阶段:平均速度128MB/s。 第二阶段:平均速度64MB/s。 总耗时32秒。整体平均速度96MB/s。

实践出真知,目前现象可以肯定的是,RMAN未配置并行肯定是不行的。 然后看起来xtt配置文件是否指定并行,对结果关系并不大? 因为XTTS脚本是MOS提供的,我们需要实际去看下这个脚本的说明文档,

  • V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 2471245.1)

看看有关这个并行到底是咋描述的?

parallel Defines the degree of parallelism used in copying (prepare phase), converting. Incremental backup creation parallelism is defined by RMAN configuration for DEVICE TYPE DISK PARALLELISM.

呵呵哒,增量备份(第一次0级备份也算增量备份)的并行度,人家文档说了要在RMAN配置的。 而这个xtts脚本中的并行,有点儿像是要把备份分成几批的感觉,完成一批就可以先做这部分的拷贝。 比如上面我测试场景2,不指定,两个表空间共3个文件就一个任务备份的,指定后,就拆分开来了。 我这里测试文件少就不展开了,如有兴趣可自行测试下。

总之,做XTTS测试时,这个RMAN并行度一定配置好,具体设置多少取决于你的存储IO能力、可用能力以及...你懂的。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
XTTS系列之五:警惕大文件表空间
在上篇《XTTS系列之四:迷迷糊糊的并行度》验证之后,就让测试组在RMAN配置中设置好正确的并行。然后重新将备份任务执行,平均速度直接由之前的150MB/s提升为1200MB/s。优化效果非常明显,速度直接提升了8倍。但是由于用户的数据库存在大文件表空间,当执行到大文件表空间时,速度又降到150MB/s的速度,无法使用并行。
Alfred Zhao
2023/10/10
2500
XTTS系列之二:不可忽略的BCT
重要系统Oracle数据库U2L迁移场景中,如果客户来问我建议,我都会回复说首选就是XTTS,除非XTTS经测试实在是无法满足停机窗口,否则就不要考虑OGG这类方案。 换句话说,选择OGG做迁移的场景,都是没有其他办法时才会选用的方案了。
Alfred Zhao
2023/10/10
2870
XTTS系列之三:中转空间的选择和优化
通常选择XTTS做迁移的数据库都不会太小的,至少都是几T、几十T这样的规模,这种级别的数据量原有空间不够用,所以在迁移过程临时用作存放迁移数据库备份文件的空间也是需要提前考虑规划的问题。
Alfred Zhao
2023/10/10
2910
XTTS系列之三:中转空间的选择和优化
XTTS系列之一:U2L迁移解决方案之XTTS的使用
本系列的定位是对XTTS及相关技术进行深入的学习研究。作为本系列的开篇,本着实用性的原则,我先把一次实际生产环境U2L的迁移实战实施方案进行提炼简化,旨在能清楚说明该如何使用XTTS这种解决方案来进行U2L迁移,先达到可以跟着做下来的初级目标,如果有兴趣再去深入研究相关细节。
Alfred Zhao
2019/07/29
2.3K0
Oracle异构平台迁移利器之XTTS(使用rman方式)
XTTS(Cross Platform Transportable Tablespaces)属于跨平台迁移表空间,它是从Oracle 8i开始就引入的一种基于表空间传输的物理迁移方法,命名为TTS,经历各个版本的不断演进,从11gR2开始,在相对停机时间要求日益减少的情况,为了应对越来越大的数据量跨平台迁移,Oracle推出了新的解决方案—加强版TTS(以下简称XTTS),XTTS使用增量备份的方式实现跨平台的数据迁移,从真正意义上大大缩短停机时间。在U2L如火如荼的今天,通过XTTS快捷、高效、平稳、安全的将Oracle数据库“小型机+集中式存储”环境迁移至“X86架构平台+分布式存储”已然成为一大神技。
AiDBA宝典
2022/11/07
5.8K0
Oracle异构平台迁移利器之XTTS(使用rman方式)
举一反三:跨平台版本迁移之 XTTS 方案操作指南
作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工作经验,曾任职于大型的国家电信、省级财政、省级公安的维护,性能调优等。精通 Oracle 数据库管理,调优,问题诊断。擅长 SQL 调优,Oracle Rac 等维护,管理。
数据和云
2018/07/27
1.8K0
举一反三:跨平台版本迁移之 XTTS 方案操作指南
【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.7K0
记录一则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
5810
时过境迁:Oracle跨平台迁移之XTTS方案与实践
作者简介 谢金融 云和恩墨东区交付部 Oracle 工程师,多年来从事 Oracle 第三方服务,曾服务过金融、制造业、物流、政府等许多行业的客户,精通数据库迁移、性能优化和故障诊断。 本文由恩墨大讲
数据和云
2018/03/05
3.7K0
时过境迁:Oracle跨平台迁移之XTTS方案与实践
【DB宝53】Oracle异构平台迁移利器之XTTS(使用dbms_file_transfer方式)
姊妹篇文章:【DB宝52】Oracle异构平台迁移利器之XTTS(使用rman方式)
AiDBA宝典
2021/05/27
2K0
【迁移】使用XTTS-V3(DBMS_FILE_TRANSFER)数据迁移
生产上遇到一个迁移场景,大概1T数据量左右,由于没用XTTS做过迁移,所以准备尝试一下,本次迁移采用XTTS(增强传输表空间) V3版本的DBMS_FILE_TRANSFER方式。
甚至熊熊
2021/04/22
2.3K1
【迁移】使用XTTS-V3(DBMS_FILE_TRANSFER)数据迁移
RMAN 备份详解
RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话
Leshami
2018/08/07
2.7K0
RMAN 配置、监控与管理
一个通道代表一个到设备(磁盘或磁带)的数据流并且在目标数据库或辅助数据库实例上产生一个相应的服务器会话(server session)
Leshami
2018/08/07
9860
OCP考点实战演练01-备份恢复篇
本系列宗旨:真正掌握OCP考试中所考察的技能,坚决不做Paper OCP! 实验环境:RHEL 6.4 + Oracle 11.2.0.4
Alfred Zhao
2019/05/24
7240
深入浅出XTTS:Oracle数据库迁移升级利器
摘要 通常我们要进行数据迁移,可以使用的方案有很多,比如数据泵、RMAN、GoldenGate,甚至是第三方同步软件DSG、DDS等。但是对于传统的迁移方式来说,数据量越大,需要的停机时间越长。增强版
IT大咖说
2018/04/04
2.9K0
深入浅出XTTS:Oracle数据库迁移升级利器
续:跨平台版本迁移之 XTTS 方案操作指南
运行数据库对比脚本,通过创建 dblink,运行相关的数据库对象比对脚本。这里我们主要比对了存储过程,函数,触发器,试图,索引,表等等。
数据和云
2018/07/27
1.2K0
续:跨平台版本迁移之 XTTS 方案操作指南
小知识:grep过滤以#号开头的注释行 和 空行
xtts的配置文件,有很多注释不想直接去掉的情况下,想清楚的看到目前设置了哪些参数,可以用grep过滤查看: grep -vE '^#|^$' xtt.properties
Alfred Zhao
2023/10/10
1.2K0
Oracle RMAN 基础配置和常用命令
1、备份保留策略rman连接到 RMAN 管理工具, rman 默认配置[oracle@orcl:/home/oracle]$ rman target /Recovery Manager: Release 11.2.0.4.0 - Production on Wed Jun 15 13:11:22 2022Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target datab
用户8006012
2022/06/17
1.2K0
Oracle使用RMAN进行备份详述
执行备份或还原的数据库称为目标。在一些环境下,有许多数据库,因此有许多RMAN目标。应一次连接每个数据库。目标的每个备份都有一些属性:
星哥玩云
2022/08/17
2.7K0
案例:DG主库未设置force logging导致备库坏块
DG搭建时,官方文档手册有明确提到要设置数据库为force_logging,防止有nologging操作日志记录不全导致备库应用时出现问题。 虽然是老生常谈的安装规范,但现实中总会遇到不遵守规范的场景,最近就在某客户现场遇到一则这样的案例,因为DG主库设置force_logging晚于DG搭建,导致备库出现坏块,使用dbv检查就表现为DBV-201错误。
Alfred Zhao
2020/06/08
6840
推荐阅读
相关推荐
XTTS系列之五:警惕大文件表空间
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档