数据库备份
逻辑备份和物理备份
逻辑备份的结果SQL语句,适用于所有存储引擎
物理备份是对数据库目录的拷贝,对于内存表只备份结构
全量备份和增量备份
全量备份是对整个数据库的一个完整备份
增量备份是在上次全量或增量备份基础上,对于更改数据进行备份
使用myslqdump进行备份
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --database DB1[DB2..]
mysqldump [OPTIONS] --all databases [OPTIONS]
mysqldump 的常用参数
-u,--user=name
-p,--password [=name]
--single-transaction
-l,--lock-tables
-x,--lock-all-tables
--master-data =[1/2]
MYSQL 新增一个账号
create user 'backup'@'localhost' identified by '123456';
给这个账号赋权
grant select,reload,lock tables,replication client,show view,event,process on *.* to 'backup'@'localhost';
备份进入 data/db_backup/ 全库备份
mysqldump -ubackup -p --master-data=2 --single-transaction --routines --triggers --events mc_orderdb> mc_orderdb.sql
回车会提示输入密码
查看备份的mc_orderdb是否包含了所有的表
grep "CREATE TABLE" mc_orderdb.sql;
备份单表
mysqldump -ubackup -p --master-data=2 --single-transaction --routines --triggers --events mc_orderdb order_master> order_master.sql
备份mysql
mysqldump -ubackup -p --master-data=1 --single-transaction --routines --triggers --events --all-databases > mc.sql
备份数据恢复
mysql -uroot -p -e"create database bak_orderdb"
mysql -uroot -p bak_orderdb<mc_orderdb.sql (需要删除mc_orderdb.sql 里面GTID部分)
误删数据恢复
全备恢复
mysql -uroot -p mc_orderdb < mc_orderdb.sql
查看二进制日志
cd /home/mysql/sql_log
ls -lh
mysqlbinlog --base64-output = decode-rows -vv --start-position=84882 -- database=mc_orderdb mysql-bin.000011 | grep -B3 DELETE | more
实时二进制日志备份
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'ip' IDENTIFIDE BY "XXXX"
mkdir -p binlog_backup
mysqlbinlog --raw --read-from-remote-server \ --stop-never --host localhost
--port 3306 \ -u repl -p xxxx 二进制日志名
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
精神追求应当是物质追求得到满足后的自然反应,而不是在现实受挫后去寻求的安慰剂。