MySQL系数据备份、恢复
     分类:数据库     有: 0 条评论

MySQL系数据备份、恢复

     分类:数据库     有: 0 条评论

备份

企业级MySQL数据库备份方案:https://mp.weixin.qq.com/s/fQnHZEC-eqSCPhJI5vDoaA


报错、修复

数据库视图无法导入新的数据库

# 1356 MySql VIEW ERROR 'View 'test003.xxxxxx' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them'

这种通常是invoker权限导致的,创建数据库时指定存储过程是invoker;就会调用者的权限;如果是本机,还是原来的库,只是变了用户名可以用以下语句修复

use information_schema;
select VIEW_DEFINITION from information_schema.views where TABLE_SCHEMA='test003' and TABLE_NAME='xxxxxx'

如果是新的数据库,视图因权限问题无法导入,也就无法修复了,这时必须建立的数据库用户和原来的用户、密码一样(库名可以不同,但是账户密码要和原来一样),把mysqldump导出的sql导入到新库;这时一般没问题了;如果视图依然不完整(可用phpmyadmin查看);这时用Navicat参考:Navicat工具导出mySQL数据库某个视图结构的.sql脚本导出sql文件,再次导入数据库,完成后就OK了。


数据库索引损坏及修复

https://dev.mysql.com/doc/refman/5.6/en/repair-table.html
http://www.jb51.net/article/68302.htm


625某电商网站数据库宕机故障解决实录(全量备份+增量备份恢复)

http://blog.51cto.com/oldboy/1431161
http://blog.51cto.com/oldboy/1431172


binlog文件恢复数据

先看上一节“625某电商网站数据库宕机故障解决实录(全量备份+增量备份恢复)”
参考:https://www.cnblogs.com/kevingrace/p/5907254.html

# 数据库功能是正常的,只是写入的脏数据,而且有历史备份。
mysql -uroot -p [dbname] < [历史定期备份.sql]

# 先找到mysqlbinlog文件在哪,增量数据生成bin.sql文件
# mysql-bin有多个文件用空格隔开,一个文件就只写一个。--no-defaults参数为增量恢复,--database='XXX'指定数据库。
mysqlbinlog --no-defaults mysql-bin.000004 mysql-bin.000005 --start-datetime='2018-12-2 20:50:00' --stop-datetime='2018-12-9 22:00:00' --database='music_db'> bin.sql

# 查看是否有数据
less bin.sql

# 最后的导入现有库
mysql -uroot -p [dbname] < bin.sql

binlog文件恢复报ERROR 1062 (23000)

多个数据库文件同时在一台服务器上,所有记录都记录在binlog上,这时恢复数据需要剥离出需要恢复的库来。

注意,先把以前的全量数据恢复到新建的数据库中,新建的数据库名和“原来的旧数据库”一样!。
# --no-defaults 增量恢复
# --start-datetime='2018-12-18 13:32:28'
# --stop-datetime='2019-1-7 17:00:00'
# -f   #强制执行,忽略错误(一般不加此参数,但是由于未知原因或者数据库中本身缺了数据、binlog文件丢失了一部分等,可以使用此参数尽可能的恢复数据)
# --one-database   指定数据库(从binlog中过滤出指定数据库的数据,其他数据库的数据会被丢弃),配合mysql和管道符使用。

/www/server/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000035 mysql-bin.000036 --start-datetime='2018-12-18 13:32:28' \
--stop-datetime='2019-1-7 17:00:00'|mysql -uroot -p123456 -f --one-database music_db

参考:
https://www.jianshu.com/p/4181c7d7b5be
https://blog.csdn.net/luckytanggu/article/details/46867361
https://www.oschina.net/question/2269346_2146760
https://www.oschina.net/question/17_210

https://www.cnblogs.com/sunmengbbm/p/5827613.html
https://www.cnblogs.com/kevingrace/p/6065088.html
https://www.cnblogs.com/kevingrace/p/5907254.html
https://blog.csdn.net/weixin_39182877/article/details/79137948
http://blog.51yip.com/mysql/1042.html
https://hchmsguo.iteye.com/blog/969761
https://www.jb51.net/article/68302.htm

(●゚ω゚●)