问题标签 [transaction-log]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1017 浏览

sql-server - 是否可以在 SQL 2005 或更高版本中找出用于事务日志文件的最后一个备份位置

我们有一个使用数据库的产品,每当主要版本完成时,数据库上使用的升级脚本之一调用我们的一个存储过程,其工作是删除然后重新创建全文索引,从而确保任何更改(即新列已编入索引)在新版本中安装。

问题是,如果我们的客户端已将数据库设置为完全恢复模式,那么这将在它尝试重新创建全文索引时失败。

为确保升级说明尽可能简单,我不希望执行此操作的 IT 人员除了根据文件名运行脚本集外,还必须做任何事情(即运行 001 - xxx.sql,然后运行 ​​002 xxx .sql 等...)。

因此,我想尝试的想法是,如果数据库设置为完全恢复模式,则删除/重新创建的 SP 通过备份到与上次事务日志备份完成的位置相同的位置来备份事务日志。问题是如何找到最后一个位置?

我搜索并找到了指示使用 sys.sysdatabases 和 msdb..backupset 的脚本,但这些表似乎没有我需要的信息。

有任何想法吗?甚至可能吗?

0 投票
2 回答
364 浏览

sql-server-2008 - 在更新语句后查看更改的值

只是想知道是否可以在更新命令发生后查看表上的更改?

事务日志是否会存储此类信息,即这是先前/当前值这是新的/更改的值

不确定这是否可能。服务器是 ms sql 2008

0 投票
5 回答
81778 浏览

sql-server - 在没有事务日志的情况下还原 SQL Server DB

给定一个SQL Server 2008 .bak文件,有没有办法只从文件中恢复数据文件.bak而不需要事务日志

我问的原因是这个数据库的事务日志文件大小很大——超过了我随时可用的磁盘空间。

我对交易日志不感兴趣,对任何未完成的交易也不感兴趣。通常,一旦我恢复了数据库,我就会简单地将日志缩小到零。但是,当我没有足够的磁盘空间来创建日志时,这无济于事。

我需要的是一种方法来告诉 SQL Server 只从.bak文件中恢复数据,而不是事务日志。有没有办法做到这一点?

请注意,我无法控制.bak文件的生成——它来自外部来源。.bak在生成文件之前收缩事务日志不是一种选择。

0 投票
1 回答
235 浏览

sqlite - 跨 iCloud 的 SQLite 更新传播延迟

我已经使用 Recipes 示例应用程序中的代码构建了一个库样式的 SQLite iOS 应用程序,并且它可以工作 - 一台设备上的更新(最终)可靠地传播到运行同一应用程序的所有其他设备。我整天都在每小时用多个事件对其进行测试,并且所有日志事务都会到达每台设备。但是,更新传播的时间是高度可变的。如果我启动应用程序并让它静置,可能需要相当长的时间才能让云向应用程序发送更新事务,因此屏幕上的内容在同样长的时间内仍然是旧数据。更糟糕的是,没有迹象表明数据已过时。

但是,如果我让应用程序将更改发布到云,来自云的更新会相对较快地传播。这表明我可以进行黑客攻击,定期向数据库发布无意义的更改,但即便如此我也不知道我是否收到了所有更改。

第一个问题:是否存在强制交易传播的方法?a 这个线程建议不要。

第二个问题:有没有办法检测本地数据库是否过时?我不想不停地挠云副本,但时不时地这样做直到数据库是最新的可能不是一个坏主意。

0 投票
1 回答
2395 浏览

sql-server - 如何减少 SSIS ETL 进程的事务日志大小?

对于大约 10 GB 的 SQL Server 2008 数据库,我们遇到事务日志增长到大约 70 GB 的问题。这发生在使用 SSIS 2008 运行的 ETL 过程的暂存数据库中。该过程大约需要 8 小时才能完成,并且每周运行一次。

70 GB 已接近系统的物理极限,单单 IO 就会有性能损失。

我们永远不会使用日志来恢复临时数据库,因为 ETL 将在每次运行时重新开始,并在进程失败时恢复早期的数据库备份。此时,增量 ETL 过程将难以实施,因为配置可以在运行之间更改,从而更改许多或所有计算。

数据库恢复模式设置为简单。可以允许 SISS 独占访问暂存数据库。

我们想知道调整 SISS 可以期待什么。

一些考虑:

  • SISS 似乎与数据库建立了多个连接。这怎么会干扰调整包的事务隔离级别和事务的“长度”,即在某些步骤完成后提交?
  • 在单用户模式下运行时进程性能会提高吗?SISS能应付吗?
  • 将包配置为通过设置 Transaction = Unsupported 运行是否明智?

关于这个问题有什么经验、想法或建议吗?

0 投票
1 回答
275 浏览

core-data - 处理 iCloud Core Data 错误

我有一个图书馆风格的 iCloud + Core Data 设置。我正在开发的应用程序包含位于登录屏幕后面的用户数据。用户登录后,持久存储协调器被实例化,iCloud 存储被添加到其中。

这是我的用例和问题:

1)开始使用应用程序,数据正在存储到 iCloud 2)删除应用程序 3)再次构建到设备,登录应用程序,期望事务日志被调用并在本地存储中重新创建数据。4) 当使用慢速连接时,我在调试日志中出现错误,多次指出文件下载失败... 5) 应用程序是空的,现在看起来好像备份恢复失败。

我的配置确实是正确的,并且可以通过下降连接 100% 工作。

有没有办法强制 iCloud 立即重试下载这些文件?在允许用户进入应用程序之前,是否可以使用回调来确保这些文件已成功下载?

任何建议将被认真考虑!谢谢。

0 投票
1 回答
177 浏览

sql - SQL Server:在单个事务中处理大量数据

我在 SQL Server 上有一个非常大的表,大约有 10 亿行,我们需要使用这样一个简单的代码将数据从这个表迁移到另一个表:

单笔交易可以吗?在这种情况下你会怎么做?

0 投票
1 回答
1035 浏览

sql-server - SQL - 分区对索引和事务日志的影响

问题:我想知道是否可以在不填写事务日志的情况下对表应用索引。

详细信息:我有一个 800GB 的表。几个月前,我去应用了一个索引并且交易日志填满了(出于显而易见的原因 - 我什至愚蠢地尝试它)。相反,我不得不重新创建表,应用我想要的索引,然后复制记录。

现在我们要在这个表上设置分区。我想知道是否删除聚集索引并在分区布局上应用新的聚集索引,如果它仍然会填满事务日志(假设我每个分区有 1000 万行)?或者 tlog 不会填满,因为索引也会被分区,这将允许 SQL 服务器更快地完成索引并能够检查点?

有人知道吗?否则,我可以再次重新创建表并将分区内容应用于它并重新填充它,但显然这涉及更多。

谢谢!

0 投票
0 回答
144 浏览

sql - 使用查询监视 SQL Server 2005 中的语句

我需要编写一个查询来获取自上次重启以来用户在特定数据库中执行的语句。

首先,我从 ::fn_dblog(NULL,NULL) 中提取所有事务,它返回事务日志。在此之后,我尝试使用这两个查询来获取缓存的查询:

我的想法是将可以产生交易的语句与其交易结合起来,并显示其他的。问题是第一个尝试获取查询信息的查询没有提供任何信息来识别数据库,而另一个查询没有提供任何可用于将其加入事务日志的信息。

我正在尝试在不了解此特定 DBMS 的情况下构建此查询,因此请原谅我的概念错误。先感谢您。

0 投票
1 回答
155 浏览

database-backups - 数据库备份、删除事务日志、收缩、删除非聚集索引、重建表填充因子 100%、压缩

首先让我说我是一名开发人员,我只是在进行数据库备份以进行错误测试/修复。

我想获得我正在删除的备份的大小,因为目前将备份发布给我会比通过 Intranet 传输它们更快,并且在我的开发系统上恢复任何备份后我做的第一件事就是 drop无论如何都要缩小事务日志。

有没有办法使用 SQL Server Managment Studio 2005 进行不包括事务日志或非聚集索引表的备份,并且可以重建备份中的表,使其填充因子为 100%,然后压缩备份文件?

或者至少有一种方法可以进行不包含事务日志的备份?