澳门美高梅游戏官方网站 > 澳门美高梅游戏 > Mysql索引使用,sqlserver系统函数教程分享

原标题:Mysql索引使用,sqlserver系统函数教程分享

浏览次数:193 时间:2019-10-23

草稿箱四十篇小说未有发表,零零碎碎记录着曾经认为还不易的知识点。稍作收拾公布,方便将来翻看。2016-11-26 18:04 整理,未揭露

前言

最近尝试在阿里云RDS与ECS自建库之间搭建主从复制,主要是想用于备份数据,所以对于同步一致性要求不是很高.模拟了几次,遇到的一些坑记录在这里,使用的是基于GTID的主从服务,关于GTID:
MySQL GTID是在传统的mysql主从复制的基础之上演化而来的产物,即通过UUID加上事务ID的方式来确保每一个事物的唯一性。这样的操作方式使得我们不再需要关心所谓的log_file和log_Pos,只是简单的告诉从库,从哪个服务器上去找主库就OK了。简化了主从的搭建以及failover的过程,同时比传统的复制更加安全可靠。由于GTID是连续没有空洞的,因此主从库出现数据冲突时,可以通过注入空事物的方式进行跳过

MySQL5.7杀手级新特色爬山涉水GTID原理与实战

  mysql在前头写过壹遍,那时是小编正要步向博客,明天介绍一下mysql的python交互,当然前面会把mysql基本概述一下。

摘要: 下文采摘了sqlserver函数教程,为每贰个函数都实行了相关比如表明,

何以要有目录?就像为何书要有目录相仿。

1、模拟死锁

第生机勃勃成立测量检验数据,然后展开须要的追踪,最后实施五个语句模拟死锁。

现实经过如下:

 

正如所示:

目录是怎么样东西?和目录相像成为书的后生可畏有的。

1.1、创造测量检验数据

创设测验数据表、创立索引

图片 1图片 2

create table testklup
(
clskey int not null,
nlskey int not null,
cont1  int not null,
cont2  char(3000)
)

create unique clustered index inx_cls on testklup(clskey)

create unique nonclustered index inx_nlcs  on testklup(nlskey) include(cont1)

insert into testklup select 1,1,100,'aaa'
insert into testklup select 2,2,200,'bbb'
insert into testklup select 3,3,300,'ccc'

View Code

在测量试验以前,先张开监视死锁的按钮1222,让SQL Server境遇死锁时,在Errorlog文件里打字与印刷出死锁的详尽内容。

DBCC TRACEON(1222,-1)

也得以同有的时候间利用SQL Trace来捕捉和死锁相关的新闻。首要选用事件Locks->Daedlock graph

1 盘算干活,申请Ali云GL450DS

a 登录 RDS 控制台,选择目标实例。
b 配置从实例读取数据使用的只读账号和授权数据库。
c 将从实例的 IP 地址加入主实例的 IP 白名单中 [同一地域 则可以内网IP] 
d 登录主实例 [如果外部无法登录 白名单添加0.0.0.0/0][或者提工单]
e 查询主实例的 server-id [show variables like '%server_id%';] # 记下这个id,不能与slave的相同
  目录:
一、命令脚本(mysql)
    1、基本命令
    2、数据库操作命令
    3、表操作命令
    4、数据操作命令
    5、查
    6、关联
二、python交互
    1、数据库连接
    2、创建数据库表
    3、插入数据
    4、更新数据库
    5、删除数据
    6、数据库查询
三、mysql封装(方便使用)
    1、python封装的my_sql类
    2、案例(调用my_sql类)

sqlserver聚合函数科目:
mssql sqlserver avg聚合函数使用简单介绍
mssql sqlserver CHECKSUM_AGG聚合函数使用简要介绍
mssql sqlserver count聚合函数使用简介
mssql sqlserver count_big聚合函数使用简要介绍
mssql sqlserver grouping聚合函数使用简单介绍
mssql sqlserver grouping_id聚合函数使用简要介绍
mssql sqlserver max及min聚合函数使用简单介绍
mssql sqlserver stdev及stdevp聚合函数使用简要介绍
mssql sqlserver sum聚合函数使用简要介绍
mssql sqlserver var及varp聚合函数使用简要介绍
sqlserver深入分析函数教程:
mssql sqlserver CUME_DIST解析函数使用简要介绍
mssql sqlserver CUME_DIST深入分析函数原理说明
mssql sqlserver FIRST_VALUE LAST_VALUE分析函数使用简单介绍
mssql sqlserver LAG lead分析函数使用简要介绍
mssql sqlserver PERCENTILE_CONT深入分析函数使用简要介绍
mssql sqlserver PERCENTILE_DISC分析函数使用简要介绍
mssql sqlserver PERCENT_RANK分析函数使用简单介绍
sqlserver系统全局变量教程:
mssql sqlserver @@DBTS全局变量简要介绍
mssql sqlserver @@LANGID全局变量简单介绍
mssql sqlserver @@LOCK_TIMEOUT全局变量简单介绍
mssql sqlserver @@MAX_CONNECTIONS全局变量简单介绍
mssql sqlserver @@MAX_PRECISION全局变量简要介绍
mssql sqlserver @@NESTLEVEL全局变量简单介绍
mssql sqlserver @@REMSE冠道VE奥迪Q3全局变量简单介绍
mssql sqlserver @@SECRUISERVEENCORENAME全局变量简要介绍
mssql sqlserver @@SEENCOREVICENAME全局变量简要介绍
mssql sqlserver @@SPID全局变量简要介绍
mssql sqlserver @@VE奔驰G级SION全局变量简单介绍
sqlserver数值类型转变函数教程:
mssql sqlserver cast数值调换函数用法简要介绍
mssql sqlserver cast及convert数值转变函数用法简要介绍
mssql sqlserver parse数值调换函数用法简要介绍
mssql sqlserver TRY_CAST数值调换函数用法简单介绍
mssql sqlserver TRY_CONVERT数值调换函数用法简单介绍
mssql sqlserver TRY_PAEnclaveSE数值转变函数用法简要介绍
sqlserver循环相关类函数教程:
mssql sqlserver @@CURSOR_ROWS循环相关类函数用法简要介绍
mssql sqlserver @@FETCH_STATUS循环相关类函数用法简要介绍
mssql sqlserver CURSOR_STATUS循环相关类函数用法简要介绍
mssql sqlserver_sql流程调节语句while循环关键字用法简要介绍
mssql sqlserver 模拟for循环的写法
mssql sqlserver 遍历循环的新议程
sqlserver数据类型相关函数教程:
mssql sqlserver DATALENGTH数据类型相关函数用法简单介绍
mssql sqlserver IDENT_CU途胜RENT数据类型相关函数用法简要介绍
mssql sqlserver IDENT_INC君越数据类型相关函数用法简要介绍
mssql sqlserver IDENT_SEED数据类型相关函数用法简单介绍
mssql sqlserver IDENTITY数据类型相关函数用法简单介绍
mssql sqlserver SQL_VARIANT_PROPERTY数据类型相关函数用法简要介绍
sqlserver 时间及日期相关函数教程:
mssql sqlserver @@DATEFICRUISERST时间及日期相关函数用法简要介绍
mssql sqlserver CURRENT_TIMESTAMP时间及日期相关函数用法简单介绍
mssql sqlserver DATEADD时间及日期相关函数用法简单介绍
mssql sqlserver DATEDIFF时间及日期相关函数用法简要介绍
mssql sqlserver DATEDIFF_BIG时间及日期相关函数用法简要介绍
mssql sqlserver DATEFROMPARTS时间及日期相关函数用法简单介绍
mssql sqlserver DATENAME时间及日期相关函数用法简要介绍
mssql sqlserver DATEPART时间及日期相关函数用法简单介绍
mssql sqlserver DATETIME2FROMPARTS时间及日期相关函数用法简要介绍
mssql sqlserver DATETIMEFROMPARTS时间及日期相关函数用法简要介绍
mssql sqlserver DATETIMEOFFSETFROMPARTS时间及日期相关函数用法简单介绍
mssql sqlserver DAY时间及日期相关函数用法简单介绍
mssql sqlserver EOMONTH时间及日期相关函数用法简单介绍
mssql sqlserver GETDATE时间及日期相关函数用法简单介绍
mssql sqlserver GETUTCDATE时间及日期相关函数用法简要介绍
mssql sqlserver ISDATE时间及日期相关函数用法简单介绍
mssql sqlserver MONTH时间及日期相关函数用法简单介绍
mssql sqlserver SMALLDATETIMEFROMPARTS时间及日期相关函数用法简单介绍
mssql sqlserver SWITCHOFFSET时间及日期相关函数用法简要介绍
mssql sqlserver SYSDATETIME时间及日期相关函数用法简介
mssql sqlserver SYSDATETIMEOFFSET时间及日期相关函数用法简单介绍
mssql sqlserver SYSUTCDATETIME时间及日期相关函数用法简单介绍
mssql sqlserver TIMEFROMPARTS时间及日期相关函数用法简要介绍
mssql sqlserver TODATETIMEOFFSET时间及日期相关函数用法简要介绍
mssql sqlserver YEA本田UR-V时间及日期相关函数用法简单介绍
mssql sql server 常用日期调换方法分享 (convert datetime)
sqlserver JSON相关函数教程:
mssql sqlserver ISJSON相关函数用法简单介绍
sqlserver 数学函数教程:
mssql sqlserver ABS数学函数用法简要介绍
mssql sqlserver ACOS数学函数用法简单介绍
mssql sqlserver ASIN数学函数用法简单介绍
mssql sqlserver ATAN数学函数用法简要介绍
mssql sqlserver ATN2数学函数用法简要介绍
mssql sqlserver CEILING数学函数用法简单介绍
mssql sqlserver COS数学函数用法简要介绍
Mysql索引使用,sqlserver系统函数教程分享。mssql sqlserver COT数学函数用法简单介绍
mssql sqlserver DEGREES数学函数用法简要介绍
mssql sqlserver EXP数学函数用法简要介绍
mssql sqlserver FLOOTiguan数学函数用法简单介绍
mssql sqlserver LOG数学函数用法简单介绍
mssql sqlserver LOG10数学函数用法简要介绍
mssql sqlserver PI数学函数用法简要介绍
mssql sqlserver POWE本田UR-V数学函数用法简要介绍
mssql sqlserver RADIANS数学函数用法简要介绍
mssql sqlserver RAND数学函数用法简要介绍
mssql sqlserver ROUND数学函数用法简单介绍
mssql sqlserver SIGN数学函数用法简要介绍
mssql sqlserver SIN数学函数用法简单介绍
mssql sqlserver SQRT数学函数用法简单介绍
mssql sqlserver SQUARE数学函数用法简要介绍
mssql sqlserver TAN数学函数用法简单介绍
sqlserver 逻辑函数教程:
mssql sqlserver CHOOSE逻辑函数用法简介
mssql sqlserver IIF逻辑函数用法简单介绍
sqlserver 元数据教程:
mssql sqlserver @@PROCID元数据用法简要介绍
mssql sqlserver APP_NAME元数据用法简要介绍
mssql sqlserver ASSEMBLYPROPERTY元数据用法简要介绍
mssql sqlserver COL_LENGTH COL_NAME COLUMNPROPERTY元数据用法简要介绍
mssql sqlserver DATABASE_PRINCIPAL_ID元数据用法简单介绍
mssql sqlserver DATABASEPROPERTYEX元数据用法简单介绍
mssql sqlserver DB_ID DB_NAME元数据用法简要介绍
mssql sqlserver FILE_ID元数据用法简单介绍
mssql sqlserver FILE_IDEX元数据用法简单介绍
mssql sqlserver FILE_NAME元数据用法简单介绍
mssql sqlserver FILEGROUP_ID元数据用法简要介绍
mssql sqlserver FILEGROUP_NAME元数据用法简单介绍
mssql sqlserver FILEGROUPPROPERTY元数据用法简单介绍
mssql sqlserver FILEPROPERTY元数据用法简单介绍
mssql sqlserver FULLTEXTCATALOGPROPERTY元数据用法简要介绍
mssql sqlserver FULLTEXTSE君越VICEPROPERTY元数据用法简单介绍
mssql sqlserver INDEX_COL元数据用法简要介绍
mssql sqlserver INDEXKEY_PROPERTY元数据用法简介
mssql sqlserver INDEXPROPERTY元数据用法简单介绍
mssql sqlserver OBJECT_DEFINITION元数据用法简单介绍
mssql sqlserver OBJECT_ID元数据用法简要介绍
mssql sqlserver OBJECT_NAME元数据用法简要介绍
mssql sqlserver OBJECT_SCHEMA_NAME元数据用法简要介绍
mssql sqlserver ORIGINAL_DB_NAME元数据用法简要介绍
mssql sqlserver PAEnclaveSENAME元数据用法简要介绍
mssql sqlserver SCHEMA_ID元数据用法简单介绍
mssql sqlserver SCHEMA_NAME元数据用法简要介绍
mssql sqlserver SCOPE_IDENTITY元数据用法简要介绍
mssql sqlserver SECRUISERVERPROPERTY元数据用法简单介绍
mssql sqlserver STATS_DATE元数据用法简单介绍
mssql sqlserver TYPE_ID元数据用法简单介绍
mssql sqlserver TYPE_NAME元数据用法简介
mssql sqlserver TYPEPROPERTY元数据用法简单介绍
sqlserver 排行函数教程:
mssql sqlserver 分组排序函数row_number、rank、dense_rank用法简要介绍及说明
row_number() rank() dense_rank() 排名函数的用途及界别
sqlserver 复制函数教程:
mssql sqlserver PUBLISHINGSE陆风X8VE奇骏NAME 关键字成效表达
sqlserver 集合获取函数:
mssql sqlserver OPENDATASOURCE会集获取函数简单介绍
mssql sqlserver OPENJSON会集获取函数简单介绍
mssql sqlserver OPENQUE汉兰达Y集结获取函数简要介绍
mssql sqlserver OPENROWSET集结获取函数简单介绍
mssql sqlserver OPENXML集结获取函数简要介绍
sqlserver字符串函数教程:
mssql sqlserver ASCII字符串函数简要介绍
mssql sqlserver CHALAND字符串函数简单介绍
mssql sqlserver CHAEnclaveINDEX字符串函数简介
mssql sqlserver CONCAT字符串函数简单介绍
mssql sqlserver CONCAT_WS字符串函数简要介绍
mssql sqlserver DIFFERENCE字符串函数简单介绍
mssql sqlserver FORMAT字符串函数简单介绍
mssql sqlserver LEFT字符串函数简单介绍
mssql sqlserver LEN字符串函数简要介绍
mssql sqlserver LOWE汉兰达字符串函数简单介绍
mssql sqlserver LTSportageIM字符串函数简单介绍
mssql sqlserver NCHA中华V字符串函数简要介绍
mssql sqlserver PATINDEX字符串函数简单介绍
mssql sqlserver QUOTENAME字符串函数简要介绍
mssql sqlserver REPLACE字符串函数简单介绍
mssql sqlserver REPLICATE字符串函数简单介绍
mssql sqlserver REVERubiconSE字符串函数简单介绍
mssql sqlserver EvoqueIGHT字符串函数简单介绍
mssql sqlserver RTEscortIM字符串函数简单介绍
mssql sqlserver SOUNDEX字符串函数简单介绍
mssql sqlserver SPACE字符串函数简要介绍
mssql sqlserver STTiguan字符串函数简要介绍
mssql sqlserver错误修复-“string_split无效的指标名称”
mssql sqlserver STUFF字符串函数简单介绍
mssql sqlserver SUBSTENVISIONING字符串函数简要介绍
mssql sqlserver UNICODE字符串函数简要介绍
mssql sqlserver UPPEPAJERO字符串函数简要介绍
sqlserver系统函数教程:
mssql sqlserver $PARTITION系统函数简要介绍
mssql sqlserver @@E福睿斯RO奥迪Q5系统函数简要介绍
mssql sqlserver @@IDENTITY系统函数简介
mssql sqlserver @@PACK_RECEIVED系统函数简单介绍
mssql sqlserver @@ROWCOUNT系统函数简要介绍
mssql sqlserver @@TRANCOUNT系统函数简要介绍
mssql sqlserver BINARY_CHECKSUM系统函数简单介绍
mssql sqlserver CONNECTIONPROPERTY系统函数简单介绍
mssql sqlserver HOST_ID host_name系统函数简要介绍
mssql sqlserver ISNULL系统函数简要介绍
mssql sqlserver ISNUME翼虎IC系统函数简单介绍
mssql sqlserver NEWID系统函数简单介绍
mssql sqlserver ROWCOUNT_BIG系统函数简单介绍
sqlserver 系统计算函数:
mssql sqlserver @@CONNECTIONS系统总括函数简要介绍
mssql sqlserver @@CPU_BUSY系统总计函数简要介绍
mssql sqlserver @@IDLE系统总括函数简单介绍
mssql sqlserver @@IO_BUSY系统总结函数简要介绍
mssql sqlserver @@PACK_SENT系统总括函数简单介绍
mssql sqlserver @@PACKET_E途锐RO宝马X5S系统总计函数简单介绍
mssql sqlserver @@TIMETICKS系统总括函数简要介绍
mssql sqlserver @@TOTAL_EKoleosRO奥德赛S系统总结函数简单介绍
mssql sqlserver @@TOTAL_READ系统总结函数简要介绍
mssql sqlserver @@TOTAL_W奇骏ITE系统总括函数简要介绍

目录是由哪些组成的?原来的小说中颇负代表性的黄金时代部分。

1.2、开启死锁会话

开启三个会话举行退换

图片 3图片 4

----模拟高频update操作
declare @i int
set @i = 100
while 1=1
begin
    update testklup set cont1 = @i where clskey = 1  
    set @i = @i+1
end

View Code

敞开别的八个对话进行询问

图片 5图片 6

----模拟高频select操作
declare @cont2 char(3000)
while 1=1
begin
    select @cont2=cont2 from testklup where nlskey=1
end

View Code

两条语句一同运转,无须多久就能有内部八个连接境遇死锁的不当爬山涉水
图片 7

2 配置从实例 (slave)

 

 

2、剖析死锁

在拉开供给的追踪并抓获到死锁后,就足以对其开展解析。

急需先安装mysql5.6上述
https://segmentfault.com/n/1330000014166676#articleHeader8

--$ systemctl stop mysqld
--$ vim /etc/my.cnf

[mysqld]
server-id=1629281463  # 从实例的id,不能与master的id相同
port=3306
log-bin-trust-function-creators=1 # 设置为1,MySQL不会对创建存储函数实施限制

slave-skip-errors = 1032,1062,1007,1050  # 
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=/var/lib/mysql/mysql-bin
expire_logs_days=10 # 控制binlog日志文件保留时间
max_binlog_size=100M             
replicate-ignore-db=mysql   # 不需要同步的库            
replicate-ignore-db=information_schema    
replicate-ignore-db=performance_schema   
#GTID
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row     # 设置日志格式为row          
log-slave-updates=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

--$ systemctl start mysqld

龙腾虎跃、命令脚本

 

2.1、1222标志

这时候在Errorlog文件里,就能够看出下边包车型大巴输出

图片 8图片 9

spid16s     deadlock-list
spid16s      deadlock victim=process5f3000
spid16s       process-list
spid16s        process id=process5f3000 taskpriority=0 logused=0 waitresource=KEY: 8:72057594040025088 (8194443284a0) waittime=3300 ownerId=16991311 transactionname=SELECT lasttranstarted=2016-09-28T15:07:26.720 XDES=0xe291448 lockMode=S schedulerid=4 kpid=5748 status=suspended spid=57 sbid=0 ecid=0 priority=0 trancount=0 lastbatchstarted=2016-09-28T15:07:26.717 lastbatchcompleted=2016-09-28T15:02:29.293 clientapp=Microsoft SQL Server Management Studio - 查询 hostname=LIXUANYAO hostpid=7584 loginname=LIXUANYAOAdministrator isolationlevel=read committed (2) xactid=16991311 currentdb=8 lockTimeout=4294967295 clientoption1=671090784 clientoption2=390200
spid16s         executionStack
spid16s          frame procname=adhoc line=5 stmtstart=134 stmtend=232 sqlhandle=0x02000000c3289f0a3b1699a92a155bf6611d1a82d2dbd79a
spid16s     select @cont2=cont2 from testklup where nlskey=1     
spid16s         inputbuf
spid16s     ----模拟高频select操作
spid16s     declare @cont2 char(3000)
spid16s     while 1=1
spid16s     begin
spid16s         select @cont2=cont2 from testklup where nlskey=1
spid16s     end    
spid16s        process id=process5f3558 taskpriority=0 logused=228 waitresource=KEY: 8:72057594040090624 (8194443284a0) waittime=3300 ownerId=16991312 transactionname=UPDATE lasttranstarted=2016-09-28T15:07:26.720 XDES=0xe291860 lockMode=X schedulerid=4 kpid=7240 status=suspended spid=55 sbid=0 ecid=0 priority=0 trancount=2 lastbatchstarted=2016-09-28T15:07:24.843 lastbatchcompleted=2016-09-28T15:07:23.603 clientapp=Microsoft SQL Server Management Studio - 查询 hostname=LIXUANYAO hostpid=7584 loginname=LIXUANYAOAdministrator isolationlevel=read committed (2) xactid=16991312 currentdb=8 lockTimeout=4294967295 clientoption1=671090784 clientoption2=390200
spid16s         executionStack
spid16s          frame procname=adhoc line=6 stmtstart=140 stmtend=248 sqlhandle=0x0200000087695c3ac89c30f0ca649915b3e2cb1c22db1292
spid16s     update testklup set cont1 = @i where clskey = 1     
spid16s         inputbuf
spid16s     ----模拟高频update操作
spid16s     declare @i int
spid16s     set @i = 100
spid16s     while 1=1
spid16s     begin
spid16s         update testklup set cont1 = @i where clskey = 1  
spid16s         set @i = @i+1
spid16s     end    
spid16s       resource-list
spid16s        keylock hobtid=72057594040025088 dbid=8 objectname=Test.dbo.testklup indexname=inx_cls id=locka2bc5c0 mode=X associatedObjectId=72057594040025088
spid16s         owner-list
spid16s          owner id=process5f3558 mode=X
spid16s         waiter-list
spid16s          waiter id=process5f3000 mode=S requestType=wait
spid16s        keylock hobtid=72057594040090624 dbid=8 objectname=Test.dbo.testklup indexname=inx_nlcs id=locka2b8d80 mode=S associatedObjectId=72057594040090624
spid16s         owner-list
spid16s          owner id=process5f3000 mode=S
spid16s         waiter-list
spid16s          waiter id=process5f3558 mode=X requestType=wait

View Code

先来探访那一个输出是哪些看头,完毕下表跋山涉水的近义词

参与者 process5f3000 process5f3558
牺牲者  
SPID 57 55
连接背景

Microsoft SQL Server Management Studio - 查询

hostname=LIXUANYAO

hostpid=7584

loginname=LIXUANYAOAdministrator

Microsoft SQL Server Management Studio - 查询

hostname=LIXUANYAO

hostpid=7584

loginname=LIXUANYAOAdministrator

正在申请中资源/类型 KEY: 8:72057594040025088 (8194443284a0)/ Mode:S KEY: 8:72057594040090624 (8194443284a0)/ Mode:X
当前开启了几层事务 0 2
事务隔离级别 read committed (2) read committed (2)
当前正在运行的语句 select @cont2=cont2 from testklup where nlskey=1 update testklup set cont1 = @i where clskey = 1
当前正在运行的批处理

--模拟高频select操作

declare @cont2 char(3000)

while 1=1

begin

    select @cont2=cont2 from testklup where nlskey=1

end

--模拟高频update操作

declare @i int

set @i = 100

while 1=1

begin

    update testklup set cont1 = @i where clskey = 1  

    set @i = @i+1

end

死锁资源 资源2 资源1
资源类型 keylock keylock
具体内容

hobtid=72057594040090624 dbid=8 objectname=Test.dbo.testklup 

indexname=inx_nlcs id=locka2b8d80

hobtid=72057594040025088 dbid=8 objectname=Test.dbo.testklup 

indexname=inx_cls id=locka2bc5c0

持有资源进程/类型 process5f3000(spid57) / mode:S process5f3558(spid55) / mode:X
等待资源进程/类型 process5f3558(spid55) / mode:X process5f3000(spid57) / mode:S

3 查看是或不是展开了binlog,及采用的日志格式

>>> show variables like '%binlog_format%';

1. Row
日志中会记录成每一行数据被修改的形式,然后在 slave 端再对相同的数据进行修改。
2. Statement
每一条会修改数据的 SQL 都会记录到 master 的 bin-log 中。slave 在复制的时候 SQL 进程会解析成和原来 master 端执行过的相同的 SQL 再次执行

1、基本命令

目录有两种充足格局爬山涉水

2.2、死锁图

在追踪文件里,能够看来这般的死锁图形爬山涉水
图片 10
咱俩得以从追踪文件中,提取死锁事件数量,将死锁图保存为死锁XML文件(.xdl)。然后针对.xdl文件使用记事本张开,整个死锁的内容可想而知。

图片 11图片 12

/** 死锁事件数据是后期提取的,与原死锁图稍有不同 **/
-- 第一部分
<deadlock-list>
    <deadlock victim="process2b6b000">
        -- 第二部分
        <process-list>
            <process id="process2b6b000" taskpriority="0" logused="0" waitresource="KEY: 8:72057594040025088 (8194443284a0)" waittime="636" ownerId="758239" transactionname="SELECT" lasttranstarted="2016-10-26T09:59:00.300" XDES="0x5dba408" lockMode="S" schedulerid="1" kpid="4008" status="suspended" spid="57" sbid="0" ecid="0" priority="0" trancount="0" lastbatchstarted="2016-10-26T09:59:00.300" lastbatchcompleted="2016-10-26T09:58:55.807" clientapp="Microsoft SQL Server Management Studio - 查询" hostname="LIXUANYAO" hostpid="5872" loginname="LIXUANYAOAdministrator" isolationlevel="read committed (2)" xactid="758239" currentdb="8" lockTimeout="4294967295" clientoption1="671090784" clientoption2="390200">
                <executionStack>
                    <frame procname="adhoc" line="5" stmtstart="134" stmtend="232" sqlhandle="0x02000000c3289f0a3b1699a92a155bf6611d1a82d2dbd79a">
                        select @cont2=cont2 from testklup where nlskey=1     
                    </frame>
                </executionStack>
                <inputbuf>
                    ----模拟高频select操作
                    declare @cont2 char(3000)
                    while 1=1
                    begin
                        select @cont2=cont2 from testklup where nlskey=1
                    end    
                </inputbuf>
            </process>
            <process id="process2dc2aa8" taskpriority="0" logused="228" waitresource="KEY: 8:72057594040090624 (8194443284a0)" waittime="636" ownerId="758240" transactionname="UPDATE" lasttranstarted="2016-10-26T09:59:00.307" XDES="0x5bf6c08" lockMode="X" schedulerid="4" kpid="5832" status="suspended" spid="55" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2016-10-26T09:58:59.470" lastbatchcompleted="2016-10-26T09:58:58.073" lastattention="2016-10-26T09:58:58.073" clientapp="Microsoft SQL Server Management Studio - 查询" hostname="LIXUANYAO" hostpid="5872" loginname="LIXUANYAOAdministrator" isolationlevel="read committed (2)" xactid="758240" currentdb="8" lockTimeout="4294967295" clientoption1="671090784" clientoption2="390200">
                <executionStack>
                    <frame procname="adhoc" line="6" stmtstart="140" stmtend="248" sqlhandle="0x0200000087695c3ac89c30f0ca649915b3e2cb1c22db1292">
                        update testklup set cont1 = @i where clskey = 1     
                    </frame>
                </executionStack>
                <inputbuf>
                    ----模拟高频update操作
                    declare @i int
                    set @i = 100
                    while 1=1
                    begin
                        update testklup set cont1 = @i where clskey = 1  
                        set @i = @i+1
                    end    
                </inputbuf>
            </process>
        </process-list>
        -- 第三部分
        <resource-list>
            <keylock hobtid="72057594040025088" dbid="8" objectname="Test.dbo.testklup" indexname="inx_cls" id="locka49e800" mode="X" associatedObjectId="72057594040025088">
                <owner-list>
                    <owner id="process2dc2aa8" mode="X"/>
                </owner-list>
                <waiter-list>
                    <waiter id="process2b6b000" mode="S" requestType="wait"/>
                </waiter-list>
            </keylock>
            <keylock hobtid="72057594040090624" dbid="8" objectname="Test.dbo.testklup" indexname="inx_nlcs" id="locka47ab40" mode="S" associatedObjectId="72057594040090624">
                <owner-list>
                    <owner id="process2b6b000" mode="S"/>
                </owner-list>
                <waiter-list>
                    <waiter id="process2dc2aa8" mode="X" requestType="wait"/>
                </waiter-list>
            </keylock>
        </resource-list>
    </deadlock>
</deadlock-list>

View Code

SPID=57爬山涉水查询语句使用非集中索引inx_nlcs查找nlskey=1的记录,持有inx_nlcs上的S锁;由于索引未覆盖列cont2,需通过键查询获得cont2,于是提请inx_cls上的S锁。
SPID=55:更新语句使用聚焦索引inx_cls查找clskey=1的记录,持有inx_cls上的X锁;由于非集中索引inx_nlcs包涵列cont1,在更新表中著录后,还需纠正非集中索引中的数值,于是申请inx_ncls上的X锁。

图片 13图片 14

--hobtid
SELECT OBJECT_NAME(p.object_id) AS TableName,
       i.name AS IndexName
FROM sys.partitions AS p
     INNER JOIN sys.indexes AS i ON p.object_id = i.object_id
                                    AND p.index_id = i.index_id
WHERE p.hobt_id = 72057594040090624
--associatedObjectId
SELECT OBJECT_NAME(p.object_id) AS TableName,
       i.name AS IndexName
FROM sys.partitions AS p
     INNER JOIN sys.indexes AS i ON p.object_id = i.object_id
                                    AND p.index_id = i.index_id
WHERE p.partition_id = 72057594040025088

--case when type = 1|3 then container_id = sys.partitions.hobt_id
--case when type = 2 then container_id = sys.partitions.partition_id
SELECT * FROM sys.allocation_units WHERE container_id=72057594040090624
SELECT * FROM sys.allocation_units WHERE container_id=72057594040025088

SELECT %%lockres%% AS keyhashvalue,* FROM testklup WHERE %%lockres%% ='(8194443284a0)'

View Code

4 将主实例数据全量同步到从实例 (最佳下载ENCOREDS调整台的备份数据,不要mysqldump),详见过来云数据库MySQL的备份文件到自行建造数据库

# GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'IDENTIFIED BY 'passwd' WITH GRANT OPTION;
# CREATE DATABASE sakila DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# mysqldump -uname -hmasterhost.mysql.rds.aliyuncs.com -p --databases exampledb > exampledb.sql
# mysqldump -uname -p < exampledb.sql

  (1)运营服务

    • 以管理员身份运转cmd
    • net start 服务名称

  1. 在创制表的时候,直接在列名前边增添或在后头单独定义

3、Deadlocks-Example

SQL Server上的八个意想不到的Deadlock及其深入分析方法跋山涉水的近义词
SQL Server Deadlocks by Example:

5 登入从实例(slave),设置同步选项

>>> stop slave
# 注意!!! 当使用 MASTER_AUTO_POSITION 参数的时候,MASTER_LOG_FILE,MASTER_LOG_POS参数不能使用
>>> stop slave;
>>> change master to 
master_host='yourhost', 
master_port=3306, 
master_user='xxx', 
master_password='yyy',
master_auto_position = 1;
>>> start slave

  (2)结束服务

    • 以管理员身份运转cmd
    • net stop 服务名称

  2. 在表外为其创建

6 检查同步结果

>>> show slave statusG;
查看系统返回信息中 Slave_IO_Running 和 Slave_SQL_Running 的状态是否为 Yes

  (3)连接数据库

    • 格式跋山涉水的近义词mysql - u root - p ->输入密码

  3. 外场举行改造时增多

7 测量试验大旨同步

在主库上执行UPDATE INSERT等操作,然后在从库上查看是否同步了过来.我测试了几次,同步没出现什么问题,可能是由于数据量比较小.

  (4)退出登入(断开连接)

    • exit或quit

  

遇上的难点

ERROR 1776 (HY000): Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.
当使用 MASTER_AUTO_POSITION 参数的时候,MASTER_LOG_FILE,MASTER_LOG_POS参数不能使用

Last_SQL_Errno: 1007
Last_SQL_Error: Error 'Can't create database 'abu'; database exists' on query. Default database: 
解决方法:在从库的/etc/my.cnf里添加如下代码
[mysqld]
slave-skip-errors = 1032,1062,1007,1050

使用change master to master_host = 'xxx', master_port = xxx, master_user = 'xxx', master_password='xxx', master_auto_position = 12866271;
时报错:
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'


解决:
这个应该是由于你在主库上执行过purge binary logs,然后当从库change master的时候,却要执行那些事务。
你可以在主库上先查找哪些gtid被purge了。
show global variables like 'gtid_purged';
然后拿着这个value,去从库上依次
stop slave;
reset mater;
set global gtid_purged = 'xxx'; # xxx是你主库上查到的value。
start slave;
这样能跳过执行被主库已经purge的事务了。

  (5)查看版本(连接后得以举行)

    • select version()
CREATE TABLE user (
id key,
key index_id (id)
);
CREATE INDEX index_id ON user(id);
ALTER TABLE user ADD INDEX index_id(id);

本文由澳门美高梅游戏官方网站发布于澳门美高梅游戏,转载请注明出处:Mysql索引使用,sqlserver系统函数教程分享

关键词:

上一篇:【美高梅app】MySQL表结构改动,phpmyadmin登入远程

下一篇:没有了