MySQL数据文件直接通过拷贝备份与恢复的操作方法

 更新时间:2023年09月04日 10:00:04   作者:MarsBighead  
这篇文章主要介绍了MySQL数据文件直接通过拷贝备份与恢复的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Database Backup and Shiftwith Mysql DB with CopyFile

建议在实施备份或文件转移前进行测试,在测试稳定之前,要保证数据备份的可恢复性。

下面就MySQL数据库表文件通过拷贝进行备份的情况做测试说明:

1、 MySQL数据库默认数据库数据存储目录下的备份(实例MySQL默认目录为/var/lib/mysql/ ).

Fig.1-1 示例数据库所属文件夹

a.先创建一个数据库test,可见在数据库默认目录下面建立了一个名为test的文件夹,为了模拟实际数据情况,我们再创建一张表test;

Fig.1-2 示例数据库test里面的文件

b. 拷贝test文件夹在当前目录建立test_backup文件夹。

Fig.1-3可恢复数据库test_backup所属文件夹

c. 切换到test_backup数据库对数据可操作情况进行查看。

Fig.1-4 拷贝的test_backup数据库文件权限问题

d.test_bakup数据库的权限存在问题,所以我们参照原数据库test的权限对test_backup进行修改,修改操作参见图Fig.1-5。

Fig.1-5权限修改与比对

权限修修改还应该包括用户和用户组,图Fig.1-6对修改用户组操作与结果做了显示。

Fig.1-6 用户组修改

e.修改结果,Fig.1-7显示test_backup数据库原来显示表的问题已经得到解决.

Fig.1-7 test_backup数据库列表

f.图Fig.1-8为我们呈现了数据库的插入新表的操作与结果,显示一切正常表明数据库文件在默认目录完成可恢复备份的建立。

Fig.1-8备份数据库test_backup建表

2、其他目录下创建转移数据库或备份数据库 ( 其他目录路径实例:/home/mysqldata/mysql/)

a.拷贝test数据库整个文件夹数据到/home/mysqldata/mysql/目录下

Fig.2-1 /home/mysqldata/mysql/目录下文件

b.参照第一步的建立备份的权限以及用户组修改流程进行操作,然后在默认数据库存放目录建立软连接test_out_copy。

Fig.2-2 test_out_copy数据库的建立

c.在数据库中可见test_out_copy数据库存在,show tables; 列表显示失败。

Fig.2-3 test_out_copy数据库测试结果

测试结论:当前测试结果显示,目前MySQL配置下对 MySQL默认文件夹里数据库拷贝可以通过权限设置修改为正常可用数据库。但是,拷贝其他路径的数据库文件无论如权限设置何修改,都不用,即便在mv到默认目录也恢复不出可用数据库。

Fig.2-4 mv数据库test文件夹数据到其他目录建立可用数据库

d.数据库数据过大的转移直接mv目标数据库test到目录/home/mysqldata/mysql/,然后通过建立软连接的方式,在默认数据库下面建立起test_out_move的数据库,操作过程与测试结果见图Fig.2-4 。

可行性结论:mv数据库中数据到其他目录,再创建软连接能够有效地解决MySQL数据库数据存放目录问题有效方法。

3、MySQL数据库表的附加

鉴于MySQL数据库数据可能为整库下载下来,数据较大可能存在放不到默认目录的情况,可以通过把表数据直接copy到建好软链接的目标数据库来实现数据导入。

a. 建立空数据库通attach过mv的方法转移到目标位置,建立新的数据库,如图Fig.3-1。

Fig.3-1 空数据库attach软连接建立与mv

b. 对空数据库测试,图Fig.3-2显示通过软链接建立attach数据库可读可写,表明attach数据库文件权限没有问题

Fig.3-2 attach数据库读写情况测试

c. 导入表的结构数据,并修改相应权限与原来的表相同,图Fig.3-3显示的是表文件权限与所属用户不同的情况。

Fig.3-3 导入外源表文件后attach数据库的文件情况

4、MySQL数据库外的数据目录备份与转移

a.数据库copy测试选取mm10进行测试,目标建立起一个out_to_out的数据库备份。数据测试数据库在默认目录外不同路径的拷贝与权限设置见图Fig.4-1;软连接建立out_to_out数据库见下图Fig.4-2。

Fig.4-1 mm10测试数据库在默认目录外不同路径的拷贝与权限设置

Fig.4-2 软连接建立的数据库

b.out_to_out数据库可用性进行测试,结果如图Fig.4-3,显示与从默认目录拷出一样的错误。

Fig.4-3out_to_out数据库测试结果

c.通过先建立out_to_out数据库对应的空数据库, mv空数据库out_to_out到目标路径,再将目标数据库表的数据拷贝到该空数据库,查询测试目标数据库结果如下图Fig.4-4。

Fig.4-4 目标数据库测试查询结果

注:以上测试实现环境为CentOS release 6.5,MySQL版本为5.1.73。

相关文章

  • Java中的Kafka消费者详解

    Java中的Kafka消费者详解

    这篇文章主要介绍了Java中的Kafka消费者详解,Kafka是一个分布式流行消息系统,通常用于大规模数据处理和实时数据流应用程序,它具有高吞吐量、可扩展性和容错性的特点,需要的朋友可以参考下
    2023-09-09
  • SpringBoot+kaptcha实现图片验证码功能详解

    SpringBoot+kaptcha实现图片验证码功能详解

    这篇文章主要为大家详细介绍了SpringBoot如何结合kaptcha实现图片验证码功能,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2024-01-01
  • mybatis报错 resultMapException的解决

    mybatis报错 resultMapException的解决

    这篇文章主要介绍了mybatis报错 resultMapException的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • JAVA代码实现MongoDB动态条件之分页查询

    JAVA代码实现MongoDB动态条件之分页查询

    这篇文章主要介绍了JAVA如何实现MongoDB动态条件之分页查询,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • apache zookeeper使用方法实例详解

    apache zookeeper使用方法实例详解

    这篇文章主要介绍了Apache Zookeeper使用方法的有关实例及详解,包含了其简介和程序设计的一些思想,内容丰富,需要的朋友可以参考下。
    2017-09-09
  • 详解Mybatis动态sql

    详解Mybatis动态sql

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。本文给大家介绍Mybatis动态sql小结,感兴趣的朋友参考下
    2016-04-04
  • Python动态类型实现原理及过程解析

    Python动态类型实现原理及过程解析

    这篇文章主要介绍了Python动态类型实现原理及过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot之HandlerInterceptor拦截器的使用详解

    SpringBoot之HandlerInterceptor拦截器的使用详解

    这篇文章主要介绍了SpringBoot之HandlerInterceptor拦截器的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • IntelliJ IDEA之高效代码插件RainBow Brackets详解

    IntelliJ IDEA之高效代码插件RainBow Brackets详解

    这篇文章主要介绍了IntelliJ IDEA之高效代码插件RainBow Brackets详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Maven一键部署Springboot到Docker仓库为自动化做准备(推荐)

    Maven一键部署Springboot到Docker仓库为自动化做准备(推荐)

    这篇文章主要介绍了Maven一键部署Springboot到Docker仓库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论