数据仓库服务 GAUSSDB(DWS)-Linux下配置数据源:操作步骤
操作步骤
- 获取unixODBC源码包。
获取参考地址:https://sourceforge.net/projects/unixodbc/files/unixODBC/2.3.0/unixODBC-2.3.0.tar.gz/download
- 目前不支持unixODBC-2.2.1版本。以unixODBC-2.3.0版本为例,在客户端执行如下命令安装unixODBC。安装时通过--prefix=[your_path]指定安装目录,生成数据源文件到 “[your_path]/etc”目录下,库文件生成在“[your_path]/lib”目录。
tar zxvf unixODBC-2.3.0.tar.gz cd unixODBC-2.3.0 #修改configure文件(如果不存在,那么请修改configure.ac),找到LIB_VERSION #将它的值修改为"1:0:0",这样将编译出*.so.1的动态库,与psqlodbcw.so的依赖关系相同。 vim configure ./configure --enable-gui=no --prefix=[your_path] #如果要在TaiShan服务器上编译,请追加一个configure参数: --build=aarch64-unknown-linux-gnu make make install
安装unixODBC。如果机器上已经安装了其他版本的unixODBC,可以直接覆盖安装。
- 替换客户端 GaussDB (DWS)驱动程序。
将dws_8.x.x_odbc_driver_for_xxx_xxx.zip解压,在“/dws_8.x.x_odbc_driver_for_xxx_xxx/odbc/lib”目录下得到“psqlodbcw.la”和“psqlodbcw.so”两个文件。
- 配置数据源。
- 配置ODBC驱动文件。
在“[your_path]/etc/odbcinst.ini”文件中追加以下内容。
[GaussMPP] Driver64=[your_path]/lib/odbc/psqlodbcw.so setup=[your_path]/lib/odbc/psqlodbcw.so
odbcinst.ini文件中的配置参数说明如表1所示。
- 配置数据源文件。
在“[your_path]/etc/odbc.ini ”文件中追加以下内容。
[MPPODBC] Driver=GaussMPP Servername=10.10.0.13(数据库Server IP) Database=gaussdb (数据库名) Username=dbadmin (数据库用户名) Password= (数据库用户密码) Port=8000 (数据库监听端口) Sslmode=allow
odbc.ini文件配置参数说明如表2所示。
表2 odbc.ini文件配置参数 参数
描述
示例
[DSN]
数据源的名称。
[MPPODBC]
Driver
驱动名,对应odbcinst.ini中的DriverName。
Driver=DRIVER_N
Servername
服务器的IP地址。
Servername=10.145.130.26
Database
要连接的数据库的名称。
Database=gaussdb
Username
数据库用户名称。
Username=dbadmin
Password
数据库用户密码。
Password=
说明:ODBC驱动本身已经对内存密码进行过清理,以保证用户密码在连接后不会再在内存中保留。
但是如果配置了此参数,由于UnixODBC对数据源文件等进行缓存,可能导致密码长期保留在内存中。
推荐在应用程序连接时,将密码传递给相应API,而非写在数据源配置文件中。同时连接成功后,应当及时清理保存密码的内存段。
Port
服务器的端口号。
Port=8000
Sslmode
开启SSL模式。
Sslmode=allow
UseServerSidePrepare
是否开启数据库端扩展查询协议。
可选值0或1,默认为1,表示打开扩展查询协议。
UseServerSidePrepare=1
UseBatchProtocol
是否开启批量查询协议(打开可提高DML性能);可选值0或者1,默认为1。
当此值为0时,不使用批量查询协议(主要用于与早期数据库版本通信兼容)。
当此值为1,并且数据库support_batch_bind参数存在且为on时,将打开批量查询协议。
UseBatchProtocol=1
ConnectionExtraInfo
GUC参数connection_info(参见connection_info)中显示驱动部署路径和进程属主用户的开关。
ConnectionExtraInfo=1
说明:默认值为1。当设置为0时,ODBC驱动会将当前驱动的名称、驱动版本上报到数据库中;当设置为1时,ODBC驱动会将当前驱动的名称、部署路径、进程属主用户上报到数据库中,记录在connection_info参数(参见connection_info)里;同时可以在PG_STAT_ACTIVITY和PGXC_STAT_ACTIVITY中查询到。
ForExtensionConnector
ETL工具性能优化参数,可进行内存优化,降低对端的CN内存占用,避免因CN内存使用过多导致系统不稳定。
可选值0或者1,默认为0,表示不开启优化项。
请勿在数据库系统之外的其他业务中配置此参数,以免影响业务的正确性。
ForExtensionConnector=1
KeepDisallowPremature
当UseDeclareFetch=1时,应用程序调用SQLPrepare后调用SQLNumResultCols、SQLDescribeCol或SQLColAttribute获取结果集列信息时,SQL语句中的游标是否具有with hold属性。
可选值0或者1,0表示具有with hold属性,1表示不具有with hold属性,默认为0。
KeepDisallowPremature=1
说明:UseServerSidePrepare=1时,KeepDisallowPremature参数不生效,使用时需要指定UseServerSidePrepare为0,例如:UseDeclareFetch=1
KeepDisallowPremature=1
UseServerSidePrepare=0
其中关于sslmode的选项的允许值,具体信息见下表:
表3 sslmode的可选项及其描述 sslmode
是否会启用SSL加密
描述
disable
否
不使用SSL安全连接。
allow
可能
如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。
prefer
可能
如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。
require
是
必须使用SSL安全连接,但是只做了 数据加密 ,而并不验证数据库服务器的真实性。
verify-ca
是
必须使用SSL安全连接,并且验证数据库是否具有可信证书机构签发的证书。
verify-full
是
必须使用SSL安全连接,在verify-ca的验证范围之外,同时验证数据库所在主机的主机名是否与证书内容一致。GaussDB(DWS)不支持此模式。
- 配置ODBC驱动文件。
- SSL模式
如果需要使用SSL证书连接,那么请将GaussDB(DWS)安装包中的SSLCERT的证书包解压,在shell环境下,执行“source sslcert_env.sh”,即在当前会话完成证书的默认位置的部署。
或者手动声明如下环境变量,同时保证client.key*系列文件为600权限:
export PGSSLCERT="/YOUR/PATH/OF/client.crt" #请修改该路径到client.crt的绝对路径 export PGSSLKEY="/YOUR/PATH/OF/client.key" #请修改该路径到client.key的绝对路径
同时将数据源中的Sslmode选项调整至“verify-ca”。
- 将客户端所在主机的IP网段加入GaussDB(DWS)的安全组规则,确保客户端主机与GaussDB(DWS)网络互通。
- 配置环境变量。
vim ~/.bashrc
在配置文件中追加以下内容。
export LD_LIBRARY_PATH=[your_path]/lib/:$LD_LIBRARY_PATH export OD BCS YSINI=[your_path]/etc export ODBCINI=[your_path]/etc/odbc.ini
麒麟OS环境中,此处不建议追加LD_LIBRARY_PATH,可能造成libssl.so动态库冲突。集群9.1.0最新版本中已增加rpath,不需要LD_LIBRARY_PATH即可找到依赖。
- 执行如下命令使设置生效。
source ~/.bashrc
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- 云数据迁移_什么是CDM_-华为云
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- linux虚拟主机系统_linux配置虚拟主机_Linux虚拟主机版
- 大数据应用范围有哪些_大数据技术与应用要学习什么课程