链接服务器
# 一、什么是链接服务器
如果单凭链接服务器这个名称,可能你无法理解它具体是个什么东东,在我们平台为什么把它挂在数据源下面自然有它的用意,如果你对数据库比较了解看到这个名称非常熟悉了,大家用过Sqlserver数据库吗?用过的话你可以把它理解为Sqlserver中链接服务器的作用。
在数据库中,链接服务器(Linked Server)是一种允许用户在一个数据库管理系统(DBMS)上访问另一个 DBMS 的技术,通过链接服务器您可以从当前 DBMS 中查询数据,而这些数据实际上存储在远程的 DBMS 上(跨服务器,跨数据库)。
# 二 、何时使用
当你要进行跨服务器或者跨数据库做联表查询时,那么你必须要配置链接服务器才能使用,否则你配置的sql语句是无法执行的。
# 三、使用前提
因为链接服务器并非通用,它只针对指定的数据源做链接,所以当你配置链接服务器时必须提前创建数据源,如果创建数据源请参考 数据源 (opens new window) 文档,它们是相互依赖的,但并不是强依赖,主要看应用场景,另外还需要程序包,所有数据库驱动包都放在系统基础数据相关表里面,如果使用数据源管理功能,必须把基础数据导到生产环境数据库中。
基础数据获取请到公司云盘 云盘地址 (opens new window) ,可以问云盘管理员申请一个账号才能登录,基础数据已经共享全体成员,只要有账号都能看到,它的名称叫【公司平台基础数据】,进入文件夹下找到自己想要的模块基础数据进行下载,生产环境通过执行sql脚本一键生成。
# 四、导包流程
非融合环境:无需打包
融合环境:
什么是融合环境?融合环境即跟supos系统做深度集成的环境,MES导包流程基本上都是一样的,公司有专门的导包流程视频可以借鉴,只要你有公司云盘账号即可,视频地址 查看 (opens new window),具体打包流程目前按以下流程步骤。
# 五、开始配置
# 1 创建链接
图中带*号的都是必填项,下面对图中的配置项做个详细介绍说明;
链接名称
链接名称为中文标题,如果你自己英文很强可以用英文,但是要保证别人也能看懂,哈哈。。。
链接标识符
链接标识做为后端程序识别的编码名称,你可以自定义名称(一定得是英文),创建成功后不能进行修改.
数据源
数据源为参照页面,前提是先配置数据源再创建链接服务器.
驱动程序
驱动程序依赖基础数据,前面已经提到获取基础数据的方式,它也是通过参照页面进行选择,根据你所选择的数据源数据库类型自动显示符合你数据库类型的驱动程序,不会显示其它驱动程序,因为其它驱动程序没有任何意义,还会让程序抛出异常.
驱动类型
驱动类型为了区分当前你选择的数据源或者驱动程序属于那一种数据库,目前只支持(Sqlserver,Mysql,Oracle).
# 2 验证是否有效
创建链接服务器成功之后,列表会多出一条记录,新增的链接服务器并不是立马可以使用了,它的状态是【新建】,在操作栏 更多 下面有个 【测试】按钮,点击它进行测试,看配置的链接服务器是否与远程服务器或者数据库链接成功,如果在右上角有错误提示表示当前的链接服务器存在问题且无法使用,可以联系MES平台管理员并截图右上角的错误提示,让管理员去排查问题。
# 3 基本状态
链接服务器分为三种状态,如下;
已弃用
表示链接服务器禁用,它是什么禁用的,可以在工具栏或者操作列中执行删除按钮操作时,它的状态就变成禁用了.
新建
表示这是一个新的链接服务器,还没有被使用.
已激活
表示链接服务器正常可用,这个可用是你做测试的时候是正常的,并不保证远程服务器IP地址改掉或者数据库不存在影响调用失败,怎么激活呢?
在操作列有一个【激活】按钮,点击它之后如果右上角没有错误,那么就成功激活了.
# 4 兼容比较
我们数据源只针对于(Sqlserver,Mysql,Oracle)三类关系型数据库,它们对链接服务器这个概念上叫法有所不同,链接服务器在Sqlserver或者Oracle中它就叫链接服务器,而在 MySQL 中,并没有直接的 "链接服务器"(Linked Server)的概念。
数据库 | 链接服务器 | 创建方式 |
---|---|---|
Oracle | 支持 | 脚本或者界面(参考:创建链接服务器 (opens new window)) |
Sqlserver | 支持 | 脚本或者界面(参考:创建链接服务器 (opens new window)) |
Mysql | 不支持 | 必须依赖federated引擎支持,且必须都是mysql数据库 |
# 5 mysql引擎开启方式
首先连接mysql数据库,在命令行中执行以下sql命令
show engines;
如果显示结果如下图;
YES:表示已经开启引擎 NO:表示未开启引擎
如何开启引擎呢?下面有做介绍和讲解;
# 5.1 非融合环境
非融合(即未与supos系统做深度集成的环境),在windows环境下找到mysql的安装目录,并且找到mysql的配置文件my.ini,编辑它然后;
[mysqld]
federated #开启引擎
2
linux系统的话也同样,只要你找到配置文件即可;
# 5.2 融合环境
我们融合环境mysql的配置文件放在 /mes/configuration/mysql/config 下面,同样配置以下内容即可;
[mysqld]
federated #开启引擎
2
记得融合环境改完mysql配置后需要重启容器服务,如下;
docker restart tt_mysql
# 6 后续操作
接下来就是日常的【增,删,改,查】维护了,没有什么好介绍的,链接服务器配置其实挺简单的,主要看你对数据库链接服务器的理解。