 | 级别: 初级 George D. Simpson (geosimps@us.ibm.com), 软件工程师,IDS 质量保证, IBM
2008 年 1 月 03 日 IBM® Informix® Dynamic Server 11 (IDS 11) 提供了一些可辅助自动化管理与维护的新特性。了解新的调度器和
SQL API 如何可简化 DBA 的日常工作。
新的数据库管理特性简介
IBM IDS 11 提供了一组令人期待的新特性,这组新特性形成了 RDBMS 自管理的基础。这些工具使 DBA 可以收集服务器信息,并使用 SQL 作为远程管理工具调整数据库服务器。此外,调度器还可以对 SQL API 命令的执行进行调度,这很像 UNIX® cron 任务。IBM IDS 本身已是声誉卓著的免管理数据库,如今又降低了管理与问题诊断的成本,其价值更上一个台阶。
IBM IDS 11 实现的管理方面的增强有:
- 一个新的系统数据库(sysadmin)
- 数据库调度器
- 管理性 SQL 命令 API
-
SQLTRACE 特性
-
ONCONFIG 简化
熟悉这些特性的概念以及如何对它们进行故障诊断。另外,还学习使用数据库管理系统进行任务自动化的基础。本文提供了使用这些特性的详细语法。
为系统提供的新特性
新的管理选项
除了调度器外,SQL API 提供了一种编程式方法,用以执行当前管理工具的大部分功能。
SQL API 能做和不能做的事情有:
IBM IDS 现在为 finderr、
oninit、onmode、onspaces、onparams、ondblog、oncheck(仅 -c 选项)、onlog 和 onstat 实用程序提供了 SQL 接口。几乎所有这些管理实用程序的功能都可以集成到一个 SQL 脚本中,并按照预定时间执行或者临时执行。现在,通过在引擎中跟踪结果,就可以审计引擎的设置和管理任务。
但是,对于启动功能、关闭功能、onaudit、oncheck –p、dbschema、onperf、ER 管理任务以及数据备份/恢复和数据装载/卸载/导出等实用程序,目前还没有相应的 SQL API。
一开始,只有 “informix” 用户有权访问 sysadmin 数据库,但是可以将访问权限扩展到 DBSA 组中的任何用户或者系统管理员。如果没有为用户或会话用户 ID 添加适当的权限,则 SQL API 命令将失败,并产生错误
“-387 no connection permission”。作为 DBA,如果决定将 ph_task 表的插入权限授给一个用户,那么对于授予权限的对象要谨慎对待 —— 那些任务/监视器是以 informix 用户的身份运行的,这样做可能会无意中将其他特性的访问权限授予用户。因此,强烈建议不要向用户授予对 ph_task 的直接访问,而是将受信任的用户加入到 DBSA 组中。
新的环境参数
这个特性并未增加新的会话环境变量。
新的 ONCONFIG 参数
IBM IDS 11 增加了一个新的 ONCONFIG 变量,用于控制 SQL 跟踪实用程序。通过 SQLTRACE 可以监视最近执行的 SQL 语句,并且可以获得关于查询的各种性能度量。
SQLTRACE 有 4 个可选参数:
-
level
: 该参数用于设置所跟踪信息的数量。其默认值为“off”,可接受的值有 “low”、“med” 和 “high”。
-
LOW 级别跟踪以下 SQL 语句信息:
- 用户 ID
- 会话 ID
- 当前数据库名称
- 语句类型
- 语句执行时间
- RSAM 状态(缓冲区和页读/写、排序、锁请求和等待、逻辑日志记录和索引缓冲区读)
- 连接块状态(预计返回的行、预期成本、返回行数和语句类型)
- 数据库隔离级别
-
MED(中级)记录级别与 LOW 所跟踪的细节一样,但是增加了数据库名称、受语句影响的表的列表以及存储过程栈跟踪。
-
HIGH 级别与 MED 级别记录相同的内容,但是在后面增加了主机变量信息。
-
mode
:确定服务器是跟踪所有用户的信息(默认为 “global”)还是特定用户的信息。
-
ntraces
:指定 sysadmin@command_history 表中记录的 SQL 操作的数量。这是一个循环日志,当到达 ntraces 上限时,旧的数据将被覆盖。
-
size
:可存储的行的大小,单位为 KB。
例子
SQLTRACE level=HIGH, mode=user, ntraces=1000, size=1000 |
这些信息存储在 sysmaster@syssqltrace_info、sysmaster@syssqltrace 和
sysmaster@syssqltrace_iter 中。只有 “informix” 可以访问这些表。
另一个与 ONCONFIG 相关的变化是增强了对配置值的处理能力。现在,可以将 $INFORMIXDIR 字符串放在值的前面并展开。为了能够对值进行解析,配置值必须以 $INFORMIXDIR 开头;$INFORMIXDIR 如果不放在开头,就无法展开。
例如:
ROOTPATH $INFORMIXDIR/rootdbs |
新的语法
SQL API 被实现为一组 UDR: “admin” 和
“task”。可以使用任何带有数据库连接性的编程语言,例如 JDBC、PHP 或 dbaccess,将这些例程交付到服务器。另一种方法是利用新的数据库调度器来执行 SQL API 命令。SQL
管理语句的形式为:
EXECUTE FUNCTION [task | admin] ("command task", arg1, arg2, …)
例子:
EXECUTE FUNCTION TASK ("SET SQL TRACING ON");
EXECUTE FUNCTION ADMIN ("SET SQL TRACING OFF"); |
“admin” UDR 更倾向于在脚本或程序中使用,因为它返回一个正的或负的整数,表示命令成功与否。正整数表示成功,负整数表示失败。通过返回整数的绝对值,可以得到 sysadmin@command_history 表在 cmd_number 列上的主键。从这个表中可以发现关于一个命令的执行情况的信息。特别是,可以从 cmd_ret_msg 列查询实际的返回消息。
“task” UDR 对于 DBA 则更加友好,因为它返回描述性的消息,表明了执行的命令成功还是失败。它很容易理解,因为它返回一个 lvarchar,其中包含交付给服务器的语句,以及服务器响应、错误消息或两者兼有。
适当的情况下,task 和 admin UDR 可接受多种以双引号括起的文件和数据大小缩写。现在只需简单提供 “2GB” 或 “2000MB” 即可,无需用 KB 换算 2GB 的文件空间。可用的单位有 “B”、“KB”、“MB”、“GB”、“TB” 和 “PB”。默认为“KB”。
命令还可以接受包含环境变量的路径参数。环境变量只能出现在路径的开头部分,这样才能被展开。只有服务器(而不是用户会话)知道的那些环境变量才能被识别。
例子:
EXECUTE FUNCTION TASK ("CREATE DBSPACE", "dbs1", "$INFORMIXDIR/dbs1", "1GB"); |
检查结果
UDR 在 SQL API 中重新创建了很多已有的管理任务。在逻辑上,它们还返回很多已有的 IBM Informix 返回码和错误。
与数据库的管理系统相关的所有活动都被记录到 IDS 日志文件中。而更详细的数据和结果则保存在 sysadmin@command_history 表中。
表 1. command_history 表
|
列
|
类型
|
描述
| | cmd_number | 序号 |
| | cmd_exec_time | datetime year to second | 命令的起始时间 | | cmd_user | varchar | 执行命令的用户 | | cmd_hostname | varchar | 发起命令的主机名 | | cmd_executed | varchar | 执行的命令 | | cmd_ret_status | integer | cmd_executed 的返回码 | | cmd_ret_msg | lvarchar | cmd_executed 的返回消息 |
使用 SQL 查询确定 SQL API 发起的任务或脚本中的问题。
例子:
select cmd_number, cmd_ret_msg from command_history where cmd_number = <return>
;
|
如果发出一个无效的命令:
EXECUTE FUNCTION ADMIN ("CREATE ASPACE","dbs88"
,"/dev/raw99", "2GB","4GB",2); |
则返回 “-161”。
于是,发出下面的命令:
select cmd_number, cmd_ret_msg from command_history where cmd_number =161 |
检索命令编号和错误消息:
cmd_number 161
cmd_ret_msg Unknown command (CREATE ASPACE). |
假设在下一个命令中,将 ASPACE 更正为
DBSPACE,但是提供了一个无效的磁盘路径。用 cmd_number "162" 字段查询所有数据,可得出所发出的命令、由谁发出、何时发出、从何处发出等信息。
清单 1. command_history 的示例结果
cmd_number 161
cmd_exec_time 2007-07-03 14:29:03
cmd_user informix
cmd_hostname mymachine
cmd_executed CREATE DBSPACE
cmd_ret_status -1
cmd_ret_msg Unable to create file /dev/raw99 Error 13.
File creation failed for dbspace dbs88. |
上述查询中要使用正整数。如果 cmd_ret_status 中的值为负值,则表示出现了问题,因为 sysadmin 中的 cmd_number 大于 0。在该列中搜索不到负数。
监视您的系统
传感器和任务
虽然 SQL API 是在一个 shell 脚本中运行,或者作为一个 SQL 或 JDBC 程序运行,但是数据服务器现在提供了另外两种方法来使用 SQL API 和调度器执行操作。这两种类型在创建时都会被安装到 sysadmin 数据库中的 ph_task 表中。至于它们做什么以及如何响应,则取决于是将它们创建为 “传感器(sensor)” 还是 “任务(task)”。
“sensor” 使 DBA 可以定期记录服务器数据,以维护服务器活动的历史记录。有两种类型的传感器:
“SENSOR” 和 “STARTUP SENSOR”。startup 传感器与常规传感器一样,但是只在服务器启动时运行。传感器只记录数据,而依靠 DBA 进行反应。
“task” 使 DBA 可以分析实时的服务器数据,并自动作出调整。在这些任务当中,既有简单的任务,如调度以运行统计信息更新,也有复杂的任务,如观察系统变化并自行确定何时更新统计信息或增加日志。监视器包括了某种逻辑,使服务器可自我监视并采取纠正行动。与传感器类似,任务也有两种类型:“TASK” 和 “STARTUP TASK”。startup 任务只在服务器启动时运行。
下面创建 ph_task 表:
表 2. ph_task 表
|
列
|
类型
|
作用
|
用户条目
| | tk_id | serial | 这是系统分配的惟一的任务标识符
|
不能修改,由系统维护
| | tk_name | char(36) | 用户提供的任务名称。 必须惟一 | 任务的名称
例子: "mon_table_profile" | | tk_description | lvarchar | 关于任务的描述 |
对所创建任务的详细描述
例子: "Collect SQL profile information by table/fragment.
Index information is excluded from this collection."
| | tk_type | char(18) | 任务的类型 |
"SENSOR" |
"STARTUP SENSOR" |
"TASK" |
"STARTUP TASK"
| | tk_sequence | integer | 任务已执行的次数 |
不能修改,由系统维护
| | tk_result_table | varchar | 仅用于传感器。存放结果的表的名称 |
例子: "mon_table_profile" | | tk_create | varchar | 仅用于传感器。创建表 tk_result_table 的 SQL 语句 | 创建表的 SQL 语句 | | tk_dbs | varchar | 在其中执行 SQL 的数据库。必须是一个日志记录数据库 |
例子: "sysadmin" | | tk_execute | lvarchar | 执行的 insert/select 语句或存储过程 | 调度器执行的 SQL 语句或存储过程,结果存放在 tk_results_table 中 | | tk_delete | interval day to second | 仅用于传感器。删除任何早于这个时间的数据 | 空值,或指定保留结果的期限。在系统启动时清除 | | tk_start_time | datetime hour to second | 每天启动任务的时间。空值表示任务将一直运行 | DATETIME(6:00:00)HOUR TO SECOND | | tk_stop_time | datetime hour to second | 任务的每日停止时间。空值表示任务将一直运行 | DATETIME(18:00:00)HOUR TO SECOND | | tk_frequency | interval day to second | 任务的执行频率 | INTERVAL ( 30 ) MINUTE TO MINUTE | | tk_next_execution | datetime year to second | 下一次执行这个传感器的时间 | 不能修改,由系统更新 | | tk_total_executions | integer | 任务已执行的次数 | 不能修改,由系统更新 | | tk_total_time | float | 执行这个任务总共耗费的时间 | 不能修改,由系统更新 | | tk_Monday | boolean | 留待日后使用 |
| | tk_Tuesday | boolean | 留待日后使用 |
| | tk_Wednesday | boolean | 留待日后使用 |
| | tk_Thursday | boolean | 留待日后使用 |
| | tk_Friday | boolean | 留待日后使用 |
| | tk_Saturday | boolean | 留待日后使用 |
| | tk_Sunday | boolean | 留待日后使用 |
| | tk_attributes | integer | 当前任务的状态 | 不能修改,由系统更新 | | tk_group | varchar [foreign key] | 组名引用 ph_group(group_name) |
| | tk_enable | Boolean | 表示任务是活动的还是被禁用。负值表示永远不会执行任务 |
|
添加传感器或监视器很简单,只需一条 SQL 语句。首先需要的信息有:
- 对于创建的测试说明
- 存放结果的表的名称
- 用于创建结果表的语句
- 要执行的一个有效的 SQL 语句、复合 SQL 语句、SPL 或 UDR
- 想要以怎样的频率执行 SQL/SPL/UDR
例如,插入 mon_sys_env 传感器的 SQL 类似于:
清单 2. 插入 mon_sys_env 传感器的 SQL
INSERT INTO ph_task
(
tk_name,
tk_type,
tk_group,
tk_description,
tk_result_table,
tk_create,
tk_execute,
tk_stop_time,
tk_start_time,
tk_frequency,
tk_delete
)
VALUES
(
"mon_sysenv",
"STARTUP SENSOR",
"SERVER",
"Tracks the database servers startup environment.",
"mon_sysenv",
"create table mon_sysenv (ID integer, name varchar(250), value lvarchar(1024))",
"insert into mon_sysenv select $DATA_SEQ_ID, env_name, env_value
FROM sysmaster:sysenv",
NULL,
NULL,
"0 0:01:00",
INTERVAL ( 60 ) DAY TO DAY
); |
确定了要执行的 SQL 命令以及执行 SQL 命令的频率之后,可以将它插入到 sysadmin 数据库中的 ph_task 表中。
预安装的监视器和传感器
IBM IDS 11 附带了一些传感器和监视器,它们在服务器初始化时创建和启动。$INFORMIXDIR/etc/sysadmin/sch_tasks.sql 文件中提供了默认的任务和监视器的工作示例。还可以通过 onstat 的新选项 onstat -g dbc 查看已安装哪些监视器和任务。
IBM IDS 11 中预定义并安装了以下监视器和任务:
表 3. 预安装的传感器和监视器
|
名称
|
类型
|
描述
| | mon_command_history | 监视器 | 删减历史表。该监视器每天运行一次,删除 30 天之前的条目 | | mon_config_startup | 启动传感器 | 在启动时收集关于服务器 ONCONFIG 设置的信息 | | mon_config | 传感器 | 在服务器启动后收集关于服务器 ONCONFIG 变化的信息 | | mon_sysenv | 启动传感器 | 在启动时收集关于服务器环境的信息 | | mon_profile | 传感器 | 收集常规配置信息,包括虚拟处理器 ID、OS PID、
虚拟处理器类型、处于等待或执行状态的线程数量、用户和系统 CPU | | mon_vps | 传感器 | 监视 VPU 使用情况 | | mon_checkpoint | 传感器 | 收集检查点活动,包括起始时间、持续时间、刷新时间、检查点当前逻辑日志、逻辑日志的位置和时间戳 | | mon_memory_system | 传感器 | 跟踪 IBM IDS 的共享内存使用情况。特别是,它跟踪内存段的类型是 resident(type = 1)、virtual(2)还是 message(3)。而且,它还报告段的大小(KB)、已使用的内存空间(KB)和空闲内存 | | mon_table_profile | 结果表 | 按表/片段收集 SQL 配置信息。此处不收集索引信息,但是保存 parent part 号、总内存页数、已用内存页数、锁请求、对表的使用次数、修改的行数等数据 | | mon_table_names | 传感器 | 收集表名 | | mon_users | 传感器 | 收集用户信息,包括 SID、锁请求、锁等待、回滚和处理的行/事务 | | check_backup | 任务 | 运行一个 SPL 过程,以确认已做好备份 |
结束语
随着数据量的不断增长,RDBMS 系统的复杂性也日益增加。IBM IDS 数据库管理系统将 IBM Informix 遗留实用程序和自治管理合并到一个管理框架中,既加强了控制能力,又进一步降低了拥有成本。
这个新特性提供以下优点:
- 任务自动化工具,使引擎可以处理琐碎或无人看管的事件
- 可以收集更多的用户和系统度量信息
- 使用集中式方法管理和检查系统
有关语法的详细描述,请参阅本文的附录小节。可以自己尝试使用语法,了解 IDS 的这项新特性如何简化 DBA 的工作。
附录:SQL 管理 API 语法指南
管理任务通过 “task” 或
“admin” UDR 完成,并且被发送到
IBM IDS 11 服务器,发送方法与 SQL 命令的发送方法一样。
命令的格式为:要执行的格式加上必需的和可选的参数,参数之间用逗号隔开。除了页大小、part 号和 dbspace 号以外,所有命令和选项都以引号括起。文件路径、原始空间、偏移量和 dbspace 大小都要用引号括起:
EXECUTE FUNCTION TASK ("command", "options");
EXECUTE FUNCTION ADMIN ("command", "options");
例子:
清单 3. task 和 admin UDR
//To add 50 logical logs of 100 mb to the log space "logdbs", issue:
EXECUTE FUNCTION admin ("ADD LOG","logdbs","100M","50");
//Below, create a 2GB DB space "dbs1" of 4KB page size.
//Then add a 2GB chunk "dbs1a" with an offset of 2GB.
EXECUTE FUNCTION task "CREATE DBSPACE","dbs1","/dev/raw1/", "2GB","0KB",4);
EXECUTE FUNCTION task ("ADD CHUNK","dbs1a","/dev/raw1/","2GB","2GB"); |
下面列出了受支持的 SQL API 命令和它们的选项。所有必需的参数都以方括号([])标明。所有可选参数都以花括号({})标明。对于有多个不同值的 SQL API 命令,可接受的值之间用竖线(|)隔开。
管理命令:
-
ADD BUFFERPOOL [pagesize] {, # buffers} {, # lrus} {,
maxdirty} {, mindirty}
-
ADD CHUNK [dbspace name] [, pathname] {, size} {, offset}
-
ADD LOG [dbspace name] {, size} {, num logs} {, "after_current"}
-
ADD MEMORY [size]
-
ADD MIRROR [dbspace name] [, chunk path] [, chunk offset]
[, mirror path] [, mirror offset]
-
ALTER CHUNK OFFLINE [chunk path] [, chunk offset]
-
ALTER CHUNK ONLINE [chunk path] [, chunk offset]
-
ALTER LOGMODE [database name] {, "U" | "B" | "A" | "N"}
- “U” 将 logmode 改为 unbuffered 模式
- “B” 将logmode 改为 buffered 模式
- “A” 将 logmode 改为 ANSI 模式
- “N” 将 logmode 改为 non-logging 模式
- 默认模式为 unbuffered 日志模式
-
ALTER PLOG [dbspace name] {, size}
-
ARCHIVE FAKE
-
CHECK DATA [part number]
-
CHECK EXTENTS {dbspace number}
- 若提供一个 dbspace 号,则只检查这个
dbspace
- 若不提供参数,则检查所有 dbspace
-
CHECK PARTITION [part number]
-
CHECKPOINT {"BLOCK" | "UNBLOCK" |
"HARD" | "NORM"}
-
CLEAN SBSPACE [sbspace name | "ALL"]
-
CREATE BLOBSPACE [blobspace name] [, pathname] {, size} {,
offset} {, pagesize}{, first extent}{, next extent}
-
CREATE CHUNK [dbspace name] [, pathname] {, size} {, offset}
{, mirror path} {, mirror offset} {, "with_check"}
-
CREATE DBSPACE [dbspace name] [. pathname] {, size} {,
offset} {, pagesize} {, first extent} {, next extent}
-
CREATE SBSPACE [sbspace name] [, pathname] {, size} {,
offset}
-
CREATE TEMPDBSPACE [dbspace name] [, pathname] {, size} {,
offset}{, pagesize} {, first extent} {, next extent}
-
DROP BLOBSPACE [blobspace name]
-
DROP CHUNK [dbspace name] [, pathname] {, offset}
-
DROP DBSPACE [dbspace name]
-
DROP LOG [logical log number]
-
DROP SBSPACE [sbspace name]
-
DROP TEMPDBSPACE [dbspace name]
-
ONMODE :
EXECUTE FUNCTION task ("onmode", "A","5000"); |
表 4. onmode 参数
|
onmode 参数
|
onmode 描述
|
第三级参数
|
a
| 增加共享内存段大小 | 单位为 KB |
c
| 执行检查点 |
"block" | "unblock" | "hard" | "norm"
|
C
| 调整 Btree 扫描器 |
start # |
stop # |
"high" |
"low" |
"threshold" |
"alice " <mode>
|
d
| HDR 设置 DR 服务器类型 |
"standard" |
"primary", "<server name>" |
"secondary", "<server name>"
|
D
| 设置允许的最大 PDQ 优先级 | 0 到 100 之间的非负整数 |
e
| 配置或刷新共享语句缓存 |
"on" |
"off" |
"enable" |
"flush"
|
F
| 空闲的、未使用的内存 |
| | j | 将服务器切换到管理模式 |
|
l
| 切换日志 |
|
m
| 将服务器切换到多用户模式 |
|
M
| 决策支持内存 | 单位为 KB |
n
| 将共享内存缓冲区缓存设置为 non-resident |
|
O
| 覆盖空间,阻塞检查点 |
|
p
| 启动或移除特定类型的虚拟处理器 |
"+"|"-", "<number>", "<vpclass>"
|
Q
| 最大决策支持查询数 | 1 到 8,388,608 之间的非负整数 |
r
| 将内存锁定为常驻 |
|
S
| 设置最大决策支持扫描数。与
DS_MAX_SCANS 的设置一样 | 10 到 1,048,576 之间的非负整数 |
wf
| 更新 onconfig 文件并保存文件 | "<config_param>=<value>"
其中允许的配置参数有:
LISTEN_TIMEOUT
MAX_INCOMPLETE_CONNECTIONS
MAX_PDQPRIORITY
RESIDENT
DS_TOTAL_MEMORY
DS_MAX_QUERIES
DS_MAX_SCANS
DS_NONPDQ_QUERY_MEM
ONLIDX_MAXMEM
USELASTCOMMITTED
ADMIN_MODE_USERS
IFX_EXTEND_ROLE
LOG_INDEX_BUILDS
VP_MEMORY_CACHE_KB
RTO_SERVER_RESTART
RAS_PLOG_SPEED
RAS_LLOG_SPEED
AUTO_CKPTS
AUTO_AIOVPS
INDEX_SELFJOIN
USE_BATCHEDREAD
USE_KOBATCHEDREAD
TEMPTAB_NOLOG
EXPLAIN_STAT
SORT_MERGE_SIZE
SDS_TIMEOUT
DISTR_QUERY_FLAGS
|
wm
| 更新 onconfig 内存 | "<config_param>=<value>"
其中允许的配置参数与 “wf” 相同,并包括以下应用:
LRU_AUTO_TUNING
|
W | 设置语句缓存参数 |
|
Y
| 动态解释 | "<session ID> <2|1|0>" |
z
| 关闭用户 | 会话 ID 号 |
Z
| 关闭事务 | 共享内存地址 |
-
PRINT ERROR [error number]
-
PRINT PARTITION ["FULL" | partnumber]
-
RENAME SPACE [old dbspace name] [, new dbspace name]
-
RESET SYSADMIN {,dbspace name}
- 重新创建 sysadmin 数据库
- 可选,可提供重新创建的数据库所在的 dbspace
-
SCHEDULER START {number of threads}
-
SCHEDULER SHUTDOWN
-
SET CHUNK OFFLINE [chunk path] [, chunk offset]
-
SET CHUNK ONLINE [chunk path] [, chunk offset]
-
SET DATASKIP ON [dbspace name]
-
SET DATASKIP OFF [dbspace name]
-
SET SBSPACE ACCESSTIME ON
-
SET SBSPACE ACCESSTIME OFF
-
SET SBSPACE AVG_LO_SIZE [sbspace name] [, size]
-
SET SBSPACE LOGGING OFF [sbspace name]
-
SET SBSPACE LOGGING ON [sbspace name]
-
SET SQL TRACING INFO
-
SET SQL USER TRACING {session ID ,} ["ON" |
"OFF" | "CLEAR"]
-
SET SQL USER TRACING CLEAR {session ID}
-
SET SQL USER TRACING OFF {session ID}
-
SET SQL USER TRACING ON {session ID}
-
SET SQL TRACING OFF
-
SET SQL TRACING ON {num traces} {, trace size} {,
"LOW" | "MED" | "HIGH"}
- 对于
SQLTRACE 选项,默认跟踪数为 1000,默认跟踪大小为 512KB
-
SET SQL TRACING RESIZE [num traces {, trace size} {,
"LOW" | "MED" | "HIGH"}]
- 如果未指定跟踪大小或跟踪级别,服务器将使用之前设置的级别
-
START MIRRORING {dbspace name}
-
STOP MIRRORING {dbspace name}
参考资料 学习
获得产品和技术
- 用可直接从 developerWorks 下载的
IBM 试用软件 构建您的下一个开发项目。
讨论
关于作者  | |  | George Simpson 在 2001 年 IBM 并购 Informix 时加入 IBM。他从事过互操作性、备份与恢复、客户机与服务器 QA、EGL 以及压力测试等领域的质量保证工作。 |
对本文的评价
|  |