当前位置:首页 > 技术教程 > 正文

MYSQL备份比较常用的2种方式

在工作中我们数据库可能会遭遇各式各样的不测(硬件故障、软件故障、高手攻破、误操作占比最大)从而导致数据丢失,下面给小伙伴介绍一下MYSQL备份比较常用的2种方式

一、使用cp进行备份

查看数据库的信息

mysql>

SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | employees | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) mysql> USE employees; Database changed mysql> SHOW TABLES; +---------------------+ | Tables_in_employees | +---------------------+ | departments | | dept_emp | | dept_manager | | employees | | salaries | | titles | +---------------------+ 5 rows in set (0.00 sec) mysql> SELECT COUNT(*) FROM employees; +----------+ | COUNT(*) | +----------+ | 300026 | +----------+ 2 row in set (0.05 sec)

备份数据文件

[root

@node1 ~]# mkdir /backup #创建文件夹存放备份数据库文件 [root@node1 ~]# cp -a /var/lib/mysql/* /backup #保留权限的拷贝源数据文件 [root@node1 ~]# ls /backup employees ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock test

数据恢复

MYSQL备份比较常用的2种方式 第1张

MYSQL备份比较常用的2种方式 第2张

[root@node1 ~]# cp -a /backup/* /var/lib/mysql/ #将备份的数据文件拷贝回去 [root@node1 ~]# service mysqld restart #重启MySQL mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | employees | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> USE employees; mysql> SELECT COUNT(*) FROM employees; +----------+ | COUNT(*) | +----------+ | 300024 | +----------+ 1 row in set (0.06 sec) ##完成

这里使用的是使用yum安装的mysql-5.1的版本

二、使用Xtrabackup备份

备份过程

MYSQL备份比较常用的2种方式 第3张

[

root

@node1 ~]# mkdir /extrabackup #创建备份目录 [root@node1 ~]# innobackupex --user=root /extrabackup/ #备份数据 ###################提示complete表示成功********************* [root@node1 ~]# ls /extrabackup/ 2021-09-27_07-30-48

备份完成后, 数据不能用于恢复操作因此我们需要准备一个完全备份

root@node1 ~]

# innobackupex --apply-log /extrabackup/2021-09-27_07-30-48

/ #指定备份文件的目录InnoDB: Starting shutdown...InnoDB: Shutdown completed; log sequence number 369661462160427 07:40:11 completed OK![root@node1 ~]# cd /extrabackup/2016-04-27_07-30-48/[root@node1 2021-09-27_07-30-48

]# ls -hl #查看备份文件total 31M-rw-r----- 1 root root 386 Apr 27 07:30 backup-my.cnfdrwx------ 2 root root 4.0K Apr 27 07:30 employees-rw-r----- 1 root root 18M Apr 27 07:40 ibdata1-rw-r--r-- 1 root root 5.0M Apr 27 07:40 ib_logfile0-rw-r--r-- 1 root root 5.0M Apr 27 07:40 ib_logfile1drwx------ 2 root root 4.0K Apr 27 07:30 mysqldrwx------ 2 root root 4.0K Apr 27 07:30 performance_schemadrwx------ 2 root root 4.0K Apr 27 07:30 test-rw-r----- 1 root root 25 Apr 27 07:30 xtrabackup_binlog_info-rw-r--r-- 1 root root 27 Apr 27 07:40 xtrabackup_binlog_pos_innodb-rw-r----- 1 root root 118 Apr 27 07:40 xtrabackup_checkpoints-rw-r----- 1 root root 471 Apr 27 07:30 xtrabackup_info-rw-r----- 1 root root 2.0M Apr 27 07:40 xtrabackup_logfile

恢复数据

[root

@node1 ~]# rm -rf /data/* [root@node

1 ~]# innobackupex --copy-back /extrabackup/2016-04-27_07-30-48/ # [root

@node

1 data]# killall mysqld [root

@node

1 ~]# chown -R mysql:mysql ./* [root

@node

1 ~]# ll /data/ total 28704 -rw-rw---- 1 mysql mysql 16384 Apr 27 07:43 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Apr 27 07:43 aria_log_control -rw-rw---- 1 mysql mysql 18874368 Apr 27 07:43 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Apr 27 07:43 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Apr 27 07:43 ib_logfile1 -rw-rw---- 1 mysql mysql 264 Apr 27 07:43 mysql-bin.000001 -rw-rw---- 1 mysql mysql 19 Apr 27 07:43 mysql-bin.index -rw-r----- 1 mysql mysql 2166 Apr 27 07:43 node1.anyisalin.com.err [root

@node

1 data]# service mysqld restart MySQL server PID file could not be found! [FAILED] Starting MySQL. [ OK ] MariaDB [(none)]> SHOW DATABASES; +--------------------+ |

Database | +--------------------+ | information_schema | | employees | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec

使用CP进行备份,备份速度快、恢复速度也很快但是功能相对比较弱一般用于少量数据备份,但是xtrabackup 进行备份功能强大对于备份规模比较大的来说比较实用。

以上就是关于“MYSQL备份比较常用的2种方式”的相关解答如需购买测试PHP主机,推荐西西云共享虚拟主机、独享IP虚拟主机齐备,各类配置均有,满足不同网站建设需求;另外提供免费虚拟主机,可供测试,让您快速上线网站。

选购地址:https://www.kufanyun.com/host/

0