MySQL 同步和备份策略 [一]

最近遇到一个案列,MySQL主机已经存有10G左右的数据并且每天还在以1G为单位增长。现在需要制定备份策略并且用于数据备份和服务器维护的停机时间要尽可能的短。

对此,我们打算配置Master主服务器 -> Slave从服务器单向同步复制并且在Slave机上做周期增量备份。如果Master因意外灾难无法继续服务可以立即切换Slave机顶替服务。以下内容中Master机指主服务器,Slave机指从服务器。

1. 开启二进制日志服务(5.1版本中二进制日志替换了老的更新日志),启动MySQL时加–log-bin参数或在my.cnf中加上这一行。后面可以跟文件名来指定日志名,扩展名会被自动忽略。默认文件名为mysqld-bin.0000x。数字x会自动增长并且mysqld-bin.index中会指定当前的日志文件索引,请勿手工维护.index文件。

2. 建立账户用户数据复制,该账户必须授予REPLICATION SLAVE权限。鉴于我们还需要从Slave机上执行LOAD DATA FROM MASTER 和 LOAD DATA FROM MASTER,还需要授予账户SUPER和RELOAD全局权限。并且为所有想要装载的表授予SELECT权限。任何该 账户不能SELECT的主服务器上的表被LOAD DATA FROM MASTER忽略掉。
例如

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl’@‘%.mydomain.com’ IDENTIFIED BY ‘slavepass’;

3. 执行FLUSH TABLES WITH READ LOCK语句清空所有表和块写入语句:

mysql> FLUSH TABLES WITH READ LOCK

4. 鉴于原始数据库已经有超过10G的容量,现在使用mysqldump把数据备份成一个巨大的.sql文件显然是不明智的选择。可以简单地复制数据库文件到Slave机来快速创建一个主机的快照。Unix上用tar,windows上用winzip均可。

5. 当FLUSH TABLES WITH READ LOCK所置读锁定有效时,读取主服务器上当前的二进制日志名和偏移量值:

mysql> SHOW MASTER STATUS;

File列显示日志名,而Position显示偏移量。在该例子中,二进制日志值为mysql-bin.000007,偏移量为2268600。记录该值。以后设置从服务器时需要使用这些值。它们表示复制坐标,从服务器应从该点开始从主服务器上进行新的更新。

6. 主服务器数据库文件备份完成并且记录上述日志名和偏移量后,可以在主服务器上重新启用写活动:

mysql> UNLOCK TABLES

7. 检查Master机上的my.cnf配置,确保在[mysqld]部分除开启log-bin外且指定server-id=1。这里我们将Master机上的server-id指定为1,Slave机上的my.cnf中将其指定为2。

8. 启动Slave机(在此之前已经复制了Master上的数据文件),用–skip-slave-start选项启动从服务器,以便它不立即尝试连接主服务器。

9. 在从服务器上执行下面的语句,用Master机的实际值替换选项值:

mysql> CHANGE MASTER TO
-> MASTER_HOST=‘master_host_name’,
-> MASTER_USER=‘replication_user_name’,
-> MASTER_PASSWORD=‘replication_password’,
-> MASTER_LOG_FILE=‘recorded_log_file_name’,
-> MASTER_LOG_POS=recorded_log_position;

10. 启动Slave服务器上的复制进程

mysql> START SLAVE;

执行这些程序后,从服务器应连接主服务器,并补充自从数据库文件备份以来发生的任何更新。

至此,我们备份策略中的主从机单向复制同步已经配置完成。

Posted in 数据库 | Tagged , | Leave a comment

iPad 3.2.1 越狱

感谢hacker们的努力,现在的iOS越狱真是越来越简单了。

  • 打开包装,iPad连接iTunes激活,惊喜发现版本还是3.2.1 (再高就暂时无法越狱)
  • 用iPad上的safari访问http://jailbreakme.com (好网站,也没被GFW),直接slide to jailbreak。这个过程都无需连接电脑
  • 耐心等待进度条跑完之后你会发现桌面上已经有Cyndia了,越狱完成,真是太简单了。

根据个人口味可以选择安装SBSettings,OpenSSH,Aptitude等等所需要的工具。至此你可以在国内各大apple爱好者论坛上下载各式各样的ipa安装包来填满你的iPad。

Posted in Apple | Tagged , , | 1 Comment

Android手机Nexus One连接Apple Bluetooth Keyboard

首先所有带蓝牙的android手机理论上都是可以连接蓝牙键盘鼠标的(Human Interface Device),不幸地是官方的蓝牙profile中默认不包括HID profile。所以只有采用第三方的ROM如Cyanogen(CM6版本以上)或在官方的rom上搭配bluez utility来实现蓝牙键鼠的连接。

这里我们仅讨论第二种在官方ROM上添加工具的方案。手机必须取得root权限,或者是ADP (Android Dev Phone),并且需要安装busybox。

1. 先下载需要的工具。

$ wget http://androidobex.googlecode.com/files/hciconfig
$ wget http://androidobex.googlecode.com/files/hcitool
$ wget http://androidobex.googlecode.com/files/hidd

2. 提升到root权限,并且将/system挂载成可读写,默认为read-only

$ su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# chmod 777 /system/xbin

3. 从本地复制第一步下载的文件到手机

$ adb push hidd /system/xbin
$ adb push hcitool /system/xbin
$ adb push hciconfig /system/xbin

4. 如果你的手机不是ADP的话,可能无法直接从本地电脑复制文件到手机。这样你可以先用usb线连接手机,把以上三个文件复制到sdcard根目录上,然后执行。

# cp /sdcard/hidd /system/xbin/
# cp /sdcard/hcitool /system/xbin/
# cp /sdcard/hciconfig /system/xbin/

5. 打开手机蓝牙,在Settings -> Wireless & network settings -> Bluetooth settings中找到键盘并且配对。pin code可以填写0000,配对成功后会发现该设备显示为’paried but not connected’,这是因为缺少HID profile。

6. 现在要用到之前拷入手机的三个文件。实际情况中设备的Mac地址会与下面的例子有所不同,根据实际情况输入。

# hciconfig
hci0: Type: UART
BD Address: 00:22:A5:B8:AD:65 ACL MTU: 1021:4 SCO MTU: 180:4
UP RUNNING PSCAN
RX bytes:8672 acl:98 sco:0 events:285 errors:0
TX bytes:3336 acl:102 sco:0 commands:89 errors:0

# hcitool dev
Devices:
hci0 00:22:A5:B8:AD:65

# hcitool scan
Scanning …
00:1D:4F:A7:9A:49 Apple Wireless Keyboard

# hidd –connect 00:1D:4F:A7:9A:49

# hcitool con
Connections:
< ACL 00:1D:4F:A7:9A:49 handle 1 state 1 lm MASTER

9. 至此,Apple Bluetooth Keyboard连接成功。打开任意程序,蓝牙键盘敲击的键将出现在输入栏。经过测试,谷歌中文法也可以正常使用并且可以用数字键选择候选字。

10. 剩下的问题就是苹果的键盘的多功能键(调节音量,屏幕亮度)暂时还不能在手机里使用,有待进一步研究如何修改这几个键位。

Posted in Android | Tagged , , , | 1 Comment

Hello world!

玩了几年虚拟主机,先是从国内的某不知名群租服务器上搬到了上海神话科技的主机,接着又是托同服务器上爱搞点不和谐内容的“邻居”的福三天两头被CT查封服务器,再后来兴起了ICP良民备案制度。不堪其扰之下把域名和主机都搬迁到了US Dreamhost的旗下。尽管dreamhost的服务挺好,而且速度和空间也不构成瓶颈,本着电工就是爱折腾的想法最后还是租了VPS。现正在把所有站点慢慢迁移至VPS主机,情绪稳定。

Posted in Uncategorized | Tagged | 1 Comment