innodb next-key lock引发的死锁现象分析
这个例子是我在网上看到的,我分析了很久才弄明白锁产生的具体过程。数据库的事务隔离级别是RR。建测试表:CREATE TABLE `LockTest` ( `order_id` varchar(20) NOT NULL, `id` bigint(20) NOT NULL AUTO_INCREMENT, &nb...
mysql字符转化以及乱码原因
mysql中存入数据时发生的编码转换过程:1、在终端(Terminal,可以是bash窗口,也可以是客户端工具如navicat)中输入,输入的内容由Terminal根据其自己的字符进行编码。2、经Terminal编码后的二进制流被传输到mysql server。mysql server(mysql engine)根据参数character_set_client的字符设置来对该二进制流进行解码。3、...
mysql锁以及锁信息查看
mysql中有以下几类锁:共享锁/排他锁意向锁,该锁是表级别的记录锁Gap 锁Next-Key锁自增锁地理索引的Predicate锁。mysql 中有几张系统表是关于锁信息的:INFORMATION_SCHEMA.INNODB_TRX:记录了所有在INNODB引擎上执行的事务信息。INFORMATION_SCHEMA.INNODB_LOCKS:记录了每个事务上的锁的信息。INFORMATION_...
Linux下mysql的历史操作记录
在linux下,mysql的每一步操作是会默认被记录到当前操作系统用户下的.mysql_history文件中去的。这个文件不会记录操作的时间,只记录操作命令,包括用户创建,授权,密码更改等,均是明文记录。一般情况下,出于安全考虑,会将这个文件清空,避免信息泄露。 实验步骤: 1、 进入mysql服务,随便输入几行命令: ...
mysql的root用户无法给普通用户授权问题处理
先看错误现象:很奇怪,root用户应该不可能无法授权普通用户。看提示像是说密码错误。但是实际上密码没有问题。决定去看看mysql.user表中root@localhost这个用户的权限是怎么样的。在mysql.user表中记录了与全局相关的权限信息。这个全局权限不是指拥有所有的权限,它具体指的是拥有该MYSQL服务器所有数据库对象的权限。...
Windows下Mysql5.6升级到5.7
Windows下Mysql5.6升级到5.7 Mysql的升级方式分为两种:原地升级和逻辑升级。这两种升级方式,在本质上是没有什么区别的。只是在对数据文件的处理上有区别而已:原地升级是直接将数据文件进行拷贝,而逻辑升级对数据文件的处理方式是通过逻辑导出导入,需要用到mysqldump。 原地升级: 1、 在现有的mysql服务...
mysqld_multi安装多个mysql实例
一个机器上安装多个mysql实例,除了将每个实例在不同的目录下编译安装,为每个实例指定不同的端口,socket,配置文件,安装目录等。还可以使用mysqld_multi方式。mysqld_multi是mysql设计的专门用来管理不同端口,不同socket的mysql实例的工具。它可以同时启动,停止多个mysql实例,也可以查看这些实例的状态。my...
mysql中的时间函数
获得当前日期+时间(date + time)函数:now(),sysdate()区别如下:MySQL 获得当前时间函数:current_timestamp, current_timestamp(), current_time, current_time(), current_date, current_date()如下:MySQL 日期/时间转换为字符串函数:date_format(date,format),time_format(time,format)如...
mysql监控:zabbix上自定义key
如何在zabbix中自定义key,并使用它。 Zabbix是一个开源的,免费的监控工具。它有很多自带的默认的监控选项。但是有时候,自带的监控选项是不够用的。这个时候,就需要自己自定义监控选项。我自己写了几个监控选项,分别用来监控mysql的状态,mysql主从复制的状态,mysql主从复制的时间差。 1、 打开zabbix agent...
oracle之group by,having和where的区别
我个人的理解如下:group by,having已经where这三个子句的执行顺序是有区别的:先执行where子句,对符合条件的数据进行删选然后执行group by子句,对删选出来的结果集进行分组最后执行having子句,对分组后的结果集再次进行筛选。这样就很好理解为什么带有聚合函数(sum,min,max,avg,count)的查询条件只能使用在havin...
oracle的profile文件学习
ORACLE的PROFILE文件是限制数据库用户使用资源的一种手段。 可以用来控制session或sql能使用的CPU、控制用户的密码管理策略等。 数据库创建后,系统中存在名为DEFAULT的默认PROFILE,若不做特殊指定,创建用户时用户默认使用的PROFILE就是DEFAULT。 1、查看数据库中有哪些profile文件:SQL> select distinct pro...
mysql执行sql脚本报错ERROR 1366 (HY000) 解决
mysql执行sql脚本是有两种方式:方式1:在控制台下,进入mysql的bin目录,mysql -u user -p"password" -P 3308 -D testdb source d:\test\test.sql或 Mysql>\. ...
date和timestamp类型之间的转换
date类型转换为timestamp类型:SQL> select to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff') From dual;TO_TIMESTAMP('2006-01-0112:10:--------------------------------------------------------------------------------01-1月 -06 12.10.10.100000000 下午timestamp类型转换为date类型SQL> s...
用户登录信息查看
oracle中可以查看视图dba_audit_trail来观察用户的登录信息。如果用户登录失败,这个信息也是记录在dba_audit_trail中的,查看代码如下:可以看到就算是登录失败,这里的ACTION_NAME也仍然是LOGON。只是返回代码returncode字段为1017统计用户登录失败的次数:select lcount from sys.user$ where name='TEST'; ...
mysql之MHA
写得很好的一篇blog,先记录一下:http://www.cnblogs.com/gomysql/p/3675429.html
RMAN笔记之查询rman备份信息状态
查询rman备份状态主要是通过视图V$RMAN_STATUS来进行,这个视图可以让你看见你在RMAN里面执行的操作。在V$RMAN_STATUS中,最主要的列是OPERATION和status。Operation的值有rman、backup、list、report。Status的值有running、running with warnings、running with errors、completed、completed with warnings...
Oracle恢复流程图
本图来自于网络,想当初小麦苗刚开始接触备份恢复的时候,就是靠着这张图来学习的,今天把这张图分享给大家,共勉。............................................................................................................................... ...
oracle导入导出之expdp/impdp
数据泵里导入导出有几个常用的参数,记录如下:parallel: ?指定并行度,提高导入导出的效率cluster: 该参数默认为y。为n时,表示仅在一个数据库实例上进行导入/导出操作。主要是在RAC环境下,会使用此参数。compression:设置compression为all时,表示开启转储文件压缩功能。注意,该功能要求compatible初始化参...
RMAN笔记之备份集和备份片
RMAN的backup命令是可以产生两种类型的备份:备份集和镜像复制。具体产生哪种类型的备份,取决于backup命令,如果是backup as backupset,则生成备份集;如果是backup as copy,则生成镜像复制。RMAN> show device type; //查看默认设备设置using target database control file instead of recovery...
oracle的ACL
ACL用于定义哪些用户拥有哪个远程主机的什么权限,主要使用的是DBMS_NETWORK_ACL_ADMIN这个自带的包来完成。首先要创建一个ACL。BEGINDBMS_NETWORK_ACL_ADMIN.CREATE_ACL ( acl => 'test_ast_server_permissions.xml', --->acl的名字 description =...