zoukankan      html  css  js  c++  java
  • DBLink的建立

    SQLServer之创建链接服务器

    创建链接服务器注意事项

    当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据。

    链接服务器允许访问针对OLE DB数据源的分布式异构查询。创建链接服务器后,可以针对此服务器运行分布式查询,并且查询可以连接来自多个数据源的表。如果链接服务器被定义为SQL Server的实例,则可以执行远程存储过程。

    链接服务器的功能和必需参数可能会有很大差异。

    使用SSMS数据库管理工具创建DBLINK

    1、连接服务器-》展开服务器-》展开服务器对象-》展开链接服务器-》右键点击链接服务器-》点击新建链接服务器。

    2、在新建链接服务器弹出框-》点击常规-》输入链接服务器名称-》选择服务器类型。

    3、在新建链接服务器窗口-》点击安全性-》选择链接服务器的登陆类型-》添加或者删除登陆远程服务器的映射。

    4、在新建连接服务器弹出框-》点击服务器选项-》选择服务器选项的属性。

    5、在新建链接服务器弹窗框-》点击确定-》在对象资源管理器查看结果。

    使用SSMS数据库管理工具创建DBLINK

    语法

    1
    2
    3
    4
    5
    6
    7
    8
    --声明数据库引用
    use master;
    go
     
    --创建DbLink语法
    --第一步:定义DBLINK类型
    exec master.dbo.sp_addlinkedserver @server='链接服务器名称',@srvproduct='SQL Server';
    go
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    --第二步:定义DBLINK连接属性
    --第一种安全性:不建立连接(删除下边的登陆)
    --第二种安全性:不使用安全上下文建立连接
    --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'链接服务器名称', @locallogin = NULL , @useself = N'False'
    --go
    --第三种安全性:使用登录名的当前安全上下文建立连接
    --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'链接服务器名称', @locallogin = NULL , @useself = N'True'
    --go
    --第四种安全性:使用此安全上下文建立连接
    --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='链接服务器名称',@locallogin=NULL,@useself='False',@rmtuser='登录名',@rmtpassword='密码';
    --go
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    --排序规则兼容
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'collation compatible', @optvalue=N'true' | N'false'
    go
    --数据访问
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'data access', @optvalue=N'true' | N'false'
    go
    --订阅服务器
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'dist', @optvalue=N'true' | N'false'
    go
    --发布服务器
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'pub', @optvalue=N'true' | N'false'
    go
    --RPC
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'rpc', @optvalue=N'true' | N'false'
    go
    --RPC 超时
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'rpc out', @optvalue=N'true' | N'false'
    go
    --分发服务器
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'sub', @optvalue=N'true' | N'false'
    go
    --连接超时值
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'connect timeout', @optvalue=N'0'
    go
    --排序规则名称
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'collation name', @optvalue=null
    go
    --惰性架构验证
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'lazy schema validation', @optvalue=N'true' | N'false'
    go
    --查询超时值
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'query timeout', @optvalue=N'0'
    go
    --使用远程排序规则
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'use remote collation', @optvalue=N'true' | N'false'
    go
    --为RPC启用针对分布式事务的升级
    exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'remote proc transaction promotion', @optvalue=N'true' | N'false'
    go

    语法解析

    第一步和第二步必须同时执行,后面DBLINK属性可以不写使用系统默认。

    示例:以我自己本机为例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    --声明数据库引用
    use master;
    go
     
    --创建DbLink语法
    --第一步:定义DBLINK类型
    exec master.dbo.sp_addlinkedserver @server='TANGSQLEXPRESS',@srvproduct='SQL Server';
    go
     
    ----排序规则兼容
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation compatible', @optvalue=N'false'
    --go
    ----数据访问
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'data access', @optvalue=N'true'
    --go
    ----订阅服务器
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'dist', @optvalue=N'false'
    --go
    ----发布服务器
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'pub', @optvalue=N'false'
    --go
    ----RPC
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc', @optvalue=N'false'
    --go
    ----RPC 超时
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc out', @optvalue=N'false'
    --go
    ----分发服务器
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'sub', @optvalue=N'false'
    --go
    ----连接超时值
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'connect timeout', @optvalue=N'0'
    --go
    ----排序规则名称
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation name', @optvalue=null
    --go
    ----惰性架构验证
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'lazy schema validation', @optvalue=N'false'
    --go
    ----查询超时值
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'query timeout', @optvalue=N'0'
    --go
    ----使用远程排序规则
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'use remote collation', @optvalue=N'true'
    --go
    ----为RPC启用针对分布式事务的升级
    --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'remote proc transaction promotion', @optvalue=N'true'
    --go
     
    --第二步:定义DBLINK连接属性
    --第一种安全性:不建立连接(删除下边的登陆)
    --第二种安全性:不使用安全上下文建立连接
    --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANGSQLEXPRESS', @locallogin = NULL , @useself = N'False'
    --go
    --第三种安全性:使用登录名的当前安全上下文建立连接
    exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANGSQLEXPRESS', @locallogin = NULL , @useself = N'True'
    go
    --第四种安全性:使用此安全上下文建立连接
    --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='TANGSQLEXPRESS',@locallogin=NULL,@useself='False',@rmtuser='tests',@rmtpassword='1234';
    --go

    示例结果:显示创建结果

    DBLINK使用

    示例

    1
    2
    SELECT FROM   [testss].[dbo].[test1]     AS A
    INNER JOIN  [TANGSQLEXPRESS].[testss].[dbo].[test3] AS ON A.classid=B.id

    结果

    DBLINK链接优缺点

    优点

    1、允许跨服务器访问。

    2、数据量少的情况下用dblink比较简单,迅速。

    3、可以执行远程存储过程等。

    缺点

    1、远程查询时易受网络等影响。

    2、链接稳定性较差。

    3、大量消耗数据库资源。

    4、可扩展性较差。

    5、维护性差、安全性较低。

  • 相关阅读:
    构建maven项目,自定义目录结构方法
    Nginx反向代理实现负载均衡以及session共享
    Spring Boot 2.x引入JS,CSS 失效问题
    WebMvcConfigurerAdapter已过时
    闲谈Tomcat性能优化
    oracle decode函数和 sign函数
    为什么要使用MQ和到底什么时候要使用MQ
    redis持久化的几种方式
    【mySQL】left join、right join和join的区别
    redis缓存在项目中的使用
  • 原文地址:https://www.cnblogs.com/LearningFromyou/p/13776353.html
Copyright © 2011-2022 走看看