我在 SQL Server 2005 中没有看到任何用于安排夜间备份的内置机制。有哪些工具可用于执行此任务?它们的可靠性如何?
我在 MSSQL 数据库中有一个表,其中包含超过 1 亿条记录,分布在大约 100 天的数据中。我需要根据其日期清除其中的一些数据,该日期是表中的一个索引字段。我曾尝试对单个日期执行 DELETE FROM,但执行时间很长,并且导致服务器性能下降。有没有更好的方法来删除如此大量的记录?其中一些数据仍然需要,所以很遗憾我不能使用截断。
非常感谢尼克
为新手问题道歉 - 我有一个 .mdf 文件,但我不知道如何针对它运行查询。我已经下载并安装了 SQL Server Express 2005,但不知道什么时候开始。我知道我不打算直接打开文件,但不知道我打算做什么。
有人可以一步一步地发布如何到达对文件运行 SQL 查询的点吗?
我作为一个城市的 SQL Server DBA 已经工作了 2 年。
我被带去支持现有的 DBA,所以我慢慢地接受了一切,并且已经工作了一段时间,试图在组织中获得信誉。是时候解决最棘手和最重要的问题了:安全。
我们的主服务器是一个故障转移集群,上面有 sql 2005。它拥有 166 个数据库。它为大多数应用程序提供 550 个左右的应用程序池连接,因此它可以轻松支持数千名用户。我们还为一个获得大量流量的公共网站提供服务。供应商应用程序、内部应用程序、访问后端 - 包含一些关键应用程序的种类繁多。
许多开发人员具有生产访问权限。更改是在 RFC 流程之外进行的,我们不知道开发人员正在更改哪些数据。他们还喜欢在系统实施期间获得生产访问权 - 我也想停止这样做。
由于运行了如此多的应用程序,任何理智的 DBA 都会锁定服务器。
您将如何将开发团队从广泛开放的安全过渡到更严格的环境?
我正在开发一个紧急请求系统,它可以让他们在有限的时间内访问他们的数据库。这将使我们能够审计访问和 ddl 更改。希望这不会被使用 - 因为这意味着我们没有响应页面。它将使用 HTTP、加密的 webconfig、屏幕上的登录/密码(不是电子邮件),请求限制为每 12 小时 3。我们也会在登录时被传呼。
有关此类系统的任何警告?
我可以看到的主要风险是,如果用户的 ntlogin 受到损害 - 他们的数据库也会受到损害。我们现在有这个漏洞,因为他们总是可以访问,但永远不会知道它是否发生。
编辑:开发和登台是具有 8 个内核和 8GB 内存的强大系统。计划实施 prd 到 stg 复制机制,如果他们的数据库不是很大并且不包含敏感信息,开发人员可以操作该机制。
管理层是支持的。如果我们能保证他们在紧急情况下的访问,他们最大的担忧就得到了解决。另一个问题可能是在实现过程中可以访问生产 - 我宁愿不提供。我们可以先练习转移到登台,然后在那里上线期间进行测试和修复 - DBA 迁移到 prd。
实际上,其中一项关键作业在执行时失败了。
在错误消息中发现失败是因为它缺少存储过程。
现在我如何找出存储过程何时受到用户的影响。我如何找出哪个用户执行了此操作以及他何时执行了此操作?
我有一个查询,用于检查我们是否已销售特定库存商品
select * from merchand_history where stock_code = 'zzz007' and create_timestamp >= getdate() order by create_timestamp desc
Run Code Online (Sandbox Code Playgroud)
我想要一个向用户发送电子邮件的 sql 作业(我猜是使用警报机制),但前提是该查询返回了行。
我想不出如何做到这一点并屈服于蜂巢思维。我真的需要一个只有 sql 的解决方案......
我在 SQL Server 2005 中运行一个简单的查询,并希望它通过 sqlcmd 导出到一个文件。我希望得到没有标题和查询元数据的 csv 格式的结果(有多少行受到影响)。对于标题,您实际上可以指定 -h -1 但如何摆脱结尾文本?
现在我有
sqlcmd -S klingon -d stardb -i C:\testscript.sql -o C:\testresults.csv -h -1 -s ","
Run Code Online (Sandbox Code Playgroud)
脚本很简单
select x, y, z from agent
Run Code Online (Sandbox Code Playgroud)
不幸的是,结果是这样的:
24 aingles1 creablegs
25 tbails12 bull2dog12
26 jtaylor3 Leandon62606
27 forrestw1 nuke19211
(4 rows affected)
Run Code Online (Sandbox Code Playgroud)
我似乎无法在帮助文件中找到任何内容来告诉我如何删除最后一部分,该部分告诉我有多少行受到影响。
任何人的想法?
我正在运行 SQL Server 2005 EE。
尝试执行完整数据库备份时,我收到错误消息:
无法暂停目录以进行备份。备份已中止。BACKUP DATABASE 异常终止。
在谷歌搜索问题后,它似乎与全文搜索未正常运行有关,因此我检查并确定 FTS 已停止。但是,在尝试启动 FTS 时,我收到以下错误消息:
已删除服务依赖项 (ObjectExplorer)
我用谷歌搜索了这个错误,并在WordPress 博客中找到了以下建议(有点担心遵循这个建议,因为没有解释为什么我会这样做)。
- 打开注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\msftesql
- 将值 DependOnService 重命名为任何内容
- 重启服务器
任何建议将不胜感激。
谢谢!
我写了一个存储过程来插入一条记录。我在插入查询的正上方添加了“开始事务”并执行查询。我注意到另一个应用程序显示一个网页,其中包含来自同一个表的记录,在插入完成时挂起。
为什么开始事务会锁定整个表?作家不应该阻止读者。默认情况下它应该是ON。
我正在使用 SQL-Server 2005 Express。我也想知道 Oracle 和 MySQL 如何处理相同的情况。
我希望以最小的数据和服务中断将数据库“移动”到不同的服务器。这些数据库的大小从 5GB 到 140GB 不等。
我已经看到甚至使用了 SQL Server 的一些各种数据传输工具,但我不确定最佳实践是什么(分离/重新附加、从备份还原、发送事务日志、镜像......)。
我最担心的是这些数据库有很多存储过程、用户权限和各种索引,我不想丢失它们并最终中断服务。
我最近的一个大胆想法是设置一个镜像,然后启动手动故障转移。但是,我宁愿在进行我以前从未做过的事情之前先问一下。
TL;DR 移动 SQL Server 数据库的最佳实践方法有哪些,以最大限度地减少服务中断的威胁。
database-administration database-mirroring sql-server-2005 tsql sql-server-2008