科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Anywhere教程(六):连接数据库(Part II)

SQL Anywhere教程(六):连接数据库(Part II)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在上一部分中我们已经通过-c选项和-dataSource选项连接上了本地数据库。假设现在我们需要连接网络数据库,那就需要一些网络的支持。

作者:张策【原创】 2007年5月25日

关键字: Sybase 赛贝斯 Anywhere SQL SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在上一部分中我们已经通过-c选项和-dataSource选项连接上了本地数据库。假设现在我们需要连接网络数据库,那就需要一些网络的支持。

假定我们通过如下命令启动了一个数据库:

dbsrv9 -n myserver database.db -n prod

数据库引擎的名字为myserver,数据库名为prod。

网络数据库引擎支持以下通信协议:

TCP/IP:所有平台均支持

SPX:Windows, Netware

Shared Memory(共享内存):所有平台均支持

Named Pipes(命名管道):通常只用在C2安全认证方式的时候使用

在dbsrv9中可以使用 –x 选项来指示服务器在启动时只使用某些可用的网络协议。

在网络连接方式下,我们通常会指定CommLinks连接参数以确保使用正确的通信方式连接数据库。连接个人服务器时,CommLinks选项可选。

CommLinks参数缺省使用共享内存通信协议来连接数据库。

如果未指定 CommLinks (LINKS) 连接参数,则客户机只搜索当前计算机上的服务器,并且只尝试使用共享内存连接。这是缺省行为,该行为等同于 CommLinks=ShMem。共享内存协议是在同一台计算机上运行的客户机和服务器之间最快的通信链接,这通常用于连接到个人数据库服务器的应用程序。

如果指定 CommLinks=ALL,则客户机搜索使用所有可用通信协议的服务器。如果指定 CommLinks=ALL,可能会影响系统性能,因此,只在不知道使用哪个协议时才使用该设置。

如果在 CommLinks (LINKS) 连接参数中指定一个或多个协议,则客户机将按指定的顺序 使用指定的通信协议搜索网络数据库服务器。如果该连接使用一种指定的协议进行连接时失败了,则会出现一个连接错误并且该连接会试图中止,即使列表中仍有可尝试的协议也是如此。

CommLinks连接参数的值分别为:SharedMemory或ShMem、ALL(首先尝试共享内存协议,然后使用其余协议连接)、TCPIP或TCP、SPX。例如,我们可以在通过以下命令连接到刚启动的数据库:

dbisql -c "UID=dba;PWD=sql;ENG=myserver;CommLinks=tcpip,shmem"

这样,连接参数将首先指示使用tcp/ip协议来连接myserver引擎,如果不成功,再使用共享内存通信方式尝试连接。

接下来,还可以与-x选项的参数进一步配合,以便能更加准确地进行连接。

例如,在执行dbsrv9命令启动网络服务器引擎时可以指定-x tcpip(DoBroadcast=NO)以指示数据库服务器时不进行广播,这样,在连接时,同样可以在CommLinks参数中指定成CommLinks=tcpip(DoBroadcast=NONE)以指示连接时不对本地子网进行广播。

-x和CommLinks的括弧内的参数形式可为:

dbsrv9 -x "tcpip(PARM1=value 1;PARM2=value 2;...),SPX(……)"
CommLinks="tcpip(PARM1=value 1;PARM2=value 2;...),SPX(……)"

其中,TCP/IP、HTTP/HTTPS和SPX分别有不同的参数可指定诸如广播形式、连接地址、端口等内容。

例如:CommLinks=tcpip(HOST=my_server,kangaroo;PORT=2639)将命令客户端在计算机 my_server 和 kangaroo 上查找数据库服务器。尝试与第一个响应的主机建立连接。
(责任编辑:张思童

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章