mysqldump;逻辑备份
mysqldump(完全备份)+二进制日志----就可以实现一次完全+增量备份;
用法:
备份单个数据库或库中的某个表:
mysqldump DB_NAME [tb1] [tb2]
如:[root@localhost ~]# mysqldump -uroot -p runoob > /root/runoob1.sql
这种备份会带来时间点上的不一致,比如有其他人正往数据库里插入数据,因此在真正的备份中不能这么做,应该要锁表,在进行flush
1.mysql>lock tables;或者直接用mysql>flush tables with read lock;//这样别人能查询但是不能对数据库进行写操作
2.[root@localhost ~]# mysqldump -uroot -p runoob>/root/runoob1.sql//备份表
3.unlock tables;//释放锁
若在锁表的过程中,进行了插入操作,那我们备份的数据中就不包括锁表后插入的数据,在还原过程中就无法还原到服务器当前的状态,那我们就要从二进制日志中获取
1.mysql>flush tables with read lock;
2.flush logs;//滚动日志
3.show binary logs;找到所需的日志进行还原
我们也可以直接用以下命令备份(包括锁表,记录二进制日志文件路径位置)
mysqldump -uroot -p --master-data=2 --lock-all-tables --flush-logs runoob>/root/runo
mysqldump(完全备份)+二进制日志----就可以实现一次完全+增量备份;
用法:
备份单个数据库或库中的某个表:
mysqldump DB_NAME [tb1] [tb2]
如:[root@localhost ~]# mysqldump -uroot -p runoob > /root/runoob1.sql
这种备份会带来时间点上的不一致,比如有其他人正往数据库里插入数据,因此在真正的备份中不能这么做,应该要锁表,在进行flush
1.mysql>lock tables;或者直接用mysql>flush tables with read lock;//这样别人能查询但是不能对数据库进行写操作
2.[root@localhost ~]# mysqldump -uroot -p runoob>/root/runoob1.sql//备份表
3.unlock tables;//释放锁
若在锁表的过程中,进行了插入操作,那我们备份的数据中就不包括锁表后插入的数据,在还原过程中就无法还原到服务器当前的状态,那我们就要从二进制日志中获取
1.mysql>flush tables with read lock;
2.flush logs;//滚动日志
3.show binary logs;找到所需的日志进行还原
我们也可以直接用以下命令备份(包括锁表,记录二进制日志文件路径位置)
mysqldump -uroot -p --master-data=2 --lock-all-tables --flush-logs runoob>/root/runo