SqlSever 2000创建链接服务器——分布式数据库

目前在做一个项目,改善数据库的性能。由于数据量过大,一年累积的数据量大概有30多个G,服务器是一台机子,这么的数据量导致插入数据时速度极慢,时间一长,超时,数据丢失。解决这个问题最好的方法就是分布式数据库。初涉分布式数据库,我们觉得在SqlServer2000 中使用链接服务器算是分布式数据库,这样你可以访问别的服务器上的数据库或者视图。

1
有截图的,但是不会贴上来,很郁闷~~~



配置方法方法一:

1.建立链接服务器。
打开一个SQL查询分析器,输入命令:

1
exec sp_addlinkedserver  '链接别名','产品名称,(可以为空)','连接字符串,对SQL SERVER而言,用SQLOLEDB ','远程服务器名或ip地址' 


例如:

1
exec sp_addlinkedserver 'Elan_link','','SQLOLEDB','192.168.1.19' 


这样,打开企业管理器-》安全性-》链接服务器下,你就可以看到你新建的链接。但是单击表,会出现错误,因为还没有建立信任链接以登录到你的链接的服务器上。

2.建立信任链接。在SQL查询分析器中重新输入命令:

1
  exec sp_addlinkedsrvlogin '链接别名','false',null,'用户名','密码' 


例如:

1
 exec sp_addlinkedsrvlogin 'Elan_link','false',null,'sa','sa' 



执行成功后,在点击你所建立的链接服务器下的表时,可以出现你所链接的服务器的系统表。


配置方法二:
方法二和方法一的区别是建立链接服务器的命令稍有不同,在方法一的基础上后面增加了三个参数

1
exec sp_addlinkedserver 'Elan_link','','SQLOLEDB','192.168.1.19','','','tjxt' 


最后一个参数是指定链接服务器的数据库名称。这样在利用和方法一的第二步相同的语句以后,单击你所建立的链接服务器下表时,你看到的表是你指定的数据库下的表,别的表看不到,如图3。

成功建立以后,我们对链接服务器进行操作了。这和本地数据表操作的唯一区别就是加上链接名称。

1
select * from 链接别名.数据库名.所有者.表名 


一般情况下,我们创建的表的所有者都是dbo
例如:

1
select * from Elan_link.pubs.dbo.jobs  


可以看到查询结果。

现在你可以使用两种建立两个链接服务器。
在方法一建立的链接服务器后,执行命令:

1
select * from Elan_link1.teacMana1.dbo.T_user 


在方法二建立时,指定链接数据库为teacMana1(当然这得在远程的计算机上有这个数据库),
执行命令:

1
select * from Elan_link2.teacMana1.dbo.T_user 



你会发现结果是一样的,都能查处来teacMana1.dbo.T_user中的数据。

再执行:(前提是txtj存在)

1
  select * from Elan_link1.txtj.dbo.T_user 
1
  select * from Elan_link2.txtj.dbo.T_user 


发现结果还是一样的,没有任何影响。


所以现在的遗留问题是,貌似这两种方法对访问的库没有限制,你可以访问你链接的服务器上的任何数据库。唯一的区别就是在本地看到的远程服务器的表不同,但是可以访问的是一样的。

原文地址:https://www.cnblogs.com/lan0725/p/1873897.html