对于MySQL数据库,备份与恢复相关的术语包括:备份(backup)、还原(restore)、恢复(recover)、二进制日志(binlog),其中备份按照其特性可以分为:物理备份和逻辑备份;冷备、温备和热备;完全备份和不完全备份等;常用的备份工具包括: *** 作系统拷贝、mysqldump等;还原包括物理备份的还原和逻辑备份的还原;下面分别加以介绍和说明。
数据库备份通俗地说是将数据库的某一时刻的数据复制了一份;数据库还原是将备份出的数据替换掉原来数据库中的数据文件,将备份放回到原来数据库文件的目录位置;二进制日志(BINLOG)记录数据库的变更过程,例如创建数据库、建表、修改表等DDL *** 作、以及数据表的相关DML *** 作,这些 *** 作会导致数据库产生变化,开启binlog以后导致数据库产生变化的 *** 作会按照时间顺序以“事件”的形式记录到binlog二进制文件中。
参考上图,在凌晨2:00,管理员将已开启二进制日志的数据库的数据做了一个完整的备份,随着时间的推移,仍然有用户对数据库进行相关的写 *** 作(包括:DDL语句、DML语句中的增删改 *** 作、DCL授权语句和TCL事务处理语句等),导致了二进制日志文件写满(默认1G)后自动切换;在上午9:37时,由于硬盘出现故障,数据库用户不能正常访问存放在硬盘中的数据库数据,此时如果数据库备份和二进制日志没有损坏,管理员是可以通过还原备份和恢复二进制日志的方式挽回数据损失的。
挽回数据损失的过程包括:1更换新硬盘;2还原备份;3重做备份到故障时段的二进制日志中的语句等;正常情况不会造成数据的丢失,损失的仅仅是一段时间的停机时间。
上例中,还原数据备份时,数据库中的数据回到了备份时刻的状态,而二进制日志中记录了从备份到故障前一段时间内所有用户对数据库的写 *** 作的语句,只要把这些语句按照时间顺序重新运行一遍,所还原的数据就会变成为故障前那一刻的状态,不会造成数据丢失。因此通常把保存在二进制日志中的语句重新执行的过程叫做恢复。
当你清楚了4个系统库都是什么用处以后,你就知道该在什么时候备份哪个库了。
1Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息。当系统信息出现修改的时候,例如新建登陆名,你就该备份该库了。
2model 数据库用作在 SQL Server 实例上创建的所有数据库的模板,后续创建其他库都会从model库继承,例如你在model库创建一个函数,则后续新建库全部都会包含这个函数。
3Msdb数据库是代理服务数据库,为其报警、任务调度和记录 *** 作员的 *** 作提供存储空间。
4Tempdb是一个临时数据库,每次启动服务sqlserver都会重新创建这个库。
所以,除了tempdb外,其他库都需要在出现了对应修改的时候进行备份。
要不要备份,你先要搞清楚这些数据库的作业,百度下SQL系统数据库,百度百科就说的很清。
这里我就说两点
1、master 记录 系统中所有的系统信息,包括登入账户、系统配置和设置、服务器中数据库的名称等
2、msdb 主要保存些 作业、调度警报
如果你要做数据库迁移或者换服务器,有想保留之前的作业和相关的系统信息,你们就要备份和原因这两个数据库,系统数据库的还原和用户数据库有点不原因,msdb需要在单用户模式下进行。在属性-选项里面把连接改成单用户 或者sp_dboption 'database_name','single user',true/[false]
master好像稍微复杂点,我也没弄过,自己网上搜下吧
以上就是关于备份数据库有什么用全部的内容,包括:备份数据库有什么用、SQLServer哪个系统数据库需要及时备份、SQL 2000数据库的系统数据库需要备份吗如果需要备份,那还原是和其它数据库还原方法一样吗求解!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)