Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7573672 建立时间:2006年5月29日 |

| |
[MySQL]MySQL Replication Status 软件技术
lhwork 发表于 2007/1/8 10:27:18 |
MySQL 設好 Replication 後, 常會用以下指令來觀察 Master, Slave status, 但是秀出來的資訊代表的意思到底是如何呢??
show master status
show slave status
以下是 Master 機器上, show master status 出來的 欄位 和 說明:
Master_Host: dbm1.domain_name
Master_User: repl
Master_Port: 3306
Connect_retry: 60 , 這個 mysql server 重啟動到現在已經 connect 幾次了(自己 restart 會歸零)
Master_Log_File: dbm1-bin.009 , 目前 Master 上已經寫到第幾個了
Read_Master_Log_Pos: 991863990 , Slave讀到 Master 這個 log file 的 |
|
[MySQL]mysql服务器kernel参数设置建议 软件技术
lhwork 发表于 2007/1/8 10:26:52 |
一直以来,mysql服务器特别是忙碌的server,如果相关参数设置不当,都会出现如下错误:
printk: 1719 messages suppressed. ip_conntrack: table full, dropping packet.
只所以会出现这样的错误,是因为:ip_conntrack_max这个值设置的较小引起的,但是也不能设置的太大,因为这个会占用相关的内存!
那如何来解决这个问题?只有改大这个值:
如果是kernel-2.6的,那么请执行下面的语句即可: echo “65536″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
如果是kernel-2.4的,那么请执行下面语句: echo “65536″ > /proc/sys/net/ipv4/ip_conntrack_max
以上的做法是自己习惯的做法,当然也可以把相关指令写在 /etc/sysctl.con |
|
[MySQL]使用mysql的master/slave的一个小心得 软件技术
lhwork 发表于 2007/1/8 10:07:28 |
曾在DELL PE6850(1台,master)上使用mysql-4.0.26,内存是8G,max-connections=7000
后面有3台slave(PE2850),作为只读的用途!
结果发现:3台slave中有2台的数据是不统一的,差异非常大,有的甚至是有几万条,另外一台也不是时时同步,吓我一跳,分析了一下原因:
最有可能就是因为常出现:too many connections导致的 所以一定要使用m/s架构,那么必须在db前做一层非常健壮的cache才行,不然,维护太麻烦了:$ |
|
[MySQL]几个跟热备有关的mysql命令 软件技术
lhwork 发表于 2007/1/8 10:02:29 |
:(需要在mysql命令行界面或query):
stop slave #停止同步 start slave #开始同步,从日志终止的位置开始更新。 SET SQL_LOG_BIN=0|1 #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。 RESET MASTER #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER RESET SLAVE #从机运行,清除日志同步位置标志,并重新生成master.info 虽然重新生成了master.info,但是并不起用,最好,将从机的mysql进程重启一下, LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个 |
|
[MySQL]MySQL查询优化(查询优化器) 软件技术
lhwork 发表于 2006/12/31 14:17:00 |
了解一些优化器的知识,作为对如何建立索引的补充,对我们是有好处的,因为这样你才能更好地利用自己所建立的索引。某些编写查询的方法实际上让索引不起作用,在一般情况下你应该避免这种情形的发生。这一讲中将讨论MySQL查询优化器,我将试图找到执行具有最高效率查询的方法。
当你提交一个查询的时候,MySQL会分析它,看是否可以做一些优化使处理该查询的速度更快。这一部分将介绍查询优化器是如何工作的。如果你想知道MySQL采用的优化手段,可以查看MySQL参考手册。
当然,MySQL查询优化器也利用了索引,但是它也使用了其它一些信息。例如,如果你提交如下所示的查询,那么无论数据表有多大,MySQL执行它的速度都会非常快:
SELECT * FROM |
|
[MySQL]MySQL用户管理 软件技术
lhwork 发表于 2006/12/28 15:05:34 |
MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL
3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。两条语句扮演了
mysql数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法。CREATE和REVOKE语句影响4个表:授权表
内容
user 能连接服务器的用户以及他们拥有的任何全局权限
db 数据库级权限
tables_priv 表级权限
columns_priv 列级权限
还有第5个授权表(host),但它不受GRANT和REVOKE的影响。
当你对一个用户发出一条GRANT语句时,在user表中为该用户创建一条记录。如果语句指定任何全局权限(管理权限或适用于所有数据库的权限),这
些也记录在user表中。如 |
|
[MySQL]MySql数据库备份mysqldump参数选项 软件技术
lhwork 发表于 2006/12/28 15:02:06 |
实用程序,为备份或为把数据转移到另外的SQL服务器上倾倒一个数据库或许多数据库。倾倒将包含 创建表或充实表的SQL语句。
shell> mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被倾倒。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在倾倒结果前装载整个结果集到内存中,如果你正在倾倒一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
--add-locks
在每个表倾倒之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。 |
|
[MySQL]MySQL索引经验之浅见 软件技术
lhwork 发表于 2006/12/28 14:58:29 |
在数据库表中,使用索引可以大大提高查询速度。
假如我们创建了一个testIndex表:
CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL);
我们随机向里面插入了1000条记录,其中有一条
i_testID vc_Name
555 erquan
在查找vc_Name="erquan"的记录
SELECT * FROM testIndex WHERE vc_Name='erquan';
时,如果在vc_Name上已经建立了索引,MySql无须任何扫描,即准确可找到该记录!相反,MySql会扫描所有记录,即 |
|
|