更新时间:2024-04-22 GMT+08:00
分享

步骤一:创建迁移项目

操作场景

  • 创建迁移项目基于源数据库已评估的项目,创建从源数据库到目标数据库的对象迁移任务。
  • 此处用户选择要迁移的源数据库对象的目标数据库。
  • 每个迁移项目对应一个评估项目,但可以基于一个评估项目多次创建迁移项目。

使用建议

建议使用非生产环境的目标数据库。

约束限制

  • 数据库的系统库由数据库自身维护,可能会禁止用户的创建操作,因此不建议您使用系统库进行对象迁移。MySQL数据库的系统库有performance_schema、information_schema、mysql以及sys;GoldenDB数据库的系统库有information_schema、mysql、performance_schema以及sys等;PostgreSQL数据库系统库有postgres库等。
  • 以GaussDB为目标库,当源端的对象名称超过63个字节时,迁移至GaussDB,对象名将会被截断。
  • 使用系统库创建迁移项目可能导致权限检查失败。
  • 每个用户最多支持10迁移任务配额。

前提条件

  • 用户需拥有创建UGO迁移项目的对应权限。具体权限,可参见权限管理进行设置。
  • 创建迁移项目至少需要一个状态显示为“完成 创建迁移项目”的评估项目。
  • 待连接的目标库正常,无欠费、停机等情况。
  • 目标数据库连接用户需要具有创建/删除/更改schema、表、程序、索引、用户、函数、视图等其他迁移对象的权限。具体可查看权限检查报告

操作步骤

  1. 登录UGO控制台。
  2. 单击左侧导航栏结构迁移 > 对象迁移
  3. 在对象迁移页面,单击右上角的“创建迁移项目”
  4. 在创建迁移项目页面,完成信息的填写,具体参见表1

    图1 创建迁移项目
    表1 创建迁移项目参数说明

    参数名称

    说明

    项目名称

    项目名称必须唯一。

    长度范围为5到50个字符,只允许包含英文字母、数字、下划线、中划线,不区分大小写且必须以字母开头、数字或字母结束的唯一名称。

    异常通知方式(可选)

    默认方式为SMN主题。

    若出现异常情况,是否通过消息通知服务(Simple Message Notification)向用户发送消息。

    若需要发送消息,需要先创建SMN主题,具体请参见创建主题

    说明:

    后续操作

    创建完主题后,您就可以添加订阅了。完成创建和添加订阅后,后续的告警通知即可通过SMN服务发送到你配置的订阅终端。

    通知场景:

    当该账号被冻结或解冻时,可通过SMN发送通知消息。

    企业项目

    对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。

    如果需要自定义企业项目,请前往项目管理服务进行创建。关于如何创建项目,详见《项目管理用户指南》。

    权限检查

    • 跳过权限检查,默认不勾选:
      • 目标库为非GaussDB时,跳过权限检查后,生成的迁移项目后,“权限检查报告”为空。
      • 当目标库为GaussDB时:

        不勾选“跳过权限检查”,"不通过"的检查项需要检查修改使之通过,通过检查后,"预检查"页面可单击“下一步”正常操作。

        勾选“跳过权限检查”,"不通过"的检查项结果变为"警告","预检查"页面可单击“下一步”正常操作。

    说明:

    要在目标库上创建对象,用户需要具有一些数据库权限,例如:创建表、创建函数等。如果跳过权限检查,则不检查用户是否具有这些权限。

    但是,在迁移中,当在目标数据库上执行转换的sql时,可能都会由于缺乏权限而迁移失败。

    选择评估项目

    下拉选择已有的评估项目。

    • 目标数据库:显示已选定的目标数据库类型。每个租户最多可同时连接5个目标数据库。
    • 目标数据库版本:显示已选定的目标数据库版本。
    • 数据库信息输入方式:
      说明:

      若目标库为GaussDB 主备版-3.1 企业版,请选择“手动输入”进行信息填写。

    选择实例

    选择实例

    • 数据库实例:选择目标库的实例。若没有可用的数据库例,可在控制台上创建。

      查看数据库实例:单击“查看数据库实例”,可跳转至对应目标数据库的实例管理界面,查看该类实例的相关信息。

      查看不可选实例:单击“查看不可选实例”,弹框显示不可选实例的名称及不可选的原因。

    • 数据库名称:依据所选目标库的实例,填写对应的数据库名称。最多50个字符。
      说明:

      若选择GaussDB为目标库,目标数据库建议使用与源数据库对应的兼容模式数据库。

    • 用户名:目标数据库的用户名。建议连接用户应具有管理员角色。
    • 密码:目标数据库的密码。

    手动输入主机名/IP地址

    手动输入

    • 网络类型:通过弹性公网IP(Elastic IP,EIP)进行源库连接。

      如果目标库网络有IP白名单限制,请将弹性公网IP添加至目标库网络白名单,确保UGO可以连接目标库。

      华南-广州弹性公网IP:124.71.59.255

      亚太-新加坡弹性公网IP:110.238.109.54

      拉美-圣地亚哥弹性公网IP:159.138.116.198

    • 依据上一步的选择、填写具体的主机名称或者主机IP地址。
    • 主机IP地址:填写具体目标库主机IP地址。

      当目标库为GaussDB主备版时,支持只填写主节点IP,或主节点+多个备节点IP,IP地址之间用英文逗号分割,连接数据库时,系统会自动选择主节点ip进行连接。

      当目标库为GaussDB分布式版时,支持填写一个或多个CN节点IP,IP地址之间用英文逗号分割,连接数据库时,优先使用输入靠前的IP进行连接;若前一个ip节点异常导致无法创建连接,会尝试使用下一个ip创建连接;若第一个可连接的ip节点异常导致不可写,则测试连接正常,但权限检查、迁移对象将会报错提示。

    • 主机名:填写目标库主机名称。
    • 支持多个主机名,总长度不超过1024位,各个主机名之间用英文逗号分割。
    • 主机名格式形如:
      • example.com
      • {part1}.{part2}.{part3}
    • 主机名单个长度不超过253位,各个part由英文符号“. ”进行分割。
    • 对于{part}格式规则要求:

      1. 长度在1到127位之间。

      2. 有且只能包含a-z,A-Z,0-9,“-”。

      3. 开头字符可以为a-z,A-Z,0-9。

      4. 结尾字符不能是“-”。

    • 主机端口:目标数据库的端口。
    • 数据库名称:填写对应的数据库名称。最多50个字符。
    • 用户名:目标数据库的用户名。建议连接用户应具有管理员角色。
    • 密码:目标数据库的密码。

    选择要迁移的schema

    • 全部迁移:选择UGO从源数据库收集的模式范围,以执行迁移任务。
    • 不全部迁移:选择已评估项目中的schema,可缩小迁移范围。

    默认勾选“全部迁移”

    SSL类型(可选)

    • 不使用SSL:将启用不安全协议,存在潜在风险。
    • 无身份验证SSL:将启用安全加密传输。
    • 单项SSL:将对数据库身份进行认证并启用安全加密传输。
      • 上传SQL文件:单击后将文件类型更改为“所有文件 (*.*)”,找到目标库的根证书JKS类型进行上传。
      • 信任密码:用于访问证书的信任库密码。
    说明:
    • 若选择“单项SSL”,必须同时正确选择上传文件、填写信任密码,这些信息为用户私有。但当目标库为GaussDB和PostgreSQL时,需上传PEM类型的根证书文件,且不需要输入密码。
    • SSL(Secure Socket Layer,安全套接层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。

    标签(可选)

    可使用TMS的预定义标签功能将相同的标签添加到不同的云资源中。具体请查看标签管理服务 TMS

    输入一对一的“键”和“值”后单击“添加”

    最多可添加10个标签。具体操作详见标签

  5. 单击“测试连接”进行检查。

    • 测试连接成功:按钮高亮显示,同时“创建”按钮高亮显示。
    • 测试连接失败:弹出“错误”提示框。

  6. 单击“下一步”进入预检查界面。

    图2 预检查
    • 兼容模式检查:若源库为Oracle、MySQL、GoldenDB、Postgres,目标库为GaussDB时,会进行GaussDB兼容模式的检查,如果用户选择了与源库类型不一致的兼容模式,则将风险提示给用户,该检查仅为提示性信息,不会影响后续操作。
      表2 兼容模式情况

      兼容性情况说明

      源库为Oracle、MySQL、Postgres,目标库为GaussDB,如果兼容模式不匹配,会出现兼容性提示。

      源库为Oracle、MySQL、Postgres,目标库为GaussDB,如果兼容模式匹配,不会出现兼容性提示。

      源库为GoldenDB时,若目标库为GaussDB MySQL兼容模式,兼容模式匹配,否则出现兼容性提示。

      目标库不是GaussDB,则不会进行兼容性检查。

      源库不为Oracle、MySQL、GoldenDB、Postgres,且目标库目标库 GaussDB,检查结果成功,会出现兼容性提示。

    • 字符集校验:对源库和目标库的字符集进行检查,将检查结果展示给用户,该检查仅为字符集兼容结果提示性信息,与后续操作无关,字符集兼容情况如表3表5所示。
      表3 Oracle到GaussDB字符集兼容情况

      源库

      目标库

      告警信息

      SQL_ASCII

      SQL_ASCII

      成功

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      US7ASCII

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      ISO-8859-1

      SQL_ASCII

      告警

      ISO-8859-1

      成功

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      LATIN1

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      成功

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      GB2312

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      成功

      GBK

      成功

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      ZHS16GBK

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      成功

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      GBK

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      成功

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      ZHS32GB18030

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      GB18030

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      AL16UTF16

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF16

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      AL32UTF8

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF8

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF32

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      其他字符集

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      表4 MySQL到GaussDB字符集兼容情况

      源库

      目标库

      告警信息

      ISO-8859-1/LATIN1

      SQL_ASCII

      告警

      ISO-8859-1

      成功

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      GB2312

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      成功

      GBK

      成功

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      GBK

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      成功

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      GB18030

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF16

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF8

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF32

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      ascii

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      utf8mb3

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      成功

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      utf8mb4

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      UTF16LE

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      成功

      UTF8

      成功

      UTF32

      成功

      其他字符集

      告警

      其他字符集

      SQL_ASCII

      告警

      ISO-8859-1

      告警

      LATIN1

      告警

      GB2312

      告警

      GBK

      告警

      GB18030

      告警

      UTF16

      告警

      UTF8

      告警

      UTF32

      告警

      其他字符集

      告警

      表5 Oracle到Mysql字符集兼容情况

      源库

      目标库

      告警信息

      SQL_ASCII

      ascii

      成功

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      告警

      UTF16LE

      告警

      UTF8

      告警

      UTF32

      告警

      utf8mb4

      告警

      其他字符集

      告警

      US7ASCII

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      告警

      UTF16LE

      告警

      UTF8

      告警

      UTF32

      告警

      utf8mb4

      告警

      其他字符集

      告警

      ISO-8859-1

      ascii

      告警

      latin1/ISO-8859-1

      成功

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      告警

      UTF16LE

      告警

      UTF8

      告警

      UTF32

      告警

      utf8mb4

      告警

      其他字符集

      告警

      LATIN1

      ascii

      告警

      latin1/ISO-8859-1

      成功

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      告警

      UTF16LE

      告警

      UTF8

      告警

      UTF32

      告警

      utf8mb4

      告警

      其他字符集

      告警

      GB2312

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      成功

      gbk

      成功

      utf8mb3

      成功

      gb18030

      成功

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      ZHS16GBK

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      成功

      utf8mb3

      成功

      gb18030

      成功

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      GBK

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      成功

      utf8mb3

      成功

      gb18030

      成功

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      ZHS32GB18030

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      成功

      utf8mb3

      成功

      gb18030

      成功

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      GB18030

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      成功

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      AL16UTF16

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      UTF16

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      AL32UTF8

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      UTF8

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      UTF32

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      成功

      UTF16LE

      成功

      UTF8

      成功

      UTF32

      成功

      utf8mb4

      成功

      其他字符集

      告警

      其他字符集

      ascii

      告警

      latin1/ISO-8859-1

      告警

      gb2312

      告警

      gbk

      告警

      utf8mb3

      告警

      gb18030

      告警

      UTF16

      告警

      UTF16LE

      告警

      UTF8

      告警

      UTF32

      告警

      utf8mb4

      告警

      字符集兼容性结果说明:

      • 告警:源库和目标库字符集不完全兼容。
      • 成功:源库和目标库字符集兼容。
    • GaussDB数据库三权分立检查:目标库为GaussDB时,会进行三权分立检查。三权分立后,系统管理员即拥有SYSADMIN权限的用户将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力,即不再拥有创建角色和用户的权限,也不再拥有查看和维护数据库审计日志的权限。在UGO的对象迁移功能上,体现为开启三权分立后,SYSADMIN用户无法完成USER、ROLE、GRANT的迁移。
      • 目标库为GaussDB时,开启三权分立,并迁移用户为SYSADMIN时,才会展现此检查项,其余情况,此检查项均不展示。
      • 在开启三权分立后,如果SYSADMIN用户继续拥有安全管理员(拥有CREATEROLE权限)和审计管理员权限,这是来回切换权限模型导致的。如需从非三权分立权限管理模型切换至三权分立权限管理模型,应重新审视已有用户的权限集合,进行权限裁剪。
    • sysadmin权限检查:目标库为GaussDB、关闭三权分立,迁移用户为SYSADMIN时,展示此检查项,检查结果为“成功”。
    • 创建schema权限检查:目标库为GaussDB、迁移用户非SYSADMIN时,展示此检查项,检查迁移用户是否有权限在目标库创建schema,数据库对象需要在schema下创建。

      赋权语句:GRANT CREATE ON DATABASE <db_name> TO <user>;

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

      此检查项为强制检查项。

    • 创建/修改用户和角色权限检查:目标库为GaussDB、迁移用户非SYSADMIN、并且迁移USER、ROLE、GRANT对象时,展示此检查项。检查迁移用户是否有权限在目标库实例下创建或修改用户和角色。

      赋权语句:ALTER USER <user> WITH CREATEROLE;

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

      此检查项为强制检查项。

    • public Schema创建对象权限检查:目标库为GaussDB,迁移用户为普通用户或三权分立下的SYSADMIN用户时,展示此检查项,该权限较为复杂,涉及权限的组合。

      在较低版本的GaussDB中(GaussDB 2.7及以下),需要拥有public Schema的CREATE权限,才可以创建表、视图、索引、序列、PACKAGE、类型、触发器等对象。

      在较新版本的GaussDB中(GaussDB 3.1及以上),开启三权分立的SYSADMIN用户需要拥有public Schema的CREATE权限,才可以创建表、视图、索引、序列、PACKAGE、类型、触发器等对象。

      在较新版本的GaussDB中(GaussDB 3.1及以上),普通用户需要拥有public Schema的CREATE权限,以及对象对应的 ANY 权限,如创建表或视图需要CREATE ANY TABLE权限、创建索引的CREATE ANY INDEX权限、创建序列的CREATE ANY SEQUENCE权限、创建PACKAGE的CREATE ANY PACKAGE权限、创建类型的CREATE ANY TYPE权限、创建触发器的CREATE ANY TYPE权限。

      在三权分立的情况下,只有初始用户有权限在public Schema下创建函数、存储过程、同义词。

      在非三权分立的情况下,只有初始用户和sysadmin用户有权限在public Schema下创建函数、存储过程、同义词。

      public Schema的CREATE权限赋权语句:GRANT CREATE ON SCHEMA public TO <user>;

      ANY权限赋权语句:

      GRANT CREATE ANY TABLE TO <user>;//用户能够在public模式和用户模式下创建表或视图。

      GRANT CREATE ANY SEQUENCE TO <user>;//用户能够在public模式和用户模式下创建序列。

      GRANT CREATE ANY INDEX TO <user>;//用户能够在public模式和用户模式下创建索引。

      GRANT CREATE ANY PACKAGE TO <user>;//用户能够在public模式和用户模式下创建PACKAGE。

      GRANT CREATE ANY TYPE TO <user>;//用户能够在public模式和用户模式下创建类型。

      GRANT CREATE ANY TRIGGER TO <user>;//用户能够在public模式和用户模式下创建触发器。

      • 数据库实例会包含多个数据库,每个数据库都有自己的public Schema,赋权的时候需要在对应的数据库内执行。
      • 在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
      • 此检查项为非强制检查项,基于GaussDB的权限设计,检查结果固定为警告。
    • 已存在schema的权限检查:目标库为GaussDB,迁移用户为普通用户或三权分立下的SYSADMIN用户时,展示此检查项。

      检查迁移用户是否有权限,目标库中若已经存在待迁移的schema,那么需要将此schema的owner授权给迁移用户,即需要使迁移用户成为此owner的成员。

      赋权语句:GRANT <schema_owner> TO <user>;

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权;也可使用schema_owner赋权。

      迁移用户在权限不足的时候,是无法查询出schema的owner的,需要使用更高权限的用户来查询

    • GRANT 表空间权限检查:目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户在目标库内的权限。

      赋权语句:

      GRANT <privilege> ON TABLESPACE <tablespace_name> TO <user>;

      GRANT <privilege> ON TABLESPACE <tablespace_name> TO <user> WITH GRANT OPTION;

      声明了WITH GRANT OPTION,则被授权的用户也可以将此权限赋予他人。

      privilege包括CREATE、ALTER、DROP、COMMENT、CREATE WITH GRANT OPTION、ALTER WITH GRANT OPTION、DROP WITH GRANT OPTION、COMMENT WITH GRANT OPTION

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

    • GRANT 数据库权限检查:目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户在目标库内的权限。

      赋权语句:

      GRANT <privilege> ON DATABASE <db_name> TO <user>;

      GRANT <privilege> ON DATABASE <db_name> TO <user> WITH GRANT OPTION;

      声明了WITH GRANT OPTION,则被授权的用户也可以将此权限赋予他人。

      privilege包括CREATE、CONNECT、TEMPORARY、ALTER、DROP、COMMENT、CREATE WITH GRANT OPTION、CONNECT WITH GRANT OPTION、ALTER WITH GRANT OPTION、TEMPORARY WITH GRANT OPTION、DROP WITH GRANT OPTION、COMMENT WITH GRANT OPTION

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

    • GRANT ANY权限检查:目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户是否有权限在目标库内将ANY权限授予其他用户。

      赋权语句:GRANT <privilege> TO <user> WITH ADMIN OPTION;

      声明了WITH ADMIN OPTION,被授权的用户可以将该权限再次授予其他角色或用户。

      privilege包括CREATE ANY TABLE、ALTER ANY TABLE、DROP ANY TABLE、SELECT ANY TABLE、UPDATE ANY TABLE、INSERT ANY TABLE、DELETE ANY TABLE、CREATE ANY SEQUENCE、ALTER ANY SEQUENCE、DROP ANY SEQUENCE、SELECT ANY SEQUENCE、CREATE ANY INDEX、ALTER ANY INDEX、DROP ANY INDEX、CREATE ANY FUNCTION、EXECUTE ANY FUNCTION、CREATE ANY PACKAGE、EXECUTE ANY PACKAGE、CREATE ANY TYPE、ALTER ANY TYPE、DROP ANY TYPE、CREATE ANY SYNONYM、DROP ANY SYNONYM、CREATE ANY TRIGGER、ALTER ANY TRIGGER、DROP ANY TRIGGER。

      数据库实例会包含多个数据库,ANY权限和数据库绑定,赋权时需要在对应的数据库内执行。

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

    • GRANT pg_catalog Schema权限检查:目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户是否有权限在目标库内将创建数据库连接权限授予其他用户。

      赋权语句:GRANT <privilege> TO <user> WITH ADMIN OPTION;

      数据库实例会包含多个数据库,每个数据库都有自己的pg_catalog Schema,赋权时需要在对应的数据库内执行。

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

    • GRANT database link权限检查:目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户是否有权限在目标库内将创建数据库连接权限授予其他用户。

      赋权语句:GRANT CREATE PUBLIC DATABASE LINK TO <user> WITH GRANT OPTION;

      数据库实例会包含多个数据库,赋权时需要在对应的数据库内执行。

      在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。

    • GRANT 角色和用户授权权限检查:目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项。检查结果为“警告”,检查迁移用户是否有权限授予或修改其他用户的权限。

      可使用关闭三权分立后创建的SYSADMIN用户执行迁移任务。

    • 目标库GUC参数检查:目标库为GaussDB 3.1及以上版本,源库为 Oracle、Microsoft SQL Server、DB2 for LUW 、MySQL时,展示此检查项。检查用户是否设置了GUC参数配置,详细检查项参考表6

      针对GUC的校验是基于评估选定的目标数据库版本,而不是当前实际连接的目标数据库版本。

      表6 目标库GUC参数检查项

      源数据库类型

      目标库版本

      检查项

      DB2 for LUW

      GaussDB主备版 3.1 企业版

      behavior_compat_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB分布式 3.1 企业版

      behavior_compat_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB主备版 3.2企业版

      behavior_compat_options、plsql_compile_check_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB分布式 3.2企业版

      behavior_compat_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB主备版 3.3企业版

      behavior_compat_options、plsql_compile_check_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB分布式 3.3企业版

      behavior_compat_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB主备版 8.0企业版

      behavior_compat_options、plsql_compile_check_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB分布式 8.0企业版

      behavior_compat_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB主备版 8.1企业版

      behavior_compat_options、plsql_compile_check_options、sql_beta_feature、a_format_version、a_format_dev_version

      GaussDB分布式 8.1企业版

      behavior_compat_options、sql_beta_feature、a_format_version、a_format_dev_version

      MySQL

      GaussDB主备版 3.1 企业版

      -

      GaussDB主备版 3.2企业版

      b_format_behavior_compat_options

      GaussDB分布式 3.2企业版

      -

      GaussDB主备版 3.3企业版

      b_format_behavior_compat_options

      GaussDB主备版 8.0企业版

      b_format_version,b_format_dev_version

      GaussDB分布式 8.0企业版

      b_format_version,b_format_dev_version

      GaussDB主备版 8.1企业版

      b_format_version,b_format_dev_version

      GaussDB分布式 8.1企业版

      b_format_version,b_format_dev_version

      Oracle

      GaussDB主备版 3.1 企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 3.1 企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB主备版 3.2企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 3.2企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB主备版 3.3企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB分布式 3.3企业版

      behavior_compat_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB主备版 8.0企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB分布式 8.0企业版

      behavior_compat_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB主备版 8.1企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      GaussDB分布式 8.1企业版

      behavior_compat_options,sql_beta_feature,IntervalStyle,a_format_version,a_format_dev_version

      Microsoft SQL Server

      GaussDB主备版 3.1 企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 3.1 企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB主备版 3.2企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 3.2企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB主备版 3.3企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 3.3企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB主备版 8.0企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 8.0企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB主备版 8.1企业版

      behavior_compat_options,plsql_compile_check_options,sql_beta_feature,a_format_version,a_format_dev_version

      GaussDB分布式 8.1企业版

      behavior_compat_options,sql_beta_feature,a_format_version,a_format_dev_version

    • 数据库可写检查:目标库为GaussDB时会检查数据节点是否处于正常状态,若目标数据库处于只读状态,展示此检查项。检查结果为“不通过”。

  7. 单击右下角“下一步”,进入信息确认。

    图3 信息确认

    信息确认界面显示数据库迁移范围、迁移任务信息、目标数据库信息。

    • 迁移范围包括:迁移Schema项、未迁移Schema项。
    • 迁移任务信息包括:项目名称、评估项目名称、企业项目、异常通知方式、标签。
    • 目标数据库信息
      • 手动输入方式:数据库信息输入方式、数据库名称、目标数据库、目标数据库版本、主机IP地址、主机端口。
      • 选择实例方式:数据库信息输入方式、数据库名称、目标数据库、目标数据库版本、数据库实例。

  8. 信息确认后,单击右下角“创建”。

    一个租户下,只能创建10个迁移项目。

  9. 创建成功后,单击“确定”。返回对象迁移列表页面。

    创建迁移项目后,会自动触发权限检查,若权限检查通过,则“项目状态”显示为“就绪”

    若权限检查未通过,“项目状态”显示为“未就绪”,可手动进行权限检查

分享:

    相关文档

    相关产品