此部分包含特定于 Vertica 的编录管理函数。
编录函数
- 1: DROP_LICENSE
- 2: DUMP_CATALOG
- 3: EXPORT_CATALOG
- 4: EXPORT_OBJECTS
- 5: EXPORT_TABLES
- 6: INSTALL_LICENSE
- 7: MARK_DESIGN_KSAFE
- 8: RELOAD_ADMINTOOLS_CONF
1 - DROP_LICENSE
从全局编录中删除许可证密钥。删除过期的密钥是可选的。如果安装了有效的备用许可证密钥,Vertica 会自动忽略过期的许可证密钥。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DROP_LICENSE( 'license-name' )
参数
- license‑name
- 要删除的许可证的名称。使用系统表
LICENSES
的NAME
列中的名称(或长许可证密钥)。
超级用户
示例
=> SELECT DROP_LICENSE('9b2d81e2-aab1-4cfb-bc07-fa9a696e8f5e');
另请参阅
管理许可证2 - DUMP_CATALOG
返回 Vertica 编录的内部表示。此函数用于诊断目的。
DUMP_CATALOG
仅返回用户可见的对象。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DUMP_CATALOG()
特权
无
示例
以下查询获取 Vertica 编录的内部表示:
=> SELECT DUMP_CATALOG();
输出写入指定文件:
\o /tmp/catalog.txt
SELECT DUMP_CATALOG();
\o
3 - EXPORT_CATALOG
注意
此函数和 EXPORT_OBJECTS 返回等效的输出。生成 SQL 脚本,从而在其他群集上重新创建物理架构设计。
SQL 脚本符合以下要求:
-
仅包括用户有权访问的对象。
-
根据对象依赖关系对 CREATE 语句进行排序,以便可以按正确的顺序重新创建它们。例如,如果表在非 PUBLIC 架构中,则所需的 CREATE SCHEMA 语句位于 CREATE TABLE 语句之前。同样,表的 CREATE ACCESS POLICY 语句跟在表的 CREATE TABLE 语句之后。
-
如果可能,使用其 KSAFE 子句(如果有)创建投影,否则使用其 OFFSET 子句。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
EXPORT_CATALOG ( [ '[destination]' [, 'scope'] ] )
参数
注意
如果忽略所有实参,此函数会将您有权访问的所有对象导出到标准输出。- destination
- 指定发送输出的位置,为以下之一:
-
空字符串,将脚本写入标准输出。
-
SQL 输出文件的路径和名称,仅对 超级用户有效。如果指定一个不存在的文件,函数会创建一个相应的文件。如果您仅指定一个文件名,Vertica 会在编录目录中创建它。如果文件已经存在,函数将静默覆盖其内容。
-
- scope
- 确定要导出的内容。在指定范围内,EXPORT_CATALOG 导出您有权访问的所有对象:
-
DESIGN:导出所有编录对象,包括架构、表、约束、视图、访问策略、投影、SQL 宏和存储过程。
-
DESIGN_ALL:已弃用。
-
TABLES:导出所有表及其访问策略。另请参阅 EXPORT_TABLES。
-
DIRECTED_QUERIES:导出所有存储在数据库中的定向查询。有关详细信息,请参阅管理定向查询。
默认值: DESIGN
-
特权
无
示例
请参阅导出编录。
另请参阅
4 - EXPORT_OBJECTS
注意
此函数和 EXPORT_CATALOG 返回等效的输出。生成一个 SQL 脚本,可用于在其他群集上重新创建非虚拟编录对象。
SQL 脚本符合以下要求:
-
仅包括用户有权访问的对象。
-
根据对象依赖关系对 CREATE 语句进行排序,以便可以按正确的顺序重新创建它们。例如,如果表在非 PUBLIC 架构中,则所需的 CREATE SCHEMA 语句位于 CREATE TABLE 语句之前。同样,表的 CREATE ACCESS POLICY 语句跟在表的 CREATE TABLE 语句之后。
-
如果可能,使用其 KSAFE 子句(如果有)创建投影,否则使用其 OFFSET 子句。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
EXPORT_OBJECTS( ['[destination]' [, '[scope]'] [, 'mark-ksafe']] )
参数
注意
如果您省略所有参数,此函数会将您有权访问的所有对象导出到标准输出。- destination
- 指定发送输出的位置,为以下之一:
-
空字符串 (
''
) 将脚本写入标准输出。 -
SQL 输出文件的路径和名称。此选项仅对 超级用户有效。如果指定一个不存在的文件,函数会创建一个相应的文件。如果您仅指定一个文件名,Vertica 会在编录目录中创建它。如果文件已经存在,函数将静默覆盖其内容。
-
- scope
- 指定要导出为逗号分隔列表的一个或多个对象:
{ [database.]schema[.object] | [[database.]schema]object }[,...]
-
如果设置为空字符串,Vertica 会导出用户有权访问的所有对象。
-
如果您仅指定一个架构,Vertica 会导出该架构中的所有对象。
-
如果指定一个数据库,它必须是当前数据库。
-
- mark-ksafe
- Boolean 实参,指定生成的脚本是否调用 Vertica 函数 MARK_DESIGN_KSAFE。如果设置为 true(默认),MARK_DESIGN_KSAFE 为当前数据库使用正确的 K-safe 实参。
特权
无
示例
请参阅导出对象。
另请参阅
5 - EXPORT_TABLES
生成一个 SQL 脚本,可用于在其他群集上重新创建逻辑架构—架构、表、约束和视图。EXPORT_TABLES 仅导出用户有权访问的对象。
SQL 脚本符合以下要求:
-
仅包括用户有权访问的对象。
-
根据对象依赖关系对 CREATE 语句进行排序,以便可以按正确的顺序重新创建它们。例如,如果一个表引用了一个命名序列,则 CREATE SEQUENCE 语句在 CREATE TABLE 语句之前。同样,表的 CREATE ACCESS POLICY 语句跟在表的 CREATE TABLE 语句之后。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
EXPORT_TABLES( ['[destination]' [, '[scope]']] )
注意
如果忽略所有参数,EXPORT_CATALOG 会将您有权访问的所有表导出到标准输出。参数
- destination
- 指定发送输出的位置,为以下之一:
-
空字符串 (
''
) 将脚本写入标准输出。 -
SQL 输出文件的路径和名称。此选项仅对 超级用户有效。如果指定一个不存在的文件,函数会创建一个相应的文件。如果您仅指定一个文件名,Vertica 会在编录目录中创建它。如果文件已经存在,函数将静默覆盖其内容。
-
- scope
- 指定要导出的一个或多个表,如下所示:
[database.]schema[.table][,...]
- 如果设置为空字符串,Vertica 会导出您有权访问的所有非虚拟表对象,包括表架构、序列和约束。
- 如果您指定架构,Vertica 会导出该架构中的所有非虚拟表对象。
- 如果指定一个数据库,它必须是当前数据库。
特权
无
示例
请参阅导出表。
另请参阅
6 - INSTALL_LICENSE
在全局编录中安装许可证密钥。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
INSTALL_LICENSE( 'filename' )
参数
- filename
- 有效许可证文件的绝对路径名称。
超级用户
示例
=> SELECT INSTALL_LICENSE('/tmp/vlicense.dat');
另请参阅
管理许可证7 - MARK_DESIGN_KSAFE
如果出现故障,在您的环境中启用或禁用高可用性。启用恢复以前, MARK_DESIGN_KSAFE
查询编录,确定群集物理模式设计是否满足下列要求:
-
在所有节点上复制小的、未分段的表。
-
大型表 超投影被分段,每个分段在不同的节点上。
-
对于 K-safety=1,每个大型表投影至少有一个 伙伴实例投影(或者对于 K-safety=2,具有两个伙伴实例投影)。
伙伴投影也在各数据库节点上进行分段,但对分配进行了修改,使包含相同数据的分段分配在不同节点上。请参阅使用投影的高可用性。
MARK_DESIGN_KSAFE
不改变物理架构。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
MARK_DESIGN_KSAFE ( k )
参数
- k
- 指定 K-safety 等级,是以下之一:
-
2:如果架构设计满足 K-safety=2 的要求,则启用高可用性
-
1:如果架构设计满足 K-safety=1 的要求,则启用高可用性
-
0:禁用高可用性
-
超级用户
返回消息
如果您指定一个 1 或 2 的 k 值,Vertica 返回下列消息之一。
成功:
Marked design n-safe
失败:
The schema does not meet requirements for K=n.
Fact table projection projection-name
has insufficient "buddy" projections.
这里,n 是一个 K-safety 设置。
注意
-
数据库内部恢复状态会在整个数据库启动过程中持续,但未在启动时检查。
-
当标有 K-safe=1 的系统上的一个节点失败,其余节点仍可用于 DML 操作。
示例
=> SELECT MARK_DESIGN_KSAFE(1);
mark_design_ksafe
----------------------
Marked design 1-safe
(1 row)
如果物理模式设计不是 K-safe,消息显示不具有伙伴的投影:
=> SELECT MARK_DESIGN_KSAFE(1);
The given K value is not correct;
the schema is 0-safe
Projection pp1 has 0 buddies,
which is smaller that the given K of 1
Projection pp2 has 0 buddies,
which is smaller that the given K of 1
.
.
.
(1 row)
另请参阅
8 - RELOAD_ADMINTOOLS_CONF
更新群集中每个 UP 节点上的 admintools.conf。更新包括:
-
IP 地址和编录路径
-
当前数据库中所有节点的节点名称
此函数提供了一种手动方法来指示服务器更新所有 UP 节点上的 admintools.conf。例如,如果您重启一个节点,调用此函数来确认它的 admintools.conf 文件是准确的。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
RELOAD_ADMINTOOLS_CONF()
特权
超级用户示例
更新群集中每个 UP 节点上的 admintools.conf:
=> SELECT RELOAD_ADMINTOOLS_CONF();
RELOAD_ADMINTOOLS_CONF
--------------------------
admintools.conf reloaded
(1 row)