广告
返回顶部
首页 > 资讯 > 数据库 >mysql数据备份-主从同步恢复
  • 800
分享到

mysql数据备份-主从同步恢复

mysql数据库服务器 2023-09-14 05:09:23 800人浏览 泡泡鱼
摘要

【1】数据库备份和恢复 1、xtrabackup-物理备份 全量备份主库数据:xtrabackup --backup --user=root --passWord=xxx --port=3306 --

【1】数据库备份和恢复

1、xtrabackup-物理备份

全量备份主库数据:xtrabackup --backup --user=root --passWord=xxx --port=3306 --target-dir=/comProject/backup/db/full_20220831将full_20220831文件上传到从库服务器上关闭存库服务:service Mysqld stop对数据进行“预备”(Prepare)操作,使数据文件完全一致:xtrabackup --prepare --target-dir=/comproject/backup/db/full/复制数据到从库:xtrabackup --copy-back --target-dir=/comproject/full_20220831/修改用户和用户组权限:chown -R mysql:mysql /comproject/db启动数据库:service mysqld start

备注:

壹:xtrabackup备份还原速度极快,备份的是ibd文件。mysql的db文件30GB左右,30分钟以内完成备份还原。

贰:备份还原过程,测试环境和正式环境xtrabackup版本、mysql版本需保持一致。

2.mydumper-逻辑备份

mydumper高性能多线程备份和恢复工具。 -t 代表线程数备份:mydumper -h 127.0.0.1 -u root -p password-P 3306 -G -E -R -B xxdb -o xxdb_bak/ -v 3 -t 4 -k还原:myloader -u root -p password -B xxdb -q 25000 -d  xxdb_bak/ -v 3 -t 4还原:myloader -u root -p password -B xxdb -q 25000 -d  ./xxdb/ -v 3 -t 4 -o

注意:对每张表的表结构和表数据分别进行备份,备份速度快,但是还原速度有点慢,但是比mysqldump的还原方式要快很多。

3.mysqldump-逻辑备份

备份:mysqldump -u 用户名 -pPASSWORD数据库名 > 数据库名.sql还原:mysql -uroot -pPASSWORD 数据库名 < 数据库名.sql

注意:将整个库表结构和表数据进行备份,导出为一个巨大的sql文件,导出速度很快,恢复速度最慢

4、数据库升级

升级前全量备份db.数据库全库备份文件解压:tar xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar停止mysql服务:service mysqld stop备份配置文件:cp /etc/{my.cnf,my.cnf.bak0918}升级:rpm -Uvh mysql-commUnity-*.rpm 查询mysql版本:mysql -V还原配置文件:mv /etc/my.cnf.bak0918 /etc/my.cnf重新加载单位:systemctl daemon-reload重启:systemctl start mysqld.service

5.sql语句在控制台执行方式‍

执行单个sql文件:mysql> source  test.sql批量执行sql文件:cat /folds/*.sql | mysql -u root -p cgdb

6、innodb_force_recovery

innodb_force_recovery=0   表示当需要恢复时执行所有的恢复操作;innodb_force_recovery=1   表示忽略检查到的corrupt页;innodb_force_recovery=2   表示阻止主线程的运行,如主线程需要执行full purge操作,会导致crash;innodb_force_recovery=3   表示不执行事务回滚操作;innodb_force_recovery=4   表示不执行插入缓冲的合并操作;innodb_force_recovery=5   表示不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交;innodb_force_recovery=6   表示不执行前滚的操作,强制重启!

说明:数据库损坏,服务无法启动,在/etc/my.cnf配置文件添加强制启动配置。从0-6尝试,直到服务启动为止。服务启动成功后,注释该配置,重新启动数据库服务。如果启动失败,导出全量数据,重新安装数据库服务,导入数据,恢复数据库数据。

【2】数据库主从恢复-xtrabackup

1、mysql数据库主节点mysql -A -uadmin -ppsw -h127.0.0.1 -P 7001select * from backends;2、mysql数据库从节点mysql -A -uroot -ppswshow slave status\G;3、mysql从库恢复(和主库全量同步)全量备份主库数据:xtrabackup --backup --user=root --password=xxx --port=3306 --target-dir=/comProject/backup/db/full_20220831将full_20220831文件上传到从库服务器上关闭存库服务:service mysqld stop对数据进行“预备”(Prepare)操作,使数据文件完全一致:xtrabackup --prepare --target-dir=/comproject/backup/db/full/复制数据到从库:xtrabackup --copy-back --target-dir=/comproject/full_20220831/修改用户和用户组权限:chown -R mysql:mysql /comproject/db启动数据库:service mysqld start 修复从节点的master info :根据/comproject/backup/db/full_20220831/xtrabackup_binlog_info,获取master_log_file和master_log_pos值change master to master_host='10.68.128.2',master_port=3306,master_user='root',master_password='xxx',master_log_file='mysql-bin.000026',master_log_pos=243;启动从库心跳:start slave;查看从库连接状态:show slave status\G;4、主从恢复后,查看从库心跳状态

图片

查看主从节点同步情况,从节点仍然处于down的状态
图片

执行下述脚本,重启cetus服务,主从恢复正常
从库:

create user if not exists "cetus"@"localhost" identified by "123456";GRANT SELECT, PROCESS, FILE, REFERENCES, INDEX, SHOW DATABASES, SUPER, LOCK TABLES, EXECUTE, REPLICATioN SLAVE, REPLICATION CLIENT, SHOW VIEW ON *.* TO 'cetus'@'localhost'; revoke INSERT, UPDATE, DELETE, CREATE, DROP on *.* from cetus@'localhost';update user set host='%' where user='cetus';GRANT SELECT, PROCESS, FILE, REFERENCES, INDEX, SHOW DATABASES, SUPER, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW ON *.* TO 'cetus'@'%'; revoke INSERT, UPDATE, DELETE, CREATE, DROP on *.* from cetus@'%';FLUSH PRIVILEGES;主库:create user if not exists "cetus"@"localhost" identified by "123456";GRANT ALL PRIVILEGES ON *.* TO `cetus`@`localhost`;update user set host='%' where user='cetus';GRANT ALL PRIVILEGES ON *.* TO `cetus`@`%`;FLUSH PRIVILEGES;CREATE DATABASE if not exists proxy_heart_beat;USE proxy_heart_beat;CREATE TABLE if not exists tb_heartbeat ( p_id varchar(128) NOT NULL, p_ts timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (p_id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;

重启cetus服务:service cetus restart

【3】数据库主从恢复-复制db

复制主库db到从库备份db文件下面的auto.cnf,重启mysql服务会重新生成auto.cnf重启从库查看主节点信息:show master status;建立主从库连接:change master to master_host='10.68.128.2',master_port=3306,master_user='root',master_password='xxx',master_log_file='mysql-bin.000026',master_log_pos=243;重启从节点:start slave;查看从节点状态:show salve status\G;重启cetus服务:service cetus start查看主从状态:select * from backends;

【4】常用sql

update命令不能与order by limit配合使用

错误写法:update student1 set status=1 where name in (select name from student2 ORDER BY id limit 3)
正确写法:update student1 set status=1 where name in (select name from student2 where date>‘2022-09-01’)
2.多表关联update
update student1 a ,student2 b set a.status=b.status where a.name=b.name
3.查看个数据库大小

select table_schema as '数据库',sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'from infORMation_schema.tablesgroup by table_schemaorder by sum(data_length) desc, sum(index_length) desc;

查看某个数据库中表大小

select table_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)'from information_schema.tableswhere table_schema='xxxdb'order by data_length desc, index_length desc;

创建视图

create view vc_test as (select * from test_table)

substring灵活用法

name列内容为:num3_4selecct * from test_table where substring(a.name, 4, 1) > substring(a.name, 6, 1)

case when用法

selectID,NAME,GENDERcase when GENDER = 1 THEN '男'else '女'end '性别'

数字转换为百分数

concat拼接:select concat(num,'%') from test_tablefloor函数:select concat(floor(0.82*100),'%') from  test_table--82%去掉小数点后两位:truncate(0.889*100,2)四舍五入:round(0.8897*100,2)

表字段可以设置默认值
通过可视化工具设置默认值。
或者通过create语句,设置default值
10.清空表数据
truncate table table_name

数据库操作注意事项:
1、操作库之前先备份db。
2、操作表之前先备份表。

来源地址:https://blog.csdn.net/qq_39787367/article/details/130941810

您可能感兴趣的文档:

--结束END--

本文标题: mysql数据备份-主从同步恢复

本文链接: https://www.lsjlt.com/news/406774.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql数据备份-主从同步恢复
    【1】数据库备份和恢复 1、xtrabackup-物理备份 全量备份主库数据:xtrabackup --backup --user=root --password=xxx --port=3306 --...
    99+
    2023-09-14
    mysql 数据库 服务器
  • Mysql主从备份及恢复总结
     Mysql主从实现 1、配置主从节点的服务配置文件 1.1、配置master节点:[mysqld]binlog_format=mixedlog-bin=master-bins...
    99+
    2022-10-18
  • 如何实现mysql主从复制及数据备份恢复
    这篇文章给大家分享的是有关如何实现mysql主从复制及数据备份恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、主从服务器分别作以下操作:  1.1、版本一致 &n...
    99+
    2022-10-19
  • MySQL恢复:使用从库备份,主库binlog,从库中继日志恢复数据库
    小生博客:http://xsboke.blog.51cto.com -------谢谢您的参考,如有疑问,欢迎交流 环境说明: mysql主从复制,主库A宕机,将从...
    99+
    2022-10-18
  • 《MySQL数据库》MySQL备份恢复
    前言 MySQL数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱。接下来我们就来讲讲MySQL是如何保障数据完整,应对特殊情况,如何恢复等。 备份 备份检查:保证备份没有问题...
    99+
    2016-12-27
    《MySQL数据库》MySQL备份恢复 数据库入门 数据库基础教程 数据库 mysql
  • MySQL数据备份与恢复
        一、简介    数据在当今的互联网行业中非常重要,掌握了数据能够从中发现价值,所以数据对于公司来书再重要不过了,当我们...
    99+
    2022-10-18
  • mysql数据备份及恢复
    这篇文章主要介绍“mysql数据备份及恢复”,在日常操作中,相信很多人在mysql数据备份及恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql数据备份及恢复”的疑惑...
    99+
    2022-10-18
  • MySQL 数据备份和数据恢复
    目录 一、数据备份 1、概述 2、MySQLdump命令备份 1)备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4)备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 一、数...
    99+
    2023-09-01
    mysql 数据库
  • MySQL数据库之主从同步
    一、概述:MYSQL主从同步架构是目前使用最多的数据库架构之一,主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(sl...
    99+
    2022-10-18
  • MariaDB、MySQL数据库主从同步
    1、Mysql主从同步异步概念    异步:主服务器写完日志后立即返回同步完成消息,不受从服务器的状态和影响,mysql默认为异步工作模式  &n...
    99+
    2022-10-18
  • MySQL主从半同步复制
    目录一、半同步复制1.半同步复制概念2.配置半同步1)主库操作2)从库操作3)额外参数 一、半同步复制 1.半同步复制概念 从MYSQL5.5开始,支持半自动复制。之前版本的MySQL Replication都是异步(asynchronou...
    99+
    2022-01-18
    MySQL主从半同步复制 数据库入门 数据库基础教程 数据库 mysql
  • MySQL数据库备份和恢复
    目录 MySQL数据库备份和恢复 备份恢复概述 为什么要备份 备份注意要点 还原要点 备份类型: 备...
    99+
    2015-03-06
    MySQL数据库备份和恢复
  • MySQL数据备份与恢复(二) -
     上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容。 1.  xtrabackup 工具的安装  1.1  安装依赖包 yum install...
    99+
    2018-12-27
    MySQL数据备份与恢复(二) -
  • xtrabackup备份恢复MySQL数据库
    1. 全量备份恢复: 查看原表内容: MariaDB [(none)]> select * from testdb.students; +----+------------+------...
    99+
    2022-10-18
  • XtraBackup MySql 数据备份和恢复
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/6/x86_64/percona-xtrabackup-24...
    99+
    2017-01-22
    XtraBackup MySql 数据备份和恢复
  • Mysql的数据备份和恢复
    这篇文章主要介绍“Mysql的数据备份和恢复”,在日常操作中,相信很多人在Mysql的数据备份和恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql的数据备份和恢复”...
    99+
    2022-10-18
  • Mysql数据库备份与恢复
    1 数据备份与恢复2 使用第三方软件进行备份1 数据备份与恢复1.1 数据备份方式物理备份:直接拷贝库或者表对应的文件。cp,tar, ...具有局限性,前提是表的存储引擎为myisam,跨平台性...
    99+
    2022-10-18
  • 【备份恢复】}异机备份恢复数据库
    此实验是在B库上恢复A库,不过更改了实例名。 目标库只是按照到oracle软件为止。 源库(A库):  192.168.56.12 ORACLE_SID=DBdb DBID=328289773...
    99+
    2022-10-18
  • 如何从备份数据恢复服务器数据
    要从备份数据恢复服务器数据,您可以按照以下步骤进行操作:1. 查找备份:首先,您需要找到之前创建的服务器数据备份。这可以是在本地计算...
    99+
    2023-10-11
    服务器
  • MySQL不同存储引擎的数据备份与恢复
    今天小编就来为大家讲讲如何进行MySQL数据备份。1数据备份的目的很直接也很简单,就是为了避免因不可预测、偶然的事件而导致的惨重损失,所以数据越重要、变化越频繁,就越要进行数据备份。本文以MySQL为例,讲...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作