云服务器内容精选
-
负载均衡场景 当应用程序有大并发场景时可开启负载均衡: 负载均衡即为将并发连接随机分发到所有CN上,避免单个CN负载过大,达到提高性能的目的。 配置参数AutoBalance=1,开启负载均衡功能。 参数RefreshCNListTime=5可以选择性配置,默认刷新时间为10s。 参数Priority=1可以选择性配置,即为并发连接优先发送到配置文件中配置的CN上,当配置的CN全部不可连接时,连接才会被分发到剩余CN上。 示例场景: 集群环境有6个CN,CN1、CN2、CN3、CN4、CN5和CN6;配置文件配置4个CN,为CN1、CN2、CN3和CN4。 odbc.ini配置文件示例: [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28,10.145.130.29 #数据库Server IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名。 Password= #数据库用户密码。 Port=8000 #数据库侦听端口。 Sslmode=allow AutoBalance=1 RefreshCNListTime=3 Priority=1 当配置文件和集群环境如示例时,并发连接会随机、平均发送到CN1、CN2、CN3和CN4上,连接数均衡。当CN1、CN2、CN3和CN4全部不可用时,并发连接会随机、平均发送到CN5和CN6上。如果此时CN1、CN2、CN3和CN4中有CN重新可用时,连接则不会再发送到CN5和CN6上,而是重新发送到重新可用的CN上。
-
备机读场景 配置文件配置CN节点,设置StandbyRead=1开启分布式备机读模式。 odbc.ini配置文件示例: [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28,10.145.130.29 #数据库Server IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名称。 Password= #数据库用户密码。 Port=8000 #数据库侦听端口。 StandbyRead=1 #打开备机读模式。 Sslmode=allow AutoBalance=1 #开启负载均衡模式。
-
连接池场景 连接池允许应用程序重复使用预先建立的连接,无需每次都重新建立连接。连接一旦创建并放入连接池,应用程序即可重复利用,避免了重复执行完整的连接过程。 这种池化连接的使用可以显著提升性能,尤其对于需要频繁建立和断开连接的中间层应用程序或网络连接的应用程序而言,性能提升尤为明显。 除了性能优势外,连接池架构还能够实现环境中的连接在单个进程中被多个组件共享的目的。这意味着,同一进程中的不同组件可以在不互相干扰的情况下共享连接池中的连接,进一步提高了系统的效率和资源利用率。 在连接池中,打开的连接可能被多个用户重用,如果您的应用程序脚本会更改数据库连接的状态,可能会导致数据泄露,为了安全起见,请谨慎评估使用连接池。 Linux场景配置 在odbcinst.ini配置文件中开启连接池,连接池相关参考配置如下: [ODBC] Pooling=Yes #开启连接池 [GaussMPP] CPTimeout=60 #一个连接在连接池中未被重用则会被释放的计时,默认为0,开启连接池需要设置为大于0 CPTimeToLive=60 #该驱动下连接池存在的计时 [GaussMPP2] CPTimeout=0 #关闭连接池 Windows场景配置 在打开的驱动管理器上,选择“连接池”后双击“ GaussDB Unicode”驱动名称,选择“使用池连接此驱动程序”[默认为60s],该设置参数同Linux场景配置的CPTimeout,参考例图如下: 在应用程序中配置连接池参数,需要在环境句柄创建前通过调用SQLSetEnvAttr 设置连接池参数,其中的环境句柄应设置为 null,这使得 SQL_ATTR_CONNECTION_POOLING 成为进程级属性。目前在Windows上支持配置SQL_ATTR_CONNECTION_POOLING为以下两种值: SQL_CP_OFF:默认参数设置,禁用连接池。 SQL_CP_ONE_PER_DRIVER:开启连接池,每个驱动支持一个连接池,驱动其中的所有连接共享一个池。 应用程序调用 SQLConnect 或 SQLDriverConnect 时,会从连接池中提取连接,如果连接已超时,或者池中没有与请求匹配的连接,则会打开一个新连接,连接池对调用应用程序是透明的。 应用程序调用 SQLDisconnect 时,链接不会被释放,而是会将连接放回连接池用于下一次使用。 在环境上调用 SQLFreeHandle释放环境句柄前,应用程序成功为环境设置的所有环境属性都会持续存在。 应用程序的连接在一段时间内处于非活动状态(未在连接中使用),则会从池中删除该连接。连接池的大小仅受内存限制和服务器限制。
-
日志诊断场景 ODBC日志分为unixODBC驱动管理器日志和gsqlODBC驱动端日志。前者可以用于追溯应用程序API的执行成功与否,后者是底层实现过程中的一些DFX日志,用来帮助定位问题。 unixODBC日志需要在odbcinst.ini文件中配置: 1 2 3 4 5 6 7 [ODBC] Trace=Yes TraceFile=/path/to/odbctrace.log [GaussMPP] Driver64=/usr/local/lib/gsqlodbcw.so setup=/usr/local/lib/gsqlodbcw.so gsqlODBC日志只需要在odbc.ini加上如下内容: [gaussdb] Driver=GaussMPP Servername=10.10.0.13 #数据库Server IP ... Debug=1 #打开驱动端debug日志 unixODBC日志将会生成在TraceFile配置的路径下,gsqlODBC会在系统/tmp/下生成mylog_xxx.log。
-
原型 1 2 3 4 SQLRETURN SQLSetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
-
参数 表1 SQLSetStmtAttr参数 关键字 参数说明 StatementHandle 语句句柄。 Attribute 需设置的属性。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位无符号整型值,或指向以空结束的字符串,二进制缓冲区,或者驱动定义值。如果ValuePtr参数是驱动程序指定值,ValuePtr可能是有符号的整数。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,则这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
-
日志诊断场景 ODBC日志分为unixODBC驱动管理器日志和gsqlODBC驱动端日志。前者可以用于追溯应用程序API的执行是否成功,后者是底层实现过程中的一些DFX日志,用来帮助定位问题。 unixODBC日志需要在odbcinst.ini文件中配置: 1 2 3 4 5 6 7 [ODBC] Trace=Yes TraceFile=/path/to/odbctrace.log [GaussMPP] Driver64=/usr/local/lib/gsqlodbcw.so setup=/usr/local/lib/gsqlodbcw.so gsqlODBC日志只需要在odbc.ini加上如下内容: [gaussdb] Driver=GaussMPP Servername=10.10.0.13 #数据库Server IP ... Debug=1 #打开驱动端debug日志 unixODBC日志将会生成在TraceFile配置的路径下,gsqlODBC会在系统/tmp/下生成mylog_xxx.log。
-
备机读场景 示例场景 数据库实例配备一主多备DN时,将所有DN的IP全部写入配置文件中,并且设置TargetServerType=standby或者TargetServerType=prefer-standby。 [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28 #所有DN的IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名。 Password=******** #数据库用户密码。 Port=8000 #数据库侦听端口。 TargetServerType=standby #设置连接备机。
-
连接池场景 连接池允许应用程序重复使用预先建立的连接,无需每次都重新建立连接。连接一旦创建并放入连接池,应用程序即可重复利用,避免了重复执行完整的连接过程。 这种池化连接的使用可以显著提升性能,尤其对于需要频繁建立和断开连接的中间层应用程序或网络连接的应用程序而言,性能提升尤为明显。 除了性能优势外,连接池架构还能够实现环境中的连接在单个进程中被多个组件共享的目的。这意味着,同一进程中的不同组件可以在不互相干扰的情况下共享连接池中的连接,进一步提高了系统的效率和资源利用率。 在连接池中,打开的连接可能被多个用户重用,如果您的应用程序脚本会更改数据库连接的状态,可能会导致数据泄露,为了安全起见,请谨慎评估使用连接池。 Linux场景配置 在odbcinst.ini配置文件中开启连接池,连接池相关参考配置如下: [ODBC] Pooling=Yes #开启连接池 [GaussMPP] CPTimeout=60 #一个连接在连接池中未被重用则会被释放的计时,默认为0,开启连接池需要设置为大于0 CPTimeToLive=60 #该驱动下连接池存在的计时 [GaussMPP2] CPTimeout=0 #关闭连接池 Windows场景配置 在打开的驱动管理器上,选择“连接池”,双击“GaussDB Unicode”驱动名称,选择“使用池连接此驱动程序”[默认为60s],该设置参数同Linux场景配置的CPTimeout,参考例图如下: 在应用程序中配置连接池参数,需要在环境句柄创建前通过调用SQLSetEnvAttr 设置连接池参数,其中的环境句柄应设置为 null,这使得 SQL_ATTR_CONNECTION_POOLING 成为进程级属性。目前在Windows上支持配置SQL_ATTR_CONNECTION_POOLING为以下两种值: SQL_CP_OFF:默认参数设置,禁用连接池。 SQL_CP_ONE_PER_DRIVER:开启连接池,每个驱动支持一个连接池,驱动其中的所有连接共享一个池。 应用程序调用 SQLConnect 或 SQLDriverConnect 时,会从连接池中提取连接,如果连接已超时,或者池中没有与请求匹配的连接,则会打开一个新连接,连接池对调用应用程序是透明的。 应用程序调用 SQLDisconnect 时,链接不会被释放,而是会将连接放回连接池用于下一次使用。 在环境上调用 SQLFreeHandle释放环境句柄前,应用程序成功为环境设置的所有环境属性都会持续存在。 应用程序的连接在一段时间内处于非活动状态(未在连接中使用),则会从池中删除该连接。连接池的大小仅受内存限制和服务器限制。
-
返回值 SQL_SUC CES S:表示调用正确。 SQL_SUCCESS_WITH_INFO:表示会有一些警告信息。 SQL_NEED_DATA:表示在执行SQL语句前没有提供足够的参数。 SQL_ERROR:表示比较严重的错误,如:内存分配失败、建立连接失败等。 SQL_INVALID_HANDLE:表示调用无效句柄。其他API的返回值同理。 SQL_STILL_EXECUTING:表示语句正在执行。 SQL_NO_DATA:表示SQL语句不返回结果集。
-
参数 表1 SQLColAttribute参数 关键字 参数说明 StatementHandle 语句句柄。 ColumnNumber 要检索字段的列号,起始为1,依次递增。 FieldIdentifier IRD中ColumnNumber行的字段。 CharacterAttributePtr 输出参数:一个缓冲区指针,返回FieldIdentifier字段值。 BufferLength 如果FieldIdentifier是一个ODBC定义的字段,而且CharacterAttributePtr指向一个字符串或二进制缓冲区,则此参数为该缓冲区的长度。 如果FieldIdentifier是一个ODBC定义的字段,而且CharacterAttributePtr指向一个整数,则会忽略该字段。 StringLengthPtr 输出参数:缓冲区指针,存放*CharacterAttributePtr中字符类型数据的字节总数,对于非字符类型,忽略BufferLength的值。 NumericAttributePtr 输出参数:指向一个整型缓冲区的指针,返回IRD中ColumnNumber行FieldIdentifier字段的值。
-
原型 1 2 3 4 5 6 7 SQLRETURN SQLColAttibute(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAtrriburePtr, SQLSMALLINT BufferLength, SQLSMALLINT *StringLengthPtr, SQLLEN *NumericAttributePtr);
-
原型 1 2 3 4 5 6 7 SQLRETURN SQLConnect(SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3);
-
参数 表1 SQLConnect参数 关键字 参数说明 ConnectionHandle 连接句柄,通过SQLAllocHandle获得。 ServerName 要连接数据源的名称。 NameLength1 ServerName的长度。 UserName 数据源中数据库用户名。 NameLength2 UserName的长度。 Authentication 数据源中数据库用户密码。 NameLength3 Authentication的长度。
-
ODBC接口参考 ODBC接口是一套提供给用户的API函数,本节将对部分常用接口做具体描述,若涉及其他接口可参考msdn(网址:https://msdn.microsoft.com/en-us/library/windows/desktop/ms714177(v=vs.85).aspx)中ODBC Programmer's Reference项的相关内容。 SQLAllocEnv SQLAllocConnect SQLAllocHandle SQLAllocStmt SQLBindCol SQLBindParameter SQLColAttribute SQLConnect SQLDisconnect SQLExecDirect SQLExecute SQLFetch SQLFreeStmt SQLFreeConnect SQLFreeHandle SQLFreeEnv SQLPrepare SQLGetData SQLGetDiagRec SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr 父主题: 基于ODBC开发
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格