当前位置: 首页 > news >正文

深圳专业建站系统建站公司岱岳区网站设计

深圳专业建站系统建站公司,岱岳区网站设计,网站建设催款函,北京神州网站建设MySQL的物理备份#xff1a; xtrabackup备份介绍#xff1a; xtrabackup优缺点#xff1a; 优点#xff1a; 1、备份过程快速、可靠#xff08;因为是物理备份#xff09;#xff1b;直接拷贝物理文件。 2、支持增量备份#xff0c;更为灵活#xff1b; 3、备份…MySQL的物理备份 xtrabackup备份介绍 xtrabackup优缺点 优点 1、备份过程快速、可靠因为是物理备份直接拷贝物理文件。 2、支持增量备份更为灵活 3、备份过程不会打断正在执行的事务 4、能够支持压缩功能节约磁盘空间和流量 5、自动实现备份检验 6、还原速度快 缺点 1、只能对innodb表增量备份myisam表增量备份时是全备 2、innobackupex备份MyISAM表之前要对全库进行READ LOCK阻塞操作若备份是在从库上进行的话会影响主从同步造成延迟。对innodb表备份不会阻塞读写。 xtrabackup备份原理 innobackupex首先会启动一个xtrabackup_log后台检测的进程实时检测mysql的redo log的变化一旦发现redo有新的日志写入立刻将日志写入到日志文件xtrabackup_log中。 物理拷贝innodb的数据文件和系统表空间文件idbdata1到对应的以默认时间戳为备份目录的地方 复制结束后执行flush table with read lock操作进行全库锁表准备备份非InnoDB文件 物理复制.frm .myd .myi等非InnoDB引擎文件到备份目录 查看二进制日志的位置 解锁表unlock tables 停止xtrabackup_log进程 innodb引擎如果对数据进行了增删修操作那么这个日志发生了变化。就把获取的内容写到xtrabackup log中。 innodb的数据文件就是.frm和idb两个数据文件。系统表空间文件就是ibdata1文件。 innodb的数据备份好了之后那还有一些MyISAM引擎的文件也需要进行处理。那这个时候就要进行flush table with read lock操作。 然后开始复制.frm .myd .myi这些MyISAM文件。 然后还要查看二进制文件的位置。--master-data。备份二进制文件。 然后要解锁unlock tables。 最后再把xtrabackup log进程停止掉。 redo log日志 事务日志或称redo日志。在mysql中默认以ib_logfile0, ib_logfile1的名称存在。 xtrabackup备份恢复原理  说明就是开始备份将之前的数据进行备份。那么备份期间这段时间产生的新数据也进行下备份这样才是一个完整的备份。这是这个软件高级的地方。 具体文字描述如下了解 在InnoDB内部会维护一个redo日志文件我们也可以叫做事务日志文件。事务日志会存储每一个InnoDB表数据的记录修改。当InnoDB启动时InnoDB会检查数据文件和事务日志并执行两个步骤它应用前滚已经提交的事务日志到数据文件并将修改过但没有提交的数据进行回滚操作。 xtrabackup在启动时会记住log sequence numberLSN并且复制所有的数据文件。复制过程需要一些时间所以这期间如果数据文件有改动那么将会使数据库处于一个不同的时间点。这时xtrabackup会运行一个后台进程用于监视事务日志并从事务日志复制最新的修改。xtrabackup必须持续的做这个操作是因为事务日志是会轮转重复的写入并且事务日志可以被重用。所以xtrabackup自启动开始就不停的将事务日志中每个数据文件的修改都记录下来。 上面就是xtrabackup的备份过程。接下来是准备prepare过程。在这个过程中xtrabackup使用之前复制的事务日志对各个数据文件执行灾难恢复就像MySQL刚启动时要做的一样。当这个过程结束后数据库就可以做恢复还原了。 以上的过程在xtrabackup的编译二进制程序中实现。程序innobackupex可以允许我们备份MyISAM表和frm文件从而增加了便捷和功能。Innobackupex会启动xtrabackup直到xtrabackup复制数据文件后然后执行FLUSH TABLES WITH READ LOCK来阻止新的写入进来并把MyISAM表数据刷到硬盘上之后复制MyISAM数据文件最后释放锁。 备份MyISAM和InnoDB表最终会处于一致在准备prepare过程结束后InnoDB表数据已经前滚到整个备份结束的点而不是回滚到xtrabackup刚开始时的点。这个时间点与执行FLUSH TABLES WITH READ LOCK的时间点相同所以MyISAM表数据与InnoDB表数据是同步的。类似Oracle的recover和restoreInnoDB的prepare过程可以称为recover恢复MyISAM的数据复制过程可以称为restore还原。 Mysql5.7.3以后开启二进制日志需要加上server-id选项不然报错 获取xtrabackup备份工具 我这边还是使用老师提供的版本 依赖库和软件包。 xtrabackup软件的安装 第一步上传软件包和依赖库 第二步安装软件包 [rootmysql-server ~]# rpm -ivh libev-4.15-3.el7.x86_64.rpm warning: libev-4.15-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY Preparing... ################################# [100%] Updating / installing...1:libev-4.15-3.el7 ################################# [100%] [rootmysql-server ~]# rpm -ivh percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm warning: percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY error: Failed dependencies:perl(DBD::mysql) is needed by percona-xtrabackup-24-2.4.7-2.el7.x86_64perl(Digest::MD5) is needed by percona-xtrabackup-24-2.4.7-2.el7.x86_64出现这个问题。 那么我们可以直接使用yum来进行安装解决依赖的问题。 [rootmysql-server ~]# rpm -ql percona-xtrabackup-24 /usr/bin/innobackupex /usr/bin/xbcloud /usr/bin/xbcloud_osenv /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup /usr/share/doc/percona-xtrabackup-24-2.4.7 /usr/share/doc/percona-xtrabackup-24-2.4.7/COPYING /usr/share/man/man1/innobackupex.1.gz /usr/share/man/man1/xbcrypt.1.gz /usr/share/man/man1/xbstream.1.gz /usr/share/man/man1/xtrabackup.1.gzinnobackupex和xtrabackup是两个核心的工具。 xtrabackup全库备份与恢复 备份核心思路 1使用innobackupex对数据库中的所有库进行全量备份物理文件拷贝备份完成之后其不能立即进行数据恢复。数据不完整还缺少12:00~12:30这个过程中的数据。 2预备阶段备份过程中产生的xtrabackup log应用到全量备份集。整合到全量备份集中。 3模拟故障删除数据 rm -rf data/* 4动员运维工程师进行全库恢复。 5再测试验证。 第一步准备数据 mysql create database db_itheima default charsetutf8; Query OK, 1 row affected (0.00 sec)mysql mysql use db_itheima; Database changed mysql mysql create table t1(- id int,- name varchar(10)- )enginemyisam; Query OK, 0 rows affected (0.00 sec)mysql insert into t1 values(1, 吕布); Query OK, 1 row affected (0.00 sec)mysql mysql create table t2(- id int,- name varchar(10)- )engineinnodb; Query OK, 0 rows affected (0.02 sec)mysql mysql insert into t2 values(1, 貂蝉); Query OK, 1 row affected (0.00 sec)第二步专门准备一个数据库备份账号开通相应权限。 创建备份用户admin并授予相应权限 mysql grant reload,process,lock tables,replication client on *.* to adminlocalhost identified by 123; mysql flush privileges;说明 在数据库中需要以下权限 RELOAD和LOCK TABLES权限:为了执行FLUSH TABLES WITH READ LOCK REPLICATION CLIENT权限为了获取binary log位置 PROCESS权限显示有关在服务器中执行的线程的信息即有关会话执行的语句的信息允许使用SHOW ENGINE mysql grant reload,lock tables,process,replication client on *.* to adminlocalhost identified by 123; Query OK, 0 rows affected, 1 warning (0.00 sec)mysql flush privileges; Query OK, 0 rows affected (0.00 sec)第三步使用innobackupex工具进行全库备份。 把数据导出备份到/full_xtrabackup目录。 遇到这个错误不能连接到/var/lib/mysql/mysql.sock。 目前我们的mysql.sock是在/tmp/mysql.sock这个地方。我们有两种方法来解决 1软链接 2-S /tmp/mysql.sock。 第四步预备阶段把备份这段时间内产生的日志整合到全量备份中。 [rootmysql-server ~]# cd /full_xtrabackup/ [rootmysql-server full_xtrabackup]# ll total 0 drwxr-x--- 2 root root 6 Sep 29 18:50 2023-09-29_18-50-24 drwxr-x--- 6 root root 241 Sep 29 18:52 2023-09-29_18-52-20 [rootmysql-server full_xtrabackup]# [rootmysql-server full_xtrabackup]# innobackupex --useradmin --password123 --apply-log /full_xtrabackup/2023-09-29_18-52-20--apply-log  应用这个日志。整合日志把这些日志整合到刚才的备份的数据文件夹中。 第五步模拟数据库故障 删除数据目录中的所有文件。 [rootmysql-server ~]# rm -rf /mysql_3306/data/* [rootmysql-server ~]# pkill mysqld[rootmysql-server ~]# service mysql_3306 start Starting MySQL.Logging to /mysql_3306/data/mysql.err. .. ERROR! The server quit without updating PID file (/mysql_3306/data/mysql-server.lnmp.com.pid). 这个故障模拟的比较狠的然后测试数据库启动无法进行启动。 第六步快速地恢复数据库中的数据。 如果没有--default-file/mysql_3306/my.cnf这个配置选项innnobackupex就无法找到mysql中的数据目录。需要把my.cnf配置文件传递给innobackupex让其自动识别到文件中的数据目录。 在执行这个命令之前还需要将/mysql_3306/data目录进行清空。程序会检查这个文件。 然后我们看到这个data目录中数据库文件和redo日志文件都已经恢复。 我们发现这些文件的权限都还不对。 需要更改权限。 第七步恢复数据时记得更改/mysql_3306/data目录下的文件拥有者以及所属组权限。如果不更改权限mysql无法启动。 [rootmysql-server ~]# chown -R mysql:mysql /mysql_3306/data[rootmysql-server ~]# ll /mysql_3306/data total 122920 drwxr-x--- 2 mysql mysql 90 Sep 30 09:03 db_itheima -rw-r----- 1 mysql mysql 850 Sep 30 09:03 ib_buffer_pool -rw-r----- 1 mysql mysql 12582912 Sep 30 09:03 ibdata1 -rw-r----- 1 mysql mysql 50331648 Sep 30 09:03 ib_logfile0 -rw-r----- 1 mysql mysql 50331648 Sep 30 09:03 ib_logfile1 -rw-r----- 1 mysql mysql 12582912 Sep 30 09:03 ibtmp1 drwxr-x--- 2 mysql mysql 4096 Sep 30 09:03 mysql drwxr-x--- 2 mysql mysql 8192 Sep 30 09:03 performance_schema drwxr-x--- 2 mysql mysql 8192 Sep 30 09:03 sys -rw-r----- 1 mysql mysql 19 Sep 30 09:03 xtrabackup_binlog_pos_innodb -rw-r----- 1 mysql mysql 471 Sep 30 09:03 xtrabackup_info第八步启动mysql测试其是否正常。 [rootmysql-server ~]# service mysql_3306 start Starting MySQL.Logging to /mysql_3306/data/mysql.err. . SUCCESS!mysql select * from t1; -------------- | id | name | -------------- | 1 | 吕布 | -------------- 1 row in set (0.00 sec)mysql select * from t2; -------------- | id | name | -------------- | 1 | 貂蝉 | -------------- 1 row in set (0.00 sec)
http://www.w-s-a.com/news/965358/

相关文章:

  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程
  • 服务器公司网站博客wordpress怎么编辑
  • 网站建设网络推广柯西乡塘网站建设
  • 企业做网站需要多少钱企业资质查询系统官网
  • 网站建设需要知识百度统计数据
  • 自已如何做网站建设通网站会员共享密码
  • 做网站学习什么wordpress 文件夹
  • 前端移动网站开发wordpress图文混排
  • 企业网站建站那种好商城类网站怎么优化
  • 手机微网站怎么制作的网上找设计师
  • 网站建设包括哪些方面学校网站 建设
  • 贵阳网站优化公司建筑设计师用什么软件
  • 网站建设的小说静态网页模板免费网站
  • 芜湖建设厅官方网站wordpress自动设置缩略图
  • 推荐网站网页湛江网站建设哪家优惠多
  • 传奇网站免费空间网店装修店面
  • 网站改版 重新收录湖南建筑信息一体化管理平台
  • 可以做直播卖产品的网站陕西省建设银行网站