返回首页

gbase数据、南大通用产品文档:GBase8aDataTypeMappingxml/UserDataTypeMp

更新日期:2024年09月11日

ping.xml
该配置文件为源数据库与目标数据库数据类型对应表,文档结构如下:

-
-


-




GBase Mingration Toolkit 迁移工具手册

- 32 -

南大通用数据技术股份有限公司






......






特别说明:DataTypeMapping.xml 为工具默认给出的数据类型,如若需要
新添或者变动,需要手动改写配置文件,文档的作用是用在创建任务导航六页面的
重置功能。
UserDateTypeMapping.xml 首次加载内容是与DataTypeMapping.xml 保持
一致的,
当用户建立任务时在导航六中对数据类型对应做出类修改并成功创建任务
后,该配置文件将会自动记录用户最近一次的配置信息,再次创建相同数据库迁移
时,优先显示该配置文件的配置信息,若需要原始配置信息,只需点击重置按钮即
可。

功能描述
创建新的文本搜索配置。
一个文本搜索配置声明一个能将一个字符串划分成符号的文本
搜索解析器,加上可以用于确定搜索对哪些标记感兴趣的字典。
注意事项

若仅声明分析器,那么新的文本搜索配置初始没有从符号类型到词典的映射,因此会
忽略所有的单词。
后面必须调用ALTER TEXT SEARCH CONFIGURATION 命令创建映
射使配置生效。如果声明了COPY 选项,那么会自动拷贝指定的文本搜索配置的解析
器、映射、配置选项等信息。

若模式名称已给出,
那么文本搜索配置会在声明的模式中创建。
否则会在当前模式创建。

定义文本搜索配置的用户成为其所有者。

PARSER 和COPY 选项是互相排斥的,因为当一个现有配置被复制,其分析器配置也
被复制了。

若仅声明分析器,那么新的文本搜索配置初始没有从符号类型到词典的映射,因此会
忽略所有的单词。
语法格式
CREATE TEXT SEARCH CONFIGURATION name (
PARSER = parser_name |
COPY = source_config
) [ WITH ( {configuration_option = value} [, ...] )];
参数说明

name
要创建的文本搜索配置的名称。该名称可以有模式修饰。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1060

parser_name
用于该配置的文本搜索分析器的名称。

source_config
要复制的现有文本搜索配置的名称。

configuration_option
文本搜索配置的配置参数,
主要是针对parser_name 执行的解析器或者source_config 隐
含的解析器而言的。
取值范围:目前共支持default、ngram 两种类型的解析器,其中default 类型的解析器
没有对应的configuration_option、
ngram 类型解析器对应的configuration_option 如下表所示。
表14-1 ngram 类型解析器对应的配置参数
解析器
配置参数
参数描述
取值范围
ngram
gram_size
分词长度。
正整数,1~4
默认值:2
punctuation_ignore
是否忽略标点符号。
true(默认值)
:忽略
标点符号。
false:不忽略标点符
号。
grapsymbol_ignore
是否忽略图形化字
符。
true:忽略图形化字
符。
false(默认值)
:不忽
略图形化字符。
示例
--创建文本搜索配置。
gbase=#CREATE TEXT SEARCH CONFIGURATION ngram2 (parser=ngram) WITH (gram_size =
2, grapsymbol_ignore = false);
--创建文本搜索配置。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1061
gbase=#CREATE TEXT SEARCH CONFIGURATION ngram3 (copy=ngram2) WITH (gram_size =
2, grapsymbol_ignore = false);
--添加类型映射。
gbase=#ALTER TEXT SEARCH CONFIGURATION ngram2 ADD MAPPING FOR multisymbol WITH
simple;
--创建用户joe。
gbase=#CREATE USER joe IDENTIFIED BY 'xxxxxxxxx';
--修改文本搜索配置的所有者。
gbase=#ALTER TEXT SEARCH CONFIGURATION ngram2 OWNER TO joe;
--修改文本搜索配置的schema。
gbase=#ALTER TEXT SEARCH CONFIGURATION ngram2 SET SCHEMA joe;
--重命名文本搜索配置。
gbase=#ALTER TEXT SEARCH CONFIGURATION joe.ngram2 RENAME TO ngram_2;
--删除类型映射。
gbase=#ALTER TEXT SEARCH CONFIGURATION joe.ngram_2 DROP MAPPING IF EXISTS FOR
multisymbol;
--删除文本搜索配置。
gbase=#DROP TEXT SEARCH CONFIGURATION joe.ngram_2;
gbase=#DROP TEXT SEARCH CONFIGURATION ngram3;
--删除Schema 及用户joe。
gbase=#DROP SCHEMA IF EXISTS joe CASCADE;
gbase=#DROP ROLE IF EXISTS joe;
相关命令
ALTER TEXT SEARCH CONFIGURATION,DROP TEXT SEARCH CONFIGURATION

两阶段落实协议在执行事务期间发生系统或介质故障的情况下提供自动恢复机制。两阶段
落实协议确保所有参与的数据库服务器接收并执行同一操作(落实或回滚事务),而不论
是否有本地或网络故障。
如果有任何数据库服务器无法落实它这一部分的事务,那么一定会阻止参与该事务的所有
数据库服务器落实各自的工作。
何时使用两阶段落实协议
数据库服务器对任何在多个数据库服务器上修改数据的事务自动使用两阶段落实协议。
例如,假设连接了三台名为 australia、italy 和 france 的数据库服务器,如下图所示。
图: 已连接的数据库服务器

如果运行以下示例中显示的命令,那么结果是在三台不同的数据库服务器上执行一次更新
和两次插入。
CONNECT TO stores_demo@italy
BEGIN WORK
UPDATE stores_demo:manufact SET manu_code = 'SHM' WHERE
manu_name = 'Shimara'
INSERT INTO stores_demo@france:manufact VALUES ('SHM', 'Shimara', '30')
INSERT INTO stores_demo@australia:manufact VALUES ('SHM', 'Shimara',
'30')
COMMIT WORK
两阶段落实概念
每个全局事务均有一个协调者和一个或多个参与者,定义如下:

协调者可指导全局事务的解决方案。它决定全局事务是必须落实还是必须停止。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 499 -
两阶段落实协议始终将协调者的角色分配至当前数据库服务器。在单个事务期间,
协调者的角色无法更改。 在何时使用两阶段落实协议 中的样本事务中,协调者
是 italy。如果您将该示例中的第一行更改为以下语句,那么两阶段落实协议将协调
者的角色分配至 france:
CONNECT TO stores_demo@france
使用 onstat -x 选项显示分布式事务的协调者。
有关更多信息,
请参阅监视全局事务。


每个参与者指示一个事务分支的执行,
事务分支是涉及单个本地数据库的那部分全
局事务。全局事务在以下情况中包含几个事务分支:

应用程序使用多个进程为全局事务工作

多个远程应用程序为同一全局事务工作
在何时使用两阶段落实协议 中,参与者是 france 和 australia。协调者数据库服务
器 italy 也起着参与者的作用,因为它也在进行更新。
两阶段落实协议依赖两种通信,消息和逻辑日志记录:

消息在协调者和每个参与者之间传递。 来自协调者的消息包括事务标识号和指示
信息(如 prepare to commit、commit 或 roll back)。来自每个参与者的消息包括事
务状态和所采取操作的报告(如 can commit 或 cannot commit、committed 或 rolled
back)。

事务的逻辑日志记录保留在磁盘或磁带上以确保即使在参与的数据库服务器
(参与
者或协调者)上发生故障时的数据完整性和一致性。
有关更多的详细信息,请参阅两阶段落实和逻辑日志记录。
两阶段落实协议的阶段
在两阶段落实事务中,协调者将所有数据修改指示信息(例如,插入)发送至所有参与者。
然后,协调者启动两阶段落实协议。两阶段落实协议分两部分,预落实阶段和后决策阶段。

预落实阶段
在预落实阶段期间,协调者和参与者执行以下对话:
协调者
协调者指导每个参与者数据库服务器准备落实事务。
参与者
每个参与者通知协调者它是否可落实其事务分支。
协调者

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 500 -
协调者根据每个参与者的响应来决定落实还是回滚事务。它仅当所有参与者指示它
们可以落实各自的事务分支时才决定落实。如果有任何参与者指示它尚未准备好落
实其事务分支(或如果它未响应),那么协调者将决定结束全局事务。
后决策阶段
在后决策阶段期间,协调者和参与者执行以下对话:
协调者
协调者将落实记录或回滚记录写入协调者的逻辑日志,然后指示每个参与者数据库
服务器落实或回滚事务。
参与者
如果协调者发出落实消息,那么参与者通过将落实记录写入逻辑日志并将消息发送
至协调者(确认事务已落实)来落实事务。 如果协调者发出回滚消息,那么参与
者回滚事务,但不向协调者发送确认。
协调者
如果协调者发出消息以落实事务,它将在结束全局事务前一直等待以接收来自各参
与者的确认。如果协调者发出消息以回滚事务,它将不等待参与者的确认。
两阶段落实协议如何处理故障
两阶段落实协议设计为用可保留所有参与的数据库服务器上的数据完整性的方式来处理系
统和介质故障。如果发生故障,两阶段落实协议执行自动恢复。
自动恢复处理的故障类型
以下事件可能导致协调线程或参与者线程终止或挂起,因此需要自动恢复:

协调者的系统故障

参与者的系统故障

网络故障

管理员终止协调线程

管理员终止参与者线程
管理员在自动恢复中的角色
自动恢复中管理员的唯一角色是在系统或网络故障后将协调者和/或参与者恢复联机。
重要: 慢速网络无法触发自动恢复。除非协调者系统发生故障、网络发生故障或管理员终止协
调线程,否则此处描述的恢复机制均不会生效。
协调者故障的自动恢复机制
如果协调线程发生故障,各参与者数据库服务器必须决定在其落实或回滚事务之前还是在
其回滚事务之后启动自动恢复。此职责是假定结束的优化的一部分。 (请参阅假定结束的
优化。)

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 501 -
参与者故障的自动恢复机制
无论何时参与者线程预落实了在两阶段落实协议可完成之前就终止的一项工作,就会发生
参与者恢复。参与者恢复的目标是根据协调者作出的决定来完成两阶段落实协议。
根据协调者是决定落实还是回滚全局事务,参与者恢复可由协调者或者参与者驱动。
重要:
要在跨服务器事务打开的同时支持下级服务器关闭或重新启动之后的自动恢复,
sqlhosts
文件必须为可能启动分布式操作的每个数据库服务器包含一个条目。在自动恢复期间,协调者
的名称从逻辑日志恢复,且下级服务器与协调者重新连接以完成该事务。由于协调者总是使用
自己的 onconfig 文件的 DBSERVERNAME 配置参数中的名称来向各参与者标识它自己,
因此
协调者的 DBSERVERNAME 设置必须是参与者都已知的因特网协议连接名称,但是也可使用
正确的连接协议,为协调者和下级服务器之间的连接至少定义一个 DBSERVERALIASES 设
置。
下级服务器必须能够使用协调者的 DBSERVERNAME 设置或 DBSERVERALIASES 设置
连接到该协调者。
假定结束的优化
假定结束的优化是描述两阶段落实协议如何处理事务回滚的术语。
回滚是按以下方式处理的。当协调者确定事务必须回滚时,它发送消息给所有的参与者以
回滚它们的工作片段。 协调者不会等待该消息的确认,而是继续进行以关闭事务并将其从
共享内存中除去。如果参与者尝试确定该事务的状态,即查明事务已落实还是已回滚(例
如:在参与者恢复期间)- 它将在共享内存中找不到任何事务状态。参与者必定将此解释
为表示事务已回滚。