数据库备份保留策略,安全备份数据! (数据库的 备份保留策略)

在数字化时代,大量数据产生并随着不断增长。数据库备份是我们重要的保留策略,对数据安全具有非常重要的意义。数据安全是每一个用户都需要关注的问题,因为数据泄露或丢失会对企业或个人造成极大的损失。因此,制定一个合理的数据库备份保留策略是千万不能忽略的。

数据库备份保留策略是指根据公司的实际情况制定一系列备份方案,也就是备份周期、备份类型,备份介质以及数据保留时间,以确保数据完整性及可靠性。无论数据量和备份方式的选择如何,备份的最终目标都是为了保证数据的完整性和安全性。具有较高可靠性的数据库备份策略在数据备份和恢复时发挥着关键的作用。

实际上,现在的数据库备份工具已经变得越来越智能化,自动化程度也越来越高。然而,数据库备份依然是整个数据安全的重中之重,受到了越来越多的关注。因为没有稳定的数据库备份策略,数据会处于很大的危险状态。

备份周期

制定数据库备份保留策略时,备份周期应该是很重要的一个考虑因素。主要表现为数据的重要程度、变化频率。以及具体的备份类型都会影响备份周期的选择。不同周期的数据库备份方案,其保留数据和备份数据的时间也有所不同。

如果数据重要程度高,那么备份周期会较短。例如,某些公司可能会每天进行一次数据库备份。如果数据的变化频率较高,备份周期也应较短。因此,根据实际情况制定一个合理的数据库备份周期非常重要。

备份介质

备份介质是备份策略中的另一个重要考虑因素;一些介质通常用于数据库备份,通常包括硬盘、磁带、光盘等。何种介质被选择依赖于备份时间的长短以及备份的数据量。在进行数据库备份时,应主要考虑介质的质量和容量,以确保备份数据的安全性和可靠性。

备份类型

在数据库备份保留策略中,备份类型也是一个重要的考虑因素。根据备份类型的不同,备份内容和数据备份的速度也会有所不同。数据库备份可以分为完全备份、差异备份和增量备份三种类型。

完全备份:

完全备份的意思是将整个数据库都备份一遍。这意味着不仅所有的数据都被备份,而且还包括所有的表、结构、存储过程和函数。由于整个数据库都被备份,所以这种类型的备份通常速度较慢,但数据恢复的速度比较快。

差异备份:

差异备份只备份与上一次完全备份之间新增的数据。这种备份方式可以大大减少数据备份的时间,从而节省备份介质的使用量,但是备份具有依赖关系,如果上一次完全备份丢失,则差异备份数据也将无法恢复。

增量备份:

增量备份仅备份自上次增量备份后新增和修改的数据。与差异备份不同,增量备份不依赖于完全备份,这意味着即使完整备份已丢失,增量备份仍然是可用的。它可以更简单地实现备份恢复,但备份和恢复的时间成本可能高于差异备份。

数据保留时间

在数据库备份保留策略中,数据保留时间是需要考虑的另一个因素。这个因素涉及到备份数据的使用和维护,以及备份策略的频率。通常,注重数据保护的企业会制定一种备份保留算法,以根据备份时间和可以支持数据数量的存储系统的要求来控制备份数据的过期时间。

但是,数据的保留时间是受许多方面的影响,包括监管要求和企业的策略和义务等。后果是,应该根据实际情况和法规要求来控制数据库备份保留时间。尤其是企业要密切关注国内外政策法规的变化,必要时需要及时调整公司的备份保留策略。

制定数据备份保留策略是一项挑战性的工作,但这是很有必要的。在制定这些策略时,您需要考虑的重要因素包括备份周期、备份介质、备份类型和数据保留时间等。此外,保持与行业最新的政策法规同步更新是也是很重要的。对于那些关键性的数据要留存,我们还建议尽量考虑采用云备份、异地备份等方式来确保数据库的安全性。正如我们所看到的,在这个大数据时代,数据库备份保留策略对于数据安全和数据稳定性起着至关重要的作用,不能轻视。

相关问题拓展阅读:

如何备份数据库

数据库备份的方法:

1、首先使用管理软件SQL Server Management Studio连接到SQL数据库,找到需要的数据库备份的名字(如图中的book)。

2.选择要备份的SQL数据库,用鼠标右键点击数据库,选择任务选项里面的备份。

3.接着弹出一个备份窗口,在该窗口中的备份的类型选择完整备份。

4.然后在该备份窗口右下角有一个添加,这个添加就是添加备份文件保存位置。

5.如果SQL数据库经常要备份的,更好建立一固定的文件夹用来的放置数据备份文件。

6.手机一次性完整备份,可以自己命名。若通过维护计划进行备份的,可以设备文件命名格式。

7.确定后,等待数据库执行备份完成。然后就可以到目录文件下找到完整备份文件了,可以还原数据库。

1、首先打开sql server管理系统工具,使用数据库账号登录到数据管理系统。

2、进去以后,点击数据库文件前面的+号,点开系统数据库前面的+号,找到你要备份的数据库,比如markt数据库。

3、右键markt数据库,选择任务选项下的备份选项即可。

4、在弹出的界面里,选择备份组建、备份时间和备份路径。

5、然后选择确定,进行备份。备份成功后,会提示备份成功,最后关闭即可。

1.使用管理软件SQL Server Management Studio连接到SQL。

2.选择需要完整备份的SQL数据库,右键任务中选择备份。

3.记得备份的类型要选择完整备份。

4.然后就是添加备份的文件保存位置。

5.若是经常要备份的,更好建立一固定的文件夹用来的放置数据备份文件。

6.手机一次性完整备份,可以自己命名。若通过维护计划进行备份的,可以设备文件命名格式。

7.确定后,等待数据库执行备份完成。然后就可以到目录文件下找到完整备份文件了,可以还原数据库。

1、首先运行SQL。

2、将数据库进行连接。

3、单击“服务器对象”,在“服务器对象”中右键单击“备份设备”,选择”新建备份设备”。

4、在设备名称文本框输入你要创建的设备名称,然后单击“确定”。

5、这样备份设备的创建就完成了。

6、右键单击要备份的数据库,选择“任务”,在“任务”中选择“备份”。

7、单击“添加”,选中“备份设备”,单击“确定”。

8、删除文件目标,只保留备份设备,单击“确定”。

9、提示“备份已成功完成”。

10、这样就可以完成数据库的备份了。

扩展资料:

还执行语句,使用SQL最简单备份,还原数据库:

1、备份:backup database Test to disk=’D:/Test.bak’

2、还原:restore database Test from disk=’D:/Test.bak’

可以试试以下操作:

1、首先运行SQL,

2、将数据库进行连接,

3、单击“服务器对象”,在“服务器对象”中右键单击“备份设备”,选择”新建备份设备”,

4、在设备名称文本框输入你要创建的设备名称,然后单击“确定”,

5、这样备份设备的创建就完成了,

6、右键单击要备份的数据库,选择“任务”,在“任务”中选择“备份”,

7、单击“添加”,选中“备份设备”,单击“确定”,

8、删除文件目标,只保留备份设备,单击“确定”,

9、提示“备份已成功完成”,

10、这样就可以完成数据库的备份了。

扩展资料

还执行语句,使用SQL最简单备份,还原数据库:

1、备份:backup database Test to disk=’D:/Test.bak’

2、还原:restore database Test from disk=’D:/Test.bak’

本机运行的MySQL 数据库 如何安全的备份/还原

简单的话,找到数据库文件,直接复制备份,具置看你的mysql配置

一般是即时备份。做主从。或者是每天增量备份。

本文是在linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本.

本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数.

每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失.

希望你明白这个脚本要干什么工作!

脚本描述

每7天备份一次所有数据,每天备份binlog,也就是增量备份.

(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)

作者对shell脚本不太熟悉,所以很多地方写的很笨 🙂

开启 bin log

在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:

log-bin

这个日志的主要作用是增量备份或者复制(可能还有其他用途).

如果想增量备份,必须打开这个日志.

对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.

在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).

所以如果从来不备份,开启日志可能没有必要.

完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.

完整备份脚本

如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了.

#!/bin/sh

# mysql data backup script

# by scud

#

#

# use mysqldump –help,get more detail.

#

BakDir=/backup/mysql

LogFile=/backup/mysql/mysqlbak.log

DATE=`date +%Y%m%d`

echo ” ” >> $LogFile

echo ” ” >> $LogFile

echo “-” >> $LogFile

echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile

echo “” >> $LogFile

cd $BakDir

DumpFile=$DATE.sql

GZDumpFile=$DATE.sql.tgz

mysqldump –quick –all-databases –flush-logs

–delete-master-logs –lock-all-tables

> $DumpFile

echo “Dump Done” >> $LogFile

tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1

echo “Backup Success!” >> $LogFile

rm -f $DumpFile

#delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件.

cd $BakDir/daily

rm -f *

cd $BakDir

echo “Backup Done!”

echo “please Check $BakDir Directory!”

echo “copy it to your local disk or ftp to somewhere !!!”

ls -al $BakDir

上面的脚本把mysql备份到本地的/backup/mysql目录,增量备份的文件放在/backup/mysql/daily目录下.

注意:上面的脚本并没有把备份后的文件传送到其他远程计算机,也没有删除几天前的备份文件:需要用户增加相关脚本,或者手动操作.

增量备份

增量备份的数据量比较小,但是要在完整备份的基础上操作,用户可以在时间和成本上权衡,选择最有利于自己的方式.

增量备份使用bin log,脚本如下:

#!/bin/sh

#

# mysql binlog backup script

#

/usr/bin/mysqladmin flush-logs

DATADIR=/var/lib/mysql

BAKDIR=/backup/mysql/daily

###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名

HOSTNAME=`uname -n`

cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

##计算行数,也就是文件数

COUNTER=0

for file in $FILELIST

do

COUNTER=`expr $COUNTER + 1 `

done

NextNum=0

for file in $FILELIST

do

base=`basename $file`

NextNum=`expr $NextNum + 1`

if

then

echo “skip lastest”

else

dest=$BAKDIR/$base

if(test -e $dest)

then

echo “skip exist $base”

else

echo “copying $base”

cp $base $BAKDIR

fi

fi

done

echo “backup mysql binlog ok”

增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.

因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.

注:同样,用户也需要自己远程传送,不过不需要删除了,完整备份后程序会自动生成.

访问设置

脚本写完了,为了能让脚本运行,还需要设置对应的用户名和密码,mysqladmin和mysqldump都是需要用户名和密码的,当然可以写在脚本中,但是修改起来不太方便,假设我们用系统的root用户来运行此脚本,那么我们需要在/root(也就是root用户的home目录)创建一个.my.cnf文件,内容如下

password =password

user= root

user=root

password=password

注:设置本文件只有root可读.(chmod 600 .my.cnf )

此文件说明程序使用mysql的root用户备份数据,密码是对应的设置.这样就不需要在脚本里写用户名和密码了.

自动运行

为了让备份程序自动运行,我们需要把它加入crontab.

有2种方法,一种是把脚本根据自己的选择放入到/etc/cron.daily,/etc/cron.weekly这么目录里.

一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行.

要想简单点的就去下一个Navicat for MySQL,这是MySql界面化的软件,更好下载一个中文版的,装上软件之后,那里有很详细的向导设置,你肯定可以学会。

数据备份是数据容灾的最后一道防线,即便有着两地三中心的架构,备份也依然重要。如果备份出问题,备份时影响了交易业务,备份数据无法恢复,这些也是企业难以承受的。所以选择合适的备份工具尤为重要。

每个企业级数据库都会有配套的备份工具,MEB(MySQL Enterprise Backup)就是MySQL企业版中非常重要的工具之一,是为企业级客户提供的数据备份方案。

Xtrabackup一直作为MEB 开源版备胎而存在,从MySQL 8.0开始情况可能会变得有所不同。

在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/恢复体验会更好,目前xtrabackup还不支持这些特性。

MySQL 企业版还有哪些功能?

特性1:Backup Lock

8.0之前使用xtrabackup或MEB做物理备份,为了保证备份时InnoDB引擎表与其他引擎数据文件、及binlog日志的一致性会上全局读锁,再拷贝非InnoDB文件,这期间MySQL会变成只读,数据无法写入。表数量越多,可能加上时间越长,如果使用的xtrabackup 不小心没加rsync参数,逐个拷贝frm文件,锁定时间会更长,对业务影响较大。

我曾遇到过部署在虚拟机的实例有12023多张表,当时使用的xtrabackup,备份脚本中没加rsync参数,结果锁了十几分钟,而MEB就没有这样的问题。

MySQL 8.0支持轻量级备份锁 LOCK INSTANCE FOR BACKUP,数据字典也重构了由InnoDB存储。若不创建非InnoDB表,MEB默认使用备份锁获取binlog日志一致性位置,并阻止DDL操作,但不影响DML操作。

只有InnoDB表,仅上备份锁

请点击输入图片描述

若有非InnoDB表,上全局锁

请点击输入图片描述

特性2:Redo Log Archiving

MEB能做到在线热备,备份时不影响数据库读写,这是利用了InnoDB事务日志,在备份期间持续监视redo log的变化,读取增量变化,写入到ibbackup_logfile,也就不需要上锁来保障备份一致性。(对非InnoDB的文件需要上读锁拷贝)

如果备份期间数据库写入负载特别大,而写入ibbackup_logfile速度较慢,redo log size也不大,很可能会出现ibbackup_logfile的写入速度跟不上redo log记录生成速度,redo log 空间不够时需要覆写日志文件,那么来不及写入ibbackup_logfile的记录会丢失,导致备份失败。

MEB 4.1对此做了优化,将redo log处理线程拆分成多线程分工合作,提高处理redo log的效率,降低了redo log覆写造成备份失败的概率,但redo log新增速度和ibbackup_logfile写入速度悬殊太大,问题依然会发生。

MySQL 8.0.17支持了redo log archiving 彻底解决了此问题,备份前设置innodb_redo_log_archive_dirs,指定redo log归档目录。MEB备份时自动开启日志归档,当checkpoint时会将旧记录归档到此目录,后续从归档文件中读取redo日志记录,避免了覆写可能导致的redo记录丢失。

请点击输入图片描述

注意:innodb_redo_log_archive_dirs 不能在数据目录下,目录权限要求是700

特性3:Page Tracking

Page Tracking 是为优化增量备份效率,减少不必要的数据页扫描。

增量备份当前有3种扫描模式:

page-track:利用LSN精确跟踪上次备份之后被修改页面,仅复制这些页面,效率最快。

optimistic:扫描上次备份之后被修改的InnoDB 数据文件中,找出并拷贝修改的页面。依赖系统时间,使用存在限制。

full-scan:扫描所有InnoDB数据文件,找出并拷贝自上次备份之后修改的页面,效率最慢

1、利用page-track增量备份,需先安装备份组件

mysql> INSTALL COMPONENT “

2、在全备前开启page-track

SELECT mysqlbackup_page_track_set(true);

3、全备之后,做增量备份时指定若满足page tracking条件,默认会使用page-track模式,否则会使用full-scan模式,也可以指定–incremental=page-track。

mysqlbackup –incremental-backup-dir=backup_incr –trace=3 –incremental=page-track –incremental-base=history:last_full_backup backup

incremental-base有3种选择

last_backup:基于前一次备份做增备,前一次备份可能是增备,也可能是全备。这种方式全备之间可能会有多个增备,每次增量可能比较小,但恢复时需要逐个合并。

last_full_backup:基于前一次全备做增备。这种方式增备会越往后体积可能越大,但恢复时只需要合并最后一次增量备份。

dir:基于前一次的备份目录,前一次备份可能是增备,也可能是全备。

测试对比full-scan 和page-track ,在变更页小于总体50%的情况下 ,备份效率至少能有1倍的速度提升。

page-track 模式 磁盘读写均衡,说明读写的都是修改页面。

请点击输入图片描述

full-scan模式 磁盘读写差别很大,说明读了很多未修改的页面。

请点击输入图片描述

应该所有的数据库操作软件都有备份功能的吧?

难道你没用任何工具?

关于数据库的 备份保留策略的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 数据库备份保留策略,安全备份数据! (数据库的 备份保留策略)