第二行那步有点不解

感谢大家在上一篇&&里的踊跃发言。这里再次分享干货,&简单介绍mysql双机,多机异地热备简单原理实战。
双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。& 对于异地热备,尤其适合灾备。废话不多说了。我们直接进入主题。 我们会主要介绍两部分内容:
一, mysql 备份工作原理
二, 备份实战
我们开始。
我使用的是mysql 5.5.34,
一, mysql 备份工作原理
简单的说就是把 一个服务器上执行过的sql语句在别的服务器上也重复执行一遍, 这样只要两个数据库的初态是一样的,那么它们就能一直同步。
当然这种复制和重复都是mysql自动实现的,我们只需要配置即可。
我们进一步详细介绍原理的细节, 这有一张图:
上图中有两个服务器, 演示了从一个主服务器(master) 把数据同步到从服务器(slave)的过程。
这是一个主-从复制的例子。 主-主互相复制只是把上面的例子反过来再做一遍。 所以我们以这个例子介绍原理。
对于一个mysql服务器, 一般有两个线程来负责复制和被复制。当开启复制之后。
1. 作为主服务器Master,& 会把自己的每一次改动都记录到 二进制日志 Binarylog 中。 (从服务器会负责来读取这个log, 然后在自己那里再执行一遍。)
2. 作为从服务器Slave, 会用master上的账号登陆到 master上, 读取master的Binarylog,& 写入到自己的中继日志 Relaylog, 然后自己的sql线程会负责读取这个中继日志,并执行一遍。& 到这里主服务器上的更改就同步到从服务器上了。
在mysql上可以查看当前服务器的主,从状态。 其实就是当前服务器的 Binary(作为主服务器角色)状态和位置。 以及其RelayLog(作为从服务器)的复制进度。
例如我们在主服务器上查看主状态:
mysql& show master status\G
*************************** 1. row ***************************
File: mysql-bin.000014
Position: 107
Binlog_Do_DB:
Binlog_Ignore_DB: mysql,information_schema,performance_schema,amh
1 row in set (0.00 sec)
稍微解释一下这几行的意思:
1. 第一行表明 当前正在记录的 binarylog文件名是: mysql-bin.000014.
我们可以在mysql数据目录下,找到这个文件:
2.& 第二行, 107. 表示当前的文件偏移量, 就是写入在mysql-bin.000014 文件的记录位置。
这两点就构成了 主服务器的状态。& 配置从服务器的时候,需要用到这两个值。 告诉从服务器从哪读取主服务器的数据。 (从服务器会登录之后,找到这个日志文件,并从这个偏移量之后开始复制。)
3. 第三行,和第四行,表示需要记录的数据库和需要忽略的数据库。 只有需要记录的数据库,其变化才会被写入到mysql-bin.000014日志文件中。& 后面会再次介绍这两个参数。
我们还可以在从服务器上,查看从服务器的复制状态。
mysql& show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 198.**.***.***
Master_User: r*******
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000014
Read_Master_Log_Pos: 107
Relay_Log_File: mysqld-relay-bin.000013
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000014
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql,information_schema,amh,performance_schema
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107
Relay_Log_Space: 556
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
我们还是来重点解释途中的红圈的部分:
1.& Master_host 指的是 主服务器的地址。&
2. Master_user 指的是主服务器上用来复制的用户。& 从服务器会用此账号来登录主服务。进行复制。
3. Master_log_file 就是前面提到的, 主服务器上的日志文件名.
4. Read_Master_log_pos 就是前面提到的主服务器的日志记录位置, 从服务器根据这两个条件来选择复制的文件和位置。
5. Slave_IO_Running:& 指的就是从服务器上负责读取主服务器的线程工作状态。 从服务器用这个专门的线程链接到主服务器上,并把日志拷贝回来。
6. Slave_SQL_Running: 指的就是专门执行sql的线程。 它负责把复制回来的Relaylog执行到自己的数据库中。 这两个参数必须都为Yes 才表明复制在正常工作。
其他的参数之后再介绍。
二, mysql 双机热备实战
了解了上面的原理之后, 我们来实战。 这里有两个重点, 要想同步数据库状态, 需要相同的初态,然后配置同步才有意义。 当然你可以不要初态,这是你的自由。 我们这里从头开始配置一遍。
我们先以A服务器为起点,& 配置它的数据库同步到B。& 这就是主-从复制了。 之后再反过来做一次,就可以互相备份了。
1, 第一步,
在A上面创建专门用于备份的 用户:
grant replication slave on *.* to @'192.***.***.***' identified by 'hj34$%&mnkb';
上面把ip地址换成B机器的ip地址。 只允许B登录。安全。
用户名为: repl_user
密码为: hj34$********nkb
这个等会在B上面要用。
2. 开启主服务器的 binarylog。
很多服务器是默认开启的,我们这里检查一下:
打开 /etc/my.cnf
我来解释一下红框中的配置:
前面三行, 你可能已经有了。
binlog-do-db 用来表示,只把哪些数据库的改动记录到binary日志中。 可以写上关注hello数据库。 但是我把它注释掉了。 只是展示一下。 可以写多行,表示关注多个数据库。
binlog-ignore-db 表示,需要忽略哪些数据库。我这里忽略了其他的4个数据库。
后面两个用于在 双主(多主循环)互相备份。 因为每台数据库服务器都可能在同一个表中插入数据,如果表有一个自动增长的主键,那么就会在多服务器上出现主键冲突。& 解决这个问题的办法就是让每个数据库的自增主键不连续。& 上图说是, 我假设需要将来可能需要10台服务器做备份, 所以auto-increment-increment 设为10.&& 而 auto-increment-offset=1 表示这台服务器的序号。 从1开始, 不超过auto-increment-increment。
这样做之后, 我在这台服务器上插入的第一个id就是 1, 第二行的id就是 11了, 而不是2.
(同理,在第二台服务器上插入的第一个id就是2, 第二行就是12, 这个后面再介绍) 这样就不会出现主键冲突了。 后面我们会演示这个id的效果。
3.& 获取主服务器状态, 和同步初态。
假设我现在有这些数据库在A上面。
如果你是全新安装的, 那么不需要同步初态,直接跳过这一步,到后面直接查看主服务器状态。
这里我们假设有一个 hello 数据库作为初态。
先锁定 hello数据库:
FLUSH TABLES WITH READ LOCK;
然后导出数据:
我这里只需要导出hello数据库, 如果你有多个数据库作为初态的话, 需要导出所有这些数据库:
然后查看A服务器的binary日志位置:
记住这个文件名和 位置, 等会在从服务器上会用到。
主服务器已经做完了, 可以解除锁定了:
4.& 设置从服务器 B 需要复制的数据库
打开从服务器 B 的 /etc/my.cnf 文件:
解释一下上面的内容。
server-id 必须保证每个服务器不一样。 这可能和循环同步有关。 防止进入死循环。
replicate-do-db 可以指定需要复制的数据库, 我这里注掉了。 演示一下。
replicate-ignore-db 复制时需要排除的数据库, 我使用了,这个。 除开系统的几个数据库之外,所有的数据库都复制。
relay_log 中继日志的名字。 前面说到了, 复制线程需要先把远程的变化拷贝到这个中继日志中, 在执行。
log-slave-updates 意思是,中继日志执行之后,这些变化是否需要计入自己的binarylog。 当你的B服务器需要作为另外一个服务器的主服务器的时候需要打开。& 就是双主互相备份,或者多主循环备份。 我们这里需要, 所以打开。
保存, 重启mysql。
5. 导入初态, 开始同步。
把刚才从A服务器上导出的 hello.sql 导入到 B的hello数据库中, 如果B现在没有hello数据库,请先创建一个, 然后再导入:
创建数据库:
mysql& create database hello default charset utf8;
把hello.sql 上传到B上, 然后导入:
如果你刚才导出了多个数据库, 需要把他们都一一上传导入。
开启同步, 在B服务器上执行:
CHANGE MASTER TO
MASTER_HOST='192.***.***.***',
MASTER_USER='repl_user',
MASTER_PASSWORD='hj3****',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=7145;
上面几个参数我就不解释了。 前面说过了。
重启mysql,& 然后查看slave线程开启了没:
注意图中的红框, 两个都是Yes, 说明开启成功。
Slave_IO_Running: YesSlave_SQL_Running: Yes
如果其中一个是No, 那就说明不成功。需要查看mysql的错误日志。 我在第一次做的时候就遇到这个问题。有时候密码填错了, 有时候防火墙的3306没有打开。ip地址不对,等等。 都会导致失败。
我们看错误日志: mysql的错误日志一般在:
文件名应该是你的机器名, 我这里叫做host1.err 你换成你自己的。
到这里主-从复制已经打开了。 我们先来实验一下。
我们在A的数据库里面去 添加数据:
我在A的 hello数据库的test表中 连续插入了3条数据,& 注意看他们的自增长id, 分别是1,11,21.& 知道这是为什么吗。 前面已经说过了,不懂再回去看。
我们去看一下B数据库有没有这三条数据:
打开B的数据库:
发现已经在这了。 这里效果不直观。
此时不要在B中修改数据。 我们接着配置从B到A的复制。& 如果你只需要主从复制的话, 到这里就结束了。后面可以不看了。 所有A中的修改都能自动同步到B, 但是对B的修改却不能同步到A。 因为是单向的。 如果需要双向同步的话,需要再做一次从B到A的复制。
基本跟上面一样:我们简单一点介绍:
1. 在B中创建用户;
2. 打开 /etc/my.cnf , 开启B的binarylog:
注意红框中所新添加的部分。
3. 我们不需要导出B的初态了,因为它刚刚才从A导过来。& 直接记住它的master日志状态:
记住这两个数值,等会在A上面要用。
B服务器就设置完了。
4. 登录到A 服务器。 开启中继:
注意框中心添加的部分, 不解释了。
5. 启动同步:
上面的ip地址是B的ip地址, 因为A把B当做master了。 不解释了。
然后重启mysql服务。
然后查看,slave状态是否正常:
图中出现了两个No。
Slave_IO_Running: No
Slave_SQL_Running: No
说明slave没有成功, 即,从B到A的同步没有成功。 我们去查看mysql错误日志,前面说过位置:
找到& 机器名.err 文件,打开看看:
看图中的error信息。& 说找不到中继日志文件。
这是因为我们在配置A的中继文件时改了中继文件名,但是mysql没有同步。解决办法很简单。
先停掉mysql服务。& 找到这三个文件,把他们删掉。 一定要先停掉mysql服务。不然还是不成功。你需要重启一下机器了。 或者手动kill mysqld。
好了, 启动mysql之后。 我们在来检查一下slave状态:
注意图中两个大大的Yes。& 哈哈。
Slave_IO_Running: YesSlave_SQL_Running: Yes
证明从B到A的复制也成功了。
此时我们去B服务器中插入几条数据试试:
我在B中插入了两条数据。 注意看他们的id。& 不解释。
然后我们,登录去A中看看,A数据库变了没。
可以看到已经自动同步到A了。
至此, AB双主互相热备就介绍完了。
原理其实很简单,是不是。
理解了这个原理, 多机循环互备就简单了。这里就不再展开了。
花了一天时间写这个博客,大家要顶啊。
欢迎大家访问我的独立博客:&多多交流。
1. mysql-keepalived-实现双主热备读写分离
2. MySQL数据同步【双主热备】
3. Mysql双机热备实现
4. 高性能Mysql主从架构的复制原理及配置详解
阅读(...) 评论()《头文字D第三部》主演:,剧情讲述了秋天来了。秋名86改装了涡轮增压引擎并击败了秋山涉之后的某一天,高桥凉介突然来访,并向拓海提出了加盟的邀请,希望能集合群马县的高手,向全国的山路进行挑战(这就是Third Stage最著名的Project D啦……),拓海犹豫着,并没有马上答应高桥凉介的邀请,他觉得在自己还有其它的一些事情需要解决。首先,拓海前往曰光,挑战帝皇队的须藤京一,进行了激烈的比赛,在那曲折迂回的伊波吕山道上,先行的拓海并没有让须藤京一超越,似乎是拓海赢了,但是拓海认为自己仅仅是与须藤京一打成平手,而这就让他感到很满足了。 几天之后,同样是曰光的车手小柏前来秋名对拓海进行挑战。小柏本来的对手是须藤京一,但是却被拓海抢先打败了,所以小柏自然将目标转移到拓海上。同时,小柏的父亲与拓海的父亲竟然是老对手!一场两代人之间的恩怨就在伊波吕山道上展开……小柏利用山道的转角进行跳跃(就是从上面的山道,不走正确的行车线,而直接利用高度差跃过转角到下一条山道)在中段超越了拓海,但是拓海迅速掌握了这种疯狂的行驶方法,在最后一段的路程中以沟渠行车法赶上与小柏并行,在终点前,小柏的赛车因为路面的落叶而打滑,拓海仅以一线之差赢得这场比赛搜啥哦影视网-免费在线观看最新VIP大片头文字D第三部(全2集)2.0标签:剧集:全2集主演:导演:点播:加载中类型:
看头文字D第三部影片简介秋天来了。秋名86改装了涡轮增压引擎并击败了秋山涉之后的某一天,高桥凉介突然来访,并向拓海提出了加盟的邀请,希望能集合群马县的高手,向全国的山路进行挑战(这就是Third Stage最著名的Project D啦……),拓海犹豫着,并没有马上答应高桥凉介的邀请,他觉得在自己还有其它的一些事情需要解决。首先,拓海前往曰光,挑战帝皇队的须藤京一,进行了激烈的比赛,在那曲折迂回的伊波吕山道上,先行的拓海并没有让须藤京一超越,似乎是拓海赢了,但是拓海认为自己仅仅是与须藤京一打成平手,而这就让他感到很满足了。 几天之后,同样是曰光的车手小柏前来秋名对拓海进行挑战。小柏本来的对手是须藤京一,但是却被拓海抢先打败了,所以小柏自然将目标转移到拓海上。同时,小柏的父亲与拓海的父亲竟然是老对手!一场两代人之间的恩怨就在伊波吕山道上展开……小柏利用山道的转角进行跳跃(就是从上面的山道,不走正确的行车线,而直接利用高度差跃过转角到下一条山道)在中段超越了拓海,但是拓海迅速掌握了这种疯狂的行驶方法,在最后一段的路程中以沟渠行车法赶上与小柏并行,在终点前,小柏的赛车因为路面的落叶而打滑,拓海仅以一线之差赢得这场比赛……主演:&&&&主演:&&主演:&&&&&&主演:&主演:&主演:&&&&&&&&主演:主演:本类热播主演:&&&主演:&&&&&主演:&主演:&主演:主演:主演:主演:&排行榜看电影看连续剧看综艺看动漫12345678910123456789101234567891012345678910">00本类排行 10.0116512集全导演:太多秀太主演:原田瞳看点:25岁的女高中生动画全集与此前的《秃驴走肾不走心》《裙子里面是野兽240集全11453全2集1130460集全111751107645集全11037全24集10988超清10929更新至11集108910更新至24集108811更新到12集108612正片10841311集全10831412集全10821530集全10801612集全108017超清108018BD1280高清中字版107819正片107820超清107621107322全52集107323正片10722426集全10712539集全107026全27集106927全26集106628舞动青春106529更新到20集106430最强人间兵器黑麒麟106431洗脑循环神曲榜106432更新至67集106233超清106234共1集全106235更新至14106236全12集1062土匪的隐语暗号是怎样形成的,不懂这些在江湖上闯荡寸步难行土匪的隐语暗号是怎样形成的,不懂这些在江湖上闯荡寸步难行历史凌烟阁百家号土匪内部通行隐语暗号。土匪的隐语是社会亚文化群发生过程中的产物,它作为一种特种语言,既是土匪自己的习惯和癖好,又是土匪为了维持其系统的生存与发展而创造的交际工具。因此,凡在江湖上闯荡、在土匪中混迹的人,不了解、这些隐语黑话,是寸步难行的。民国时期土匪的隐语很多,各地土匪内部流行的一套黑话,多带有地方方言特点。如河南中部的汝州,一向是土匪出入的中心,有人认为河南土匪的隐语黑话,是以汝州方言为基础,混杂各种俚语,因此不经指点不可能完全了解。其它地方土匪黑话的情况也大体类同。土匪隐语的形成,原因繁杂,据研究,主要原因是:第一,土匪重迷信忌讳。土匪基本上过的是杀人放火、抢劫勒索的生活,经常要冒生命危险,作为心理上的调节,土匪们将一切凶吉归结为天意,因此,他们办事、说话,都讨吉利。每次出发抢劫之前,都要占卜算卦,根据卜卦的吉凶来决定他们的行动。说话要回避不吉利的词语,凡是忌讳的言词,都以代用词来替补。如“吃饭”、“喝茶”这两个日常生活用语,就是他们忌讳的,因为“饭”与“犯”、“茶”与“査”谐音。为了回避这两个不吉利的词,山东一带的土匪称吃饭为“上传子”(东北马贼叫“哨富”,河南土匪叫“填瓤子”),把喝茶叫“上请传子”,东北马贼叫“富海”,红帮土匪叫“受黄莲子”。又如,“睡”与“碎”、“饺”与“绞”、“烟”与“淹”、“猪”与“诛”同音,为了回避这些不吉利的同音字眼,土匪将睡觉称“搪桥”,饺子称“飘洋子”,抽烟称“啃草卷”,杀猪称“搬浆子”。此外,日常行为姿势也有禁忌,如不准背抄手,因为背抄手和背绑着的姿势相似。玩耍时不准作跪的姿势,因为这是被抓后见官或被砍头的样子。不准将掰开的馍对着别人,因为这类似对口,土匪避讳“对口”二字,“对口”就是“对口供”。不准将筷子架在碗沿上,因为这像受某种酷刑(如压杠)的姿势或像两支架着的指向对面的枪管。土匪特别忌讳网,张网捕鸟捕鱼,被他们碰上,非立即把你打死不可,否则就认为有自投罗网的危险。土匪为了应付类似上述各种迷信忌讳需要,就产生了一系列隐语黑话,这是土匪隐语重要来由之一。第二,土匪行动诡秘。为防止敌人探知底细,创造了一套隐语,这大多与军事行动有关。如他们把地方官吏称为“古子”,地方衙门称为“威武窑”,称监狱为“快窑”,称官兵为“冷子”或“风”,称警察为“蚱蜢”或“兔子”,称地方团队为“冷码”。土匪会晤叫“碰码”或“碰杆”,放哨叫“把风”,遇敌人行动迫近时,土匪就高喊“风紧”,与官兵接火对击叫“交亮”,被敌人围困叫“幔上来”,被捕叫“滑倒了”,受伤叫“挂彩”、“带彩”或“贴金”,战死叫“睡了”,撤退叫“顺水”、“滑”,赶紧撤退叫“紧滑”,等等。第三,土匪在其它活动中自然形成的一套习惯用语,也是土匪隐语的一个重要来由。如土匪的一项主要活动是绑架勒赎,因为绑人目的在于勒赎钱财,故江湖上称被绑架勒赎的人为“肉票”。被绑架的本国人叫“本票”,外国人叫“洋票”,新被绑票的人叫“新票”,被绑架已久的叫“旧票”,被绑架的富人叫“彩票”,穷人叫“当票”,被绑架的男票叫“天牌票”,女票叫“地牌票”或“花票”,拘留“肉票”的地方叫“票房”,管理票房的头目叫“票房头”,用财物换回“肉票”叫“赎票”或“领票”’杀害“肉票”叫“撕票”等等。又如投奔土匪的人,大多要隐去真实姓名。土匪彼此交往一般也只称匪号,除非江湖中人询问和碰码时,才用黑话报出姓氏。姓在马贼黑话中称“蔓”,姓什么称做“什么蔓”。有的姓以形取音,如姓丁就称“尖子蔓”(因为“丁”与“钉”同音,钉子头尖众姓王称“虎头蔓”,虎头上有王字有的姓氏则借用土匪黑话,如姓刘的称“顺水”(因为溜走、逃跑在土匪中称“顺水”)。再如,土匪对各种行业、人体器官、动物、天体等都有代称,久了就形成隐语。如贩私盐叫“走沙子”,脸叫“盘儿”,狗叫“皮子”,日称“轮子”等。在土匪的生活中,还有一套联络暗号,大多用于土抢劫前,一般要打出“对码子”暗号,那就是定更之后,土匪指挥部用手电筒在黑暗野地打出一点两点闪光,以灯光打出暗语,联络到某地集合。再过一会儿灯光全消失,表明土匪队伍已集合齐,然后鸣枪出发。此外,土匪在逃避追捕时及匪部之间的联络也都有暗号。解放前国民党多次派部队清剿,总是扑空,其中一个重要原因,就是不了解复杂地形和土匪出没的暗号。土匪的联络暗号,也因时因地而变,相当复杂,不能一一叙述。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。历史凌烟阁百家号最近更新:简介:说一说那些曾经发生的事作者最新文章相关文章扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
一个四阶行列式第一行是x 1 1 1 ,第二行是1 x 1 1,第三行是1 1 x 1 ,第四行是1 1 1 x的方程的所有的根,需要具体的解题步骤,因为这是线性代数经管类的,不需要多复杂,
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
2,3,4列加到第1列2,3,4行减第1行行列式化为上三角行列式D = (x+3)((x-1)^3所以 x=1 或 -3.
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 解行相应 的文章

 

随机推荐