Welcome 微信登录

首页 / 数据库 / MySQL

Oracle SQL*Net相关的空闲等待事件

Oracle SQL*Net相关的空闲等待事件

空闲等待事件,从字面上理解似乎并不需要我们花多大心思去关心,就让它等在那里呗,万事总有它存在的道理,特别对于SQL*Net系列等待事件而言,细细琢磨还是有不少文章可做的。---------< Part 1. 那些我们经常见到的SQL*Net等待>---------SQL*NET message to client等待事件Server process通知client准备接收服务器端返回的数据,通知完成后SQL*NET message to cl...
使用了索引就一定能避免cache buffers chains争用吗

使用了索引就一定能避免cache buffers chains争用吗

访问buffer cache里的数据块时需要先以独占模式申请管理hash bucket的latch,这个latch的名称就是所谓的cache buffers chains,系统中出现latch:cache buffers chains争用往往意味着以下两种可能:1、多个会话并发访问相同的数据块(这是最常见的一种情况)2、不同的数据块挂载在同一个hash bucket下,或者虽然挂载在不同的hash bucket下但这些hash bucket恰好受同一个ca...
透过Buffer cache了解data block在DML操作下的状态演变

透过Buffer cache了解data block在DML操作下的状态演变

一句DML操作对数据表的修改看似很简单:把老的记录值替换成新的记录值,插入或者删除一条记录,这个看似简单的操作但在buffer cache里却有着不一般的经历,为实现读一致性,一个block在buffer cache里可能有多个版本,在DML的过程中,buffer cache里的block经历了一系列的变化。本文以update、insert、delete操作为例揭示了buffer cache里data block状态是如何变化的,有助于我们进一步了解事务的...
sqlplus / as sysdba无法登录的奇怪报错

sqlplus / as sysdba无法登录的奇怪报错

最近看了一个问题,看问题的表现着实比较奇怪,困扰了我好一会儿。问题的背景是帮助开发的同学解决一个数据库问题,最后问题解决之后,我想做一个操作系统级的检查,帮他们看看还有什么需要注意的地方。然后在命令行中国登陆到了这台数据库服务器,切换到Oracle用户之后,查看到数据库实例为cytj,然后准备做一番检查。#ps -ef|grep smonroot 3657 32596 0 17:37 pts/2 00:00:00 grep smonoracle 5...
DataGuard环境中的密码维护

DataGuard环境中的密码维护

这篇文章的动力来自于一个朋友的提问,他问我备库的密码文件直接重建可以吗,我说最好还是复制,如果重建可能会有一些潜在的问题,当然这个所谓潜在问题也是自己给自己打的马虎眼,到底哪里有问题,脑海里搜索了一番似乎没有找到什么有效的信息,但是隐隐之中感觉搭建dataguard好像还从来没有直接重建密码文件的时候,似乎是一种非常规的方式,但是转眼一想一旦发生这种情况的时候,或者密码文件出现了一些潜在问题的时候,怎么有效防范,这个问题就又上升了一个高度,所以我对这个问题...
Oracle空闲等待事件和非空闲等待事件

Oracle空闲等待事件和非空闲等待事件

Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。 空闲事件指Oracle正等待某种工作,在诊断和优化数据库的时候,我们不用过多注意这部...
MySQL Replication主从复制—(实例)

MySQL Replication主从复制—(实例)

主从复制原理MySQL Replication是一个从Master复制到一台或多台Slave的异步复制过程。Master和Slave之间实现整个复制过程主要由三个线程来完成,其中一个IO线程在Master端,两个线程(SQL线程和IO线程)在Slave端。通过Master服务器打开Binary Log(二进制日志文件)的功能,Slave端从Master端获取该日志信息,然后将二进制文件解析为SQL语句,并完全顺序地执行SQL语句所记录的各种操作。(Slav...
MySQL二进制日志操作

MySQL二进制日志操作

二进制日志概念记录对数据发生或潜在发生更改的SQL语句,并且是以二进制格式保存的日志使用用途查看数据库变更历史数据库增量备份数据库灾难恢复MySQL复制(主从、主主复制)二进制日志性能影响日志即影响MySQL性能又占用大量磁盘空间。因此,往往需要做采样分析时才会打开即使做采样分析,也最好仅在一台测试机上开启二进制日志由于用途广泛,大多数情况下会开启。需要制定合理的备份计划和管理策略开启二进制日志方法一:不重启修改二进制日志配置SET @@global.lo...
CentOS 6.5下Redis安装部署配置指南

CentOS 6.5下Redis安装部署配置指南

CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解。1、Redis的介绍、安装、配置、启动流程1.1、Redis 特征简介Redis是Remote Dictionary Server的缩写。他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、se...
CentOS7编译安装MySQL 5.6.28和编译参数

CentOS7编译安装MySQL 5.6.28和编译参数

MySQL 5.5之后的源码包版本,安装方式采用CMake工具编译进行安装,因此在安装最新版MySQL之前,需要提前安装它。CMake是一个跨平台、开源软件构建系统,用于控制软件编译过程及生成独立的配置文件(makefile或者project),可以在编译时选择CMake编译器进行安装需要的软件。CMake官网https://cmake.org/,目前最新版本是3.4.3。CMake安装方法# wget https://cmake.org/files/v3...
PostgreSQL 9.5.1官方文档学习笔记

PostgreSQL 9.5.1官方文档学习笔记

本文针对目前最新版PostgreSQL 9.5.1,若非说明,文中所说文档即指官方文档。本人刚接触PostgreSQL不久,文中不免错漏,请大家指正;随着了解深入,本文[可能]会不定期更新补足。JSONPostgreSQL支持Json格式数据,有两种类型:json和jsonb。两者在效率上有所区别,而这是因为jsonb存储的是格式化后的二进制数据,所以在写入时,json类型比较快,而在检索时(注意这里说的检索不是简单的读取整个数据,而是比如检索json数据...
MySQL排序原理与案例分析

MySQL排序原理与案例分析

前言 排序是数据库中的一个基本功能,MySQL也不例外。用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序。本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍与排序相关的参数,最后会给出几个“奇怪”排序例子,来谈谈排序一致性问题,并说明产生现象的本质原因。1.排序优化与索引使用 ...
深度解析MySQL登录原理

深度解析MySQL登录原理

使用MySQL数据库的第一步必然是建立连接登录,然后在上面执行SQL命令。无论是通过MySQL的客户端,还是通过C-API,JDBC标准接口连接数据库,这个过程一定少不了。今天我们聊一聊MySQL登陆具体过程,里面会涉及client与server的交互,并通过tcpdump抓包给大家展现这一过程。TCP握手协议远程连接数据库,mysql采用TCP协议通信,第一步是建立连接,即TCP的3次握手。mysql server端有一个监听线程等待client请求,c...
如何将MySQL help contents的内容以目录树的形式输出

如何将MySQL help contents的内容以目录树的形式输出

经常会遇到这种情况,在一个不能上网的环境通过MySQL客户端登录数据库,想执行一个操作,却忘了操作的具体语法,各种不方便。其实,MySQL数据库内置了帮助文档,通过help contents即可查看。如下所示:可见,该文档涵盖了数据库操作的大部分主题。文档分为以上几大类,每个大类又包括更小粒度的类,类最后有具体的topic组成。那么这之间的层级关系如何呢?昨天想执行一个操作mysql> backup table emp to "/tmp/mysqlb...
MySQL Doublewrite Buffer及业务评估

MySQL Doublewrite Buffer及业务评估

1. 关于Doublewrite Buffe的总结Doublewrite Buffer:Doublewrite Buffer出现的初衷是防止buffer pool中的脏页刷新到磁盘中,出现部分写的问题,innodb页大小一般为16k,而Linux操作系统的block size一般为4k。这样在刷新的过程中,如果OS发生crash或者停电,会导致16k的页块只有部分block刷新到磁盘中,而其它的没有,这样会导致数据不一致。Doublewrite Buffe...
CentOS通过yum安装MariaDB(MySQL)无法启动服务或者找不到mysql.sock

CentOS通过yum安装MariaDB(MySQL)无法启动服务或者找不到mysql.sock

今天在Linux主机(CentOS 7)安装(yum install方式)Mariadb(即开源MySQL)后,无法启动mariadb,其实是安装不完整,当然启动不了,更不用说输入"mysql -u root"提示Can"t connect to local MySQL server through socket "/tmp/mysql.sock" (2)了 。没什么技术含量的解决方法开始了。安装mariadb,先搜索一发:$ sudo yum searc...
<< 911 912 913 914 915 916 917 918 919 920 >>