SQL数据库恢复模型(日志)
----------------------------------------------------------------------
1、SQL数据库恢复模型
----------------------------------------------------------------------
1)完全恢复模型
-----------------
(1)备份时要备份数据库的数据文件和日志文件
(2)还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。
(3)能还原全部数据,并可以将数据库恢复到任意指定的时刻。
(4)为保证实现即时点恢复,对数据库的所有*作都将完整地记入日志,这样,日志占用空间较大,对性能也有所影响。
------------------
(2)大容量日志记录恢复模型
------------------
(1)备份时要备份数据库的数据文件和日志文件
(2)还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。
(3)日志中不记录*作细节(如select into、create index等),而只记录*作的最终结果,因此占用日志空间小。
(4)只支持将数据库还原到事务日志备份的时刻,而不支持即时点恢复,因此可能产生数据丢失。
-------------------
(3)简单恢复模型
-------------------
(1)备份时只备份数据文件,还原时也用备份的数据文件恢复数据库。
(2)只能将数据恢复到数据文件备份的时刻,可能产生最多的数据丢失。
(3)不适于生产系统和大规模*作环境下选用。
-----------------------------------------
alter database d1 set recovery simple--设置数据库恢复模型
alter database d1 set recovery bulk_logged
alter database d1 set recovery full
----------------------------------------------------------------------
在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模型:
SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel from master..sysdatabases ORDER BY name
SQL Server 2005及以上版本也可以使用下面这条语句来查看:
SELECT name, recovery_model_desc from master.sys.databases ORDER BY name
如果想改变数据库的恢复模型,可以使用下面SQL语句:
简单恢复模型:ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE
完整恢复模型:ALTER DATABASE AdventureWorks SET RECOVERY FULL
批量日志恢复模型:ALTER DA
相关文档:
1 避免无计划的全表扫描
如下情况进行全表扫描:
- 该表无索引
- 对返回的行无人和限制条件(无Where子句)
- 对于索引主列(索引的第一 ......
CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在
SQL Server中 将日期格式化.
SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包 ......
同一表多字段同时重复记录的SQL查询及处理数
比如现在有一人员表 (表名:peosons)
若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来
select p1.* from persons p1,persons p2 where p1.idp2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address ......
如果你的身份验证方式为Windows集成身份验证更改为混合方式的身份验证,需要在SQL Server Configuration Management中,把TCP/IP的活动启用,也就是第一个选择的地方,选择启用。并且使用集成身份验证方式登录后,在数据库服务器上选择属性,把安全性下的WINDOWS模式改为SQL与WINDOWS模式 ......
在网上看到一个很好的例子讲解in和exists的区别,这里备忘下。
本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:
USE pubs
SELECT title
from titles WHERE EXISTS
(SELECT *
from publishers
WHERE pub_id = titles.pub_id ......