文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

支持指定导入导出五类基本对象

可获得性

本特性自MogDB 5.0.8版本开始引入。

特性简介

本特性支持逻辑备份工具(gs_dump)和恢复工具(gs_restore)指定导入导出package、function、procedure、trigger和type五类基本对象。

客户价值

增强逻辑备份和恢复工具的功能,提升MogDB的易用性。

特性描述

逻辑备份工具gs_dump支持导出指定基本对象

命令行新增指定备份导出指定对象的参数,实现指定package、function、procedure、trigger和type五类基本对象的导出功能。

  • 可以指定这五种基本对象的一个或多个;
  • 同一个基本对象可以指定多个参数名(如:--trigger name1 --trigger name2);
  • 只导出指定的对象,不考虑对象的依赖关系;
  • 对于trigger除了要导出定义外还要导出触发动作的function;
  • 导出的备份文件可以用gs_restore工具导入;
  • 不影响原有参数的设置。

使用说明

-- 指定导出trigger
gs_dump -f backup_dir/filename -F p --trigger trigger_name

-- 指定导出function
gs_dump -f backup_dir/filename -F p --function function_name(args)

-- 指定导出type
gs_dump -f backup_dir/filename -F p --type type_name

-- 指定导出package
gs_dump -f backup_dir/filename -F p --package package_name

-- 指定导出procedure
gs_dump -f backup_dir/filename -F p --procedure procedure_name(args)
  • --trigger trigger_name

    指定导出trigger

  • --function function_name(args)

    指定导出function

  • --type type_name

    指定导出type

  • --package package_name

    指定导出package

  • --procedure procedure_name(args)

    指定导出procedure

逻辑恢复工具gs_restore支持导入指定基本对象

命令行新增指定备份导入指定对象的参数,实现指定package、function、procedure、trigger和type五类基本对象的导入功能。

  • 支持导入自定义归档格式、目录归档格式和tar归档格式;
  • 只导入指定的对象,不考虑对象的依赖关系;
  • 支持从全量备份里导入指定类型的对象;
  • 支持按照通过gs_dump指定类型导出的归档文件导入指定对象;
  • 可以指定这五种基本对象的一个或多个;
  • 同一个基本对象可以指定多个参数名(如:--trigger name1 --trigger name2);
  • 不影响原有参数的设置。

使用说明

-- 指定导入trigger
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e -T trigger_name
-- 或
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e --trigger trigger_name

-- 指定导入function
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e -P function_name(args)
-- 或
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e --function function_name(args)

-- 指定导入type
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e --type type_name

-- 指定导入package
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e --package package_name

-- 指定导入procedure
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e --procedure procedure_name(args)
  • -T, --trigger trigger_name

    指定导入trigger

  • -P, --function function_name(args)

    指定导入function

  • --type type_name

    指定导入type

  • --package package_name

    指定导入package

  • --procedure procedure_name(args)

    指定导入procedure

注意事项

对于函数存储过程这种带参数的名称要求标明参数类型。

例如,定义一个函数func(a INTEGER, b INTEGER),函数名为:“func(integer, integer)”

为了兼容其他SQL语法,数据库可能会将某些参数类型转换成另一个类型,例如VARCHAR2会转成character varying,func(a INTEGER, table_name IN VARCHAR2) 会转换成:“func(integer, character varying)”。为了确保参数类型输入正确,可以采用如下SQL语句查询数据库中的函数参数类型:

SELECT p.proname AS function_name,
p.proargtypes AS parameter_types,
pg_catalog.pg_get_function_identity_arguments(p.oid) AS funcargs
FROM PG_PROC AS p
WHERE p.proname  = 'func_gs_dump_0001';

查询结果:

function name      |   parameter types   |     funcargs
-------------------+---------------------+---------------------------------
func gs dump 0001  | 1043                | table name character varing

通过SQL语句可以查到func_gs_dump_0001的参数类型是character varying,所以正确的对象名是"func_gs_dump_0001(character varying)"。

示例

-- 导出名为update_time的触发器
gs_dump -f backup_dir/db.sql -F p --trigger update_time

-- 导入名为update_time的触发器
gs_restore backup/MPPDB_backup.tar -p 8000 -d backupdb -e --trigger update_time

相关页面

gs_dumpgs_restore

Copyright © 2011-2024 www.enmotech.com All rights reserved.