mdl

K3CLOUD常用数据表

本小妞迷上赌 提交于 2021-01-14 10:15:10
一、数据库查询常用表 --查询数据表 select * from ( select convert(varchar(4000),t1.FKERNELXML.query('//TableName')) as 'Item',t1.FKERNELXML,t2.FNAME, t1.* from T_META_OBJECTTYPE t1 left join T_META_OBJECTTYPE_L t2 on t1.FID=t2.FID --where t1.fid='SAL_SaleOrder' ) t where Item<>'' and FNAME like '%收料通知单%' 通过表T_META_OBJECTTYPE的FKERNNELXML字段进行xml查找 库存状态列表 select t1.FSTOCKSTATUSID,t1.FNUMBER,t2.FNAME from T_BD_STOCKSTATUS t1 left join T_BD_STOCKSTATUS_L t2 on t1.FSTOCKSTATUSID=t2.FSTOCKSTATUSID 单据类型 select t1.FBILLTYPEID,t1.FNUMBER,t2.FNAME from T_BAS_BILLTYPE t1 left join T_BAS_BILLTYPE_L t2 on t1.FBILLTYPEID=t2

slave开启MTS时执行mysqldump引发死锁案例

空扰寡人 提交于 2020-12-16 06:57:48
作者:八怪(高鹏) 中亦科技数据库专家 原文:https://www.jianshu.com/p/39db1bb5041c 一、问题来源 这是一位客户的提供的案例如下,show processlist截图如下: 出现这种问题除非手动干预,杀掉FTWRL的session,复制线程方可以继续进行。版本社区版5.7.26。 二、堵塞图 如果分析上面的堵塞可以画图如下: 三、关于woker线程w1和w3的等待 这里我们需要重点关注参数 slave_preserve_commit_order ,在我将要出版的《深入理解MySQL主从原理》一书中做了详细描述,这里简单说明如下: 这个参数是为了保证从库 group commit 中的每个工作线程的事务提交顺序和主库事务执行的顺序一致。它在 order commit 的flush阶段前就生效。工作线程的事务在等待获取自己提交权限期间会堵塞在状态 ‘Waiting for preceding transaction to commit’ 下。 但是我们知道在order commit的flush之前就会获取 MDL_key::COMMIT。因此这里w1和w3工作线程正在等待自己提交权限的到来,但是遗憾的是w2的事务由于不能获取 global read lock 而迟迟不能提交。同时它们堵塞了FTWRL。 四、关于FTWRL的等待 这个我也多次描述过了

会话和锁信息查询视图 | 全方位认识 sys 系统库

▼魔方 西西 提交于 2020-12-03 01:15:49
在上一篇 《等待事件统计视图 | 全方位认识 sys 系统库》 中,我们介绍了sys 系统库中的等待事件统计视图,本期的内容先给大家介绍会话信息和锁等待信息查询视图,通过这些视图我们可以清晰地知道每个会话正在做什么事情,是否存在锁等待。下面请跟随我们一起开始 sys 系统库的系统学习之旅吧~ PS:由于本文中所提及的视图功能的特殊性(DBA日常工作中除了排查慢SQL之外,另外一个可能需要占用大量精力的地方可能就是锁问题分析),所以下文中会列出相应视图中的select语句文本,以便大家更直观地学习它们。 01 innodb_lock_waits,x$innodb_lock_waits InnoDB当前锁等待信息,默认按照发生锁等待的开始时间升序排序--wait_started字段即innodb_trx表的trx_wait_started字段。数据来源:information_schema的innodb_trx、innodb_locks、innodb_lock_waits(注:在8.0及其之后的版本中,该视图的信息来源为information_schema的innodb_trx、performance_schema的data_locks和data_lock_waits) 视图查询语句文本 # 不带x$前缀的视图的查询语句 SELECT r.trx_wait_started AS

电脑蓝屏代码

若如初见. 提交于 2020-10-28 15:23:54
0x00000001 蓝屏意味着APC状态指数存在不匹配。蓝屏错误代码0x00000001也可能在同一蓝色屏幕上显示“APC_INDEX_MISMATCH”。 0x00000002 这种蓝屏并不常见。蓝屏错误代码0x00000002也可能在同一蓝色屏幕上显示“DEVICE_QUEUE_NOT_BUSY”。 0x00000003 这种蓝屏并不常见。蓝屏错误代码0x00000003也可能在同一蓝屏上显示“INVALID_AFFINITY_SET”。 0x00000004 这种蓝屏并不常见。蓝屏错误代码0x00000004也可能在同一蓝色屏幕上显示“INVALID_DATA_ACCESS_TRAP”。 0x00000005 这种蓝屏并不常见。蓝屏错误代码0x00000005也可能在同一蓝屏上显示“INVALID_PROCESS_ATTACH_ATTEMPT”。 0x00000006 这种蓝屏并不常见。蓝屏错误代码0x00000006也可能在同一蓝屏上显示“INVALID_PROCESS_DETACH_ATTEMPT”。 0x00000007 这种蓝屏并不常见。蓝屏错误代码0x00000007也可能在同一蓝屏上显示“INVALID_SOFTWARE_INTERRUPT”。 0x00000008 这种蓝屏并不常见。蓝屏错误代码0x00000008也可能在同一蓝屏上显示“IRQL_NOT

MySQL 入门(4):锁

a 夏天 提交于 2020-08-17 03:53:39
MySQL 入门(4):锁 摘要 在这篇文章中,我将从上一篇的一个小例子开始,跟你介绍一下InnoDB中的行锁。 在这里,会涉及到一个概念:两阶段加锁协议。 之后,我会介绍行锁中的S锁和X锁,以及这两种锁的作用。 但是我们会发现仅仅有行锁是不能解决幻读问题的,于是我会用例子的方式跟你介绍各种间隙锁。 最后,我会聊一聊粒度更大的表级锁和库锁。 1 行锁 在上一篇的文章中,我们用了这个具体的例子来解释MVCC: 假设我们调换一下T5和T6: 此时,T5是没有办法执行的。 原因是这样的:InnoDB在更新一行的时候,需要先获取这一行的行锁。 但是,当一条语句获取了行锁之后,不是这行语句执行完毕就能释放锁,而是要等到这个事务执行完毕,才会释放锁。 这里涉及到了两阶段加锁协议:它规定事务的加锁和解锁分为两个独立的阶段,加锁阶段只能加锁不能解锁,一旦开始解锁,则进入解锁阶段,不能再加锁。 然后我们再来说说共享锁(S锁,读锁)和排他锁(X锁,写锁)。 对于共享锁来说,如果一个事务获取了某一行的共享锁,则这个事务只能读这一行数据,而不能修改,并且其他事务也可以获取这一行数据的共享锁,读取这一行的数据,同样不能修改数据。 对于排它锁,只能被某一个事务获取。并且在获取排它锁之前,这一行数据上不能存在共享锁。一旦某一个事务获取了这一行的排它锁,那么只有这一个事务可以对这一行数据进行读写操作

Mysql:从一个USE DB堵塞故障展开的探讨

你。 提交于 2020-08-16 09:11:27
感谢 lixiaxin200319 http://blog.itpub.net/21582653/viewspace-2149061/ 原创水平有限如有误请指出谢谢! 一、故障描述 今天一个朋友遇到数据库遇到一个严重的故障,故障环境如下: MYSQL 5.6.16 RR隔离级别 GITD关闭 表现如下: use db不能进入数据库 show table status不能查询到表信息 schema.processlist来看有大量的 Waiting for table metadata lock 情急之下他杀掉了一大堆线程后发现还是不能恢复,最后杀掉了一个没有及时提交的事物才恢复正常。也仅仅留下了如下图的一个截图: image.png 二、故障信息提取 还是回到上图,我们可以归纳一下语句类型如下: 1、CREATE TABLE A AS SELECT B 其STATE为 sending data 2、DROP TABLE A 其STATE为 Waiting for table metadata lock 3、SELECT * FROM A 其STATE为 Waiting for table metadata lock 4、 SHOW TABLE STATUS[like 'A'] 其STATE为 Waiting for table metadata lock 三、信息分析

如何在Ruby on Rails迁移中重命名数据库列?

心不动则不痛 提交于 2020-08-15 15:26:37
问题: I wrongly named a column hased_password instead of hashed_password . 我错误地将列命名为 hased_password 而不是 hashed_password 。 How do I update the database schema, using migration to rename this column? 如何使用迁移重命名此列来更新数据库架构? 解决方案: 参考一: https://stackoom.com/question/8MDL/如何在Ruby-on-Rails迁移中重命名数据库列 参考二: https://oldbug.net/q/8MDL/How-can-I-rename-a-database-column-in-a-Ruby-on-Rails-migration 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4480378

转MDL中数据读取

别来无恙 提交于 2020-08-13 06:35:54
http://yexin218.iteye.com/blog/532184 澄清一个误区:每个Net_BuFFER包含的是一个linked-list的MDL,而不仅仅是一个MDL。所以你要访问Net_BuFFER 中数据,你需要在代码中根据需要的offset遍历MDL链表。比如第一个MDL只有14byte有数据(忽略unused data,backfill..),那么它就包含了EtherNet Header,那么下一个可能包含IP Header,再下一个包含TCP header,最后一个(或者多个)包含了TCP数据。至于那些数据是否真的可以完整放在某个MDL中,比如Ethernet Header是否就放在第一个中,而不会跨越第二个MDL,那就取决于NIC容量~ 如果你得到一个MDL,那么你可以遍历的道,Ethernet header->Layer 3 header-->Layer 4 header(if available),假如 Net_BuFFER->next(应该是pMDL->next吧) 不是NULL,那么要检查下是什么样的Layer3协议。比如它可能是ARP. 现在讨论下如何访问会更加简单些,了解下基础知识。 假设一个MDL,它描述了事实上是一个连续的内存区域。其包含了一连串的page frame。到第一个page的‘距离’可用MmGetMdlByteOffset()得到

Oracle数据反向导入到pdm

雨燕双飞 提交于 2020-08-11 02:46:15
一、前置条件 已存在oracle数据库 已安装PowerDesigner数据库建模工具 二、在PowerDesigner中创建jdbc数据库连接 点击 “File>Reverse Engineer>Database” 选择数据源,如果之前没有创建则点击"Configure"进行配置 三、开始导入 选择要导入的表 四、设置 使name显示中文名称,点击 "Tools>Excute Commands>Edit/Run Scripts ",执行以下脚本 Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get the current active model Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "There is no current Model " ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then MsgBox "The current model is not an Physical Data model. " Else ProcessFolder mdl End If Private sub ProcessFolder(folder

Ghost-无损DDL

爱⌒轻易说出口 提交于 2020-08-07 17:31:04
目录 一、什么是DDL? 二、表级锁和元数据锁 2.1、什么是表锁? 2.2、什么是MDL? 三、什么是无损DDL? 四、DDL重建表 Mysql5.5之前重建表 Mysql5.6之后重建表 五、ghost工具源码梳理 5.1、工作模式 5.1.1 主从模式a 5.1.2 主主模式b 5.1.3 migrate/test on relica 5.1、前置性检查 5.2、创建streamer监听binlog 5.3、创建xxx_ghc表,xxx_gho表。 5.4 开始迁移数据 5.5 cut-over 5.6、如何保证数据一致性 5.6.1、两种情况 5.6.2、对于insert 5.6.3 、对于update 5.6.4、对于delete 九、ghost的暂停、继续、限流、终止 十、写有中文注释的ghost源码项目 一、什么是DDL? DDL全称:Data Definition Language 它包含三个主要的关键字:create、drop、alter 操作 statement 创建数据库 create database 删除数据库 drop database 修改数据库 alter database 创建表 create table 删除表 drop table 修改表 alter table 创建索引 create index 删除索引 drop index 二