mysql数据库主从备份
主数据库ip:$IP1
从数据库ip:$IP2
修改主数据库配置文件/root/edp/etlmysql/database/my.cnfserver-id = 1
#服务器id(主从不同)log_bin = mysql-bin
#打开日志(主机需打开)expire_logs_days = 7
#自动清理30天前的日志slave-skip-errors=1062
#复制过程中主键冲突从服务器可以自动跳过replicate-wild-ignore-table=mysql.%
#slave 不复制 master的 mysql库log-slave-updates
#更新从机日志sync_binlog = 1
#执行1次写入后,与硬盘同步。1是最安全的,但是也是最慢的auto_increment_offset = 2
#第一次加载数值时的偏移值的个位值auto_increment_increment = 2
#自增值binlog-ignore-db=mysql
#不给从机同步的库
重启主数据库
修改从数据库配置文件/etc/my.cnf
server-id = 2
log_bin = mysql-bin.log
expire_logs_days = 7
slave-skip-errors=1062
replicate-wild-ignore-table=mysql.%
log-slave-updates
sync_binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2
重启从数据库
mysql -uroot -p
在主服务器上为从服务器建立一个同步用户,该帐户授予REPLICATION SLAVE权限。
mysql>grant replication slave on *.* to 'replicate'@'&IP2' identified by ‘replicate';
mysql>flush privileges;
创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用replicat帐户对主服务器(Master)数据库进行访问下,看下是否能连接成功。mysql -h $IP1 -ureplicate -preplicate --port=13308
主数据库锁表mysql>flush tables with read lock;
在从数据库远程备份mysqldump -h$IP1 -uroot -p -P13308 --all-databases >all.sql
进入mysql命令行,将mysqldump文件导入从数据库mysql>source all.sql
主数据库获取二进制日志的信息mysql>show master status;
在配置主从关系中File的值为master_log_file的值,Position的值为m
aster_log_pos的值。
从数据库指定同步位置mysql>stop slave;
#停止同步mysql>change master to master_host='$IP',master_user='replicate',master_password='replicate',master_port=13308,master_log_file='mysql-bin.000001',master_log_pos=170536855;
#change mster 语句指定同步位置mysql>start slave;
#启动同步mysql>show slave status\G
查看从数据库状态
主数据库解除锁表mysql>unlock tables;