当前位置: 首页 > news >正文

南昌政府网站建设今日热搜榜前十名

南昌政府网站建设,今日热搜榜前十名,住建厅官网证件查询,当雄网站建设目录 一、测试版本 二、模拟锁表场景 1、查看自动提交参数 2、关闭自动提交 3、测试表结构 4、测试数据 5、会话一更新数据不提交 6、会话二更新数据卡住 7、会话三查看连接信息 8、会话三查看锁信息 9、解决方法 10、会话一插入数据不提交 11、会话二更新报错 三…

目录

一、测试版本

二、模拟锁表场景

1、查看自动提交参数

2、关闭自动提交

3、测试表结构

4、测试数据

5、会话一更新数据不提交

6、会话二更新数据卡住

7、会话三查看连接信息

8、会话三查看锁信息

9、解决方法

10、会话一插入数据不提交

11、会话二更新报错

三、总结


一、测试版本

名称
CPUIntel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
操作系统CentOS Linux release 7.9.2009 (Core)
内存3G
逻辑核数2
Gbase8a版本8.6.2-R43

二、模拟锁表场景

打开三个会话。

1、查看自动提交参数

gbase> show variables like'%commit%';
+-----------------------------------------------------------+----------+
| Variable_name                                             | Value    |
+-----------------------------------------------------------+----------+
| _t_gcluster_commit_revert_flag_test                       | 1        |
| autocommit                                                | ON       |
| gbase_tcmalloc_aggressive_decommit_threadhold_load_factor | 0.900000 |
| gbase_tcmalloc_balanced_decommit_threadhold_load_factor   | 0.600000 |
| gcluster_kafka_batch_commit_dml_count                     | 100000   |
| gcluster_kafka_parallel_commit                            | 1        |
+-----------------------------------------------------------+----------+
6 rows in set (Elapsed: 00:00:00.00)

2、关闭自动提交

gbase> set autocommit = 0;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

前两个会话设置非自动提交。

3、测试表结构

gbase> desc czg.testtab;
+-------+---------------+------+-----+-------------------+-----------------------------+
| Field | Type          | Null | Key | Default           | Extra                       |
+-------+---------------+------+-----+-------------------+-----------------------------+
| a     | int(11)       | YES  |     | NULL              |                             |
| b     | double        | YES  |     | NULL              |                             |
| c     | varchar(100)  | YES  | MUL | NULL              |                             |
| d     | text          | YES  |     | NULL              |                             |
| e     | blob          | YES  |     | NULL              |                             |
| f     | longblob      | YES  |     | NULL              |                             |
| g     | date          | YES  |     | NULL              |                             |
| h     | timestamp     | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| i     | decimal(10,2) | YES  |     | NULL              |                             |
+-------+---------------+------+-----+-------------------+-----------------------------+
9 rows in set (Elapsed: 00:00:00.05)

4、测试数据

gbase> select * from czg.testtab limit 10;
+------+------+------+--------------------+---------------------+--------------------------+------------+---------------------+------+
| a    | b    | c    | d                  | e                   | f                        | g          | h                   | i    |
+------+------+------+--------------------+---------------------+--------------------------+------------+---------------------+------+
|    1 |  1.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.00 |
|    1 |  1.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.00 |
|    1 |  1.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.00 |
|    1 |  1.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.00 |
|    1 |  1.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.00 |
|    2 |  1.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 2.00 |
|    2 |  4.1 | czg  | 快乐的小天使       | qwertasdsdfzxczxxv  | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.10 |
|    2 |  4.1 | czg  | 快乐的小天使       | qwertasdsdfz\xczxxv | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.10 |
|    2 |  4.1 | czg  | 快乐的小天使       | qwertasdsdfz.xczxxv | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.10 |
|    2 |  4.1 | czg  | 快乐的小天使       | qwertasdsdfz.xczxxv | gregergjsfishfuieehfuiew | 1995-09-18 | 2022-08-03 09:24:00 | 1.10 |
+------+------+------+--------------------+---------------------+--------------------------+------------+---------------------+------+
10 rows in set (Elapsed: 00:00:02.51)

5、会话一更新数据不提交

gbase> update czg.testtab set d = 'JJLGG' where a = 2;Query OK, 1310720 rows affected (Elapsed: 03:28:21.03)
Rows matched: 1310720  Changed: 1310720  Warnings: 0

6、会话二更新数据卡住

gbase> update czg.testtab set d = 'HappySunshine' where a = 1;

我们更新的是不同的行,却锁住了,说明Gbase8a不支持行锁,这里加的是表锁。

7、会话三查看连接信息

[gbase@czg2 ~]$ gccli -e "show detail processlist;"
+-----+-------+-----------------+----------------------+--------------------+---------+--------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------------+
| Id  | Tid   | User            | Host                 | db                 | Command | Time   | State                       | Lock                                                                                                                                                | Wait                                            | Info                                                   |
+-----+-------+-----------------+----------------------+--------------------+---------+--------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------------+
|   1 |  5752 | event_scheduler | localhost            | NULL               | Daemon  |  80337 | Waiting for next activation | NULL                                                                                                                                                | NULL                                            | NULL                                                   |
| 276 | 78263 | root            | localhost            | NULL               | Sleep   | 172223 |                             | NULL                                                                                                                                                | NULL                                            | NULL                                                   |
| 277 | 78372 | root            | 192.168.142.12:35329 | zxj                | Sleep   | 172223 |                             | NULL                                                                                                                                                | NULL                                            | NULL                                                   |
| 585 | 94012 | root            | localhost            | information_schema | Query   |    205 | checking permissions        | czg                                                                                                                                                 | czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739 | update czg.testtab set d = 'HappySunshine' where a = 1 |
| 589 | 95886 | root            | localhost            | NULL               | Sleep   |  19292 |                             | czg;czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739;czg.testtab580D5F90-B287-4199-B057-E6FBD44B5BFA;czg.testtab6ef6f8a9-87f0-4d6c-8043-899367d02df3 | NULL                                            | NULL                                                   |
| 642 |  2049 | root            | localhost            | NULL               | Query   |      0 | NULL                        | NULL                                                                                                                                                | NULL                                            | show detail processlist                                |
+-----+-------+-----------------+----------------------+--------------------+---------+--------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------------+

这些字段的含义为:

字段描述
Id连接编号。
Tid线程号。
User登录数据库用户。
Host连接源端的ip和端口。
db连接的数据库。
Command当前执行的命令。
Time上面命令执行的时间。(单位:秒)
StateSQL的运行状态。
Lock持有的锁。
Wait等待的锁。
Info执行的SQL语句。

我们主要看589和585。

585的State:checking permissions,表示在检查权限。Wait:czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739,表示等待锁czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739。

589的Lock:czg;czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739;czg.testtab580D5F90-B287-4199-B057-E6FBD44B5BFA;czg.testtab6ef6f8a9-87f0-4d6c-8043-899367d02df3,表示持有锁:

(1)czg

(2)czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739(和585等待的锁一样)

(3)czg.testtab580D5F90-B287-4199-B057-E6FBD44B5BFA

(4)czg.testtab6ef6f8a9-87f0-4d6c-8043-899367d02df3

说明589一直占有锁,未释放,导致585一直等待。再看589的Command:Sleep,表示为空闲状态。那我们可以断定是589没有执行提交操作,导致的锁等待。如果589是Query,那就有可能是执行慢,导致其他会话卡住。具体情况具体分析吧。

8、会话三查看锁信息

[gbase@czg2 ~]$ gcadmin showlock+========================================================================================================================+|                                                     GCLUSTER LOCK                                                      |+========================================================================================================================++-----------------------------------------------+--------------+------------------------------+--------------+------+----+|                   Lock name                   |    owner     |           content            | create time  |orphan|type|+-----------------------------------------------+--------------+------------------------------+--------------+------+----+|                      czg                      |192.168.142.12|LOCK_Reserved: 589(LWP:95886) |20231109105742|FALSE | S  |+-----------------------------------------------+--------------+------------------------------+--------------+------+----+|                      czg                      |192.168.142.12|LOCK_Reserved: 585(LWP:94012) |20231109161549|FALSE | S  |+-----------------------------------------------+--------------+------------------------------+--------------+------+----+|czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739|192.168.142.12|LOCK_Rebalance: 589(LWP:95886)|20231109142557|FALSE | E  |+-----------------------------------------------+--------------+------------------------------+--------------+------+----+|czg.testtab580d5f90-b287-4199-b057-e6fbd44b5bfa|192.168.142.12|  LOCK_DMLEX: 589(LWP:95886)  |20231109142557|FALSE | E  |+-----------------------------------------------+--------------+------------------------------+--------------+------+----+|czg.testtab6ef6f8a9-87f0-4d6c-8043-899367d02df3|192.168.142.12|  LOCK_DMLEX: 589(LWP:95886)  |20231109142557|FALSE | E  |+-----------------------------------------------+--------------+------------------------------+--------------+------+----+Total : 5
参数描述
Lock name锁的名称。
owner持有锁的节点IP。
content第一个数字是Id连接编号。
第二个数字是线程号。
create time锁创建日期。
orphan是否为孤儿锁。
typeS:共享锁。E:排他锁。

9、解决方法

(1)方法一:589对应的会话进行提交。

(2)方法二:开一个新会话kill 589。

(3)方法三:通过官方的python gcware接口去释放。

查看锁demo

#encoding:utf-8
import gcwareSUCCESS_FLAG = 1
FAIL_FLAG    = 0def ReleaseLock(TableName, LockId):if gcware.unlocktableforce(TableName,LockId) != 0:print("ReleaseLock : OK, TableName : %s, LockId : %s"%(TableName,LockId))return SUCCESS_FLAGelse:print("ReleaseLock : Fail, TableName : %s, LockId : %s"%(TableName,LockId))return FAIL_FLAGif __name__ == '__main__':for i in gcware.getlocks():for j in i:print("%-20s : %s"%(j,i[j]))print("=========================")

TableName就是下面的name,LockId就是下面的lockid。大家可以自己调用ReleaseLock尝试释放锁,建议大家不要用gcware接口。

运行效果

create time          : 20231109105742
name                 : czg
lockid               : 9114802754034860036
orphan               : FALSE
content              : LOCK_Reserved: 589(LWP:95886)
owner                : 192.168.142.12
type                 : SHARE
=========================
create time          : 20231109161549
name                 : czg
lockid               : 171802565900500995
orphan               : FALSE
content              : LOCK_Reserved: 585(LWP:94012)
owner                : 192.168.142.12
type                 : SHARE
=========================
create time          : 20231109142557
name                 : czg.testtab02076d53-3c94-4aa4-b020-b9df0c802739
lockid               : 8869015163097841664
orphan               : FALSE
content              : LOCK_Rebalance: 589(LWP:95886)
owner                : 192.168.142.12
type                 : EXCLUSIVE
=========================
create time          : 20231109142557
name                 : czg.testtab580d5f90-b287-4199-b057-e6fbd44b5bfa
lockid               : 2937847747467804673
orphan               : FALSE
content              : LOCK_DMLEX: 589(LWP:95886)
owner                : 192.168.142.12
type                 : EXCLUSIVE
=========================
create time          : 20231109142557
name                 : czg.testtab6ef6f8a9-87f0-4d6c-8043-899367d02df3
lockid               : 6284283086788100098
orphan               : FALSE
content              : LOCK_DMLEX: 589(LWP:95886)
owner                : 192.168.142.12
type                 : EXCLUSIVE
=========================

10、会话一插入数据不提交

gbase> insert into czg.testtab values(1,1.1,'asdasd','zxj','dfd','asd','1995-09-18','2023-08-03 09:24:00',1.00);
Query OK, 1 row affected (Elapsed: 00:00:00.14)

11、会话二更新报错

gbase> update czg.testtab set d = 'JJLGG' where a = 2;
ERROR 1727 (HY000): try to lock in gcluster failed: (GBA-02LO-0002) Can't lock file(already exists).

三、总结

序号描述
1Gbase8a锁支持粒度为表级。
2并发更新或删除同一张表时,其中一个会话执行较慢,导致其他会话等待。
3会话一更新或删除A表,会话二插入A表,无论会话一二的执行顺序,都会提示报错:ERROR 1727 (HY000): try to lock in gcluster failed: (GBA-02LO-0002) Can't lock file(already exists).。

http://www.hkea.cn/news/710138/

相关文章:

  • 2022网页设计尺寸规范和要求怎么做seo关键词优化
  • 北京大学两学一做网站十大收益最好的自媒体平台
  • 网站开发服务费企业网站建设的一般要素
  • 台州企业网站制作公司郴州网站推广
  • 如何做移动端网站邮件营销
  • 网站制作佛山crm管理系统
  • 网站综合营销方案设计网页设计教程
  • 东莞做网站制作宁波技术好的企业网站制作
  • 广州做网站公司哪家好如何注册一个网站
  • 网站备案协议书互联网营销师证书含金量
  • 广州企业网站建设报价免费推广网站大全
  • 宁波网站排名怎么提交网址让百度收录
  • 杭州 手机网站建设活动营销
  • 加网络网站建设工作室做一个企业网站大概需要多少钱
  • 张家港优化网站seo百度网盘下载
  • 烟台有没有做网站网站安全
  • 网站建设与制作设计公司惠州seo代理商
  • 东营新闻网今日头条常州网站seo
  • 东莞全网合一网站黄页引流推广网站软件免费
  • wordpress的数据库在那里百度seo如何快速排名
  • wordpress手机客服代码免费seo快速排名工具
  • web网站开发作品关键词歌词图片
  • 汕头行业网站seo培训公司
  • 网站背景图片优化关键词歌曲免费听
  • 郑州做网站哪家专业我要发布信息
  • 西安做网站优化的公司石家庄seo按天扣费
  • 2022年西安封城通知自动app优化下载
  • 无锡做网站哪家公司好一个公司可以做几个百度推广
  • 专题网站建设工作关键词林俊杰无损下载
  • adobe 网站开发软件软文写作兼职