AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 133045
Accepted
A_V
A_V
Asked: 2016-03-23 11:39:47 +0800 CST2016-03-23 11:39:47 +0800 CST 2016-03-23 11:39:47 +0800 CST

简单恢复中的数据库以节省空间

  • 772

这个旧的 SQL Server 2000 实例有一个 14Gb 的数据磁盘和一个 30Gb 的备份磁盘。

尽管它很旧,但仍有大量用户在进行交易,因此该服务器上唯一数据库的日志文件每天都会填满数据驱动器。

我想我会把它放在简单的恢复中并刷新事务日志,但我想知道它会产生什么影响。

没有 T 日志,您不能使用备份恢复到完整备份时间以外的任何其他时间点,对吗?在对数据库进行此类更改时,我应该注意除此之外最重要的影响是什么?当我不生成 t-logs 时,除了丢失一天的数据(它每天备份到磁带)之外还有什么可能发生?

提前致谢

sql-server sql-server-2000
  • 2 2 个回答
  • 670 Views

2 个回答

  • Voted
  1. Best Answer
    Kenneth Fisher
    2016-03-23T13:39:29+08:002016-03-23T13:39:29+08:00

    首先是关于转向SIMPLE恢复的快速说明。这是一个商业决策。这绝不是一个技术决定。您的企业需要权衡保留成本FULL(这可能意味着具有额外空间的新服务器、归档当前数据以释放一些空间等)与丢失一天或更多数据的成本。一旦他们决定了,你就可以继续了。

    根据您的问题和评论,我看到了两种情况之一:

    您处于FULL恢复模式但未进行日志备份。

    此时您需要开始定期进行日志备份。这很可能实际上会为您节省空间。如果您每天进行日志备份以清除日志少于一次(注意:FULL备份不会释放日志空间),那么您的事务日志可能比需要的要大。整理好备份,然后计算出您的事务日志实际需要多大。很可能它会比当前为您提供额外的备份空间小很多。最坏的情况是比现在更频繁地将备份移动到磁带上。

    您处于FULL恢复模式但正在进行日志备份。

    如果是这种情况,那么您可能需要增加日志备份的频率。这不会产生额外的空间需求,因为日志文件会更小(标题信息有一些小的开销,但并不那么重要)。这将使您的日志更快地清除并保持更小。 假设(这是一个很大的假设)您没有一个或多个需要日志空间的单独事务。如果是这种情况,那么仅更改代码以减小事务的大小就可以让您获得较小的日志文件。即使你切换到SIMPLE恢复您仍然需要最大的单个事务(或最大的同时事务组合)的日志空间。如果您缩小日志文件并运行需要比可用空间更多空间的事务,它只会再次增加日志。

    FULL再次在恢复和恢复之间切换SIMPLE是一项业务决策。在没有咨询业务的情况下做出这种决定(然后是错误的)是让自己被解雇的好方法。

    • 5
  2. maggiebarrett
    2016-03-23T13:03:33+08:002016-03-23T13:03:33+08:00

    你是对的,你不能恢复一个数据库,它有一个超过上次完整备份的简单恢复模型。此外,您指出了您应该在完整恢复模式下拥有该数据库的原因:“它仍然有大量用户在进行交易,因此该服务器上唯一数据库的日志文件每天都会填满数据驱动器。” 您真的想丢失大量用户依赖的数据吗?

    不。

    每小时尝试备份一次事务日志(如果您有足够的空间,则备份 15 分钟)并将 .trn 文件保存在备份驱动器上。如果您每天进行完整备份,请设置清理任务以每隔几天删除 .trn 文件。问题解决了。

    这是您应该保持完整恢复模式的另一个原因:假设一名新员工在下午 12:35 将 critical_table 删除到数据库中,并且使用该数据库的应用程序出现故障。您可以在此处进行事务日志备份,将完整备份还原到新数据库**,然后在中午 12:34 的停止时间还原 .trn 并恢复数据!

    **如果上次完整备份和您刚刚创建的 tlog 备份之间的日志链断开,您将被砍掉,所以在您确定可以一起恢复之前不要恢复旧数据库。

    • 3

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve