Teradata开启LockLogger与dumplocklog工具使用(含lokdisp工具说明)
Posted badboy200800
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Teradata开启LockLogger与dumplocklog工具使用(含lokdisp工具说明)相关的知识,希望对你有一定的参考价值。
1.开启LockLogger记录锁信息
(1)设置dbscontrol参数LockLogger为True
root用户登录数据库节点,输入dbscontrol
disp gen modify gen 9=true write
(2)重启数据库生效
tpareset -f change date psh pdestate //查看数据库状态,为running则启动成功
2.Lock Logger工具(dumplocklog)收集锁信息
(1)概述
Lock Logger工具(dumplocklog)从数据库事务日志信息中抽取表的锁信息。这个表的数据可以用来分析并发SQL之间的锁竞争问题。定期对Locking Logger所收集的信息进行分析,可以针对系统死锁、SQL因为锁执行等待问题进行优化分析。
(2)准备工作
由于dumplocklog工具需要在cnsterm下运行,并且是从数据库事务日志中提取锁的信息写到数据库表中,所以在进行数据收集前,请先确认以下的前提:
a. 新建一个存放锁日志表的数据库LockLogData(暂定名),空间大小200G。
b. 新建一个lock数据收集用户LockLogUsr,该用户有对LockLogData数据库create table\\drop table\\select\\delete\\update权限,以及对DBC库有select权限。
//DBC用户执行,创建用户LockLogUsr,空间0.创建数据库LockLogData,空间200G CREATE USER "LockLogUsr" FROM "dbc" AS PERM = 214748364800 PASSWORD = "lock2014" ACCOUNT = (‘DBC‘) ; CREATE DATABASE "LockLogData" FROM "LockLogUsr" AS PERM=214748364800 NO FALLBACK NO BEFORE JOURNAL NO AFTER JOURNAL ; //DBC用户执行,赋权 grant all privileges on LockLogData to LockLogUsr with grant option; grant select on dbc to LockLogUsr;
(3)收集锁信息到数据库LockLogData中
//root用户登录teradata节点,使用cnsterm启动dumplocklog 在#提示符下输入”cnsterm 6”后回车 输入start dumplocklog回车,之后会提示在windows x下运行(x通常为1)。 按ctrl+c退出当前界面,在#提示符后输入 cnsterm 1回车,出现如下界面:
locklogusr,lock2014(这里输入数据库用户名和密码) Do you want this utility to run continuously? (Y/N) n (dumplocklog运行有2种模式,continuous和snapshot。推荐使用snapshot模式) Enter number of sessions (? For Help, Q/q to Quit): 8 (最小是1个session,默认每个AMP一个session,推荐使用8-20个session) 8 sessions will be logged on. Enter the Character Set (? For Help, Q/q to Quit): 127 (字符集,127为ASCII码格式) Enter the table name where the lock log entries will be written (? For Help, Q/q to Quit): LockLogData.locklog(根据实际情况给定表名) Do you want this utility to create table LOCKLOGDATA.LOCKLOG? (Y/N) y (Y:指定的是新建表 N:指定的是一个已经存在的表) Table locklogger.LOCKLOG has been created. Enter the time constraint to control selection of lock log entries that were generated AT or LATER than this time YYMMDD HHMMSS (? For Help, Q/q to Quit): 20140427 060000 (指定一个开始时间,如果要指定所有时间则输入*即可) Enter the time constraint to control selection of lock log entries that were generated AT or PRIOR to this time YYMMDD HHMMSS (? For Help, Q/q to Quit): 20140427 070000 (指定一个结束时间,如果要指定所有时间则输入*即可) Enter the object constraint for selection of lock log entries (? For Help, Q/q to Quit): ? Specify the database objects for which lock delay should be selected. Up to 10 objects can be entered. Input ceases when an empty line or 10 objects have been entered. - <name1>.<name2> - name1 specifies a database and name2 specifies a table. - <name>.* - name specifies a database and all tables under it. - <name1> - name specifies a table under the user name specified in the logon. - * - All databases and tables. (可以指定数据库或者表名,也可以指定所有对象则输入*) - <Return> - Done. - Q - Terminate the utility. Note that if database or table name is specified, it has to exist or an error will be returned. Enter the object constraint for selection of lock log entries (? For Help, Q/q to Quit): sysadmin.fastlog (指定收集锁信息的对数据库或者表名,或者所有对象) more? (? For Help, <Ret> for Done):
Enter(回车键表示没有其它对象要收集) Writing lock log entries to table LOCKLOGDATA.LOCKLOG. Press <F2> any time to stop the utility. No rows has been inserted to table LOCKLOGDATA.LOCKLOG. *** DumpLockLog is terminated ***
(4)查询收集日志
使用teradata administrator工具登录后,进入LOCKLOGDATA数据库,可以查询到数据收集的表和数据即可。
3.Dbscontrol参数补充说明
(1)LockLogger
Determines whether the Lock Logger feature of Teradata Database is enabled or disabled. The Lock Logger logs delays caused by blocked database locks, and can help identify lock conflicts.
默认false,
数据库重启后生效
如果LockLogger为 FALSE,LockLogger Delay Filter, LockLogger Delay Filter Time, 和LockLogSegmentSize DBS Control 设置均无效.
(2)LockLogger Delay Filter Time
指定阈值时间延迟值(秒)。阻止的锁定请求少于此数量不记录时间。这样就可以防止日志表中的数据被很小的阻塞锁。
0 through 1,000,000 seconds 默认0 seconds
dbscontrol参数设定完毕生效。
LockLogger和LockLogger Delay Filter均为ture时才生效。
(3)LockLogSegmentSize
控制锁缓存信息段大小。
64 KB through 1024 KB 默认64kb
数据库重启后生效
LockLogger为true时才生效
特别说明:命令行的 Lock Logger utility (dumplocklog) 工具和相关的dbscontrol设置在16.20中已经弃用,但是为了与以前的版本兼容而保持可用。
Database locks should be logged using the Database Query Log (DBQL). This lock information can be accessed by means of the Teradata Viewpoint Lock Viewer portlet, or by querying the DBC.QrylockLogXMLV view.
4.Lock Display (lokdisp)日志收集工具
此工具与LockLogger区别是,它仅仅能收集执行工具命令当时的锁信息,无法收集历史锁信息。
以上是关于Teradata开启LockLogger与dumplocklog工具使用(含lokdisp工具说明)的主要内容,如果未能解决你的问题,请参考以下文章
Teradata 使用笔记基于Vwmare虚拟机的Teradata安装部署(完整版)
如何使用 Python 将数据从 Teradata 传输到 Greenplum?