设为首页 收藏本站
查看: 803|回复: 0

[经验分享] MySQL数据管理5-hj

[复制链接]

尚未签到

发表于 2018-10-7 06:28:15 | 显示全部楼层 |阅读模式
  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>>  表空间
  mysql> system cp /allbak/bbsdb/a.{ibd,cfg,exp}
  /var/lib/mysql/bbsdb   //拷贝表信息文件
  mysql> system chown mysql:mysql
  /var/lib/mysql/bbsdb/a.*   //修改所有者

  mysql>>  表空间
  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;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614064-1-1.html 上篇帖子: MySQL数据库管理4-hj 下篇帖子: Mysql基础(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表