[MySQL管理] Seconds_Behind_Master 解析
通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,我们可以通过Seconds_Behind_Master数字查看slave是否落后于master,但是在一些环境中,他确会让我们产生幻觉。在http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html中,对Seconds_Behind_Master的有一句话阐述如下:In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O thread. 很清晰的表明,该值是SQL thread I/O thread.之间的差值
MySQL5.5 Semi-synchronous Replication(半同步复制)
MySQL5.5有很多的改进和增强,也引入了很多新功能。在可用性方面有如下几点新特性:Semi-synchronous Replication Replication Heartbeat Automatic Relay Log Recovery Replication Per Server Filtering Replication Slave Side Data Type ConversionsSemi-synchronous Replication(半同步复制)我们知道在5.5之前,MySQL的复制其实是异步操作,而不是同步,也就意味着允许主从之间的数据存在一定的延迟,mysql当初这样设计的目的可能也是基于可用性的考虑,为了保证master不受slave的影响,并且异步复制使得master处于一种性能最优的状
Oracle环境中使用NFS的mount选项
在oracle环境中使用NFS,在mount的时候需要修改一些选项,否则可能导致各种问题,比如ORA-27086和ORA-27054错误。不管你是将Oracle安装在NFS设备也好,是将datafile放置在NFS设备也好,是备份到NFS设备也好,如果出现相关的错误,则需要检查下是否mount的选项有问题。一般只要用hard方式来mount的,都不会有太多问题。以下内容引自Metalink(Doc ID:359515.1),适用于10.1.0.2以上版本,供参考:RAC In the table below Binaries is the shared mount points where the Oracle Home and CRS_HOME is installed. Datafiles includes Onli
linux kernel.shmall shemax shemin参数详解
Linux X86-64操作系统,Oracle 10g数据库,由8G加到16G,把kernel.shmmax参数改到17179869184(16G)后,发现只要修改sga_max_size和sga_target参数到超过8G,Oracle就会报内存不够无法启动,检查另外两个共享内存参数相关参数:kernel.shmall和kernel.shmmni,kernel.shmall参数是控制共享内存页数,kernel.shmmni参数是控制共享内存段总数,目前的参数值是4096,足够大了,那么问题应该是出在kernel.shmall上,用8589934592(8G)除以当前的参数值2097152,结果是4096,说明页大小是4K,现在要把SGA调到大于8G,就要调大kernel.shmall参数,调
DRBD 配置
DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中. 本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会 保留有一份相同的数据,可以继续使用. 在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上, 切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了. DRBD的工作原理如下图: +------
MySQL NDB源码安装
MYSQL-5.1.19-BETA 安装 mysql-cluster 步骤1。下载源代码包, 目前最新包为MYSQL-5.1.23-BETA.TAR.GZ 安装方式同本文档。 主机 IP : 192.168.74.4 192.168.74.3 2。检查系统是否已经安装一下RPM包。 目前OS 为LINUX AS 4 UPDATE 4 > rpm -qa |grep libstdc++ ## 目前已经查明的如果没有这几个RPM包,将无法把CLUSTER 编译进MYSQLD 中。 compat-libstdc++-33-3.2.3-47.3libstdc++-devel-3.4.6-3compat-libstdc++-296-2.96-132.7.2libstdc++-3.4.6-3如果没有安装以上RPM 请自行安装。 3.解压缩 tar -zxvf mysql-5.1.
MySQL复制需要注意的参数
错误相关提示:function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)' on query.分析:根据系统提示,导致该错误的原因可能是一个安全设置方面的配置,查手册log_bin_trust_function_creators参数缺省0,是不允许function的同步的。一般我们在配置repliaction的时候,都忘记关注这个参数,这样在master更新funtion后,slave就会报告错误,然后slave stoped。处理过程:登陆mysql数据库my
RAC环境下创建物理DATA GUARD
RAC环境下创建物理DATA GUARD 为一个RAC搭建standby和单节点搭建方法基本一致,我们可以把RAC看成是一个单节点的数据库,只需要保证所有节点的日志能传送到备库即可。一、在备库服务器安装ORACLE软件只安装软件,不要创建数据库。ORACLE软件版本和主库保持一致。二、修改主库参数节点1执行:SQL> show parameter spfileNAME TYPE VALUE------- ------ -------------------------spfile string /dev/raw/raw14节点2执行:SQL> show parameter spfileNAME TYPE VALUE------- ------ -------------------------spfile string /dev/raw/
Linux下多线程编程详解(三)
【原创】手把手教你Linux下的多线程设计--Linux下多线程编程详解(三) - 依然的专栏 - CSDN博客 本文可任意转载,但必须注明作者和出处。【原创】手把手教你Linux下的多线程设计(三) --Linux下多线程编程详解 原创作者:Frozen_socker(冰棍) E_mail:dlskyfly@163.com线程互斥 互斥操作,就是对某段代码或某个变量修改的时候只能有一个线程在执行这段代码,其他线程不能同时进入这段代码或同时修改该变量。这个代码或变量称为临界资源。 例如:有两个线程A和B,临界资源为X,首先线程A进入
mysql 在 VS2005上面单步调试(转)
mysql 在 VS2005上面单步调试 收藏 http://www.xianfen.net/Article137.aspxhttp://database.ctocio.com.cn/tips/114/8305614.shtmlhttp://forge.mysql.com/wiki/Building_MySQL_on_Windows环境准备:1. 获取MySQL最新源码:当前版本为5.1.45:http://dev.mysql.com/downloads/mysql/ (Windows (x86, 32-bit), ZIP Archive),解压到工作目录,如D:mysql-5.1.452. 安装VS2005,任何版本都可。如果是Express版本,需要再安装Windows SDK, Server 2003 R2 Platform SDK下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyI
mysqlslap简介—MySQL压力测试工具
mysqlslap:load emulation client,mysql自带的一个压力测试工具,自5.1.4版本之后的MySQL client 包含了此工具,下载mysql client rpm包安装后可直接使用在使用mysqlslap的时候,可以指定sql语句或者是包含sql语句的文件,如果是文件,那么文件中的每一行至少有一个语句(不能一个sql语句分成两行或多行),因为默认的分隔符(delimiter)是换行符,当然,你也可以手动重置新的分隔符。另外,你也不能在文件中添加注释,mysqlslap不支持。。。mysqlslap有三个步骤:1、创建schema,table,或者任何你想用来测试的procedure和data,这个是
mysql性能测试之-mysqlslap
Mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。它的使用语法如下:shell>/usr/local/mysql/bin/mysqlslap [options]常用参数【options】详细介绍:--concurrency代表并发数量,多个可以用逗号隔开。例如:--concurrency=50,200,500--engines代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb,memory--iterations代表要在不
dump block内容解析
这边文章不能算做自己写的,顶多算作转载了别人的文章,只不过自己做了些实验,同时加入了些自己的理解。文章中大部分内容来自:http://blog.csdn.net/l2g32003/archive/2004/05/17/20444.aspx对原文作者表示感谢!同时要说明的是,ORACLE不同版本不同SEGMENT类型的BLOCK格式都有些出入的,而且这里列出的也可能有不准确或者还不理解的地方,欢迎大家补充、指正。同时,因为前半部分是使用一个压缩表来实验的,做到后面发现压缩表跟普通表差异太大,所以换了另一个TRACE开始写,可能会有前后对不上的情况Start dump data blocks tsn: 35 f
X$表命名规则
附:X$表命名规则: ** INTERNAL ONLY ** This is a summary list of X$ Table Definitions - Last revision was 7.3.2The main purpose of this note is to show the naming conventions. [K]ernel Layer [2]-Phase Commit [G]lobal [T]ransaction [E]ntry X$K2GTE - Current 2PC tx
ORACLE---dataguard主从库的切换
物理STANDBY的FAILOVER切换会把当前的一个物理STANDBY切换为PRIMARY数据库。 FAILOVER切换一般是PRIMARY数据库发生故障后的切换,这种情况是STANDBY数据库发挥其作用的情况。这种切换发生后,可能会造成数据的丢失。而且这个过程不是可逆的,DATA GUARD环境会被破坏。 由于PRIMARY数据库已经无法启动,所以FAILOVER切换所需的条件并不多,只要检查STANDBY是否运行在最大保护模式下,如果是的话,需要将其置为最大性能模式,否则切换到PRIMARY角色也无法启动。 为了模拟FAILOVER的特点,首先在主库上运行一个比较大的事务,然后通