zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MariaDB数据库备份之逻辑备份

2023-02-18 16:36:46 时间

在生产机器上通常是要备份数据库的,主要是防止重要数据丢失,这里就不细说为什么备份了,这篇文章是MariaDB数据库的逻辑备份

大概说一下备份方式吧

物理备份

这个方式就是拷贝物理文件备份: mariadb的数据库文件路径 /var/lib/mysql 比如:cptar拷贝物理文件也就是要停机或者停止访问,说白了就是停止提供服务了,常见的就是服务器维护,也不一定是停止服务也可以使用:xtrabackup热备工具,这个工具就不需要停止服务就可以备份,xtrabackup工具备份过程不会打断正在执行的事务也就是无需锁表就可以备份 有兴趣可以研究一下xtrabackup工具用法,我这里由于没有超过四五十GB的数据库,所以用 mysqldump即可

逻辑备份

逻辑备份,就是将数据库的数据以SQL语句的形式,导出备份 这个备份说白了就是SQL语句了 这个就用到 mysqldump 这个工具了,这个工具是数据库自带的,MySQL以及MariaDB数据库都是有的,毕竟MariaDB数据库是MySQL数据库的分支吧,基本上和MySQL数据库是一样的(有兴趣可以了解一下这两个数据库的历史) mysqldump这个工具,对于数据库数据只有 四五十GB的情况是没问题的,但超过了最好是用物理备份了

使用mysqldump 逻辑备份所有数据库

参数解释: -A 备份所有数据库 -B 备份单个或者多个数据库,也能指定备份某个数据库中的某个表 其他参数解释: -u 数据库用户 -p 数据库密码 “>” 将结果输出到指定名称指定位置下

备份所有数据库

命令格式:

mysqldump -u你的用户 -p你的密码 -A>[备份到那个位置以及叫什么名].sql

在系统中输入命令:

mysqldump -uroot -p -A> /opt/allbf.sql

输入完命令会提示Enter password:输入你数据库用户密码回车即可(我这种方式是为了更安全一些) 查看备份路径下是否有备份的sql文件

没有基本上不是你查看的位置有问题,就是在刚开始备份语句有问题

删除一个表的数据

先查看是否一个表中是否有数据

删除 city 表的所有数据

delete from world.city

恢复数据

第一种回复方法 Linux终端回复

命令格式:

mysql -uroot -p <数据库备份文件;

例如:

mysql -uroot -p < /opt/allbf.sql

第二种MariaDB终端回复

命令格式:

source 数据库备份文件;

例如: 就是登录到数据库中,在数据库终端执行

source /opt/allbf.sql;

那种都可以但最后的结果是回复了

使用mysqldump 备份指定的一个数据库

备份某一个数据库

具体参数上面介绍的很清楚 我备份的是 world 数据库

mysqldump -uroot -p -B 数据库名称 > [备份到那个位置以及叫什么名].sql

例如:

mysqldump -uroot -p -B world > /opt/wobf.sql

删除一个表的数据库

先查看是否一个表中是否有数据

删除 city 表的所有数据

delete from world.city

恢复数据

第一种回复方法 Linux终端回复

命令格式:

mysql -uroot -p 数据库名称 <数据库备份文件;

例如:

mysql -uroot -p world < /opt/wobf.sql

第二种MariaDB终端回复

命令格式:

source 数据库备份文件;

例如: 就是登录到数据库中,在数据库终端执行

source /opt/wobf.sql;

那种都可以但最后的结果是回复了