Oracle Dataguard在阿里云ecs上的测试

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化DataV,5个大屏 1个月
简介: 云上搭建oracle datagurd,并通过swingbench进行压测,查看ecs、数据库和Dataguard的表现。
1、资源准备
ecs:8c32g 两台,后面会升级成16c64g;4c8g 一台,做为swingbench压测机
ssd云盘:4*200g

2、环境部署
2.1 oracle 软件环境快捷部署
使用袋鼠云oacle11g镜像初始化两台ecs资源
swingbench压测机只要上传swingbench软件安装即可。

2.2 存储环境部署
为提高存储性能,首先使用1块ssd做为redo存储,2块ssd做为data存储,1块做为archivelog的存储。使用lvm,实现方法如下:
创建vg
vgcreate redovg /dev/vdb
vgcreate datavg /dev/vdc /dev/vdd
vgcreate arcvg /dev/vde
创建lv
lvcreate -n redolv1 -L10G redovg
lvcreate -n arclv1 -L50G arcvg
lvcreate -L 100G -n datalv1 -i 2 -I 8 datavg
格式化
mkfs.ext4 /dev/redovg/redolv1
mkfs.ext4 /dev/arcvg /arclv1
mkfs.ext4 /dev/datavg/datalv1
挂载
mount /dev/mapper/redovg-redolv1 /redo
mount /dev/mapper/datavg-datalv1 /data
mount /dev/mapper/arcvg-arclv1 /arc
/data读写测试,95MB/s
d915e720b4b389cc4cb86c27d8fa1e8fceab3b31
time dd if=/dev/mapper/datavg-datalv1 of=/dev/null bs=8k
8762130be417098b6e56ceaf92b56c775bc3ae5f
/arc读写测试,48.4MB/s
d7844ed8315194a8eeb66ebd51b06a2d2bef6c28

为提高存储性能,删除上述vg,改为4盘并条带,redo、data、archivelog均存放在上面。
创建vg
vgcreate datavg /dev/vdb /dev/vdc /dev/vdd /dev/vde
创建lv
lvcreate -L 100G -n datalv1 -i 4 -I 8 datavg
lvcreate -L 10G -n redolv1 -i 4 -I 8 datavg
lvcreate -L 50G -n arclv1 -i 4 -I 8 datavg
格式化
mkfs.ext4 /dev/datavg/redolv1
mkfs.ext4 /dev/datavg/arclv1
mkfs.ext4 /dev/datavg/datalv1
挂载
mount /dev/mapper/datavg-redolv1 /redo
mount /dev/mapper/datavg-datalv1 /data
mount /dev/mapper/datavg-arclv1 /arc

dd测试169MB/S
time dd if=/dev/mapper/datavg-datalv2 of=test.sdf bs=8k
11923d861428921cf2903eb165ec76b569f421f0
只读380MB/S
time dd if=/dev/mapper/datavg-datalv2 of=/dev/null bs=8k
00a66af60c961e59ad11b7d272521a6d9967f8df
只写300MB/S
time dd if= of=/dev/zero /dev/mapper/datavg-datalv2 bs=8k
04287973ed60dc7c7ec049eae9e73b9eaa739bc2
总结:
如果用文件系统管理,4块盘lvm做条带,读写性能不错,吞吐率可以达到169MB/s
--

mkdir redo
mkdir data1
mkdir arc

mount /dev/datavg/redolv1 /redo
mount /dev/datavg/datalv1 /data1
mount /dev/datavg/arclv1 /arc

chown -R oracle:oinstall /redo
chown -R oracle:oinstall /data1
chown -R oracle:oinstall /arc


3. DG搭建
搭建备库的步骤不再这里详细描述,这里直接通过拷贝的方式进行
主库
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclstd)' scope=both;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/arc/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl';
alter system set log_archive_dest_2='service=orclstd lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orclstd' scope=both;
alter system set fal_client='orclstd' scope=both sid='*';
alter system set fal_server='orcl' scope=both sid='*';
alter system set log_archive_dest_state_2='DEFER' scope=both sid='*';
alter system set memory_max_target=0 scope=spfile;
alter system set memory_target=0 scope=spfile;
alter system set sga_max_size=20G scope=spfile;
alter system set sga_target=20G scope=spfile;
alter system set pga_aggregate_target=2G scope=spfile;
alter system set processes=2000 scope=spfile;

备库
*.control_files='/data1/stdcotrl1.ctl', '/dat1/stdcotrl2.ctl'
*.db_name=orcl
*.db_unique_name=orclstd
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclstd)'
*.LOG_ARCHIVE_DEST_1='LOCATION=/arc VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclstd'
*.log_archive_dest_2='service=orcl lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=orcl'
*.fal_client='orclstd'
*.fal_server='orcl'


alter database create standby controlfile as '/home/oracle/control_std.bak';

ALTER DATABASE ADD STANDBY LOGFILE GROUP 1 ('/redo/standby_redo_1_01.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 2 ('/redo/standby_redo_1_02.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 3 ('/redo/standby_redo_1_03.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 14 ('/redo/standby_redo_1_04.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 15 ('/redo/standby_redo_1_05.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 16 ('/redo/standby_redo_1_06.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 17 ('/redo/standby_redo_1_07.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 18 ('/redo/standby_redo_1_08.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 9 ('/redo/standby_redo_1_09.log') SIZE 256M ;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 ('/redo/standby_redo_1_10.log') SIZE 256M ;

dg开启命令
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
alter database recover managed standby database parallel 16 disconnect from session;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE using current logfile disconnect from session;

4. 使用swingbench进行压测
4.1 灌入数据
fcc9ca19982179d695628c19df2b615eec19e1e7
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/arc' scope=both;
alter database rename file '/u01/app/oracle/oradata/ORCL/system01.dbf' to '/data1/system01.dbf';
alter database rename file '/u01/app/oracle/oradata/ORCL/sysaux01.dbf' to '/data1/sysaux01.dbf‘;
alter database rename file '/u01/app/oracle/oradata/ORCL/undotbs01.dbf' to 'undotbs01.dbf';
alter database rename file '/u0 1/app/oracle/oradata/ORCL/users01.dbf' to 'users01.dbf’;

4.2 基准测试
吞吐率247MB/s
9fc06d35f54588e3ad267d2ab0cf61e4f90b05cd
4.3 同步测试
8c32g
并发 log模式 磁盘模式 tps rt 带宽占用
100 lgwr+sync redo*1、data*2、arc*1 1054 23 34Mb/s
200 lgwr+sync redo*1、data*2、arc*1 2456 30 65Mb/s
300 lgwr+sync redo*1、data*2、arc*1 2400 46 80Mb/s
400 lgwr+sync redo*1、data*2、arc*1 2500 51 110Mb/s
400 lgwr+async redo*4、data*4、arc*4 3000 51 111Mb/s
500 lgwr+async redo*4、data*4、arc*4 3400 62 130Mb/s
16c64g
并发 log模式 磁盘模式 tps rt 带宽占用
400 lgwr+async redo*4、data*4、arc*4 3800 8 111Mb/s
500 lgwr+async redo*4、data*4、arc*4 5300 26 130Mb/s
700 lgwr+async redo*4、data*4、arc*4 6280 51 180Mb/s

5. 总结
8c32g可以支持3400的tps,500的并发,16c64g可以支持6000以上的tps,700以上的并发,ecsvpc环境内网带宽可达200Mb/s,同步归档时网络不是瓶颈。
在400并发的时候,数据库等待严重,日志切换形成较大压力,达到平均11万ms,此时采取的措施是加redolog组,并把原来分盘存储的redo、arch、data都改为4块盘的条带化;lgwr+sync模式改为lgwr+async模式,log file switch切换等待在top10 中消失。此时可以继续进行500并发的测试。在没有特殊要求的情况下,不要求最大保护模式,建议Dataguard使用最大性能模式。
LGWR还分为LGWR ASYNC(异步)和LGWR SYNC(同步)两种。

最大保护 最大可用 最大性能
进程 LGWR LGWR LGWR或ARCH
网络传输模式 SYNC SYNC LGWR时设置ASYNC
磁盘写操作 AFFIRM AFFIRM NOAFFIRM
备用日志 YES 物理备用需要 LGWR和物理备用时需要
备用库类型 物理Standby 物理或逻辑 物理或逻辑

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
存储 测试技术
阿里云块存储问题之测试不聚焦可能导致测试不稳定如何解决
阿里云块存储问题之测试不聚焦可能导致测试不稳定如何解决
28 3
|
23天前
|
弹性计算 测试技术 持续交付
阿里云云效产品使用合集之如何进行自动化测试
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
11天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
26 10
|
24天前
|
运维 Java Devops
阿里云云效操作报错合集之在流水线增加单元测试报错,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
2月前
|
监控 Oracle 关系型数据库
关系型数据库Oracle恢复测试
【7月更文挑战第20天】
42 7
|
28天前
|
存储 Kubernetes 测试技术
阿里云块存储问题之处理信用分低的测试用例(即不稳定Case)如何解决
阿里云块存储问题之处理信用分低的测试用例(即不稳定Case)如何解决
29 0
|
28天前
|
存储 Kubernetes 测试技术
阿里云块存储问题之生产代码与测试代码需要同步原子提交如何解决
阿里云块存储问题之生产代码与测试代码需要同步原子提交如何解决
25 0
|
28天前
|
存储 测试技术 块存储
阿里云块存储问题之有顺序依赖的测试导致不稳定如何解决
阿里云块存储问题之有顺序依赖的测试导致不稳定如何解决
23 0
|
3月前
|
人工智能 分布式计算 DataWorks
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
2024年5月31日,在中国信通院组织的首批数据智能平台专项测试中,阿里云数据智能平台解决方案(MaxCompute、DataWorks、PAI)顺利完成测试。
204 5
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
|
3月前
|
敏捷开发 测试技术 API
阿里云云效产品使用问题之API中包含有获取测试计划的接口吗
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

推荐镜像

更多