完全屬於我自己的Blog,運行在我的路由器H218N上.記錄著我想記錄的文字.

2013年4月

04月 26

MySQL二进制日志使用技巧

一、MySQL主从的原理

1、Replication 线程

MySQL的 Replication 是一个异步的复制过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),从一个 MySQL instace(我们称之为 Master)复制到另一个 MySQL instance(我们称之 Slave)。
在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。
要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary Log(mysql-bin.xxxxxx)功能,否则无法实现。
因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全 顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用 “—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加 “log-bin” 参数项。

2、MySQL 复制的基本过程如下:

2.1.Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

2.2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO 线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO 线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 Binary Log 中的位置;

2.3. Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的Relay Log文件(mysql-relay-bin.xxxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master- info文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”

2.4. Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的内容成为在 Master 端真实执行时候的那些可执行的 Query 语句,并在自身执行这些 Query。这样,实际上就是在 Master 端和 Slave 端执行了同样的 Query,所以两端的数据是完全一样的。

阅读全文 >>

04月 24

数据库主从服务器搭建(克隆Master与克隆Slave)

环境设定

Master服务器资料

IP:192.168.1.100
PORT:3306
用户名:root
密码:root
Slave用户:repl_user
Slave密码:root

Slave服务器资料

参考数据库主从服务器搭建(一主一从)")

克隆Master

以下操作在Master服务器上进行

要克隆Master,先要把Master的数据备份出来,为避免备份时数据有所变化,先把还在缓冲区没写入表中的数据写到表中,并锁定服务器,不让再进行写操作.

FLUSH TABLES WITH READ LOCK;

备份服务器中所有数据库到sql文件,注意!!锁定表后,不能退出MySQL!!一旦退出MySQL,会自动解锁!

mysqldump -h192.168.1.100 --port=3306 -uroot -proot --all-databases > master_all.sql

备份单个数据库(如inti)时可用

 mysqldump -h192.168.1.100 --port=3306 -uroot -proot --databases init > init.sql

获取当前二进制日志的文件名和位置

SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000003 |     2670 |              |                  |
+-------------------+----------+--------------+------------------+

现在可以解除数据服务器的锁定

UNLOCK TABLES;

阅读全文 >>

04月 24

Ubuntu 下的MySQL多实例运行

创建配置文件

举例如下,多运行一个监听3309端口的MySQL实例,把原来的my.cnf复制一份到/etc/mysql/my3309.cnf
修改成以下配置

[client]
port        = 3309
socket        = /var/run/mysqld/mysqld3309.sock

[mysqld_safe]
socket        = /var/run/mysqld/mysqld3309.sock
nice        = 0

[mysqld]
user        = mysql
pid-file    = /var/run/mysqld/mysqld3309.pid
socket        = /var/run/mysqld/mysqld3309.sock
port        = 3309
datadir        = /var/lib/mysql3309

由于Ubuntu使用了一种安全软件叫做AppArmor,这个安全软件会在你的文件系统中创建一个允许应用程序访问的区域(专业术语:应 用程序访问控制)。如果不为MySQL修改AppArmor配置文件,永远也无法为新设置的存储位置启动服务。

阅读全文 >>

04月 19

数据库主从服务器搭建(一主一从)

修改配置文件

修改MySQL配置文件如下
一般linux环境下配置文件路径是

/etc/mysql/my.cnf

修改配置文件前,先把MySQL服务关停,

# service mysql stop

在主服务器的配置文件添加一下内容

log-bin         = master-bin
log-bin-index   = master-bin.index
server-id       = 1
log-slave-updates 
slave-skip-errors #是跳过错误,继续执行复制操作

log-slave-updates 选项含义请参考数据库主从服务器搭建(克隆Master与克隆Slave)后续补充部分

!!注意!!
必须注释掉这个配置项或者添加各服务器的IP

bind-address           = 127.0.0.1

修改配置完毕后,启动MySQL服务,登录并进行以下操作

master > CREATE USER repl_user ;/*! repl_user是从服务器登录到主服务器时的用户名*/
master > GRANT REPLICATION SLAVE ON *.* TO repl_user IDENTIFIED BY 'password';/*! 为从服务器用户设置登录允许登录域及登录密码 password */

在从服务器的配置文件添加一下内容

log-bin         = master-bin
log-bin-index   = master-bin.index
server-id       = 2
relay-log-index = slave-relay-bin.index
relay-log       = slave-relay-bin
log-slave-updates #log-bin 用于启动数据库的更新日记,当针对启动这个选项的数据库本身进行数据跟新时更新操作将被记录。log-slave-updates 告诉Slave在二进制记录中记录从主数据库同步到的更新数据。如果只启动log-bin 而没有启动log-slave-updates则Slave只记录针对自己数据库操作的更新。
slave-skip-errors #是跳过错误,继续执行复制操作

阅读全文 >>

04月 10

終於將筆電的導熱硅脂換成液態金屬了~~

看着這非正統Thinkpad E520,CPU那個近乎50°C的待機溫度,80+°C的烤機溫度,聽到風扇那個奮力工作的聲音, 還是想想辦法吧~

於是就祭出了液態金屬了 ~~

昨天晚上貨到了,20多元的售價,8大洋的運費...真心蛋疼!看完了《七個變態》,馬上動工!

拆機過程就不多說了,網上有拆機圖解.拆機的時候發生個小意外,拆好了, 正要拿相機拍照留念的時候,給相機裝電池的時候手一滑,電池砸到放螺絲的盤子邊上,一個槓桿作用,不少螺絲都飛出來了.那個悲慘啊...原本分好組的螺絲一下全亂了,桌上,地上,都是螺絲...還好,最後都找回來了.

下面還是上圖吧~(新頁面打開圖片可以下載大圖哦~)

拆開的CPU,獨顯,還有那個,應該是北橋吧.

放上液態金屬的樣子

右上角的應該是北橋吧,散熱貼和芯片之間有快導熱墊,材料不明,不過肯定用不了液態金屬,還是給它塗上一層導熱硅脂吧...

左邊一大塊的,很明顯就是CPU了,我的i5-2450m,如果把型號最後那個m去掉,性能會不會翻兩翻呢?

右下角那個就是獨顯HD6630M了,看看它周圍的海力士顯存,足足有2G啊,獨顯周圍的電阻太多,還是用硅脂把它們包起來吧~液態金屬流下去就麻煩了,雖然可能性不到5%,不怕一萬就怕萬一嘛~

 

阅读全文 >>