我需要将数据库日志文件移动到新分区而不使数据库脱机。
这样做的正常方法是分离数据库,移动日志文件然后重新连接数据库。
是否可以在不使数据库本身脱机的情况下做到这一点,如果可以,怎么办?
我需要将数据库日志文件移动到新分区而不使数据库脱机。
这样做的正常方法是分离数据库,移动日志文件然后重新连接数据库。
是否可以在不使数据库本身脱机的情况下做到这一点,如果可以,怎么办?
我们将备份恢复到新数据库中。运行一些删除查询后,我们收到以下消息:
消息 824,级别 24,状态 2,第 1 行 SQL Server 检测到基于逻辑一致性的 I/O 错误:...
我运行 DBCC checkdb 并看到许多行,例如:
Msg 2576, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:783) in object ID 0, index ID -1, partition ID 0, alloc unit ID 72057599497994240 (type Unknown), but it was not detected in the scan.
和
Msg 8939, Level 16, State 98, Line 1
Table error: Object ID 2083043448, index ID 1, partition ID 72057608168079360, alloc unit ID 72057608304721920 (type LOB data), page (1:307605). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 12716041 and -4.
Msg 8965, Level 16, State 1, Line 1
Table error: Object ID 2083043448, index ID 1, partition ID 72057608168079360, alloc unit ID 72057608304721920 (type LOB data). The off-row data node at page (1:307605), slot 0, text ID 1368915968 is referenced by page (1:307603), slot 0, but was not seen in the scan.
Msg 8965, Level 16, State 1, Line 1
Table error: Object ID 2083043448, index ID 1, partition ID 72057608168079360, alloc unit ID 72057608304721920 (type LOB data). The off-row data node at page (1:307605), slot 1, text ID 903086080 is referenced by page (1:307648), slot 0, but was not seen in the scan.
Msg 8929, Level 16, State 1, Line 1
Object ID 2083043448, index ID 1, partition ID 72057608168079360, alloc unit ID 72057609480241152 (type In-row data): Errors found in off-row data with ID 1368915968 owned by data record identified by RID = (1:43506:13)
Msg 8929, Level 16, State 1, Line 1
Object ID 2083043448, index ID 1, partition ID 72057608168079360, alloc unit ID 72057609480241152 (type In-row data): Errors found in off-row data with ID 903086080 owned by data record identified by RID = (1:102876:38)
输出的最后一部分是:
CHECKDB found 1 allocation errors and 12 consistency errors in database 'Clients'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (Clients).
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
我的问题是:我应该尝试再次恢复数据库还是继续尝试修复?我只是犹豫,因为它是一个相当大的数据库并且恢复需要很长时间。
更新:更多信息。
所有表错误都与我可以删除并重新创建的单个表有关。但是我不明白 IAM 错误的真正含义或其影响。
我有一个 SQL Server 实例,它有一个链接到 Oracle 服务器的服务器。Oracle 服务器上有一个名为的表,PersonOptions
其中包含以下数据:
╔══════════╦══════════╗
║ PersonID ║ OptionID ║
╠══════════╬══════════╣
║ 1 ║ A ║
║ 1 ║ B ║
║ 2 ║ C ║
║ 3 ║ B ║
║ 4 ║ A ║
║ 4 ║ C ║
╚══════════╩══════════╝
我需要旋转该数据,因此结果是:
╔══════════╦═════════╦══════════╦══════════╗
║ PersonID ║ OptionA ║ Option B ║ Option C ║
╠══════════╬═════════╬══════════╬══════════╣
║ 1 ║ 1 ║ 1 ║ ║
║ 2 ║ ║ ║ 1 ║
║ 3 ║ ║ 1 ║ ║
║ 4 ║ 1 ║ ║ 1 ║
╚══════════╩═════════╩══════════╩══════════╝
有什么建议么?
我们有一个从进度表中选择记录的过程,然后针对该记录发布更新。
如果我们不进行选择,那么更新会全天运行。如果我们进行选择,那么更新就会超时。
选择查询非常简单,如下所示:
select fg."alphakey", n."first-name", n."last-name"
from pub.name n
inner join pub."family-guardian" fg
on (fg."name-id" = n."name-id")
where fg."alphakey" = 'somevalue'
我们已经确认,如果上述声明不存在,那么它是有效的。但是,如果存在上述语句,则UPDATE失败。更新违反了名称表。不幸的是,我没有该代码,因为它是通过第三方执行的。
两个问题:
我正在 SQL Server 2008 R2 中设置维护计划。
在重组索引任务上,它有一个“压缩大对象”选项。这是什么意思,我想打开它吗?