mariadb数据库物理备份恢复

重要环境的虚机崩溃,数据库没有做过备份.大神紧急抢救出来的只能是系统盘里的数据(var/lib/mysql)记录一下艰辛恢复过程,希望能帮助到大家.
建议:在执行恢复时候,建议现在本地测试一下,环境不同可能效果不同


本实验针对对象:

mariadb数据库(源数据库名称为myDtabases;)
centos系统
数据库是Innodb引擎

准备条件:

1.源数据库的/var/lib/mysql下的数据库名称命名的文件夹及其内容(myDtabases).

2.源数据库/var/lib/mysql下的ibdata1文件

3.目的主机已经安装mariadb数据库

开始恢复:

1.将目的主机上的mariadb停止;
systemctl stop mariadb.service

2.将源数据库myDtabases文件夹拷贝到目的主机/var/lib/mysql下

3.将源数据库ibdata1拷贝到/var/lib/mysql下(替换掉原来的)

4.修改权限
chmod 660 myDtabases/* ibdata1
chown -R mysql:mysql myDtabases ibdata1
chmod +x myDtabases

5.启动目的主机上的mariadb
systemctl start mariadb.service

6.用root用户登录数据库查看是否恢复


坑:

1.当时用的是其他账户登录的数据库,show databases;的时候没有发现myDtabases.最后发现是需要root用户才可以.

2.select * from tableName;时候显示不存在,后来发现是myDtabases没有可执行权限的问题,所以一定要添加目录的可执行权限



针对MyIASM引擎的恢复

网上文档记录只要将myDtabases拷贝到/var/lib/mysql下,并修改权限即可(其他步骤和上面记录的InnoDB引擎恢复一样,不再需要拷贝ibdata1).但是本人没有实验过.


恢复时候,如何区分两种引擎类型

1.进入到/var/lib/mysql /数据库名称 的文件下,看下表的类型

2.“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件


3.MyISAM“ 类型,一个表在磁盘上对应“*.frm*" ".MYD,*" ".MYI”文件。

你可能感兴趣的:(学习笔记,java)