设置bash命令行提示符的样式
1
| export PS1="\[\e[1;32m\]\u\[\e[1;31m\]@\[\e[1;33m\]\h\[\e[1;35m\]:\[\e[0;36m\]\w\[\e[1;35m\]\\$ \[\e[0m"
|
解压已压缩的日志
1
| for tar in INFO*bz2 ; do tar xvf $tar; done
|
查看堆栈对应的代码行
1
| addr2line -e bin/xcloudd ${堆栈地址}
|
示例:
1
| addr2line -e bin/xcloudd 0x37f75d1
|
SQL卡住定位
- 获取sql的
Query Id
- 替换以下命令中
Query Id
(仅最后一个冒号前的内容),执行命令,结果为没有返回的子计划id
1
| grep -a "352c18e1:644e7347:1bf" log/INFO_* | awk '/InitFragment/ || /coord.*FragmentReport/ {print $6}' | sed -r 's/.*@//g' | sort | uniq -u
|
- 过滤出子计划id的日志,找到
Open
处的线程号tid
1
| grep -a "352c18e1:644e7347:1bf:1" log/INFO_* | grep "Open"
|
- 查看调用堆栈,多执行几次,看看堆栈是否有变动
查找日志中的堆栈
- 搜索报错信息关键字
- 搜索关键字
Traced call stack for
,上下查找
- 若无堆栈,找到报错信息所在线程,查看该线程的日志,查找报错(注意有的日志不带error等错关键字需要自行甄别)
打印所有线程堆栈到thread_info.txt
文件
1
| gdb -q --batch --ex "set height 0" --ex "set logging file thread_info.txt" --ex "set logging on" --ex "thread apply all bt" --ex "set logging off" bin/xcloudd core.xxx
|
gdb调试core文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| source [stl_view.gdb路径]
set pagination off
thread apply all bt
info threads
thread tid
x /10c &i
|
动态参数
查看总超时时间
1
| grep -a "dynamic parameter total timeout is" log/xcloudd.INFO
|
查看节点同步回报是否正常
1
| grep -i "SetFeedBackInfo" log/xclodd.INFO
|
查看压缩方式
1
| grep -a "CompressionCodec" log/xcloudd.INFO
|
SQLDeveloper连接失败
报错Login failed, invalid username or password.
- 查看kv状态
- kv若正常,检查ntp服务
检查kerberos_user_principal
与kerberos_keytab_file
是否配置正确
锁
检查是否有其他地方也会获取该锁,即争抢锁
找堆栈
- 根据报错搜索日志
- 找到该日志中全大写的报错定义名
- 根据报错定义名搜索报错堆栈(可能有多个)