文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

42-1 mysql备份与恢复

2024-04-02 19:55

关注

01mysql备份与恢复


1、mysqldump备份数据库(使用场合:1G以下的数据库)

1)单个数据库

[root@www1 ~]# mysqldump -uroot --databases hellodb > /root/helldb01.sql

2)多个数据库

[root@www1 ~]# mysqldump -uroot --databases hellodb mydb > /root/hellodb_mydb.sql

3)备份全部数据库

[root@www1 ~]# mysqldump -uroot --all-databases --lock-all-tables --master-data=2 > /root/all.sql


2、灾难恢复事例:(本示例有误,需要整理)

原服务器:192.168.1.73

恢复服务器:192.168.1.72


原服务器:执行插入、删除操作;

MariaDB [(none)]> use hellodb;

MariaDB [hellodb]> desc students;

#插入一条记录

MariaDB [hellodb]> insert into students (Name,Age,Gender,ClassID,TeacherID) VALUES ('Chao Cai',47,'M',3,7);

MariaDB [hellodb]> select * from students;

+-------+---------------+-----+--------+---------+-----------+

| StuID | Name          | Age | Gender | ClassID | TeacherID |

+-------+---------------+-----+--------+---------+-----------+

|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |

|     2 | Shi Potian    |  22 | M      |       1 |         7 |

|     3 | Xie Yanke     |  53 | M      |       2 |        16 |

|     4 | Ding Dian     |  32 | M      |       4 |         4 |

|     5 | Yu Yutong     |  26 | M      |       3 |         1 |

|     6 | Shi Qing      |  46 | M      |       5 |      NULL |

|     7 | Xi Ren        |  19 | F      |       3 |      NULL |

|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |

|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |

|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |

|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |

|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |

|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |

|    15 | Duan Yu       |  19 | M      |       4 |      NULL |

|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |

|    17 | Lin Chong     |  25 | M      |       4 |      NULL |

|    18 | Hua Rong      |  23 | M      |       7 |      NULL |

|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |

|    20 | Diao Chan     |  19 | F      |       7 |      NULL |

|    21 | Huang Yueying |  22 | F      |       6 |      NULL |

|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |

|    23 | Ma Chao       |  23 | M      |       4 |      NULL |

|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |

|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |

|    26 | Chao Cai      |  47 | M      |       3 |         7 |

+-------+---------------+-----+--------+---------+-----------+

26 rows in set (0.03 sec)

#删除某一条记录

MariaDB [hellodb]> DELETE FROM students WHERE StuID=3;


还原服务器:先使用mysqldump备份文件还原,再使用二进制日志文件还原

[root@source ~]# scp all.sql 192.168.1.72:/root

[root@restore ~]# yum -y install mariadb-server

[root@restore ~]# systemctl start mariadb.service 

[root@restore ~]# mysql

MariaDB [(none)]> SHOW DATABASES;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.00 sec)


MariaDB [(none)]> \q

[root@restore ~]# mysql < all.sql

[root@restore ~]# mysql

MariaDB [(none)]> SHOW DATABASES;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| hellodb            |

| mydb               |

| mysql              |

| performance_schema |

| test               |

+--------------------+

6 rows in set (0.00 sec)

MariaDB [(none)]> use hellodb;

MariaDB [hellodb]> SELECT * FROM students;

+-------+---------------+-----+--------+---------+-----------+

| StuID | Name          | Age | Gender | ClassID | TeacherID |

+-------+---------------+-----+--------+---------+-----------+

|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |

|     2 | Shi Potian    |  22 | M      |       1 |         7 |

|     3 | Xie Yanke     |  53 | M      |       2 |        16 |

|     4 | Ding Dian     |  32 | M      |       4 |         4 |

|     5 | Yu Yutong     |  26 | M      |       3 |         1 |

|     6 | Shi Qing      |  46 | M      |       5 |      NULL |

|     7 | Xi Ren        |  19 | F      |       3 |      NULL |

|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |

|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |

|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |

|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |

|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |

|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |

|    15 | Duan Yu       |  19 | M      |       4 |      NULL |

|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |

|    17 | Lin Chong     |  25 | M      |       4 |      NULL |

|    18 | Hua Rong      |  23 | M      |       7 |      NULL |

|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |

|    20 | Diao Chan     |  19 | F      |       7 |      NULL |

|    21 | Huang Yueying |  22 | F      |       6 |      NULL |

|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |

|    23 | Ma Chao       |  23 | M      |       4 |      NULL |

|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |

|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |

+-------+---------------+-----+--------+---------+-----------+

25 rows in set (0.00 sec)


查看备份文件,查到MASTER_LOG_POS的值,并记下

[root@restore ~]# less all.sql

-- MySQL dump 10.14  Distrib 5.5.50-MariaDB, for Linux (x86_64)

--

-- Host: localhost    Database: 

-- ------------------------------------------------------

-- Server version       5.5.50-MariaDB


;

;

;

;

;

;

;

;

;

;


--

-- Position to start replication or point-in-time recovery from

--


-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245;


--

-- Current Database: `hellodb`

--


CREATE DATABASE `hellodb` ;


USE `hellodb`;


--


这里的值为:MASTER_LOG_POS=245


[root@source ~]# mysqlbinlog --start-position=245 /var/lib/mysql/mysql-bin.000001 > incre.sql

[root@source ~]# scp incre.sql 192.168.1.72:/root

[root@restore ~]# mysql < incre.sql

[root@restore ~]# mysql

MariaDB [(none)]> use hellodb;

MariaDB [hellodb]> SELECT * FROM students;

+-------+---------------+-----+--------+---------+-----------+

| StuID | Name          | Age | Gender | ClassID | TeacherID |

+-------+---------------+-----+--------+---------+-----------+

|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |

|     2 | Shi Potian    |  22 | M      |       1 |         7 |

|     4 | Ding Dian     |  32 | M      |       4 |         4 |

|     5 | Yu Yutong     |  26 | M      |       3 |         1 |

|     6 | Shi Qing      |  46 | M      |       5 |      NULL |

|     7 | Xi Ren        |  19 | F      |       3 |      NULL |

|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |

|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |

|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |

|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |

|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |

|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |

|    15 | Duan Yu       |  19 | M      |       4 |      NULL |

|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |

|    17 | Lin Chong     |  25 | M      |       4 |      NULL |

|    18 | Hua Rong      |  23 | M      |       7 |      NULL |

|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |

|    20 | Diao Chan     |  19 | F      |       7 |      NULL |

|    21 | Huang Yueying |  22 | F      |       6 |      NULL |

|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |

|    23 | Ma Chao       |  23 | M      |       4 |      NULL |

|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |

|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |

|    26 | Chao Cai      |  47 | M      |       3 |         7 |

+-------+---------------+-----+--------+---------+-----------+

25 rows in set (0.00 sec)


数据恢复完成


3、基于lvm2实现热备(本示例待验证)


配置mariadb存储的lvm2分区

[root@source ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.



Command (m for help): n

Partition type:

  p   primary (2 primary, 0 extended, 2 free)

  e   extended

Select (default p): 

Using default response p

Partition number (3,4, default 3): 

First sector (51374080-251658239, default 51374080): 

Using default value 51374080

Last sector, +sectors or +size{K,M,G} (51374080-251658239, default 251658239): +10G

Partition 3 of type Linux and of size 10 GiB is set


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@source ~]# partx -a /dev/sda

[root@source ~]# pvcreate /dev/sda3

 Physical volume "/dev/sda3" successfully created

[root@source ~]# vgcreate myvg /dev/sda3

 Volume group "myvg" successfully created

[root@source ~]# lvcreate -L +5G -n mydata myvg

 Logical volume "mydata" created.

[root@source ~]# mkfs.xfs /dev/myvg/mydata  


[root@source ~]# systemctl stop mariadb.service

[root@source ~]# mount /dev/myvg/mydata /data/

[root@source ~]# mkdir -p /data/mysql

[root@source ~]# chown -R mysql.mysql /data/mysql/

[root@source ~]# vim /etc/my.cnf

修改

datadir=/var/lib/mysql

datadir=/data/mysql

[root@source ~]# systemctl start mariadb.service

[root@source ~]# mysql < all.sql 

[root@source ~]# mysql -e 'SHOW MASTER STATUS' > /root/pos.`date +%F`

[root@source ~]# cat pos.2016-11-02 

File    Position        Binlog_Do_DB    Binlog_Ignore_DB

mysql-bin.000002        245


#对数据库作lvm2备份

[root@source ~]# lvcreate -L 500M -s -n mydata-snap -p r /dev/myvg/mydata

 Logical volume "mydata-snap" created.


#对数据库作修改操作  

MariaDB [(none)]> UNLOCK TABLES;

MariaDB [(none)]> use hellodb;

MariaDB [hellodb]> DELETE FROM students WHERE StuID=5;

MariaDB [hellodb]> DELETE FROM students WHERE StuID=11;

MariaDB [hellodb]> SELECT * FROM students;

+-------+---------------+-----+--------+---------+-----------+

| StuID | Name          | Age | Gender | ClassID | TeacherID |

+-------+---------------+-----+--------+---------+-----------+

|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |

|     2 | Shi Potian    |  22 | M      |       1 |         7 |

|     3 | Xie Yanke     |  53 | M      |       2 |        16 |

|     4 | Ding Dian     |  32 | M      |       4 |         4 |

|     6 | Shi Qing      |  46 | M      |       5 |      NULL |

|     7 | Xi Ren        |  19 | F      |       3 |      NULL |

|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |

|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |

|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |

|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |

|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |

|    15 | Duan Yu       |  19 | M      |       4 |      NULL |

|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |

|    17 | Lin Chong     |  25 | M      |       4 |      NULL |

|    18 | Hua Rong      |  23 | M      |       7 |      NULL |

|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |

|    20 | Diao Chan     |  19 | F      |       7 |      NULL |

|    21 | Huang Yueying |  22 | F      |       6 |      NULL |

|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |

|    23 | Ma Chao       |  23 | M      |       4 |      NULL |

|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |

|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |

+-------+---------------+-----+--------+---------+-----------+

23 rows in set (0.00 sec)

 

[root@source ~]# systemctl stop mariadb.service 

[root@source ~]# lvremove /dev/myvg/mydata-snap 

[root@source ~]# umount /dev/myvg/mydata 

[root@source ~]# mke2fs -t ext4 /dev/myvg/mydata 

[root@source ~]# mount /dev/myvg/mydata /data/

[root@source ~]# mkdir /data/{mysql,binlogs}

[root@source ~]# chown -R mysql.mysql /data;

;

;

DELIMITER ;

# at 4

#161103 13:08:44 server id 1  end_log_pos 245   Start: binlog v 4, server v 5.5.50-MariaDB created 161103 13:08:44

# Warning: this binlog is either in use or was not closed properly.

BINLOG '

XMYaWA8BAAAA8QAAAPUAAAABAAQANS41LjUwLU1hcmlhREIAbG9nAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAA2QAEGggAAAAICAgCAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAA9VR4dg==

';

DELIMITER ;

# End of log file

ROLLBACK ;

;

;



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯