您的位置 首页 数据恢复

可以提高数据库的恢复效率

本文主要讲述可以提高数据库的恢复效率,以及相关的内容分享点,希望能给各位有所帮助。

可以提高数据库的恢复效率

影响数据库还原速度的因素和影响数据库备份速度的因素相同。除此之外,假如你使用SQL Server 2005的话,你还可以启动另外一个优化任务来还原当前不存在的数据库,运行环境为Windows XP,Windows 2003 Server 或更新版本。Perform Volume Maintenance Tasks当你还原一个新的完整数据库是,SQL Server读备份文件头,然后创建原始数据库中数据和日志文件需要的磁盘空间。假如SQL Server服务启动帐户没有Perform Volume Maintenance Tasks权限的话,数据和日志文件就需要被初始化为0,也就是说,SQL Server先创建这些文件,然后用0来填充它们。对于一个大数据库来说,这将花费很多时间。我记得使用SQL Server 2000从磁带上还原一个320GB的数据库时,总是奇怪为什么总是有30分钟的时间,还原进程一点称进展都没有。然后,假如SQL Server服务启动帐户有Perform Volume Maintenance Tasks权限的话,它就会根据大小来创建数据文件,跳过填充0这个阶段。下图使用secpol.msc来显示权限你可以设想一下它会节省你多少还原大型数据库的时间。注意,事务日志文件仍然需要填充0,仅仅是数据文件可以跳过这一步。注意:当然使用新权限时,要启动SQL Server服务来使之生效下面是一个还原20GB数据和5GB事务日志所消耗时间的对照表还原消耗时间 未使用Perform Volume Maintenance Tasks 5:05 使用Perform Volume Maintenance Tasks 1:01 消耗1:01时间是因为SQL Server仍然要把事务日志文件进行填充0操作,未使用Perform Volume Maintenance Tasks的情况下,SQL Server需要把数据文件和事务日志都进行填充0的操作,所以还原时间显示变长了。你可以用下面这个脚本来快速确定当前是否使用了PVMT(Perform Volume Maintenance Tasks)。CREATE DATABASE test_InstantInit ON PRIMARY (name = test_InstantInit, filename = k:/temp/test_InstantInit.mdf, size = 1GB) LOG ON (name = test_InstantInit_log, filename = k:/temp/test_InstantInit.ldf, size = 1MB) DROP DATABASE test_InstantInit整个脚本如果在几秒内完成就证明使用了PVMT。这里还有一点需要说明的地方。当SQL Server跳过填充0阶段空间时,如果数据文件所占用的空间里面包括以前的数据,那么使用DBCC PAGE命令或是其他16进制编辑器就可以看到未被数据页占据的空间内容。这就是说,如果一个包括敏感重要内容的数据虽然已经被删除了,但是如果新数据库占用了这片空间,那么敏感数据就有可能被部分泄露出来。注意:当PVMT处于活动状态时,那么新建数据库,新建数据文件,数据文件增长等情况都会使用它。详情请看Database File Initialization [SQL2005]综上所述,那么我从备份文件还原一个数据库之前是否要删除这个数据库呢?下面的表格显示了还原同一个数据不同操作的效果:还原时间 还原1GB数据库 0:40 还原2GB数据库 1:08 还原1GB数据库,当前有个同名的2GB数据库存在 0:29 还原2GB数据库,当前有个同名的1GB数据库存在 0:56 结果显示,假如你执行一个完整数据库恢复且覆盖已经存在的同名数据库,那么恢复速度会快于直接恢复(表中行1与行3,或行2与行4的对比)。这看起来好像是因为没有对已经存在的数据文件执行填充0操作而节省了时间。不过这也仅仅局限于你恢复的数据库有同名的文件。如果你使用MOVE选项来重定位数据库文件,那么无论你事先是否已经删除数据库,这都不再有什么区别了。还原状态同样影响还原速度另外一个影响还原速度的因素就是你所选择的还原后的数据库的状态,前提是recovery没有被选中。通常出于为以后升级做准备的需求,当你选择不完全恢复数据库时,有两个选项可以使用NORECOVERY或是STANDBY。NORECOVERY使数据库处于恢复中模式,允许你进行后续的升级,而且此时数据库是不可读状态。STANDBY也使数据库处于恢复中状态,允许你进行后续升级,但是此时数据库可读。当你使用STANDBY选项时,你要为回滚文件提供一个名字。这个文件包括从未提示的事务中回滚操作结果。你的未提交事务越多,这个文件越大,那么随后还原时间越长。下面的例子中有4个事务日志,每个大约131MB左右。除了第三个事务日志外,所有的备份都仅包括提交的事务,第三个事务日志包括32MB未提交事务,结果如下图:使用NORECOVERY选项还原事务日志:使用STANDBY选项还原事务日志:总体来说,与NORECOVERY相比使用STANDBY还原事务日志会慢一些。因为当有未提交的事务时,SQL Server会花费额外的时间来创建回滚文件(undo file)。还有说明的是,如果你要还原多个事务日志而且你想让数据库处于只读模式,那么你应该先使用NORECOVERY选项来还原事务日志,然后当所有日志都恢复完成后,你可以把数据库切换到STANDBY的只读模式,如下:RESTORE DATABASE mydb WITH STANDBY = g:/data/mydb/mydb_und.dat使用这个方法,你仅仅创建了回滚文件一次,避免了还原多个事务日志时创建多次回滚文件的过程,加速了恢复过程。

可以提高数据库的恢复效率

可以提高数据库的恢复效率

NORECOVERY使数据库处于“恢复中”模式,允许你进行后续的升级,而且此时数据库是不可读状态。STANDBY也使数据库处于“恢复中”状态,允许你进行后续升级,但是此时数据库可读。

甚至可以对单独的数据表进行备份与恢复的操作(对单个学生进行管理)。即可以分别从数据表、表空间、数据库级别来进行备份与恢复的操作。这分级别的管理,不仅增强了操作的灵活性,而且还可以提高备份与操作的效率。

可以提高速度,但需要综合来看:RMAN是数据库的备份与恢复重要策略,它是读、写磁盘非常频繁的IO操作。RMAN的备份、恢复的操作是通过通道(Channel)来完成的多个Channel可以相互独立的完成备份、恢复的操作,从而提高效率。

提高系统的高可用性和灾难可恢复性,在数据库系统崩溃的时候,没有数据库备份就没法找到数据。使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案,如果让客户重新填报数据,代价那就太大了。

(提示:作品种类数量不是作品量)D、删除作品颜色为“黄”色,且重量超过(kg)的所有制作记录。E、查询女生最少的系及其女生数量。F、对制件了作品为“公共座椅”的学生做如下处理,将其作品减少。

可以使数据库或者被选择的表空间恢复到某个特定时间点。如果从备份时刻起到发生故障时的所有日志文件都可以获得的话,则可以恢复到日志上涵盖到的任意时间点。前滚恢复需要在配置中被明确激活才能生效。

当已知的业务逻辑决定query A和query B中不会有重复记录时,应该用union all代替union,以提高查询效率。数据更新的效率 在事物中,对同表的多个insert语句应该集中在执行。

文件或文件组备份是指对数据库文件或文件夹进行备份,但其不像完整的数据库备份那样同时也进行事务日志备份。使用该备份方法可提高数据库恢复的速度,因为其仅对遭到破坏的文件或文件组进行恢复。

有必要的话,需要建立并行数据库提高数据库的查询效率 SQL语句的调整原则 SQL语言是灵活的语言,相同的功能可以使用不同的语句来实现,但是语句的执行效率是很不相同的。

以上的可以提高数据库的恢复效率 ,您了解了吗?更多请关注本网站,有您的支持是我们的动力。

热门文章

Call Now Button 全国寄修热线