Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

42-1 mysql backup and recovery

2025-02-21 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

01mysql backup and recovery

1. Mysqldump backup database (usage: databases below 1G)

1) single database

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

2) multiple databases

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

3) back up all databases

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

2. Disaster recovery case: (this example is wrong and needs to be sorted out)

Original server: 192.168.1.73

Recovery server: 192.168.1.72

Original server: perform insert and delete operation

MariaDB [(none)] > use hellodb

MariaDB [hellodb] > desc students

# insert a record

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 | |

+-+ +

# Delete a record

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

Restore server: first restore using mysqldump backup files, then restore using binary log files

[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)

Check the backup file, find the value of MASTER_LOG_POS, and make a note

[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

/ * 40101 SET @ OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT * /

/ * 40101 SET @ OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS * /

/ * 40101 SET @ OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION * /

/ * 40101 SET NAMES utf8 * /

/ * 40103 SET @ OLD_TIME_ZONE=@@TIME_ZONE * /

/ * 40103 SET TIME_ZONE='+00:00' * /

/ * 40014 SET @ OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 * /

/ * 40014 SET @ OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 * /

/ * 40101 SET @ OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' * /

/ * 40111 SET @ OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 * /

--

-- 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 / *! 32312 IF NOT EXISTS*/ `hellodb` / *! 40100 DEFAULT CHARACTER SET utf8 * /

USE `hellodb`

--

The value here is: 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)

Data recovery complete

3. Implement hot backup based on lvm2 (this example needs to be verified)

Configure lvm2 partitions for mariadb Stora

[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 (3pr 4, default 3):

First sector (51374080-251658239, default 51374080):

Using default value 51374080

Last sector, + sectors or + size {KMagne Mpeng} (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

Modify

Datadir=/var/lib/mysql

For

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 backup of the database

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

Logical volume "mydata-snap" created.

# modify the database

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/*

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

Add in [server] line (about 9 lines)

Log_bin=/data/binlogs/mysql-bin

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

MariaDB [(none)] > SET sql_log_bin=0

MariaDB [(none)] > source / root/all.sql

MariaDB [test] > SHOW DATABASES

+-+

| | Database |

+-+

| | information_schema |

| | hellodb |

| | mydb |

| | mysql |

| | performance_schema |

| | test |

+-+

6 rows in set (0.00 sec)

MariaDB [test] > SHOW MASTER STATUS

+-+

| | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | |

+-+

| | mysql-bin.000003 | 245 |

+-+

1 row in set (0.00 sec)

MariaDB [(none)] > SET sql_log_bin=1

MariaDB [test] > FLUSH TABLES WITH READ LOCK

[root@source] # mysql-e 'flush logs;'

[root@source ~] # mysql-e "SHOW MASTER STATUS;"

+-+

| | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | |

+-+

| | mysql-bin.000004 | 245 |

+-+

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

[root@source] # cat pos-2016-11-03

File Position Binlog_Do_DB Binlog_Ignore_DB

Mysql-bin.000004 245

[root@source] # lvcreate-L 2G-n mydata-snap-s-pr / dev/myvg/mydata Logical volume "mydata-snap" created.

MariaDB [test] > UNLOCK TABLES

MariaDB [hellodb] > DELETE FROM students WHERE StuID=18

Query OK, 1 row affected (0.01sec)

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 |

| | 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 |

| | 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.01 sec)

[root@source] # mount-r / dev/myvg/mydata-snap / mnt

[root@source ~] # ls / mnt/

Binlogs lost+found mysql

[root@source ~] # cd / mnt/

[root@source mnt] # ls mysql/

Aria_log.00000001 hellodb ib_logfile0 mydb performance_schema

Aria_log_control ibdata1 ib_logfile1 mysql test

[root@source mnt] # ls binlogs/

Mysql-bin.000001 mysql-bin.000003 mysql-bin.index

Mysql-bin.000002 mysql-bin.000004

[root@source mnt] # cp-a mysql/ / tmp/

[root@source mnt] # cp-a / data/binlogs/ / tmp/

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

# simulate erroneous deletion of data in the database

[root@source mnt] # rm-rf / data/mysql/*

[root@source mnt] # rm-rf / data/binlogs/*

# restore

[root@source mnt] # cp-a / tmp/mysql/* / data/mysql/

[root@source mnt] # cp-a / tmp/binlogs/* / data/binlogs/

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

[root@source mnt] # mysql

MariaDB [(none)] > SHOW BINARY LOGS

+-+ +

| | Log_name | File_size |

+-+ +

| | mysql-bin.000001 | 30334 | |

| | mysql-bin.000002 | 1038814 | |

| | mysql-bin.000003 | 288 |

| | mysql-bin.000004 | 245 |

| | mysql-bin.000005 | 245 |

+-+ +

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)

# data restored to backup

MariaDB [hellodb] >\ Q

Bye

[root@source] # cat pos-2016-11-03

File Position Binlog_Do_DB Binlog_Ignore_DB

Mysql-bin.000004 245

[root@source ~] # cd / tmp/

[root@source ~] # cd / tmp/binlogs/

[root@source binlogs] # ls

Mysql-bin.000001 mysql-bin.000003 mysql-bin.index

Mysql-bin.000002 mysql-bin.000004

[root@source binlogs] # mysqlbinlog-- start-position=245 mysql-bin.000004 / *! 50530 SET @ @ SESSION.PSEUDO_SLAVE_MODE=1*/

/ *! 40019 SET @ @ session.max_insert_delayed_threads=0*/

/ *! 50003 SET @ OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/

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 / * added by mysqlbinlog * /

/ *! 50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/

/ *! 50530 SET @ @ SESSION.PSEUDO_SLAVE_MODE=0*/

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report