pencat

从明天起,关心粮食和蔬菜。我有一所房子,面朝大海,春暖花开

MYSQL的master/slave数据同步配置

我的测试环境.基本上数据是瞬间同步

redhat 9.0
mysql3.23.57

mysql数据同步备份

A服务器: 192.168.1.2 主服务器master
B服务器: 192.168.1.3 副服务器slave

A服务器设置

#mysql –u root –p
mysql>GRANT FILE ON *.* TO backup@10.168.2.3 IDENTIFIED BY  'pencat';
mysql>\exit

上面是Master开放一个账号backup密码1234给IP:10.168.2.3有档案处理的权限

mysqladmin –u root –p shutdown

备份Master所有数据库..通常都用tar指令.
#tar –cvf /tmp/mysql.tar /var/lib/mysql
注意:tar的时候,MySQL是要在stop情况下

在A机器上修改/etc/my.cnf
在[mysqld]区段内加入参数
log-bin
server-id=1
sql-bin-update-same
binlog-do-db=vbb

重启A服务器mysql

此时因为有加入log-bin参数,因此开始有index产生了,在/var/lib/mysql目录下有.index档案纪录数据库的异动log.

B服务器设置

设定/etc/my.cnf
在[mysqld]区段加入

master-host=10.168.2.2
master-user=backup
master-password=pencat
master-port=3306
server-id=2
master-connect-retry=60 预设重试间隔60秒
replicate-do-db=pencat_db告诉slave只做pencat_db数据库的更新
log-slave-updates

将A上的mysql.tar copy到B上
用ftp传B的/tmp
9.解压缩
#cd /var/lib/

状况测试
1.A跟B网络及服务都正常情况下,由A端变化数据后,到B端浏览数据,检视是否有进行replication?!
2.模拟B当机,或是B不一定需要一直跟A有连接.
将由A端变化数据后,到B端浏览数据,B点应该是没有数据变化的

#tar xvf /tmp/mysql-snapshot.tar
#chown –R mysql:mysql mysql

1重启B服务器的mysql

这时在/var/lib/mysql目录会出现master.info,此档案纪录了Master MySQL server的信息.

状况测试
1.A跟B网络及服务都正常情况下,由A端变化数据后,到B端浏览数据,检视是否有进行replication?!
2.模拟B当机,或是B不一定需要一直跟A有连接.
将由A端变化数据后,到B端浏览数据,B点应该是没有数据变化的

 

mysql数据同步小技巧

如果slave服务器出了某种问题,比如数据不同步了,可以检查或者使得master database恢复到某个状态,然后执行:

show master status

看看binlog文件和position是什么,然后在salve上面执行:

stop slave;

change master to master_log_file="", master_log_pos=...

start slave;

即可

MySQL Master-Slave架构下使用MMM的必要性

来源:http://www.muduo.net/batch.viewlink.php?itemid=311439 

MySQL本身没有提供replication failover的解决方案(见How can I use replication to provide redundancy or high availability?)


如何使Replication方案具有HA? 答案是MMM(MySQL Master-Master Replication Manager)


MMM对MySQL Master-Slave Replication绝对是一个很有益的补充!


引言
Master-Slave的数据库机构解决了很多问题,特别是read/write比较高的web2.0应用:
1、写操作全部在Master结点执行,并由Slave数据库结点定时(默认60s)读取Master的bin-log
2、将众多的用户读请求分散到更多的数据库节点,从而减轻了单点的压力
这是对Replication的最基本陈述,这种模式的在系统Scale-out方案中很有引力(如有必要,数据可以先进行Sharding,再使用replication)。


它的缺点是:
1、Slave实时性的保障,对于实时性很高的场合可能需要做一些处理
2、高可用性问题,Master就是那个致命点(SPOF:Single point of failure)


本文主要讨论的是如何解决第2个缺点。


DB的设计对大规模、高负载的系统是极其重要的。高可用性(High availability)在重要的系统(critical System)是需要架构师事先考虑的。存在SPOF:Single point of failure的设计在重要系统中是危险的。

Master-Master Replication
1、使用两个MySQL数据库db01,db02,互为Master和Slave,即:一边db01作为db02的master,一旦有数据写向db01时,db02定时从db01更新 另一边db02也作为db01的master,一旦有数据写向db02时,db01也定时从db02获得更新 (这不会导致循环,MySQL Slave默认不会记录Master同步过来的变化)


2、但从AppServer的角度来说,同时只有一个结点db01扮演Master,另外一个结点db02扮演Slave,不能同时两个结点扮演Master。即AppSever总是把write操作分配某个数据库(db01),除非db01 failed,被切换。


3、如果扮演Slave的数据库结点db02 Failed了:
     a)此时appServer要能够把所有的read,write分配给db01,read操作不再指向db02
     b)一旦db02恢复过来后,继续充当Slave角色,并告诉AppServer可以将read分配给它了


4、如果扮演Master的数据库结点db01 Failed了
     a)此时appServer要能够把所有的写操作从db01切换分配给db02,也就是切换Master由db02充当
     b)db01恢复过来后,充当Slave的角色,Master由db02继续扮演

难点:
3、4要如何自动进行?

Master-Master with n Slaves Replication
redundancy-after


这比上一个还要复杂,即:当一个Master Fail时,所有的Slave不再从原来失败的那个Master(db01)获取更新日志,而应该“自动”切换到最新充当Master角色的数据库db02。


MMM,a greate project!

MMM的基本信息请参考它的网站(见后"参考资料")
MMM有3个重要的器件:
1、mmmd_mon - monitoring script which does all monitoring work and makes all decisions about roles moving and so on.

2、mmmd_agent - remote servers management agent script, which provides monitoring node with simple set of remote services to make servers management easier, more flexible abd highly portable.
3、mmm_control - simple script dedicated to management of the mmmd_mon processes by commands.

每一个MySQL服务器器结点需要运行mmmd_agent,同时在另外的一个机器上(可以是独立的一台机器,也可以是和AppServer共享同一个服务器)运行mmmd_mon。形成1 * mmmd_mon + n * mmmd_agent的部署架构。

MMM利用了虚拟IP的技术:1个网卡可以同时使用多个IP。(所以使用MMM时,需要2*n+1个IP,n为mysql数据库结点个数,包括master,slave)

当有数据库结点fail时,mmmd_mon检测不到mmmd_agent的心跳或者对应的MySQL服务器的状态,mmmd_mon将进行决定,并下指令给某个正常的数据库结点的mmmd_agent,使得该mmmd_agent“篡位”使用(注)刚才fail的那个结点的虚拟IP,使得虚拟IP实际从指向fail的那个机器自动转为此时的这个正常机器。


注:据Qieqie猜测是将获得的虚拟IP设置给网卡,也只能这样了,改天测试验证一下。

repeat: MMM对MySQL Master-Slave Replication绝对是一个很有益的补充!

 

参考资料
Switching Masters During Failover
http://dev.mysql.com/doc/refman/5.1/en/replication-solutions-switch.html
downpour: 讨论一下基于Master-Slave数据库模式的J2EE开发的框架选择
http://www.javaeye.com/topic/143714
MMM http://blog.kovyrin.net/mysql-master-master-replication-manager/
Project page on Google Code: http://code.google.com/p/mysql-master-master
mmm-devel users group: http://groups.google.com/group/mmm-devel

mysql压力测试工具:mysqlslap

mysqlslap是一个mysql官方提供的压力测试工具。以下是比较重要的参数:
–defaults-file,配置文件存放位置
–concurrency,并发数
–engines,引擎
–iterations,迭代的实验次数
–socket,socket文件位置

自动测试:
–auto-generate-sql,自动产生测试SQL
–auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。
–number-of-queries,执行的SQL总数量
–number-int-cols,表内int列的数量
–number-char-cols,表内char列的数量

例如:
shell>mysqlslap –defaults-file=/u01/mysql1/mysql/my.cnf –concurrency=50,100 –iterations=1 –number-int-cols=4 –auto-generate-sql –auto-generate-sql-load-type=write –engine=myisam –number-of-queries=200 -S/tmp/mysql1.sock
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.016 seconds
Minimum number of seconds to run all queries: 0.016 seconds
Maximum number of seconds to run all queries: 0.016 seconds
Number of clients running queries: 50
Average number of queries per client: 4

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.265 seconds
Minimum number of seconds to run all queries: 0.265 seconds
Maximum number of seconds to run all queries: 0.265 seconds
Number of clients running queries: 100
Average number of queries per client: 2

指定数据库的测试:
–create-schema,指定数据库名称
–query,指定SQL语句,可以定位到某个包含SQL的文件

例如:
shell>mysqlslap –defaults-file=/u01/mysql1/mysql/my.cnf –concurrency=25,50 –iterations=1 –create-schema=test –query=/u01/test.sql -S/tmp/mysql1.sock
Benchmark
Average number of seconds to run all queries: 0.018 seconds
Minimum number of seconds to run all queries: 0.018 seconds
Maximum number of seconds to run all queries: 0.018 seconds
Number of clients running queries: 25
Average number of queries per client: 1

Benchmark
Average number of seconds to run all queries: 0.011 seconds
Minimum number of seconds to run all queries: 0.011 seconds
Maximum number of seconds to run all queries: 0.011 seconds
Number of clients running queries: 50
Average number of queries per client: 1

使用TC4400自带蓝牙连接简报鲨8000

一、在设备管理器中查看鼠标的设备ID号.

HID\{00001124-0000-1000-8000-00805f9b34fb}&VID_045E&PID_0701&Col02

上面的字符就是简报鲨鱼8000的设备ID

image

 

二、修改驱动

我安装的是IntelliPoint 6.3, 其他版本的驱动文件名称或路径可能不同。

C:\Program Files\Microsoft IntelliPoint\pnt32uw.inf

搜索

HID\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0701&Col02

改为

HID\{00001124-0000-1000-8000-00805f9b34fb}&VID_045E&PID_0701&Col02

一共有三处,修改之前注意备份.

 

三、更新驱动

一定要从列表或指定位置安装,不要自动搜索。

 

四、重新启动

 

EOF

TC4400入手

Mark

TC4200 -> TC4400

价格 7.5K

SSO方案

企业SSO方案

ubuntu 7.10 vsftp的虚拟用户设置

第一步: 配置PAM
[root@www linux]# vi /etc/pam.d/vsftpd

#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_users
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_users
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include system-auth
#account include system-auth
#session include system-auth
#session required pam_loginuid.so

 

第二步: 建立vsftp的本地帐户

[root@www linux]# adduser -d /home/ftp/ pencat

 

第三步: 配置vsftp

[root@www linux]# vim /etc/vsftpd.conf

local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
user_sub_token=$USER
local_root=/home/ftp/$USER
guest_enable=YES
guest_username=pencat
anon_umask=0022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anonymous_enable=NO

 

第四步: 建立虚拟用户

[root@www linux]# vim /etc/vsftpd/vsftpd_users.txt

username
password
pencat
password for pencat

[root@www linux]# db3_load -T -t hash -f /etc/vsftpd/vsftpd_users.txt /etc/vsftpd/vsftpd_users.db

[root@www linux]# chmod 600 /etc/vsftpd/vsftpd_users.db /etc/vsftpd/vsftpd_users.txt

这里需要注意ubuntu 7.10下需要用db3_load, 否则验证是会失败的.

 

第五步: 建立虚拟用户的目录,以及设置权限

[root@www linux]# mkdir -p /home/ftp/username

[root@www linux]# mkdir -p /home/ftp/pencat

[root@www linux]# chwon -R pencat.pencat /home/ftp


第六步: 完成并测试

[root@www linux]# tail -f /var/log/auth.log

Mar 2 15:14:51 www vsftpd: pam_userdb(vsftpd:auth): user 'pencat' granted access

 

[EOF]

远程打印流程

异地打印流程

centos 5.2 配置pptp客户端

1. 下载源码包

# wget http://nchc.dl.sourceforge.net/sourceforge/pptpclient/pptp-1.7.2.tar.gz

2. 编译

# make

3. 安装

# make install

4. 配置

# pptpsetup --create tunnelname --server xxx.xxx.xxx.xxx --username somebody --password sercet

5. 连接

# pppd call tunnelname

6. 断开

# killall pppd

注意事项:

在处理路由的时候采用client to lan方式,需要增加对方lan的路由或者目标网络的路由.

# route add -net 192.168.2.0 netmask 255.255.255.0 dev ppp0

ppp0是pptp连接的名字, 如果不确定 可以使用ifconfig命令查看

 

srt字幕时间校对

下了个国家宝藏2, 居然是枪版....与发行的字幕完全对不上. 不过无论是枪版还是影版说话的时间间隔总是不变的。只要调整时间差就OK.  用VB6写了个程序完成这个工作.

Dim linestr As String
Dim x As Integer
Dim y As Integer
Open App.Path & "\z.new.srt" For Append As #2
Open App.Path & "\z.srt" For Input As #1
    Do While Not EOF(1)
        Line Input #1, linestr           '   将数据读入变量。
        If InStr(linestr, "-->") > 0 Then
            Debug.Print linestr
            x = InStr(linestr, ",")
            Time1 = Mid(linestr, 1, x - 1)
            T1 = DateAdd("s", Val(Text1.Text), CDate(Time1))
            linestr = Replace(linestr, Time1, "0" & T1)
            x = InStr(linestr, "--> ")
            y = InStr(x, linestr, ",")
            Time1 = Mid(linestr, x + 4, y - x - 4)
            T1 = DateAdd("s", Val(Text1.Text), CDate(Time1))
            linestr = Replace(linestr, Time1, "0" & T1)
            Debug.Print linestr
            Debug.Print ""
        End If
        Print #2, linestr
        DoEvents
    Loop
Close #1
Close #2

下载编译版本

分页:[«]5[6][7][8][9][10][11][12][13][14][15][16][17][18][19][»]

Powered By Z-Blog 1.8 Devo Build 80201

Copyright © 1998-2007 bigcomic.com All rights reserved.