我们有一个生产 SQL Server 2005 服务器,我们在上面托管了 200 个数据库。
我们想在我们的新服务器上托管这些数据库。在新服务器上安装了 SQL Server 2005 并准备就绪。
我想知道迁移整个数据的最佳和最方便的方法包括:
总之,我希望在新服务器上的新实例上拥有与当前 SQL Server 2005 完全相同的副本。
如果你能指导我解决这个问题,我将不胜感激。
此致
如何在USE语句中使用局部变量?我得到错误:
消息 911,级别 16,状态 1,第 6 行
数据库“DWSource_@Country”不存在。确保正确输入名称。
代码:
DECLARE @Country varchar(3)
SET @Country='UKR'
USE DWSource_@Country
SELECT @Country as country,
count(*) as n_ALL,
sum(case when LEN(EPOSTA)>0 then 1 else 0 end) as EMAIL1,
sum(case when LEN(EPOSTA_2)>0 then 1 else 0 end) as EMAIL2
FROM [dbo].[_data_CRM_S_PARTNER]
WHERE VIR = 'SM'
AND PRAVNA_OSEBA = 0
AND PROBLEMATICEN = 0
AND ISNULL([STATUS],0) IN (0,1)
AND ID_DBCLUSTER IN ('112','122','132','212','222','232','312','322','332','311','321','331')
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Br, 安雅
SQL Server 2012 SP2 企业版。用户抱怨速度慢。监控工具显示最高等待事件是CXPACKET。
实例设置
Ran sp_BlitzCache(来自 Brent Ozar 工具集,这些人摇滚)进行进一步诊断,结果显示成本低于 175 的查询并行。
有人见过并行性的成本阈值被忽略吗?
我们将在明年第 1 季度迁移到 SQL Server 2014 昂贵版。现在我们使用的是 SQL Server 2005 标准版,因此我们无法访问MIRROR TO用于备份的非常棒的选项(我们使用 Ola Hallengren 的脚本)。
现在,我们正在使用 robocopy 将文件复制到网络共享,以防万一我们存储在本地的备份损坏、丢失或决定休个长假。我的问题是,当我们使用该MIRROR TO选项时,与仅使用 robocopy、xcopy 或 Powershell 解决方案相比,它是否会更多/更少地占用资源?当我们MIRROR TO在 SQL Server 中使用时到底发生了什么?如果可能的话,寻找一些“具体细节”的答案。
我的日志中有几个星期的错误,我搜索了很多,但找不到有用的答案。
我确实关闭了公共 IP 的 SQL Server 端口,但我还有问题。
错误:17806,严重性:20,状态:14。SSPI
握手失败,错误代码为 0x8009030c,在建立具有集成安全性的连接时状态 14;连接已关闭。原因:AcceptSecurityContext 失败。Windows 错误代码指示失败的原因。登录尝试失败 [CLIENT: 10.10.3.25]提出时间:2015 年 1 月 27 日下午 2:23
该系统关闭时出现错误。
我需要一种很好的方法来在不同服务器和不同数据库之间复制 SQL Server 2012 中的单个表。我试过复制品,它工作得很好,但可能有更好/更简单的方法,我现在看不到。
也许有一种方法可以使用任务将数据作为作业导入。数据不需要一直同步。每隔 5-10 分钟,第二个数据库 [B] 就可以使用数据库 [A] 中的数据进行更新。
是否可以只为一张表设置镜像?
当然,我检查了网络,这给了我编写导入任务脚本的想法。
还有什么可能以及如何?
想象一下以下场景:我有两台服务器,它们位于两个单独的专用网络上。
已创建链接服务器,服务器 A 中有一个表,该表具有服务器 B 上同一表的更新版本。更新范围不大,本质上只是重新分配了一些布尔值。
两台服务器之间的连接可靠但速度较慢,并且两表之间的排序规则不匹配。
是否有推荐或标准的方法来更新具有排序规则不匹配的两台服务器之间的信息?
我们的 Web 服务器使用 SQL Server 2008 R2。我有一台开发机器,它通过 SSMS 和测试我的 aspx 网站时使用 IP 地址连接到它。我还有其他几台机器,但它们无法通过 SSMS 连接到 IP。我收到此错误:
与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。
服务器未找到或无法访问。验证实例名称是否正确,并且 SQL Server 已配置为允许远程连接。
(提供程序:命名管道提供程序:40-无法打开与 SQL Server 的连接)(Microsoft SQL Server,错误:53)
我已经启用了 TCP/IP,打开了端口 1433,所有这些。请记住,我可以从一台开发机器连接,但不能从其他机器连接。
应用程序正在使用具有 ID 列的 SQL Server 2008 数据库,但这些列不是主键且没有IDENTITY属性。
我现在需要做的是添加 PK 和IDENTITY属性。但是,必须保留旧 ID。
此外,我需要使用 SQL 命令(无 GUI)来执行此操作。
问题
我尝试了以下所有解决方案,但没有成功。
INSERT/UPDATE一个IDENTITY值IDENTITY多个表的约束ALTER TABLE ... SWITCH TO(如果源表没有 PK 而目标表有 PK 则不起作用)我不能使用序列代替IDENTITYs 作为主键,因为 2008 不支持序列
以下也不起作用:
SET IDENTITY_INSERT mydb.dbo.AZIENDE_NEW ON;
INSERT INTO mydb.dbo.AZIENDE_NEW
SELECT *
FROM mydb.dbo.AZIENDE_OLD;
Run Code Online (Sandbox Code Playgroud)我得到错误
消息 8101:只有在使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表 'mydb.dbo.AZIENDE_NEW' 中标识列的显式值
这在我看来是不合逻辑的。IDENTITY_INSERT应该是ON那个桌子...
我对其他解决方案持开放态度,但我没有更多想法。
我必须选择小于给定 id 且大于给定 id 的 2 个值。我已经尝试过这个查询,但有没有更好的方法来做到这一点
小提琴Sql
Begin
declare @rootValue int
declare @repID int
set @repID = 2
set @rootValue = (select Id from tblLookups where Id = @repID)
declare @rootMinusTwo int
declare @rootPlusTwo int
set @rootMinusTwo = (select count(*) from tblLookups where Id < @rootValue)
set @rootPlusTwo = (select count(*) from tblLookups where Id > @rootValue)
if @rootMinusTwo >= 2 and @rootPlusTwo >= 2
Begin
select *
from tblLookups
where Id between @rootValue - 2 and @rootValue …Run Code Online (Sandbox Code Playgroud) sql-server ×10
backup ×2
t-sql ×2
collation ×1
connectivity ×1
identity ×1
migration ×1
parallelism ×1
ssms ×1