1.查看数据库数据量
use information_schema; select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='XXX'; //查看指定数据库的数据量大小
2.在新服务器上搭建mysql(Debian9+)
wget dev.mysql.com/get/mysql-a…
dpkg -i mysql-apt-config_0.8.9-1_all.deb
apt-get update
(此操作可能会报GPG error 公钥缺失,可执行gpg --keyserver pgpkeys.mit.edu --recv-keys 缺失的公钥 gpg --armor --export 缺失的公钥 | apt-key add -) apt-get install mysql-community-server
3.从旧服务器上dump数据
mysqldump -uroot -p dispatcher > /var/backups/dispatcher.db
注:mysqldump:mysql自带的逻辑备份工具
使用方式: mysqldump [选项] 数据库名 [表名] > 脚本名 或 mysqldump [选项] --数据库名 [选项 表名] > 脚本名 或 mysqldump [选项] --all-databases [选项] > 脚本名
参数说明:
- -host -h 服务器IP地址
- --port -P 服务器端口号
- --user -u MySQL 用户名
- --pasword -p MySQL 密码
- --databases 指定要备份的数据库
- --all-databases 备份mysql服务器上的所有数据库
- --compact 压缩模式,产生更少的输出
- --comments 添加注释信息
- --complete-insert 输出完成的插入语句
- --lock-tables 备份前,锁定所有数据库表
- --no-create-db/--no-create-info 禁止生成创建数据库语句
- --force 当出现错误时仍然继续备份操作
- --default-character-set 指定默认字符集
- --add-locks 备份数据库表时锁定数据库表
- --add-drop-database 每个数据库创建之前添加drop数据库语句。
- --master-data =1:添加change master信息(只包含LSN信息,不包含ip、端口),=2:添加change master信息,并注释掉(不执行)。
4.使用rsync传递到新数据库上
5.在新服务器上还原数据
mysqladmin -uroot -p create db_name mysql -uroot -p db_name < /backup/mysqldump/db_name.db
6.设置主(旧服务器)从(新服务器)同步
从库在配置里设置要同步的数据库 replicate-do-db =test #只复制某个库
主库分配同步账号 grant replication slave on . to '用户名'@'ip' identified by '密码';
在从库内执行 change master to master_host='主库ip',master_port=主库端口号,master_user='主库用户名',master_password='主库密码',master_log_file='主库日志文件名称',master_log_pos=主库LSN
这条命令适用于已经从主库拷贝了全量数据到从库的情况,从库在同步时,只需要重做拷贝时间之后的日志就行
查看主从同步状态
show slave status \G 只要 Slave_IO_Running和Slave_SQL_Running都是Yes,则同步正常