MySQL数据管理5

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介:

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,如需转载请自行联系原作者




相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
5月前
|
人工智能 关系型数据库 MySQL
基于阿里云的PolarDB MySQL版实现AI增强数据管理
本文将介绍如何利用阿里云的PolarDB MySQL版结合AI技术,实现数据管理的自动化和智能化。
368 0
|
6月前
|
SQL 关系型数据库 数据管理
数据管理DMS产品使用合集之归档数据至其它MySQL数据库时,如何指定目的库
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
78 1
|
5月前
|
存储 关系型数据库 MySQL
MySQL小白教程(进阶篇):数据管理与高级查询
MySQL小白教程(进阶篇):数据管理与高级查询
|
5月前
|
SQL 关系型数据库 MySQL
MySQL小白教程(进阶篇):深入理解SQL与数据管理
MySQL小白教程(进阶篇):深入理解SQL与数据管理
|
6月前
|
关系型数据库 数据管理 数据库
数据管理DMS产品使用合集之如何极速恢复RDS(关系型数据库服务)中的数据表
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
116 3
|
6月前
|
缓存 分布式计算 关系型数据库
数据管理DMS操作报错合集之当进行RDS实例的可用区迁移时,提示“缓存清理”是什么意思
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
109 3
|
7月前
|
NoSQL 关系型数据库 Redis
数据管理DMS产品使用合集之要通过 DMS 登录到 RDS、DRDS 或 Redis,我该怎么操作
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
7月前
|
数据管理 关系型数据库 MySQL
数据管理DMS产品使用合集之DMS可以接入其他平台的MySQL数据库,是否还支持无感知变更功能
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
关系型数据库 MySQL 数据管理
软件测试|MySQL主键自增详解:实现高效标识与数据管理
软件测试|MySQL主键自增详解:实现高效标识与数据管理
|
11天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
81 15

热门文章

最新文章

下一篇
DataWorks