我们多年来一直在运行 SQL Server 2000。
最后,我们终于交付了 SQL 2008 Server。
我们的 SQL 2000 Server 上有许多 DTS 作业需要迁移到 SQL 2008 Server。
我在哪里可以查找如何转换 DTS 作业以便它们可以在 SQL 2008 上运行?
我是一名 WinForms C# 开发人员,负责调用、构建存储过程并偶尔为我们的 SQL Server 创建新表,但我不是数据库管理员或网络管理员。
我想确保我这样做是正确的,以便我们公司的停机时间最少。
来自我们的网络管理员:
根据我的阅读,我将不得不做更多的研究,我们必须将所有数据转换服务 (DTS) 包转换为 SQL Server 集成服务 (SSIS)。我不知道这可能会带来什么,但根据我的理解,这些工作是用 .Net 编写的。如果我们可以迁移它们,那很好,但如果不能,我们可能必须为所有人编写新的,一旦你编写了第一个,这不会那么难。
这有帮助吗?
我有一个旧的数据库服务器。写它的人早已不在了。根本没有文档,只有代码中的一些注释。幸运的是,这并不复杂,但如果我想修复它(来自用户的请求),调查所有相关的数据库对象(表、视图或存储过程)需要时间。
最近,我收到我们 IT 部门人员的建议,我应该将我们的数据库升级到更新的数据库版本 (2005/2008)。现在,它是 SQL Server 2000。他说它将有更好的性能和安全性。我想如果我升级到新版本,我们的旧机器(硬件)可能不足以支持新的数据库引擎。目前,据用户称,响应时间是可以接受的。
我试着去思考所有的利弊。我宁愿不升级,但我想确保我不会错过任何东西。
不升级
升级
问题是:我该怎么办?升级或不升级我们的数据库服务器。
我的任务是执行 SQL Server 2000 到 2005 的迁移。我将进行并行迁移。我从几个不同的来源阅读,我可以:
在 SQL Server 2000 上执行数据库备份,将该备份传送到新硬件并在 SQL Server 2005 中恢复数据库;或者
分离 SQL Server 2000 上的数据库,将数据和日志文件复制到新硬件并附加 SQL Server 2005 中的文件。
这些方法有区别吗?哪个最安全?
我已经完成了使用升级顾问检查数据库的升级前任务,并且在迁移之前我没有要解决的警告。
任何意见都会很受欢迎。
我想从其他服务器检索表值
询问
EXEC sp_addlinkedserver @server = 'OPSERVER', @srvproduct = 'SQL Server'
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'OPSERVER', @rmtuser = 'SA', @rmtpassword = 'SA'
SELECT * FROM OPSERVER.VENUS.dbo.TABL1
Run Code Online (Sandbox Code Playgroud)
上面的查询显示错误,因为用户“SA”登录失败
查询
EXEC sp_addlinkedserver @server = 'OPSERVER', @srvproduct = 'SQL Server'
sp_addlinkedsrvlogin
@rmtsrvname = 'OPSERVER',
@locallogin = 'sa',
@rmtuser = 'sa',
@rmtpassword = 'sa'
SELECT * FROM OPSERVER.VENUS.dbo.TABLE1
Showing error as "Login failed for user 'sa'"
Run Code Online (Sandbox Code Playgroud)
我的查询有什么问题。
我有一个连接到远程计算机的链接服务器,并在本地和远程数据库之间执行一些插入、更新和删除操作。我想知道操作进行时传输了多少数据。我该怎么做?我的本地数据库是Sql server 2008,远程数据库是SQlserver2ksp3
如何将 SQL Server 2000 数据库还原到 SQL Server 2008 实例?
背景 (用单词问题掩盖了一个现实世界的问题)
Farmer Brown 在加利福尼亚州有一个桃园,向全国各地运送数十万个桃子。当一批桃子到达目的地时,送货员会检查桃子并保留所有未通过检查的桃子。
当检验不合格的桃子运回 Farmer Brown's 农场后,Farmer Brown's Peach Hospital 将修复桃子缺陷,并与下一批桃子一起重新发货。如果原来的桃子再次检查不合格,只要桃子是可挽救的,它们就会经历同样的过程。
桃子医院很贵,运费也很贵,所以Farmer Brown开始思考,“对于我在任何时间范围内运送的桃子,我总共运送了多少?在总数中,第二次运送了多少?对于第三次(或更多)?”
在高层次上,桃子发货跟踪表(在 SQL Server 2000 数据库上)有超过900 万条不同类型发货的记录,看起来(大致)类似于:
ShipmentDate PeachID Shipment Type
8/10/2005 7112 Shipment to Customer
7/15/2007 8798 Shipment to Customer
4/3/2009 8798 Shipment to Customer
4/15/2009 8798 Shipment to Customer
4/21/2009 8798 Shipment to Customer
4/21/2009 145751 Shipment to Customer
4/22/2009 7112 Shipment to Customer
4/22/2009 12121 Shipment to Customer
4/25/2009 8798 Shipment to Customer
5/12/2009 8798 Shipment to Customer
Run Code Online (Sandbox Code Playgroud)
如果我们尝试返回 Farmer Brown …
这是我的情况。
[distribution]数据库附加到这个新实例select * from sysservers (正确地)返回分发服务器仍然是集群上的第一个实例。如果我在发布者上运行以下内容(或者这甚至可能),它会多么糟糕?
sp_configure ‘allow updates’, 1
GO
RECONFIGURE WITH OVERRIDE
GO
update sysservers set datasource = 'server\instance' where srvname = 'repl_distributor';
GO
sp_configure ‘allow updates’, 0
GO
RECONFIGURE WITH OVERRIDE
GO
Run Code Online (Sandbox Code Playgroud)
这是最好的方法,还是有其他方法可以改变分销商?
我们从 SQL Server 2000 升级到 SQL Server 2008。但是由于我们的医疗保健应用程序中的一些遗留脚本/查询仅在 2000 年运行,我们不得不在向后兼容模式下运行 2008 版。
我的问题是,如果我必须在潜在冲突/问题等方面将其打开到完全兼容模式,我需要注意什么。升级顾问工具在我的情况下是否仍然有用,因为我们已经升级但以向后兼容性运行模式。运行该工具是否有价值?
任何人都可以分享的任何其他信息都会很有用。
我想监视需要超过 25 秒的脚本。当我使用过滤器时,我无法看到脚本所用的持续时间。我们如何获得执行查询所需的时间。
我的要求很简单:
获取所有需要超过 25 秒的脚本(需要执行每个语句所花费的时间)。
performance sql-server sql-server-2000 profiler query-performance
sql-server-2000 ×10
sql-server ×7
migration ×1
performance ×1
profiler ×1
query ×1
replication ×1
reporting ×1
restore ×1
ssis ×1
upgrade ×1