MySQL数据管理5

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

llbakt2.sh 功能:

把服务器上userdb库t2表的所有记录备份到本机/mybak文件


夹里。使用系统日期做备份文件名例如 2017-05-25-t2.sql


mkdir  /shell

vim  /shell/allt2bak.sh

#!/bin/bash

day=`date +%Y-%m-%d`

if  [  ! -e  /mybak  ];then

   mkdir   /mybak

fi

mysqldump    -hlocalhost   -uroot   -p123123  --flush-


logs  userdb t2  >   /mybak/$day-t2.sql

:wq


chmod  +x    /shell/allt2bak.sh    &>  /dev/null


 /shell/allt2bak.sh 

ls  /mybak/*.sql


crontab  -e

00  18    *   *  1  /shell/allt2bak.sh  &>  /dev/null

00  18    *   *  2-7   /shell/baknewbinlog.sh

                                            备份每天新生成的binlog日志文件

:wq


systemctl   status   crond

++++++++++++++++++++++++++++++

day05

实时增量备份:启用mysql服务的binlog日志实现

1 binlog日志介绍: 也叫二进制日志,是mysql服务日志文件


一种,记录客户端连接数据库服务器后,执行的除查询之外的


SQL命令。


查询包括:select    show     desc 


2  启用binlog日志

vim /etc/my.cnf

[mysqld]

server_id=12

log_bin

binlog_format="mixed"

:wq

        

#systemctl  restart  mysqld


ls /var/lib/mysql/                

localhost-bin.000001  日志文件

localhost-bin.index      日志索引文件


查看binlog日志文件的内容

mysqlbinlog    binlog日志文件


自定义binlog日志文件名和存储目录

#mkdir  /logdir

#chow mysql  /logdir

#vim /etc/my.cnf

[mysqld]

server_id=12

#log_bin

log_bin=/logdir/plj

binlog_format="mixed"

:wq

#systemctl  restart  mysqld

ls /logdir/


3 执行binlog日志文件里的SQL命令恢复数据。


命令格式

mysqlbinlog  选项   binlog日志文件   |  mysql  -uroot  -


p123123


选项

pos节点

--start-position=数字

--stop-position=数字


时间点   

--start-datetime="yyyy-mm-dd  hh:mm:ss"

--stop-datetime="yyyy-mm-dd  hh:mm:ss"


mysqlbinlog   --start-position=1400    --stop-


position=1816  /logdir/plj.000001    | mysql  -uroot -


p123123   



手动创建新的binlog日志文件

# systemctl  restart mysqld


mysql>  flush  logs;


# mysql -uroot -p123123 -e "show databases"


#mysqldump  -uroot -p123123  --flush-logs  userdb  > 


/opt/userdb.sql

 

删除已有的binlog日志文件?


把编号之前的日志文件删除

mysql> purge  master  logs  to  "binlog文件名";

mysql>purge  master  logs  to  "plj.000003";


删除所有的binlog日志文件,重新生成第一个日志文件

mysql> reset   master ; 


+++++++++++++++++++++++++++++

安装第3方软件做增量备份与恢复

# rpm -q  perl-DBD-MySQL  perl-Digest-MD5

# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

# rpm -ivh percona-xtrabackup-24-2.4.7-


1.el7.x86_64.rpm


命令格式

#innobackupex  <选项>


db105.t1   (200-700)

#innobackupex --user root  --password  123123  --


databases="db105.t1"   /fullbak   --no-timestamp


db105.t1(10 -- 777)

# innobackupex --user root  --password  123123  --


databases="db105.t1"  --incremental  /new1dir  --


incremental-basedir=/fullbak --no-timestamp 


db105.t1(7 -- 3333)

# innobackupex --user root  --password  123123  --


databases="db105.t1"   --incremental /new2dir   --


incremental-basedir=/new1dir   --no-timestamp



# cp -r /var/lib/mysql/mysql   /opt/mysql.bak


增量恢复数据

1 默认数据丢失

rm  -rf /var/lib/mysql

mkdir /var/lib/mysql 

chown  mysql:mysql  /var/lib/mysql


2 恢复日志文件

#innobackupex --user root --password 123456 --


databases="db105.t1" --apply-log --redo-only  /fullbak  

                                          

#innobackupex --user root --password 123456 --


databases="db105.t1"   --apply-log --redo-only    


/fullbak   --incremental-dir="/new1dir" 


#innobackupex --user root --password 123456 --


databases="db105.t1"   --apply-log --redo-only    


/fullbak   --incremental-dir="/new2dir" 


3 把备份目录下文件拷贝回数据库目录下

# innobackupex --user root --password 123456 --


databases="db105.t1" --copy-back /fullbak

# cp -r   /opt/mysql.bak /var/lib/mysql/mysql

#chown  -R mysql:mysql  /var/lib/mysql/

4 重启数据库服务

#systemctl restart  mysqld

5 登录查看数据

mysql   -uroot  -p123123

mysql> select  * from db105.t1;


备份过程

lsn   日志序列号 

数据库目录下

ib_logfile0

ib_logfile1

ibdata1


备份目录下

xtrabackup_checkpoints

xtrabackup_logfile

ibdata1



#systemctl  stop mysqld

#mv /etc/my.cnf /etc/my.cnf.bak

#rm -rf /var/lib/mysql

#mysql_install_db  --datadir=/var/lib/mysql --


user=mysql

#rm -rf /var/lib/mysql/mysql/

#cp -r /opt/mysql.bak/ /var/lib/mysql/mysql

# chown  -R mysql:mysql /var/lib/mysql

# systemctl  status mysqld


恢复完全备份文件中的某个表


mysql> drop table  bbsdb.a;


#innobackupex --user root --password 654321 --


databases="bbsdb" --apply-log --export /allbak  //导出


表信息


mysql> create  table gamedb.a(id int); //创建表


mysql> alter  table bbsdb.a  discard  tablespace;  //删除


表空间


mysql> system cp /allbak/bbsdb/a.{ibd,cfg,exp} 


/var/lib/mysql/bbsdb   //拷贝表信息文件


mysql> system chown mysql:mysql 


/var/lib/mysql/bbsdb/a.*   //修改所有者


mysql> alter  table  bbsdb.a  import  tablespace;  //导入


表空间


mysql> select  * from  gamedb.a;

++++++++++++++++++++++++++++++++++++

MySQL 主从同步

12

主数据库服务器的配置

mysql> grant  replication  slave  on  *.*  to   plj@"%"   


identified by "123456";

vim /etc/my.cnf

[mysqld]

server_id=12

log_bin=master12

binlog_format="mixed"

:wq


# systemctl  restart mysqld


mysql> show master status;



11

配置从数据库服务器

# mysql -h192.168.4.12  -uplj  -p123456


vim /etc/my.cnf

[mysqld]

server_id=11

log_bin=slave11

:wq


# systemctl  restart mysqld


mysql> show slave status;

Empty set (0.00 sec)


mysql> change  master  to   


master_host="192.168.4.12",master_user="plj",master_


password="123456",master_log_file="master12.000001


",master_log_pos=154;

mysql> start  slave;

mysql> show  slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes


测试主从同步配置

12

mysql -uroot -p123123

mysql> create  database  db105;create  table  db105.a


(id int); insert into  db105.a values(100);


11

mysql -uroot -p654321

mysql>select  * from db105.a;






     本文转自hj_1314wgn 51CTO博客,原文链接:http://blog.51cto.com/13513556/2052955,如需转载请自行联系原作者




相关文章
|
7月前
|
关系型数据库 分布式数据库 数据库
PolarDB MySQL通过DMS恢复误操作数据
本场景介绍日常访问PolarDB MySQL数据库时,由于操作导致数据不符合预期,需要将数据快速恢复到正常状态。误操作受影响的数据量在10万以内时,可使用DMS数据追踪的方式恢复数据。
137 0
|
9月前
|
JSON 前端开发 JavaScript
Echarts实战案例代码(15):月收入年龄分段等MYSQL分类统计PHP后台数据管理接口API数据的解决方案
Echarts实战案例代码(15):月收入年龄分段等MYSQL分类统计PHP后台数据管理接口API数据的解决方案
131 0
|
6月前
|
关系型数据库 MySQL 数据管理
软件测试|MySQL主键自增详解:实现高效标识与数据管理
软件测试|MySQL主键自增详解:实现高效标识与数据管理
52 0
|
11月前
|
运维 关系型数据库 MySQL
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(上)
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(上)
170 0
|
11月前
|
SQL 运维 数据可视化
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(中)
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(中)
129 0
|
11月前
|
SQL 运维 数据可视化
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(下)
企业运维训练营之数据库原理与实践— 数据管理DMS—实验:如何快速连接云数据库RDS MySQL(下)
112 0
|
SQL 存储 Oracle
MySQL数据管理(二)
数据库,又称为数据管理系统,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的资料运行新增、查询、更新、删除等操作。数据库的类型粗略来说可以分为关系型数据库和非关系型数据库,关系型数据库,存储的格式可以直观地反映实体间的关系。它和常见的表格比较相似。而MySQL就是一个最流行关系型数据库管理系统之一,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL使用的SQL语言是用于访问数据库的最常用标准化语言。本文对MySQL的学习做一下简单笔记记录。
163 0
|
存储 SQL Oracle
MySQL数据管理(一)
数据库,又称为数据管理系统,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的资料运行新增、查询、更新、删除等操作。数据库的类型粗略来说可以分为关系型数据库和非关系型数据库,关系型数据库,存储的格式可以直观地反映实体间的关系。它和常见的表格比较相似。而MySQL就是一个最流行关系型数据库管理系统之一,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL使用的SQL语言是用于访问数据库的最常用标准化语言。本文对MySQL的学习做一下简单笔记记录。
217 0
|
SQL 数据管理 关系型数据库
MySQL数据管理
MySQL数据管理
MySQL数据管理
|
SQL 存储 关系型数据库
[ 数据库 ] MySQL 入门到放弃(三) --- MySQL 数据管理
我之前学习 MySQL 是在b站看的狂神说MySQL,收获很大。 初学 Mysql 的话建议大家去看一看。
131 0