达梦数据库问题跟踪和解决-数据库重演(REPLAY)

数据库重演(Database Replay)是 DM中用来重现、定位和分析问题的一个重要手段,其基本原理是在数据库系统上捕获所有负载(记录外部客户端对服务器的请求),保存到二进制捕获文件,然后通过 DM 提供的数据库重演工具将捕获文件中的请求发送给捕获前由原始数据库备份恢复而来的重演测试系统上,从而帮助重现当时的场景。

我们可以调用系统过程 sp_start_capture 来启动捕获发往数据库的所有负载,并将该阶段收到的所有请求保存到二进制捕获文件中,然后使用 DM 提供的数据库重演客户端工具重放二进制捕获文件,再现当时真实环境的负载及运行情况,帮助进行问题跟踪和诊断。 使用系统过程 sp_stop_capture 可以停止捕获。

SP_START_CAPTURE定义:
SP_START_CAPTURE(path varchar(256),duration int)
功能说明:
手工设置负载捕获开始
参数说明:
path:捕获文件保存的绝对路径
duration:捕获持续的时间,如果设置为-1 秒,表示需要手动停止捕获,
或者磁盘空间满了自动停止
返回值:
无
SP_STOP_CAPTURE定义:
SP_STOP_CAPTURE()
功能说明:
手工停止数据库重演捕获
参数说明:
无
返回值:
无

Replay 的使用必须指定必要的执行参数,其调用格式为:
格式: DREPLAY KEYWORD=value
例程: DREPLAY SERVER=LOCALHOST:5236 FILE=.\test.cpt
必选参数: FILE
--如果需要获取帮助信息,可以调用 dreplay help,屏幕将显示如下信息:
SERVER 需要连接的服务器格式 SERVER:PORT(LOCALHOST:5236)
FILE 捕获文件及路径
HELP 打印帮助信息
使用如下:
开始捕获生成数据重演文件在/dm8/data/test,持续时间为手动停止。
[dmdba@dmdbms ~]$ cd /dm8/bin
[dmdba@dmdbms bin]$ ./disql
disql V8
用户名:
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.445(ms)
SQL>call sp_start_capture('/dm8/data/test/test.cpt',-1);
CREATE TABLE "SYSDBA"."TEST4REPLAY"
(
C1 INT,
C2 VARCHAR(64)
);
INSERT INTO "SYSDBA"."TEST4REPLAY" VALUES(1, 'A');
INSERT INTO "SYSDBA"."TEST4REPLAY" VALUES(2, 'B');
INSERT INTO "SYSDBA"."TEST4REPLAY" VALUES(3, 'C');
COMMIT;
CALL SP_STOP_CAPTURE();
--然后利用 dreplay工具在另一个数据库实例来重演数据(命令如下)
[dmdba@dmdbms bin]$ ./dreplay SERVER=localhost:5236 FILE=/dm8/data/test/test.cpt
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值