备份SQLServer
时间:2007-12-23 来源:不详 作者:迈克DB
________________________________________
SELECT INTO
SELECT INTO 陈述式是用来在数据库中建立新的数据表。因为 SELECT INTO陈述式不能用来选择数据放入已存在的对象中,所以它不能用来更新数据,只能用来建立数据。建立数据的过程经常可以重复执行,因此 SELECT INTO 陈述式很适合用来执行非记录作业。
大量复制和 BCP
为了使大量复制和 BCP 操作可用来执行非记录作业,必须符合下列几项要求:
• 数据库选项 select into/bulkcopy 必须设定在TRUE。
• 当大量数据复制开始时,目标数据表必须是空的才能够制作索引。
• 不能复制目标数据表,因为交易复制时占用了交易记录文件中复制数据时所需要的项目。
• 必须指定 TABLOCK 提示来强制锁定数据表。
这些限制让大量复制操作节省交易记录文件的空间,还让执行速度变快。然而,当数据库必须从备份还原时,这些非记录作业都要重新操作一次。
CREATE INDEX
CREATE INDEX 陈述式操作使也很适合执行非记录作业,因为索引可以依需要重新建立。重建索引并不困难。然而,假如数据表太大,过程可能会相当花费时间,并占用资源。
文字操作
内容来自dedecms
文字操作可以用来执行非记录作业的是 WRITETEXT 和 UPDATETEXT。要使这些操作执行时不留下记录,您只要像刚刚所提的使用 BULK_LOGGED 回复选项就可以了。
检查点
检查点(checkpoint)是用来使实体数据文件和数据库快取的状态同步的操作,可以减少系统故障事件发生时的必要回复时间。回复数据库需要的时间取决于最后一个检查点以来的时间总量和缓冲快取区中的 dirty page 数量。因此,减少检查点的间隔可以减少回复时间,但会增加系统负荷:检查点过程会导致大量的系统资源占用。
检查点发生在以下时间点:使用 CHECKPOINT 陈述式时、使用 SHUTDOWN陈述式关闭 SQL Server 时、使用服务治理员关闭 SQL Server 时,以及 SQL Server 自动产生检查点时。
检查点操作
检查点过程执行数个操作,包括下列内容:
• 在检查点开始时就将所有的dirty page写出 这时所有包含已变更数据但尚未写到磁盘中的页面将被写到磁盘中。
• 将未完成的交易清单写到交易记录文件中 告诉 SQL Server 在检查点发生时进行了哪些交易。假如系统发生故障,回复过程将使用这个数据回复交易。
• 将所有的 Dirty 记录文件分页写到磁盘中 确保记录文件缓冲区会更新到磁盘中。 内容来自dedecms
• 将检查点记录储存到数据库中 由于交易记录文件会被备份并删减,所以需要在交易记录文件以外保留一个检查点的记录。
设定检查点间隔
检查点间隔由 SQL Server 设定选项 复原间隔 定义。这个组态选项为整个SQL Server 系统设定,不是为单个数据库设定,但检查点在每个数据库都会执行。这个组态选项指定了 SQL Server 在系统故障时用往返复每个数据库的分钟数。默认值为 0,指示 SQL Server 为您确定检查点间隔,通常小于一分钟。对于拥有海量存储器和大量插入以及更新行为的系统,这个默认值可能导致过多的检查点数量。在这种情况下,您可以将这个组态选项设定为较大的值。假如您的使用者可以容忍系统故障时,花费较长的回复时间(例如 30 分钟),那么您系统上的交易效能将会提升。您应该根据您掌控停机时间的能力和故障的频率来设定这个组态选项。
检查点间隔还取决于交易记录文件中的记录数量。它不由系统时间或记录文件大小来决定。交易记录文件中的记录越多,检查点间隔越短。做出的变更越多,插入到交易记录文件中的记录也就越多,从而导致 SQL Server 设定检查点间隔时必须经常将变更写入磁盘。假如数据库的变更很少甚至没有的话,那么交易记录文件将只包含很少的记录,检查点间隔将会变长。
文章评论
共有位Admini5网友发表了评论 查看完整内容