我们有一个非常大的数据库(~6TB),其事务日志文件被删除(SQL Server 关闭时。我们尝试过:
...但到目前为止没有任何效果。
我们目前正在运行:
ALTER DATABASE <dbname> REBUILD
LOG ON (NAME=<dbname>,FILENAME='<logfilepath>')
Run Code Online (Sandbox Code Playgroud)
...但考虑到数据库的大小,这可能需要几天时间才能完成。
上面的命令和下面的命令有区别吗?
DBCC CHECKDB ('<dbname>', REPAIR_ALLOW_DATA_LOSS)
Run Code Online (Sandbox Code Playgroud)
我们应该执行REPAIR_ALLOW_DATA_LOSS吗?
值得注意的是,数据来自其他来源,因此可以重建数据库,但是我们怀疑修复数据库比再次重新插入所有数据要快得多。
更新
对于那些记分者:ALTER DATABASE/REBUILD LOG命令在大约 36 小时后完成并报告:
警告:数据库“dbname”的日志已重建。事务一致性已丢失。RESTORE 链被破坏,服务器不再拥有先前日志文件的上下文,因此您需要知道它们是什么。
您应该运行 DBCC CHECKDB 来验证物理一致性。数据库已置于 dbo-only 模式。当您准备好使数据库可供使用时,您将需要重置数据库选项并删除任何额外的日志文件。
然后我们运行了一个DBCC CHECKDB(大约需要 13 小时),它成功了。假设我们都了解了数据库备份的重要性(以及授予项目经理访问服务器的权限......)。
在完全导出我的 Oracle 10.2.0.2 数据库期间,我遇到以下警告
[...]
. exporting post-schema procedural objects and actions
EXP-00008: ORACLE error 6502 encountered
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_SCHED_MAIN_EXPORT", line 351
ORA-06512: at "SYS.DBMS_SCHED_JOB_EXPORT", line 14
ORA-06512: at line 1
EXP-00085: The previous problem occurred when calling SYS.DBMS_SCHED_JOB_EXPORT.create_exp for object 102269
EXP-00008: ORACLE error 6502 encountered
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_SCHED_MAIN_EXPORT", line 351
ORA-06512: at "SYS.DBMS_SCHED_JOB_EXPORT", line 14
ORA-06512: …Run Code Online (Sandbox Code Playgroud) 我正在尝试优化以下语句:
'VI'+CAST(month(GETDATE()) AS NVARCHAR)+'/'+CAST(year(GETDATE()) AS NVARCHAR)
+'/00000' +CAST(@number+1 AS VARCHAR)
Run Code Online (Sandbox Code Playgroud)
该语句产生的值等VI1/2011/000002,如果该@number参数1。
我想在删除多余的强制转换语句和提供连接字符串和整数的有效方法方面对此进行优化。
我需要对聚集索引做一个简短的解释。
我需要优化以下查询:
SELECT /* [things omitted] */ articles.blogpost_id, articles.id AS articleid
FROM blogposts
JOIN articles ON articles.blogpost_id = blogposts.id
WHERE blogposts.deleted = 0
AND blogposts.title LIKE '%{de}%'
AND blogposts.visible = 1
AND blogposts.date_published <= NOW()
ORDER BY blogposts.date_created DESC
LIMIT 0 , 50
Run Code Online (Sandbox Code Playgroud)
EXPLAIN SELECT 给我以下结果:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE articles ALL blogpost_id NULL NULL NULL 6915 Using temporary; Using filesort
1 SIMPLE blogposts eq_ref PRIMARY PRIMARY 4 articles.blogpost_id 1 Using where
Run Code Online (Sandbox Code Playgroud)
为什么它先是文章,然后是博客文章?是因为博客文章有更多条目吗?以及如何改进查询以便文章帖子可以使用索引? …
请告诉我如何修改此 SQL 选择以使用数据透视而不是所有 case 语句。
SELECT t.ProjectId,
COALESCE(MAX(ExecutiveChampion), 'n/a'),
COALESCE(MAX(BusinessOwner), 'n/a'),
COALESCE(MAX(BusinessAnalyst), 'n/a'),
COALESCE(MAX(GeneralContractor), 'n/a'),
COALESCE(MAX(PrimaryPM), 'n/a'),
COALESCE(MAX(DevelopmentManager), 'n/a'),
COALESCE(MAX(DevelopmentLead), 'n/a'),
COALESCE(MAX(TDM), 'n/a'),
COALESCE(MAX(PTM), 'n/a')
FROM (
SELECT pl.ProjectId,
CASE WHEN StakeholderCID = 95 THEN FullName ELSE NULL END as 'ExecutiveChampion',
CASE WHEN StakeholderCID = 96 THEN FullName ELSE NULL END as 'BusinessOwner',
CASE WHEN StakeholderCID = 97 THEN FullName ELSE NULL END as 'BusinessAnalyst',
CASE WHEN StakeholderCID = 100 THEN FullName ELSE NULL END as 'GeneralContractor',
CASE WHEN StakeholderCID …Run Code Online (Sandbox Code Playgroud) 有没有办法知道COALESCE一个索引是否已经完成?这样一个似乎没有更新CREATED,LAST_DDL_TIME或LAST_ANALYZED属性。
注意:我指的COALESCE不是返回表达式列表中第一个非空 expr 的 ,而是用于在块中使空闲空间像这样连续的那个:
ALTER INDEX [Index Name] COALESCE;
Run Code Online (Sandbox Code Playgroud) 我使用 mysqldump 创建一个用于备份的平面文件。我已使用此文件在备用服务器上重新创建数据库。我在命令行上通过 ssh 运行导入过程,但收到多个Packet too Large错误。
我用更大的 max_allowed_packet(即 1000M)重新启动了 mysql,但仍然收到错误消息。我什至尝试在导入文件中设置 max_allowed_packet,仍然收到错误。
有没有办法确保设置 max_allowed_packet 和/或使用 mysqldump 来创建不会导致此问题的文件?
以供参考:
未压缩的 mysqldump 文件约为 2GB
数据库类型是 INNODB
在 MS SQL Server 中,更新表上一组字段的更新者、更新时间的最佳方法是什么?我已经在代码中看到它触发了它。等等。我看到触发的好处是这一切都发生在同一个地方。不利的一面是,有时管理员必须批量修复表并且不想删除上次用户更新的用户名/时间。
注意:我不想要时间戳。我想要 Windows 用户 ID 和上次更改的人类可读日期/时间。
寻找您推荐的产品以及为什么它是一个不错的选择。
sql-server ×4
index ×2
mysql ×2
oracle ×2
backup ×1
dbcc-checkdb ×1
ddl ×1
export ×1
mysql-5 ×1
mysqldump ×1
optimization ×1
performance ×1
pivot ×1
query ×1
recovery ×1
rollback ×1
syntax ×1