首页 > 数据库 >Mariadb数据库备份与恢复

Mariadb数据库备份与恢复

时间:2022-11-01 09:33:27浏览次数:47  
标签:备份 mysqladmin uroot mysqldump mysql Mariadb 数据库

Mariadb数据库备份的方式有两种:一是冷备,二是热备。

一、数据库冷备:关闭状态下直接复制数据目录

1、使用mysqladmin停止mysql

    mysqladmin是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库等。注意需要进入mysqladmin的目录:/usr/local/mysql/bin/,笔者是在windows上装的wampserver,目录是:D:\wampserver\bin\mariadb\mariadb10.4.10\bin  。

mysqladmin -uroot -p status:查看数据库服务器状态

mysqladmin -uroot -p ping:查看数据库是否可用

mysqladmin -uroot -p version:查看数据库版本

mysqladmin -uroot -p processlist:查看数据库所有进程

mysqladmin-uroot -p shutdown:使用安全模式关闭数据库

mysqladmin -uroot -p create daba-test:创建数据库daba-test

mysqlshow -uroot -p test:查看数据库test下的表

 

    冷备前使用mysqladmin-uroot -p shutdown,使用安全模式关闭数据库,保证数据库的完整性,备份和恢复简单。

2、复制数据目录

    windows平台只需要进入数据目录:D:\wampserver\bin\mariadb\mariadb10.4.10\data ,然后执行复制数据即可。在linux平台,使用copy或者scp命令来递归复制。

备份到本机:copy -r /data/mysql  /newdir

备份到远程机:scp -r /data/mysql  root@ipaddress:/newdir

    数据库的恢复就简单了,直接拷贝数据目录覆盖原文件即可。冷备份会停止数据库,影响现有业务的运行。

二、数据库热备份:运行状态的逻辑备份

1、mysql自带的mysqldump工具

    笔者在前期的文章中写过:windows下定时备份mysql数据库和树莓派利用LAMP部署个人网页,上面有关于在windows和linux平台下进行备份的命令。

windows平台下备份数据库device_information

mysqldump  --no-defaults  -uphpmyadmin  -proot device_information  >  D:/device_information_%YMD%.sql

linux平台下平台下备份数据库formula_table

mysqldump -hlocalhost -uphpmyadmin -proot formula_table  > /home/pi/mysqlbackup_formula/`date +%Y%m%d`.sql

    mysqldump -help来查看mysqldump的使用方法,这里就不再。mysqldump 备份是先从buffer中找想要的备份内容,如果没有则将磁盘中的数据调回内存再形成备份文件,期间可能把内存中的热数据冲掉影响业务访问,造成数据库性能抖动。

    现在有个数据库test,card表又一千万行数据,笔者在windows平台下使用mysqldump进行备份,大概花了7秒钟,如果是linux平台则可以在命令前加time即可显示运行时间。mysqldump --single-transaction -uroot -p test card > test20210220.sql,使用dir test20210220.sql查看文件大小正常。

 

    现在要恢复数据库,使用mysql命令:mysql -uroot -p testbt < test20210220.sql  ,将数据恢复到数据库testbt 下,这个过程大概花了40秒。使用命令mysqlshow -uroot -p testbt -v -v 查看数据库testbt 的表的行数,正常。

 

2、数据库命令select ... into outfile和load data

    进入数据库命令行,使用命令select * from card into outfile 'D:/wampserver/tmp/outfile2021.sql';  来导出数据outfile2021.sql 。如下,需要注意的是outfile是有特定的数据目录的,运行 show variables like '%secure%';可以查看目录,输出数据文件时不然会出错,也要注意使用反斜杠 / 。备份过程花了4.4秒。

 

    需要注意的是,select ... into outfile只备份表中的数据,并不能包含表的结构。

    恢复数据使用命令load data

    先将表中数据删除:delete from card; 然后 load data infile 'D:/wampserver/tmp/outfile2021.sql' into table card;  将文件中的数据写入数据表card中。删除数据较慢的原因为card设置了触发器,在删除数据时会写入另一个表。 load data命令注意在表前要加table,整个过程花了70秒左右。

标签:备份,mysqladmin,uroot,mysqldump,mysql,Mariadb,数据库
From: https://www.cnblogs.com/Alwayslearn/p/16846645.html

相关文章