MySQL VARCHAR类型字段到底可以定义多长
MySQL 单行行长最大是65535,不包含TEXT,BLOB类型。varchar 长度小于255时,需要额外使用1字节存储长度,大于255时,需要额外使用2字节存储长度。varchar 栏位如果不定义not null 时,默认null也需要占1字节lantin1字符集存储的每个值占1字节gbk字符集存储的每个值占2字节utf8字符集存储的每个值占3字节那么一行varchar到底可以定义多长呢?l
MySQL使用mysqldump+binlog完整恢复被删除的数据库(转)
(一)概述在日常MySQL数据库运维过程中,可能会遇到用户误删除数据,常见的误删除数据操作有:用户执行delete,因为条件不对,删除了不应该删除的数据(DML操作);用户执行update,因为条件不对,更新数据出错(DML操作);用户误删除表drop table(DDL操作);用户误清空表truncate(DDL操作);用户删除数据库drop database,跑路(DDL操作)…等这些情况虽然
MySQL checkpoint
MySQL innodb Checkpoint的设计和Oracle checkpoint类似,主要是为了缩短数据库恢复时间,buffer pool不够用时刷脏页到datafile,保证redo log file的循环使用而不会一直增大。MySQL innodb引擎通过LSN(Log Sequence Number)来标记版本,通过show engine innodb status \G输出做解释:
MySQL UNDO表空间独立和截断
1. MySQL 5.5时代的undo log 在MySQL5.5以及之前,大家会发现随着数据库上线时间越来越长,ibdata1文件(即InnoDB的共享表空间,或者系统表空间)会越来越大,这会造成2个比较明显的问题:(1)磁盘剩余空间越来越小,到后期往往要加磁盘;(2)物理备份时间越来越长,备份文件也越来越大。这是怎么回事呢?原因除了数据量自然增长之
MySQL InnoDB脏页管理
MySQL脏页管理,InnoDB中有专门列表Flush List管理刷盘。 使用Flush List主要为了让InnoDB(数据文件)尽可能保持较新状态,在系统崩溃时可以快速恢复。
Oracle Gateway for SQL Server时2PC分布式事务异常处理
异常:用户一套Oracle数据库alert.log报错,一时半会找不到原因联系到我这边协助分析:Tue Jun 23 07:43:53 2020Errors in file /u01/app/oracle/diag/rdbms/whrma/whrma/trace/whrma_reco_7075.trc:ORA-01017: invalid username/password; logon deni
MySQL性能相关参数
整理MySQL常用性能相关参数如下general_log记录所有执行的语句,在需要分析问题打开即可,正常服务时不需要开启,以免带来io性能影响 query_cache_size缓存sql文本和查询结果的,如果对应的表没有变化,下次碰到一样的SQL,跳过解析和查询,直接返回结果。但是表变化非常频繁,SQL也是动态生产的,由于需要不断更新cache内容,这时锁力度很大,反而照成瓶颈。这时最好关掉
Oracle direct path read相关隐含参数
Oracle 10G,默认时,即使对表全表扫描也会先缓存到buffer cache中,parallel方式除外。 Oracle 11G及之后版本,发生了变化,全表扫描可通过直接路径读(Direct Path Read)绕开buffer cache方式来执行,是否Direct Path Read取决于table大小,buffer cache大小,其它统计信息。
通过RMAN设置standby接收日志后主库归档日志才可删除
因为Oracle archivelog会不断生产,一般会设置定期清理archivelog的排程,类似下面。但DG环境中因为某些原因导致主库事务没有即使传到standby,而这时如果主库的archivelog也被清理掉了,主备库就产生了日志GAP
SQLServer mirror宕机后error 9004异常处理
异常:一台SQLServer 2008SP4 mirror server因为硬件问题宕机,修复重启后就无法与principal主库连上同步了mirror error log中报错:Date 2020/5/2 上午 02:15:20Log SQL Server (Archive #3 - 2020/5/4 上午 11:55:00)Source spid17sMes
为Zabbix MySQL设置独立表空间innodb_file_per_table
对zabbix后台使用的MySQL设置独立表空间innodb_file_per_table为例,阐述innodb_file_per_table设置过程及好处
extractvalue处理XMLTYPE类型超过4000字节ORA-01706的解决方法
extractvalue在处理XMLTYPE类型运算时非常方便,但在处理超过4000字节column就力不从心了。问题:一位朋友在Oracle中使用extractvalue处理XMLTYPE类型时,发现column值超过4000字节时就会报错ORA-01706.是否真会这样呢?通过实验重现问题:
update表中index索引列对原索引条目做什么操作?
update表中index索引列对原索引条目做什么操作? --将原索引条目删除,然后再插入新值条目
MySQL double write存在意义
MySQL默认每个page size是16k,而OS通常最小I/O单元是4k,所以如果写page时可能需要调用4次OS I/O才能完成。假定在执行两次时DB crash了,这时page只写了一部分,就产生了partial write(不完整写)。 MySQL double write的设定就是为了在发生partial write时任然保证已经commit的数据不丢失,以及数据文件不损坏。
SQLServer因为OS虚拟内存不足而hang住异常解决-锁定内存页 (LPIM)
异常:DB: SQL Server2012SP3OS: Windows2012一线工程师反应系统访问DB突然卡住了,DBA登录DB检查SQLServer发现DB无法登录,之前SMSS已经连接的session中无法执行任何SQL。服务器CPU使用10%,memory使用达到了99%以上。过了十分钟系统memory自己降低到了90%以下,DB可以访问。分析:检查SQLServer error log:
不为人知的技术--Oracle并行异步执行存储过程
背景:最近遇到一个case,Client端程式调用存储过程SP1,过程SP1执行完成后返回结果到Client。因为过程SP1执行时间要5秒钟,时间太长Client用户无法接受。分析主过程SP1性能,发现主要是其中调用的子过程SP2执行需要4秒,且子过程SP2中一条SQL因为资料量巨大逻辑复杂已无优化可能。另外子过程SP2的主要是计算审计功能并记录日志作用的。想法:能否让用户执行主过程时不等子过程完
SQL书写规范(通用)
SQL语句是访问DB中数据的主要途径和方式,所以SQL的书写对访问数据库时的速度和性能起着至关重要的作用。本文针对SQL日常书写中遇到的一些常见问题和注意事项做说明。注:本文基本适用大多类型的RDBMS关系型数据库:Oracle,SQLServer, MySQL...一.如何使用高效的索引1.索引的作用?
Redis Sentinel哨兵模式原理及配置
之前文章介绍了redis replication主从高可用架构,现在延伸下,本文讨论redis replication架构下实现自动故障切换(automatic failover)的技术--Sentinel主要参考官方文档:https://redis.io/topics/sentinel http://redisdoc.com/topic/sentinel.html 注:配置sentine
为SQL Server快照snapshot DB建立login访问
为了提供sql server的报表查询功能,通常在备库mirror上建立定时snapshot job以提供web查询。但是众所周知的是快照DB只读不可写,所以直接在备库建立login mapping及赋权限时会报错:USE [WEB02]GOCREATE USER [test] FOR LOGIN [test]GOUSE [WEB02]GOEXEC sp_addrolemember N'd
Redis replication主从复制原理及配置
本文主要介绍Redis replication 主从复制原理和配置及基本操作等主要参考官方文档:https://redis.io/topics/replication http://redisdoc.com/topic/replication.html一.原理This system works using three main mechanisms:系统工作的三个主要机制: &