mysql主从相关

##mysql对数据库授权 
mysql> GRANT ALL ON `db_cn`.* TO ‘db_cn‘@‘192.168.3.%‘ IDENTIFIED BY ‘xxxxxxxxxxxxx‘;

mysql> GRANT SHUTDOWN ON *.* TO ‘multi_admin‘@‘localhost‘ IDENTIFIED BY ‘123456‘; 
##mysqldump默认使用UTF8字符集备份 
mysqldump -udatingdb_cn -p --databases datingdb_cn > datingdb_cn.sql

##找出支持引擎,Myisam作为默认的引擎 
mysql> SHOW ENGINES;

##重置数据库root的密码 
mysql -u root 
mysql -uroot -S /var/data/mysql/master/mysql_master.sock ##指定sock登录 
UPDATE mysql.user SET Password=PASSWORD(‘newpwd‘) WHERE User=‘root‘; 
FLUSH PRIVILEGES;

##仅备份数据库的表结构
/usr/bin/mysqldump  -uroot -S /var/data/mysql/master/mysql_master.sock --opt -R --databases datingdb_cn>datingdb_cn_`date +%Y_%H_%M`.sql

##完全备份数据库的方式 
mysqldump --tab=/path/to/some/dir --opt db_name  ##方式一 
mysqlhotcopy db_name /path/to/some/dir           ##方式二,只针对Myisam表

##完全备份所有数据库中的所有InnoDB表 
mysqldump --single-transaction --all-databases > backup_sunday_1_PM.sql

##实现完全备份是清空Mysql的二进制日志,以至转存文件中包含新的当前二进制文件 
mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > backup_sunday_1_PM.sql

##完全备份时,清空不再使用的日志文件 
##服务器为复制主服务器,--delete-master-logs删掉MySQL二进制日志很危险,从服务器可能还没完全处理该二进制日志的内容 
mysqldump --single-transaction --flush-logs --master-data=2  --all-databases --delete-master-logs > backup_sunday_1_PM.sql

##完全备份、增量备份的恢复: 
mysql < backup_sunday_1_PM.sql ##完全备份的恢复 
 mysqlbinlog gbichot2-bin.000007 gbichot2-bin.000008 | mysql ##7,8为两个时间点的增量备份 
  
##说明: 
1. 定期进行完全备份,使用mysqldump命令进行在线非块备份 
2. 用FLUSH LOGS或mysqladmin flush-logs清空日志进行定期增量备份

##Mysql主从复制的实现 
(1)确保在服务器和从服务器上安装的MySQL版本一致

(2)主服务器上为服务器设置一个连接账户。该账户必须授予REPLICATION SLAVE权限 
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘%.mydomain.com‘ IDENTIFIED BY ‘zxxxxxxxxxxx‘; 
GRANT ALL PRIVILEGES  on ** to ‘db_cn‘@‘dev1.asianchats.com.cn‘ identified by ‘zxxxxxxxxxxx‘; 
GRANT ALL PRIVILEGES  on *.* to ‘db_cn‘@‘localhost‘ identified by ‘sACt5zxPJ8t9PV8N‘; 
flush privileges;

(3)执行语句清空所有表和块写入语句 
mysql> FLUSH TABLES WITH READ LOCK;

##创建快照最简单的途径是使用归档程序对主服务器上的数据目录中的数据库进行二进制备份 
tar -cvf /tmp/mysql-snapshot.tar . 
tar -cvf /tmp/mysql-snapshot.tar ./this_db

##读锁定有效时,读取主服务器上当前的二进制日志名和偏移量值 
(4)mysql > SHOW MASTER STATUS;     ## mysql > SHOW SLAVE STATUS;

(5)##取得快照并记录日志名和偏移量后,可以在主服务器上重新启用写活动:    
mysql> UNLOCK TABLES;

##使用InnoDB表的二进制快照来关闭主服务器并复制InnoDB数据文件、日志文件和表定义文件(.frm文件)。\ 
##要记录当前的日志文件名和偏移量,关闭服务器之前执行: 
mysql> FLUSH TABLES WITH READ LOCK; 
mysql> SHOW MASTER STATUS;

## 记录前面所示的SHOW MASTER STATUS的输出中显示的日志名和偏移量。记录日志名和偏移量后 \ 
## 不解锁表关闭服务器以确保服务器关闭时的快照与当前的日志文件和偏移量相对应  
/etc/init.d/mysqld stop

##如果使用mysqldump备份主服务器的数据,将转储文件装载到从服务器 
mysql -uroot -p yourdatabase < database_bak.sql 
(6)授权操作 
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; 
###################################################################################################################### 
myisampack,压缩MyISAM表以产生更小的只读表的一个工具

##如果由于结果较大而内存不足遇到问题,使用--quick选项。这样可以强制mysql从服务器每次一行搜索结果 
mysql --quick

##对InnoDB作数据库转储时,先作表锁定操作 
mysql > FLUSH TABLES WITH READ LOCK;

#Mysql slave群切换为主数据库操作 
##说明:

1.主数据库主机受控(黑客入侵)  
2.主机物理损坏  
3.系统环境  
##切换过程:  
(1) Master down  
(2) Slave1 切换成新的Master  
(3) Slave2 更换Master配置为原Slave2

1.从slave(slave1)群众中选定一个slave,准备换成master

2.检查slave1的复制状态  
mysql> SHOW PROCESSLIST; ## 检查Slave1是否已经完成从Master读取relay log,若还处于读的状态,stop slave,数据将lost

3.停止slave1的slave进程,设置为master  
mysql> STOP SLAVE;  
mysql> RESET MASTER;

4.将slave 群中的其他slave(slave2)的Master切换成新的master(上述1,2,3所操作的master)  
mysql> stop slave;  
mysql> CHANGE MASTER TO  
mysql> MASTER_HOST="192.168.10.x",  
mysql> MASTER_USER=‘user‘,  
mysql> ;  
mysql> start slave;

5.检查slave的状态  
mysql> show slave status \G;

6.检查复制是否成功  
(1) 在新的Master创建测试表:  
mysql> create table t1 as select * from test; ##已有的test数据库  
mysql> show tables;  
mysql> select count(*) from t1;  
(2) 在slave2上面看是否已成功复制  
mysql> show tables;  
mysql> select count(*) from t1;

7.若成功复制,则整个操作完成

时间: 2024-08-19 09:10:34

mysql主从相关的相关文章

61.mysql主从相关(二)

一.mysql主主 两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用: 二.mysql读写分离 首先设置主从,读的操作会在从上执行,写的操作在主上执行 mysql-proxy mysql官方产品. mycat 开源的分布式管理中间件. 三.mysql一主多从 与一主一从类似,创建多个从库 四.环形主从 A>B>C>A分别设置A主B从B主C从C主A 从 原文地址:http://blog.51cto.com/13569831/21

60.mysql主从的相关知识

MYSQL主从作用大致分为数据备份和负载均衡两类Master 节点,负责所有的「写请求」Slave 节点,负责大部分的「读请求」:MySQL 的主从复制:异步单线程.实现的具体逻辑方法:Master上 1 个IO线程,负责向Slave传输 binary log(binlog)Slave上 2 个线程:IO 线程和执行SQL的线程,其中:IO线程:将获取的日志信息,追加到relay log上:执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql: 复制类型分为两类,一

高性能Mysql主从架构的复制原理及配置详解

1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收

mysql主从切换维护时的几点注意

随着业务量的不断增加,数据库的压力总是会越来越大的,如果是要对mysql数据库的硬件升级,势必是要对mysql主从做切换,mysql的主从复制的结构如果不借助第三方工具时做mysql的高可用,要做主从的切换是要做停机维护手动切换的,这里就以普通的一主一从的结构中简单的说一说mysql数据库主从切换的几个要注意的点: 1.server id以前看见很多人在做主从切换的时候没有注意到这一点,导致slave IO报错,包括自己也有过,这个还是要稍微注意下,尤其是在mysql的大规模集群下 2.在主从切

2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种情况属于异步复制,无需维持长连接 通过配置,可以复制所有库或者几个库,甚至库中的一些表 它是MySQL内建的,自带 Replication的原理 主服务器master将数据库的改变写入二进制日志文件,从服务器slave同步这些二进制日志,并生成中继日志,从服务器根据中继日志,执行这些改变 DML:S

mysql-poxy 实现mysql主从架构读写分离

在高并发系统设计中,后端数据库的性能往往会成为系统的瓶颈,这时候就需要进行合理的设计,以分摊后端数据库的压力,比如在数据层前面构建缓存层.数据文件存放在RAID这样的设备.对数据进行分库分表分区存放.合理利用索引.进行数据的读写分离等.mysql-proxy提供了mysql数据库的读写分离能力,mysql-proxy通过Lua脚本能分析得出用户的sql请求,如果发现在是read请求,则会转化到master-slave模型的slave中,如果是write请求,则会转发到master中,以达到读写分

python自动化管理mysql主从同步

mysql 多实例 1.my.cnf 通过定义mysqldconfig类   mysqld_vars = {}  从里面获得很多配置文件相关参数写入字典 mysql.py 2.init DB 初始化数据库 3.修改权限 4.rc脚本启动 5.check 检查一下配置文件,配置文件与mysql变量同步 6.值其实一样,不让显示 7.Popen 调用 mysql -e 命令 SQL IO Seconds_Behind_Master:0    看这个阀值.大于两秒 8.mysql主从 主配置文件: b

笔记13(FTP配置、tomcat配置、resin配置、MySQL主从配置)

FTP服务搭建与配置 FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机. 小公司用的多,大企业不用FTP,因为不安全. 使用vsftpd搭建ftp服务 centos上自带vsftpd 安装:yum instal

高性能Mysql主从架构的复制原理及配置详解(转)

温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取