binlog日志: 开发云主机域名二进制日志 MsSQL数据库服务日志文件的一种1、配置好MsQAL服务器,确保能使用密码登入2、调整/etc/my.cnf配置,并重启服务[root@mysql-1 ~]#vim /etc/my.coflog-bin-index=mysql-bin //启用二进制日志,并指定前缀server_id=1binlog_format=STATEMENT //在Mysql5.7中,binlog日志格式默认为ROW3、重启服务
[root@mysql-1 ~]#systemctl restart mysqld
4、查看[root@mysql-1 ~]# ls /var/lib/mysql/mysql-bin.*/var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index查看binlog日志内容[root@mysql-1 mysql]# mysqlbinlog mysql-111-bin.000001
重启MySQL服务程序,会生成一份新的日志:
二、利用binlog日志重做数据库操作 1、执行数据库表添加操作 创建db1库tb1表,表结构自定义:mysql> CREATE DATABASE db1;mysql> USE db1;Database changedmysql> CREATE TABLE tb1( -> id int(4) NOT NULL,name varchar(24) -> );
2、插入3条表记录:mysql> INSERT INTO tb1 VALUES -> (1,’Jack’), -> (2,’Kenthy’), -> (3,’Bob’);3、删除前一步添加的3条表记录 执行删除所有表记录操作:mysql> DELETE FROM tb1;4、通过binlog日志恢复表记录 查看mysql-bin.000001日志内容 [root@mysql-1 ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000001
5、执行指定Pos节点范围内的sql命令恢复数据 注:具体恢复需要看日志信息 [root@mysql-1 ~]# mysqlbinlog –start-datetime=”2018-1-20 20:06:55″ –stop-datetime=”2018-1-20 20:07:23″ /var/lib/mysql/mysql-bin.000002 | mysql -u root -p 结合管道交给msyql命令执行导入重做 Enter password: //验证口令
6、确认恢复结果mysql> SELECT * FROM db1.tb1; +—-+——–+ | id | name |+—-+——–+| 1 | Jack || 2 | Kenthy || 3 | Bob |+—-+——–+3 rows in set (0.00 sec)
三、第三方软件做增量备份XtraBackup 1、安装软件包 [root@mysql-1 ~]# rpm -qpi percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm [root@mysql-1 ~]#rpm –ivh libev-4.15-1.el6.rf.x86_64.rpm 2、 安装依赖包 [root@mysql-1 ~]# yum -y install perl-DBD-MySQL perl-Digest-MD5
注:如果未安装这些依赖包,则直接安装percona-xtrabackup时会报错:
3、确认安装的主要程序/脚本 [root@mysql-1 ~]# rpm -ql percona-xtrabackup-24-2.4.6-2.el7.x86_64/usr/bin/innobackupex/usr/bin/xbcloud/usr/bin/xbcloud_osenv/usr/bin/xbcrypt/usr/bin/xbstream/usr/bin/xtrabackup …… ……
二、使用XtraBackup执行数据库备份【主要格式】 –host 主机名–port 端口–user用户名–password 密码–databases=”库名”–databases=”库1 库2″–databases= “库.表”–no-timestamp不以时间戳做文件名
1、做一个完整备份 [root@mysql-1 ~]# innobackupex –user=root –password=123456 /backup/ –no-timestamp 确认备份好的文件数据:[root@mysql-1 ~]#ls /backup/ 2、做一个增量备份(基于前一步的完整备份)随意做一些新增或更改库表的操作,比如在db1库中新建一个mytb的表:mysql> USE db1;mysql> CREATE TABLE mytb(id int(4), name varchar(24));mysql> INSERT INTO tb1 VALUES -> (1,’bon’), -> (2,’bo’),mysql> SELECT * FROM tb1;+——+——+| id | name |+——+——+| 1 | bob || 2 | bo |+——+—– 3、 以前一次保存到/backup的完整备份为基础,做一个增量备份,保存到/incr01/ [root@mysql-1 ~]# innobackupex –user=root –password=123456 –incremental /incr01 –incremental-basedir=/backup/ –no-timestamp 查看备份信息
[root@mysql-1 ~]# ls /incr01/ 4、对比完整备份、增量备份的大小:[root@mysql-1 ~]# du -sh /backup/ /incr01/142M /backup/ //完整备份的大小3.5M /incr01/ //增量备份的大小 三、准备用于恢复的数据库目录 1、准备恢复“完整备份”完成准备以后,最终/backup可用来重建MySQL服务器。这种情况下, 需要先做一个“–apply-log –redo-only ”的准备操作,以确保数据一致性: [root@mysql-1 ~]#innobackupex –user=root –password=123456 –apply-log –redo-only /backup/ 2、准备恢复“增量备份” [root@mysql-1 ~]#innobackupex –user=root –password=123456 –apply-log –redo-only /backup/ –incremental-dir=/incr01 3、关闭mysql服务,并将/var/lib/mysql/下的文件删除,假设数据被删除 [root@mysql-1 ~]#systemctl stop mysqld [root@msyql-1 ~]#rm -rf /var/lib/mysql
4、恢复“完整备份+增量备份”完成准备以后,最终仍然是/backup用来重建MySQL服务器, 但这种情况下需提前合并相关增量备份的数据[root@mysql-1 ~]# innobackupex –user=root –password=123456 –copy-back /backup/ 5、 修改/var/lib/mysql/下文件属主与属组 [root@mysql-1 ~]#chown -R mysql:mysql /var/lib/mysql[root@mysql-1 ~]#systemctl start mysqld.service[root@mysql-1 ~]#mysql -uroot -p123456 -e “select * from db1.tb1” +——+——+| id | name |+——+——+| 1 | bob || 2 | bo |+——+——+
这篇文章给大家分享的是有关mysql添加主键的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。“主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。