返回首页

gbase数据、南大通用产品文档:GBase8salter plog 参数:更改物理日志(SQL 管理

更新日期:2024年09月11日

API)
随同 admin() 或 task() 函数,使用 alter plog 参数来更改物理日志的位置和大小。
语法

元素
描述
关键考虑
dbspace
物理日志的位置。
为物理日志分配的空间必须是连续的。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 693 -
元素
描述
关键考虑
phys_log_size
物理日志的大小,
以 KB 指定。
请参阅 admin() 和 task() 参数大小规
范。

用法
要仅更改大小,请指定物理日志的当前 dbspace。
这个函数等同于 onparams -p 命令。
示例
下列示例将物理日志移动到名为 phsdbs 的 dbspace:
EXECUTE FUNCTION task ("alter plog","physdbs","49 M");

可以更改环境变量的设置或创建新的变量来增加应用程序的灵活性。您可以在运行时
定义环境,而不是假定特定的环境配置。
该选项可以通过以下方式使您的应用程序受益:

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 33 -
应用程序变得较少以来预定义的环境。
用户可以在应用程序中输入他们的用户名和密码。
用户可以在同一计算机上运行的不同网络参数的两个应用程序。
相同的应用程序可以使用不同配置在客户机上运行。
以下 GBase 8s ESQL/C 库函数可用于设置和检索环境变量。
ifx_putenv()
修改或移除现有的环境变量或创建变量。
ifx_getenv()
检索环境变量的值。
重要: ifx_putenv() 函数设置 InetLogin 结构中的环境变量的值,ifx_getenv() 函数
检索来自 InetLogin 环境变量的值。
建议您使用这些函数设置和检索 InetLogin 字段值。

这些函数仅影响当前进程的本地变量。ifx_putenv() 函数不会更改命令级别环境。这
些函数操作仅对 GBase 8s ESQL/C 运行时库可访问的数据结构进行操作,
而不是操作系统
为进程创建的环境段。
当当前进程终止时,
环境恢复到调用进程的级别
(在大多数情况下,
操作系统级别)。
该过程不能直接将修改的环境传递给 _spawn() 、
_exec() 或 system() 创建的任何
新进程。这些新进程不接收 ifx_putenv() 添加的任何新的变量。然而,可以使用以下方法
将环境变量传递给新的进程。
当前进程使用 GBase 8s ESQL/C ifx_putenv() 函数创建环境变量。
当前进程使用 C putenv() 函数将环境变量放入操作系统环境中。
当前进程开始新的进程。
新进程使用 C getenv() 函数检索来自系统环境变量段的环境变量。
新进程使用 GBase 8s ESQL/C ifx_getenv() 函数将变量检索到运行时的环境段中。
环境变量指南
对于环境变量™,请遵循以下守则:
如果计划使用 ifx_putenv() 设置任何 GBase 8s 环境变量,则在调用任何其他 GBase
8s ESQL/C 库例程(包括 ifx_getenv())或任何 SQL 语句之前,将应用程序设置为所有这
些变量。
首次调用其他 GBase 8s ESQL/C 库函数或 SQL 语句需要初始化 GLS 语言环境。
此初始化加载并冻结 CLIENT_LOCALE 、
DB_LOCALE 和 DATE 、
TIME和 DATETIME
格式值的值。
如果 Setnet32 将注册表中 GBase 8s 环境变量设置为非空值,
那么 ifx_putenv() 函数
不会将此变量的在值更改为空字符串。
如果为 ifx_putenv() 函数调用中的环境变量指定一个空字符串,GBase 8s ESQL/C 将

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 34 -
从运行时环境段清除环境变量的任何值集。然后为此环境变量注册可用于应用程序的值。
不要在命名行中使用 setenv 或使用 C putenv() 函数更改环境变量,因为在应用程序
执行开始后,对操作系统环境段的更改对 ESQL 客户端接口 DLL 没有影响。
而是使用 ifx_putenv() 更改运行时环境段中的环境变量。
要在不影响环境表的情况下更改 ifx_getenv() 的返回值,使用 _strdup() 或 strcpy()
创建此字符串的副本。
限制:
不要将指针释放到 ifx_getenv() 返回的环境条目中。
另外,
不要将 ifx_putenv()
指针指向局部变量。然后退出声明变量的函数。
InetLogin 结构
Windows™ 环境中的 GBase 8s ESQL/C 客户端应用程序可以使用 InetLogin 结构
动态设置应用程序所需的配置信息。
重要: GBase 8s 仅支持与早期版本兼容的 InetLogin 结构。对于新开发,建议您
改用 ifx_getenv() 和 ifx_putenv() 函数。
InetLogin 结构的字段
InetLogin 结构是 login.h 头文件声明的全局 C 结构。
要在 GBase 8s ESQL/C 程序中使用此结果,
必须在您的源文件
(.ec)
中包含 login.h。
提示: 因为 login.h 不包含 GBase 8s ESQL/C 语句,可以使用 C #include 或
GBase 8s ESQL/C include 指令包含此文件。
下表在 InetLogin 结构中定义此字段。
表 1. InetLogin 结构的字段
Inetlogin 字段
数据类型
意义
InfxServer
char[19]
指定 GBASEDBTSERVER 环境变量的值
(缺省
数据库服务器)
DbPath
char[129]
指定 DBPATH 环境变量的值
DbDate
char[6]
指定 DBDATE 环境变量的值
DbMoney
char[19]
指定 DBMONEY 环境变量的值
DbTime
char[81]
指定 DBTIME 环境变量的值
DbTemp
char[81]
指定 DBTEMP 环境变量的值

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 35 -
DbLang
char[19]
指定 DBLANG 环境变量的值
DbAnsiWarn
char[1]
指定 DBANSIWARN 环境变量的值
GBase 8s Dir
char[255]
指定 GBASEDBTDIR 环境变量的值
Client_Loc
char *
指定 CLIENT_LOCALE 环境变量的值
DB_Loc
char *
指定 DB_LOCALE 环境变量的值
CollChar
char[3]
指定 COLLCHAR 环境变量的值
Lang
char[81]
指定 LANG 环境变量的值 for the database
locale
Lc_Collate
char[81]
指定 LC_COLLATE 环境变量的值 for the
database locale
Lc_CType
char[81]
为数据库本地环境指定 LC_CTYPE 环境变量
的值
Lc_Monetary
char[81]
为数据库本地环境指定 LC_MONETARY
环境变量的值
Lc_Numeric
char[81]
为数据库本地环境指定 LC_NUMERIC 环境变
量的值
Lc_Time
char[81]
为数据库本地环境指定 LC_TIME 环境变量的

ConRetry
char[4]
指定环境变量 GBASEDBTCONRETRY 的值
ConTime
char[4]
指定环境变量 GBASEDBTCONTIME 的值
DelimIdent
char[4]
指定环境变量 DELIMIDENT 的值
Host
char[19]
指定 HOST 网络参数的值
User
char[19]
指定 USER 网络参数的值
Pass
char[19]
指定 PASSWORD 网络参数的值
AskPassAtConne
char[2]
指示 sqlauth() 在连接时是否请求密码;包含是
或否的值。如果首字符是 Y 或 y 那么请设置

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 36 -
ct
AskPassAtConnect
Service
char[19]
指定 SERVICE 网络参数的值
Protocol
char[19]
指定 PROTOCOL 网络参数的值
Options
char[20]
保留备用
GBase 8s SqlHosts
char[255]
指定 GBASEDBTSQLHOSTS 环境变量的值
FetBuffSize
char[6]
指定 FET_BUF_SIZE 环境变量的值
CC8BitLevel
char[2]
指定 CC8BITLEVEL 环境变量的值
EsqlMF
char[2]
指定 ESQLMF 环境变量的值
GlDate
char[129]
指定 GL_DATE 环境变量的值
GlDateTime
char[129]
指定 GL_DATETIME 环境变量的值
DbAlsBc
char[2]
指定 DBALSBC 环境变量的值
DbApiCode
char[24]
指定 DBAPICODE 环境变量的值
DbAsciiBc
char[2]
指定 DBASCIIBC 环境变量的值
DbCentury
char[2]
指定 DBCENTURY 环境变量的值
DbCodeset
char[24]
指定 DBCODESET 环境变量的值
DbConnect
char[2]
指定 DBCONNECT 环境变量的值
DbCsConv
char[9]
指定 DBCSCONV 环境变量的值
DbCsOverride
char[2]
指定 DBCSOVERRIDE 环境变量的值
DbCsWidth
char[12]
指定 DBCSWIDTH 环境变量的值
DbFltMsk
char[4]
指定 DBFLTMASK 环境变量的值
DbMoneyScale
char[6]
指定 DBMONEYSCALE 环境变量的值
DbSS2
char[5]
指定 DBSS2 环境变量的值

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 37 -
DbSS3
char[5]
指定 DBSS3 环境变量的值
OptoFC
char[2]
不使用
OptMSG
char[2]
不使用
InetLogin 结构中的所有字段,
除了 DbAnsiWarn 、
Client_Loc 和 DB_Loc ,
都是 char 数据类型,并且都是空终止字符串。Client_Loc 和 DB_Loc 字段是字符指
针,GBase 8s ESQL/C 程序必须分配数据空间。
InetLogin 字段值
当应用程序执行 SQL 语句或需要配置信息的 GBase 8s ESQL/C 库函数之前必须设
置 InetLogin 值。
建议您使用 ifx_putenv() 和 ifx_getenv() 函数通过环境变量设置并检索
InetLogin 字段值,但是可以直接设置 InetLogin 字段值。
下图显示了客户端应用程序可能用于从最终用户获取网络参数的对话框。此应用程序
将使用用户输入的账户信息,并在 InetLogin 结构中设置适当的网络值。
图: 用户输入登录参数的对话框


下图显示在 InetLogin 结构中设置登录值的代码段。
应用程序通过对话框
(同 图 1
中一样)从最终用户获取这些值。
图: 提示用户输入 InetLogin 值的代码
strcpy(InetLogin.InfxServer, "mainsrvr");



case IDOK:
*szDlgString = '\0';
GetDlgItemText (hdlg, IDC_HOST, szDlgString, cbSzDlgMax);
strcpy(InetLogin.Host, szDlgString);

*szDlgString = '\0';
GetDlgItemText (hdlg, IDC_USER, szDlgString, cbSzDlgMax);
strcpy(InetLogin.User, szDlgString);

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 38 -
在上图中,如果用户输入主机信息,则该代码将 mainsrvr 数据库服务器的
InetLogin.Host 和 InetLogin.User 字段设置用户指定的主机名和用户名的名称。如果
没有输入主机信息,那么 GBase 8s ESQL/C 使用 mainsrvr 数据库服务器的子项中的
HOST 和 USER 注册表值。
提示:
如何设置 InetLogin 字段的另一示例,
请参阅 %GBASEDBTDIR%\demo\ilogin
目录下的 ILOGIN 演示程序。
配置值的优先级
当 Windows™ 环境中的客户端应用程序需要配置参数时,GBase 8s ESQL/C 从以下位置
获得这些参数:
InetLogin 结构
如果应用程序使用 InetLogin 结构,GBase 8s ESQL/C 首先检查此结构中的配置信息。
(要为此应用程序设置环境变量的值,ifx_putenv() 函数更改 InetLogin 字段的值。)
注册表的 GBASEDBT 子项
如果应用程序尚未在 InetLogin 中设置所需的配置信息,那么 GBase 8s ESQL/C 会在其
注册表信息的副本中检查此选项。
不必在 InetLogin 结构中定义所有值。
应用程序使用在注册表中使用在 InetLogin 中找
不到的任何值的配置信息。如果未设置相应的注册表值,应用程序将使用其缺省值。
重要: 应用程序首次需要配置信息时,GBase 8s ESQL/C 从注册表中读取此信息,并将其
存储在内存中。有关后续对注册表信息的引用,GBase 8s ESQL/C 访问此内存中的副本,
并且不会重新读取注册表。
如果您希望应用程序在运行时用户提供用户名和密码,或者如果应用程序具有与注册表中
一般值不同的配置信息,则配置信息的这种层级结构很有价值。例如,假设应用程序将
InetLogin 的 ConRetry 字段设置为 2 ,但是没有设置 ConTime 字段,如下列代码
段所示:
strcpy(InetLogin.ConRetry, "2");
EXEC SQL connect to 'accnts';
当 GBase 8s ESQL/C 建立到 accnts 数据库的连接时,它会尝试建立两次(而不是缺省值
一次),但是它仍然使用 15 秒的连接时间(内存中副本的默认值注册表信息)。如果
Setnet32 已更改连接值,那么GBase 8s ESQL/C 使用以更改的注册表值而非缺省值。
提示: 使用 Setnet32 实用程序定义注册表中的配置信息。

SHOW 以多种形式提供有关服务器的数据库、表、列或状态等信息。
表5- 115 参数说明

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1112




SHOW [FULL] COLUMNS FROM
{ [vc_name.][database_name.]table_name|
table_name [FROM [vc_name.]database_name]}
[LIKE 'pattern']
显示一个给定表中列的信息。
SHOW [FULL] FIELDS FROM
{ [vc_name.][database_name.]table_name|
table_name [FROM [vc_name.]database_name]}
[LIKE 'pattern']
显示一个给定表中列的信息。
SHOW INDEX FROM
{ [vc_name.][database_name.]table_name|
table_name [FROM [vc_name.]database_name]}
列出选定数据库中指定表的索
引。
SHOW [FULL] TABLES [FROM
[vc_name.]database_name] [LIKE ‘pattern’] [where
conditions]
列出一个给定数据库的非临时
表。
SHOW
[FULL]
TABLESPACES [FROM
[vc_name.]database_name]
显示表空间信息。
SHOW {DATABASES | SCHEMAS} [LIKE
'pattern']
显示数据库信息。
SHOW VCS
显示VC 信息。
SHOW ENGINES
显示ENGINES 信息。
SHOW TABLE STATUS [FROM
[vc_name.]database_name] { [LIKE 'pattern']
| [where conditions] }
显示所有表或者指定数据库中表
的当前状态的信息。
SHOW FUNCTION STATUS [where conditions]
显示已经创建成功的函数的状
态。
SHOW PROCEDURE STATUS [where conditions]
显示已经创建成功的存储过程的
状态。
SHOW CREATE {DATABASE | SCHEMA}
[vcname.]database_name
显示给定数据库的创建语句。
SHOW [FULL] CREATE TABLE
[vc_name.][database_name.]table_name [for sync]
显示给定表的创建语句
SHOW CREATE VIEW
[vc_name.][database_name.]view_namel
显示给定视图的创建语句。
SHOW CREATE FUNCTION
[vc_name.][database_name.]func_name
显示给定自定义函数的创建语
句。
SHOW CREATE PROCEDURE
[vc_name.][database_name.]proc_name
显示给定存储过程的创建语句。
SHOW CREATE SYNONYM
[vc_name.][database_name.]syn_name
显示给定的私有同义词的创建语
句。
SHOW CREATE PUBLIC SYNONYM
[vc_name.]sym_name
显示给定的公有同义词的创建语
句。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1113




SHOW GRANTS FOR {[user_name] |
CURRENT_USER[()]}
显示给定用户的GRANT 语句信
息。
SHOW TABLE LOCKS
显示表锁信息。
SHOW DISTRIBUTION TABLES [FROM
[vc_name.]database_name] [LIKE ‘pattern’]
列出指定数据库中的表信息。
SHOW OPEN TABLES FROM
[vc_name.]database_name { [LIKE 'pattern']
| [WHERE conditions] }
列出指定数据库下打开的表。
SHOW PRIORITIES [WHERE CONDITIONS]
显示优先级状态。
SHOW [FULL] PROCESSLIST
显示正在运行的线程。
SHOW [GLOBAL | SESSION] STATUS { [LIKE
'pattern'] | [WHERE conditions] }
提供状态信息。
SHOW [GLOBAL | SESSION] VARIABLES
{ [LIKE 'pattern'] | [WHERE conditions] }
显示一些GBase 8a MPP Cluster
系统变量的值。
SHOW ERRORS [LIMIT [offset,] row_count]
显示由最后一个语句产生的错误
信息。
SHOW COUNT(*) ERRORS
显示由最后一个语句产生的错误
信息的数量
SHOW WARNINGS [LIMIT [offset,] row_count]
显示由最后一个语句产生的警告
和注意信息。
SHOW COUNT(*)WARNINGS
显示由最后一个语句产生的警告
和注意信息的数量。
SHOW GCLUSTER ENTRY
显示集群中连接数最少的节点。
SHOW [GCLUSTER] NODES
用于获取coordinator 集群或data
集群的节点信息。