MySQL的备份与还原,非常规备份,全量备份,增量备份

MySQL的备份与还原,非常规备份,全量备份,增量备份,第1张

1:官方百万级别的测试数据库:

官方测试数据github网址:https://github.com/datacharmer/test_db

下载到目录,解压即可,运行命令:

2:自己创建简单测试数据库:

快速随机生成测试语言的网站:https://generatedata.com/

选择sql和想生成的字段,点击生成Generate!生成即可。

在MySQL输入生成的语句即可。

3:测试备份还原时用到的命令

删库跑路测试(先备份好)

还原后查询库的表数据是否完整。

采用复制整个数据存放目录

1:查看数据库数据存放位置

有两种方法:

1):在数据库中用命令 show variables like 'datadir' 查看

2):在配置文件中查看,配置了 datadir 目录的可查看。没有配置的默认为 /var/lib/mysql/ 位置

Linux中查看配置文件

2:复制目录或者目录下某个数据库名

3:还原时直接复制文件夹到数据库目录即可

mysqldump又可叫做全量备份。

参数 --databases 同 -B ,单独一个库,也可省略。

1、备份命令mysqldump格式

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 database 数据库名 >文件名.sql

备份testDatabase数据库

2、备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

3、直接将MySQL数据库压缩备份

备份并压缩

4、备份MySQL数据库某个(些)表

备份testDatabase中的myTable表,不需要用参数 --databases 或者 -B

5、同时备份多个MySQL数据库

同时备份testDatabase和 employees两个库

6、备份服务器上所有数据库

参数 --all-databases 同 -A

7、还原MySQL数据库的命令

1) 不指定数据名还原,默认生成原数据库名称,还原所有数据库。

2) 指定数据名还原,还原指定单个数据库,需在数据库种预先创建一个testDatabase名称。

3) 还原压缩的MySQL数据库

4) 进入数据库用source导入

增量备份是针对于数据库的bin-log日志进行备份的,增量备份是在全量的基础上进行 *** 作的。增量备份主要是靠mysql记录的bin-log日志。

1:查看是否开启bin-log日志

进入mysql输入命令可查看。

显示如下为开启状态,日志文件在/var/lib/mysql/以binlog.00001的格式保存。

如未开启,需要在配置文件种配置

2:查看目前使用的bin-log日志文件

进入mysql查看命令。

显示如下,目前使用的是binlog.000022文件,所有 *** 作都记录在此文件。

查看当前testDatabase的表myTable数据如下,

3:刷新日志,使用新的日志文件(备份)

在命令端执行命令

日志文件从 binlog.000022 变为 binlog.000023

这时相当与已经备份成功,备份文件即为上次的binlog.000022日志文件。

4:删除数量,从日志还原数据

1) 删除ABC行

查询以及没有ABC行列。

2) 恢复数据ABC行

退出mysql,在命令端用mysqlbinlog命令恢复到binlog.000022日志状态。

进入数据库再次查看数据,ABC已经恢复。

增量备份完成。

在SQL Server 2000中,假定我们拥有一个数据库为:Test, 现在需要它每天19:00自动进行一次备份,并且以后一旦发生数据库错误,我们都可以通过备份文件将数据库恢复到任何一个备份过的时刻点。

备份步骤:

1. 在“SQL Server企业管理器”中注册数据库所在的服务器,注意要使用sa用户名和口令,否则以后执行备份调度的时候,会出现权限不足,导致不能进行备份。

2. 确保该服务器的SQL Server Agent服务是开启的,因为所有的调度都是通过该代理进行执行的。

3. 在“SQL Server企业管理器”中选中Test数据库,右键打开“备份数据库”窗口,指定一个新的文件Test-daily.bak,选择“完全”进行一次完全备份。

4. 再次打开“备份数据库”窗口,这次使用“差异备份”,“重写”选项设置为“追加到媒体”,目的文件仍然是前面步骤所指定的Test-daily.bak,并在“调度”选项中设置为每天的19:00,这样,SQL Server会在每天的19:00将数据库自上次备份以来发生的变化,以增量备份的方式追加到Test-daily.bak文件中。(测试的时候,可以设置为每天的每1分钟进行一次备份,以便可以很快的看到备份结果)

在需要进行数据库恢复的时候,可以按照如下还原步骤进行 *** 作:

1. 新建一个数据库,比如名为Back, 右键打开“还原数据库”窗口,选择“从设备”进行还原,然后在“选择设备…”中选定备份所使用的Test-daily.bak文件,回到“还原数据库”窗口,“备份号”默认为1(对应的就是备份步骤3中的初次完全备份),不必更改。在“选项”标签页中,选中“强制还原”,最关键的一步是,在“恢复完成状态”中,选中第2或第3项,即保证“能还原其它事务日志”,这样还原之后,这个新的数据库就回到了我们进行第一次完全备份时候的状态,此时,该Back数据库将处于“正在装载”或“只读”的状态,没有关系,这是正常的,因为我们接下来还需要通过事务日志将该数据库恢复到指定的某个状态。

2. 再次打开“还原数据库”窗口,同样选择“从设备”进行还原,然后在“选择设备…”中选定备份所使用的Test-daily.bak文件,回到“还原数据库”窗口,点击“备份号”后面的“查看内容…”按钮,在新的窗口中,可以看到里面列出了每天19:00左右备份过的备份集(除了最顶上一个是我们初次的完全备份集,其它都是每天的增量备份集),选中想要恢复的某个备份集,单击“确定”回到主窗口,可以看到“还原备份集”默认选中的是“差异”,再单击确定,这样,Back数据库就恢复到了我们选定的某个备份集了。

上述还原步骤可以重复进行,直到我们找到确切需要的某个备份集。

另外,恢复后的数据库名称是Back,如果想将其改名为Test,可以执行

EXEC sp_renamedb 'Back', 'Test'

在重命名数据库之前,应该确保没有人使用该数据库,而且数据库设置为单用户模式。

补充:需要在"备份数据库"->"常规"选项卡里选中"重写现有媒体",这样在"选项"选项卡里才能设定"备份集到期时间",并且发现,这样设定好"到期时间"之后,即使将"重写现有媒体"改为"追加到媒体",所设定的"到期时间"还是有效的,这可以在调度里的"步骤"脚本中看出来,如:

BACKUP DATABASE [model] TO DISK = N'D:\test.bak' WITH NOINIT , NOUNLOAD , RETAINDAYS = 1, DIFFERENTIAL , NAME = N'model 备份', NOSKIP , STATS = 10, NOFORMAT,通过这种方式应该可以实现保留最近N天的备份,测试中....

数据备份的三种方法如下:

1、完全备份。完全备份是指拷贝整个磁盘卷或逻辑磁盘的内容。

2、增量备份。增量备份即备份自从上次备份 *** 作以来新改变的数据,这些新改变的数据或者是新产生的数据,或者是更新的数据。

3、差量备份。差量备份即拷贝所有新的数据,这些数据都是上一次完全备份后产生或者更新的,差量备份与增量备份类似,但也有不同。

备份是一种将文件系统或数据库系统中的数据加以复制,一旦发生灾难或错误 *** 作时,得以方便而及时地恢复系统的有效数据和正常运作的方法。备份存储媒体既可以是逻辑驱动器(如硬盘)、独立的存储设备(如可移动磁盘),也可以是由自动转换器组织和控制的整个磁盘库或磁带库。最好将重要数据制作三个或三个以上的备份,并且放置在不同的场所,以利日后回存之用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6810587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存