[英]Check connection details to SQL Server 2000/2005
我想将SQL 2000/2005上托管的一些数据库迁移到SQL 2014,我没有直接访问数据库的权限,我想知道所有与其连接的应用程序和连接详细信息。 有什么最好的方法来获取此信息? 我尝试使用数据库性能分析,但由于它占用了托管数据库服务器上的大量空间而导致中断,因此不允许这样做。
任何更好的方法(例如SQL语句或远程连接监视)都将有所帮助。
预先感谢您的所有帮助。
要查找2000/2005中连接到DB服务器的进程的名称,您将需要运行作业,大概每30秒或更频繁地运行一次。 该工作将必须将结果存储到临时表中,然后添加新的进程名称和数据库,甚至登录。 这是一个开始:
创建一个表以累积信息:
create table DBUsage_accumulate (
[id] int identity(1,1) NOT NULL,
[LoginName] SYSNAME NOT NULL,
HostName SYSNAME NOT NULL,
DBName SYSNAME NOT NULL,
CONSTRAINT PK_DBUSAGE_ACCUMULATE PRIMARY KEY CLUSTERED (id asc));
然后,您需要对此表具有唯一约束,使用索引:
CREATE UNIQUE NONCLUSTERED INDEX
IX_ACCUMULATE_LOGIN_DB_HOST
on DBUsage_Accumulate
(
LoginName asc
,HostName asc
,DBName asc
);
现在您需要定期对sp_who2进行检查:
CREATE TABLE #temp_sp_who2
(
SPID INT,
Status VARCHAR(1000) NULL,
[LoginName] SYSNAME NULL,
HostName SYSNAME NULL,
BlkBy SYSNAME NULL,
DBName SYSNAME NULL,
Command VARCHAR(1000) NULL,
CPUTime INT NULL,
DiskIO INT NULL,
LastBatch VARCHAR(1000) NULL,
ProgramName VARCHAR(1000) NULL,
SPID2 INT
--,RequestID INT NULL --comment out for SQL 2000 databases
)
INSERT INTO #temp_sp_who2
EXEC sp_who2;
CREATE TABLE #temp_sp_who2
(
SPID INT,
Status VARCHAR(1000) NULL,
[LoginName] SYSNAME NULL,
HostName SYSNAME NULL,
BlkBy SYSNAME NULL,
DBName SYSNAME NULL,
Command VARCHAR(1000) NULL,
CPUTime INT NULL,
DiskIO INT NULL,
LastBatch VARCHAR(1000) NULL,
ProgramName VARCHAR(1000) NULL,
SPID2 INT
--,RequestID INT NULL --comment out for SQL 2000 databases
)
INSERT INTO #temp_sp_who2
EXEC sp_who2;
delete from #temp_sp_who2
where exists (
select 1 from DBUsage_accumulate A
where A.LoginName = #temp_sp_who2.Loginname
and A.HostName = #temp_sp_who2.hostName
and A.DBName = #temp_sp_who2.dbname);
insert into DBUsage_accumulate(LoginName,HostName,DBName)
select
distinct
LoginName
,HostName
,dbname
from #temp_sp_who2
where [DBName] is not null
and [HostName] != ' .';
将最后的SQL块放入每5-30秒运行一次的作业中,将累积所有主机名,数据库名和登录名的列表。 您可以使用它来迁移正确的数据库和登录名,以及修改客户端计算机中的连接字符串。
2000年测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.