Database Backup and restore. SQL Server&Mysql

Database Backup and restore. SQL Server&Mysql

数据库的备份与恢复

SQLServer的泛谈

为什么想起了,这么个问题,因为前几天遇到了个问题,关于SQLServer的。以前总是听人说,数据最重要,数据第一,数据是一个企业的生命。大概也只是知道数据重要这么个事,没太注意过,顶多是定期做个mysql的sql文件备份,然后是重要数据log到文件上,更别提备份到其他非本机的存储设备上,也没遇到过什么大问题,本就是小人,哪有什么大问题。直到前几天,才遇到了。大概是业务部评绩效,但是数据库一条明摆着的大单给没了,而且有手机截屏记录。有内部技术人员的嫌疑,所以从公司外找人。前同事的前公司,前同事找到了我。我那点SQLServer技术只是在课本上那点,基本会用,会安装,会用自带的管理软件登陆,修改,会用驱动连接,用程序修改,嘿嘿,备份什么知道点,bak文件,备份过,恢复过。但是说,查询一条删除记录只知道好像有这么个功能,但是具体不清楚。既然找到我,那我就试一下,两三个小时后能不能做,给人家个答复。google一会儿就查到了。 Stack overflow How to see query history in SQL Server Management Studio 我从这个帖子中看到了thirdparty tools. 反正大概是有,能不能成功,不一定,看数据库备份的情况,因为是刚不到一个月的数据记录丢失,时间不知道算不算长。原理上,备份情况有两个重点一个是数据库的备份模式.

以上主要是SQLServer的备份模式,模式的详解,以及当前数据库的模式是什么。 老外针对这个问题的回答分两类,一类是用SQLServer专用的DCL(数据库控制语言) ,一类是第三方工具。DCL是sql中各个数据库最不一样的部分,就是那堆几乎从来没用过的东西,mysql上也是,几乎从没用过。第三方工具是个好东西,visualization,图形化界面,可视化,选择一下数据库,选择一下时间,选择一下动作,就筛选出来了,这是个好东西,ApexSQL Log 百度一搜破解版绿色版一大堆,支持个版本的SQLServer,值得注意的是,我的测试环境16年以后得ApexSQL版本必须.netframework4.5,也就是windows server 2008就直接下个不太新的版本吧。中途各种不顺,人家不让我远程,人家还自带电脑亲自登门,中途各种密码,各种不顺,大晚上又辗转到了他们公司,把他们技术经理叫起来又,到最后,是因为没有备份事务日志transcation-log,而SQLServer服务器本身运行的时候只记录两个星期的trans-log,如果时隔两个星期之内是可以清楚的看到,(我没有找到微软官方说明),我的本地测试环境是win10+SQLServer2005express,他们公司的环境是win2008+SQLServer2008enterprise, ApexSQL 尽可能不要远程连接,弹出的错误,我具体也没看懂是什么,可能涉及到要给ApexSQL远程服务器文件系统的访问权限,可能是因为远程连接不能直接读到trans-log,还要服务器的又该权限的账号密码。只是,把ApexSQl在服务器运行就没有这个问题,ok了。还有,经过我本地实验发现,即使是数据库备份模式为simple,ApexSQL依然可以读到数据库修改修改记录,数据库重启后还是可以,说明修改记录是以文件形式保存的,可能就在mdf ldf文件里边。但是备份,备份日志再恢复就没了,simple模式下备份事务日志不能保存操作记录,微软官方文档有提到,full完整模式下就没有问题了,在另外数据库恢复之后一样可以看到以前的修改记录。

至于SQLServer的备份完整解决方案,我也没有,我最近在查,还没有发现完整的,好的,满意的。是个大问题,值得好好考究一下的。大概有些粗略的方案,我随便说的,大概意思,由大到小,由繁重到轻松,每周一个完整备份,每天一个差异备份,每半小时一个事务日志备份或者每10分钟一次,用job作业来管理定期任务。具体保存多少天的数据备份,多少天日志备份,也还没有解决方案,如果发生灾难,数据可恢复到最近的一次事务日志的时间,10分钟前,半小时前,可以恢复的有效期内指定时间点,可以恢复有效日期内单次误删,单次操作。

Mysql的具体操作

怎样找到mysql的配置文件?

This is an example reference-style link.

本文,可本文拓展,可另展开拓展.

Related Article