设置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是否配置正确
锁
检查是否有其他地方也会获取该锁,即争抢锁
找堆栈
- 根据报错搜索日志
 
- 找到该日志中全大写的报错定义名
 
- 根据报错定义名搜索报错堆栈(可能有多个)