zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle Dataguard在阿里云ecs上的测试

Oracle测试阿里 ECS dataguard
2023-09-11 14:19:11 时间
使用袋鼠云oacle11g镜像初始化两台ecs资源 https://market.aliyun.com/products/56024006/cmjj011926.html?spm=5176.730005.0.0.weQEO1 swingbench压测机只要上传swingbench软件安装即可。 2.2 存储环境部署 为提高存储性能,首先使用1块ssd做为redo存储,2块ssd做为data存储,1块做为archivelog的存储。使用lvm,实现方法如下: vgcreate redovg /dev/vdb vgcreate datavg /dev/vdc /dev/vdd vgcreate arcvg /dev/vde 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均存放在上面。 vgcreate datavg /dev/vdb /dev/vdc /dev/vdd /dev/vde 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 /u01/app/oracle/oradata/ORCL/users01.dbf to users01.dbf’; 4.2 基准测试 吞吐率247MB/s 9fc06d35f54588e3ad267d2ab0cf61e4f90b05cd
4.3 同步测试 8c32g
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(同步)两种。
Oracle DataGuard 备库配置闪回模式 Oracle 数据库闪回通常设置在 DataGuard 备库,如果主库误删数据,可用备库闪回至删除点之前,获取丢失数据,然后再自动同步回来!
Oracle Dataguard 下块自动修复技术 在Oracle11gr2版本之后,若搭建实时应用日志的物理备库,那么在主库数据文件少量坏块的情况下,可以利用ABCR技术快速修复坏块
andrew征程 从事数据库服务多年,熟悉Oracle、MySQL数据库架构、优化、容灾等,近三年来关注数据库上云相关服务。