2024年Linux最新Linux云计算:数据备份操作详解_云计算数据实时备份(3),20 ...

打印 上一主题 下一主题

主题 673|帖子 673|积分 2019

先自我先容一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己探索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技能停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初志也很简单,就是希望能够资助到想自学提升又不知道该从何学起的朋友。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲门路、解说视频,而且后续会持续更新
需要这份系统化的资料的朋友,可以点击这里获取!
数据一致,服务可用。:怎样包管数据一致,在备份的时候进行锁表会自动锁表。锁住之后在备份。
  1. 本身为客户端工具:
  2. 远程备份语法: # mysqldump  -h 服务器  -u用户名  -p密码   数据库名  > 备份文件.sql
  3. 本地备份语法: # mysqldump  -u用户名  -p密码   数据库名  > 备份文件.sql
复制代码
1.常用备份选项

-A, --all-databases 
备份全部库
-B–databases bbs test mysql
备份多个数据库
–no-data,-d 
不导出任何数据,只导出数据库表结构。
2.备份表

  1. 语法: # mysqldump -u root -p1 db1  t1 > /db1.t1.bak   
  2. [root@mysql-server ~]# mkdir /home/back  #创建备份目录
  3. [root@mysql-server ~]# mysqldump -uroot -p'qf123' company employee5 > /home/back/company.employee5.bak
  4. mysqldump: [Warning] Using a password on the command line interface can be insecure.
  5. 备份多个表:
  6. 语法: mysqldump -u root -p1 db1 t1   t2 > /db1.t1_t2.bak
  7. [root@mysql-server ~]# mysqldump -uroot -p'qf123' company new_t1 new_t2  > /home/back/company.new_t1_t2.bak
复制代码
3、备份库

  1. 备份一个库:相当于将这个库里面的所有表全部备份。
  2. 语法: # mysqldump -u root -p1 db1 > /db1.bak
  3. [root@mysql-server ~]# mysqldump -uroot -p'qf123' company > /home/back/company.bak
  4. 备份多个库(-B):
  5. 语法:mysqldump  -u root -p1 -B  db1 db2 db3 > /db123.bak
  6. [root@mysql-server ~]# mysqldump -uroot -p'qf123' -B company testdb > /home/back/company_testdb.bak
  7. 备份所有的库:
  8. 语法:# mysqldump  -u root -p1 -A > /alldb.bak
  9. [root@mysql-server ~]# mysqldump -uroot -p'qf123' -A > /home/back/allbase.bak
复制代码
到目录下面查看一下:

4、规复数据库和表

为包管数据一致性,应在规复数据之前停止数据库对外的服务,停止binlog日志 因为binlog使用binlog日志规复数据时也会产生binlog日志。
为实验效果先将刚才备份的数据库和表删除了。登陆数据库:
[root@mysql-server ~]# mysql -uroot -pqf123
mysql> show databases;

mysql> drop database company; mysql> \q
5、规复库

  1. 登陆mysql创建一个库
  2. mysql> create database company;
  3. 恢复:
  4. [root@mysql-server ~]# mysql -uroot -p'qf123' company < /home/back/company.bak
复制代码
6、规复表

  1. 登陆到刚才恢复的库中将其中的一个表删除掉
  2. mysql> show databases;
  3. mysql> use company
  4. mysql> show tables;
  5. +-------------------+
  6. | Tables_in_company |
  7. +-------------------+
  8. | employee5         |
  9. | new_t1            |
  10. | new_t2            |
  11. +-------------------+
  12. mysql> drop table employee5;
  13. 开始恢复:
  14. mysql> set sql_log_bin=0;   #停止binlog日志(可选)
  15. Query OK, 0 rows affected (0.00 sec)
  16. mysql> source /home/back/company.employee5.bak;  -------加路径和备份的文件
  17. 恢复方式二:
  18. # mysql -u root -p1  db1  < db1.t1.bak
  19.                      库名    备份的文件路径
复制代码
7、备份及规复表结构

  1. 1.备份表结构:
  2. 语法:mysqldump  -uroot -p123456 -d databasename tablename > dump.sql
  3. [root@mysql-server ~]# mysqldump -uroot -p'qf123' -d company employee5 > /home/back/emp.bak
  4. 恢复表结构:
  5. 登陆数据库创建一个库
  6. mysql> create database t1;
  7. 语法:# mysql -u root -p1 -D db1  < db1.t1.bak
  8. [root@mysql-server ~]# mysql -uroot -p'qf123' -D t1 < /home/back/emp.bak
复制代码
登陆数据查看:

8、在库里数据的导入导出。没有表结构。
表的导出和导入只备份表内纪录,不会备份表结构,需要通过mysqldump备份表结构,规复时先规复表结构,再导入数据。
  1. mysql> show variables like "secure_file_priv";  ----查询导入导出的目录。(保证数据安全做共享)
复制代码

  1. 修改安全文件目录:
  2. 1.创建一个目录:mkdir  路径目录
  3. [root@mysql-server ~]# mkdir /sql
  4. 2.修改权限
  5. [root@mysql-server ~]# chown mysql.mysql /sql
  6. 3.编辑配置文件:
  7. vim /etc/my.cnf
  8. 在[mysqld]里追加
  9. secure_file_priv=/sql
  10. 4.重新启动mysql.
  11. 1.导出数据
  12. 登陆数据查看数据
  13. mysql> show databases;    #找到test库
  14. mysql> use test   #进入test库
  15. mysql> show tables;  #找到它t3表
  16. mysql> select * from t3 into outfile '/sql/test.t3.bak';
  17. 添加修饰的:
  18. mysql> select * from t3 into outfile '/sql/test.t3.bak1' fields terminated by ',' lines terminated by '\n';
  19. 注:
  20. fields terminated by ',' :字段以逗号分割
  21. lines terminated by '\n':结尾换行
  22. 2.数据的导入
  23. 先将原来表里面的数据清除掉,只保留表结构
  24. mysql> delete from t3;
  25. mysql> load data infile '/sql/test.t3.bak' into table t3;
  26. 如果将数据导入别的表,需要创建这个表并创建相应的表结构。
复制代码
二、Mysql bin-log日志规复数据

需要开启binlog日志功能

加上配置之后重启服务,使其生效
  1. [root@mysql-1 mysql]# systemctl restart mysqld
复制代码


  1. mysql> flush logs;              #刷新binlog日志,使下面的语句存放到下一个binlog日志中
  2. mysql> create table testdb.t2(id int);
复制代码

根据位置规复
找到要规复的sql语句的起始位置、结束位置
  1. [root@mysql-1 mysql]# mysqlbinlog mysql-bin.000002          #查看binlog日志内容
复制代码

  1. mysql>drop table testdb.t2(id int);             //删除表格。注意:增删改都会记录到binlog日志中。
  2. [root@mysql-1 mysql]# mysqlbinlog --start-position 219 --stop-position  321 mysql-bin.000002 |mysql -uroot -p123        #恢复语句
复制代码
作业:
根据binlog日志的时间点规复
找到要规复sql语句的起始时间、结束时间
mysqlbinlog --start-datetime=‘2019-8-21 23:55:54’ --stop-datetime=‘2019-8-21 23:56:541’ mylog.000001 | mysql -u root -p1
三、物理备份

​ percona是一家老牌的mysql技能咨询公司。它不仅提供mysql的技能支持、培训、咨询,还发布了mysql的分支版本–percona Server。并围绕percona Server还发布了一系列的mysql工具。
物理备份: 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限定,但不能规复到差别的MySQL版本。
1.完全备份-----完整备份:
每次都将全部数据(不管自第一次备份以来有没有修改过),进行一次完整的复制,备份后会扫除文件的存档属性,方便日后增量备份大概差异备份进行版本比较。
特点:占用空间大,备份速度慢,但规复时一次规复到位,规复速度快。
2.增量备份: 每次备份上一次备份到如今产生的新数据
​ 在第一次完整备份之后,第二次开始每次都将添加了存档属性的文件进行备份,而且在备份之后再把这些存档属性扫除。为什么要扫除存档属性呢?这就是为了下一次备份的时候判断是否有文件变化,因为用户在每次备份以后修改这些被扫除存档属性的文件,存档属性就会自动加上,相当于用户告诉系统,这些文件有变化,你下一次就备份这些文件,其他没有存档属性的就不需要备份,这就是增量备份的工作机制。
特点:因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是规复的时候,需要按备份时间次序,逐个备份版本进行恢 复,规复时间长。

  • 差异备份:只备份跟完整备份不一样的
在第一次完整备份之后,第二次开始每次都将全部文件与第一次完整备份的文件做比较,把自第一次完整备份以来全部修改过的文件进行备份,且以后每次备份都是和第一次完整备份进行比较(注意是第一次,不是上一次),备份自第一次完整备份以来全部的修改过的文件。因此,差异备份在备份完毕之后不需要扫除文件的存档属性,因为这些文件和下一次备份没有什么关系,它仅仅和第一次完整备份的数据进行比较(第一次完整备份之后是扫除存档属性的)。
  1. (相当于第一次机器人把地板打扫干净了,你踩过,就会有脚印,机器人就把脚印记录下   
  2.      来,但不打扫,下次你又有踩脏的,机器人就把你这几次所有踩脏的地方都记录下来,始终   
  3.      不打扫,每次都这样。机器人每次记录的内容就相当于差异备份的内容)
复制代码
特点:占用空间比增量备份大,比完整备份小,规复时仅需要规复第一个完整版本和末了一次的差异版本,规复速度介于完整备份和增量备份之间。
简单的讲,完整备份就是不管三七二十一,每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化;增量备份就是每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份;差异备份就是每次都将第一次完整备份以来有变化的文件进行备份。
热备份
  1. 数据库启动同时给客户端提供服务的情况下
复制代码
冷备份 数据库要关掉大概不能给客户端提供服务
官网:Percona – The Database Performance Experts
1.安装xtrabackup

  1. 安装xtrabackup
  2. # wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
  3. # rpm -ivh percona-release-0.1-4.noarch.rpm
  4. [root@mysql-server yum.repos.d]# vim percona-release.repo
复制代码
修改如下内容:将原来的1改为0


  1. [root@mysql-server yum.repos.d]# yum -y install percona-xtrabackup-24.x86_64
复制代码
2.完全备份流程:

  1. 创建备份目录:
  2. [root@mysql-server ~]# mkdir /xtrabackup/full -p
  3. 备份:
  4. 为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!
  5. 这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**
  6. ![](https://img-blog.csdnimg.cn/img_convert/19b6d0a504f5d2a9c9260e5ce5474e44.png)
  7. 本份面试集锦涵盖了
  8. *   **174 道运维工程师面试题**
  9. *   **128道k8s面试题**
  10. *   **108道shell脚本面试题**
  11. *   **200道Linux面试题**
  12. *   **51道docker面试题**
  13. *   **35道Jenkis面试题**
  14. *   **78道MongoDB面试题**
  15. *   **17道ansible面试题**
  16. *   **60道dubbo面试题**
  17. *   **53道kafka面试**
  18. *   **18道mysql面试题**
  19. *   **40道nginx面试题**
  20. *   **77道redis面试题**
  21. *   **28道zookeeper**
  22. **总计 1000+ 道面试题, 内容 又全含金量又高**
  23. *   **174道运维工程师面试题**
  24. > 1、什么是运维?
  25. > 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
  26. > 3、现在给你三百台服务器,你怎么对他们进行管理?
  27. > 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
  28. > 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
  29. > 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
  30. > 7、Tomcat和Resin有什么区别,工作中你怎么选择?
  31. > 8、什么是中间件?什么是jdk?
  32. > 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
  33. > 10、什么叫CDN?
  34. > 11、什么叫网站灰度发布?
  35. > 12、简述DNS进行域名解析的过程?
  36. > 13、RabbitMQ是什么东西?
  37. > 14、讲一下Keepalived的工作原理?
  38. > 15、讲述一下LVS三种模式的工作过程?
  39. > 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
  40. > 17、如何重置mysql root密码?
  41. **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
  42. **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
  43. **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  44. 12、简述DNS进行域名解析的过程?
  45. > 13、RabbitMQ是什么东西?
  46. > 14、讲一下Keepalived的工作原理?
  47. > 15、讲述一下LVS三种模式的工作过程?
  48. > 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
  49. > 17、如何重置mysql root密码?
  50. **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
  51. **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
  52. **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

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