云服务器内容精选

  • 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-src-172 自定义,易理解可识别。 所属Region 测试Region 现网实际选择时建议选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 172.16.0.0/16 子网选择时建议预留足够的网络资源。 子网名称 subnet-src-172 自定义,易理解可识别。 本地Oracle数据库 名称 orcl 自定义,易理解可识别。 规格 16vCPUs | 32GB - 数据库版本 11.2.0.1 - 数据库用户 ugo 可以自定义用户,但是迁移时最小权限为:CONNECT、SELECT_CATA LOG _ROLE、ANY DICTIONARY GaussDB 实例名 Auto-ugo-gaussdbv5-tar-1 自定义,易理解可识别。 数据库版本 GaussDB 2.7企业版 - 实例类型 分布式版,1CN,3DN,3副本 本示例中为分布式实例。 存储类型 超高IO - 可用区 可用区3 本示例中选择了单可用区,实际建议选择多可用区,以提高实例的高可用性。 规格 通用性 2 vCPUs | 16GB 本示例中为测试实例,选择较小的测试规格,实际选择规格以业务诉求为准。 目标库名称 ugo 自定义,易理解可识别,但是需要确保兼容模式为Oracle模式。 UGO迁移任务 数据库评估任务名 Oracle-GaussDB 自定义。 对象迁移 Oracle-GaussDB 自定义。 源数据库引擎 Oracle-11g - 目标数据库引擎 GaussDB Distributed - 2.7 - 网络类型 公网网络 本示例中采用公网网络。 父主题: Oracle结构迁移到GaussDB
  • 约束限制 审核对象仅支持:Table、View、Sequence、Index、Function、Procedure、Trigger、Package。 一次审核Schema的数量不超过10000。 审核数据库过程中,避免对正在审核的数据库对象进行删除等操作,影响审核结果。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同数据源审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。
  • 约束限制 规则的嵌套审核仅支持四种语法,详情可参见表1。 别名不能和实体表重名,且别名之间不能重名。 不支持审核视图中的表。 不支持审核数据库系统表及系统视图。 不支持审核含有“#”的MySQL语句。 文件审核中和审核完成后,将无法“重试”该任务。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同文件审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。 SQL审核最大可以创建110个审核任务,最多支持10个审核任务并发执行。
  • 约束限制 规则的嵌套审核仅支持四种语法,详情可参见表1。 With as只支持SELECT语句。 别名不能和实体表重名,且别名之间不能重名。 不支持审核视图中的表审核。 不支持审核数据库系统表及系统视图审核。 不支持审核含有“#”的MySQL语句。 表1 支持的嵌套审核语句 序号 SQL语句 1 select id, (select 子查询) as name from table; 2 select id from table where id in (select 子查询); 3 select * from table1,(select 子查询); 4 with e as (select 子查询) select * from e;
  • 规则约束 所有涉及update、delete的规则项,均不支持多表操作审核。 update、delete多表操作仅支持规则项:“不应用单条update、delete语句对多个表实现更新、删除操作”。 对于“在PL/pgSQL中,关键字建议大写,非关键字小写”、“sql语句中,关键字建议大写,非关键字小写”规则项,不要在以对象名作为非保留关键字的语句中使用,存在审核不准确情况,比如:SELECT ID FROM name,name是非保留关键字。 对于规则“对分区表执行交换分区、合并分区、分隔分区、清空分区、删除分区时,必须同步更新全局索引”,在用户修改数据库系统参数enable_gpi_auto_update后,该规则可能失效,请在数据库侧清理session,可登录到数据库中执行: CLEAN CONNECTION TO ALL FORCE FOR DATABASE db_name; “查询系统视图时,如果使用对象名作为筛选条件,对象名应使用小写”支持的系统视图参见表2。 “谨慎删除数据库对象及清理数据”,其中阈值中支持审核SQL语法见表表3 表2 视图审核 视图名 所属schema 表示对象名的列 adm_arguments pg_catalog、sys owner、object_name、package_name、argument_name adm_audit_object pg_catalog、sys username、owner、obj_name、action_name adm_audit_session pg_catalog、sys username、action_name adm_audit_statement pg_catalog、sys username、obj_name、action_name adm_col_comments pg_catalog、sys owner、table_name、column_name、schema adm_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege adm_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name adm_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name adm_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name adm_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name adm_objects pg_catalog、sys owner、object_name、subobject_name adm_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename adm_role_privs pg_catalog、sys grantee、granted_role adm_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema adm_roles pg_catalog、sys role adm_source pg_catalog、sys owner、name adm_sys_privs pg_catalog、sys grantee、privilege adm_tab_cols pg_catalog、sys owner、table_name、column_name、data_type_owner、schema、qualified_col_name adm_tab_privs pg_catalog、sys grantee、owner、table_name、grantor、privilege adm_tables pg_catalog、sys owner、table_name、tablespace_name adm_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema adm_tab_comments pg_catalog、sys owner、table_name、column_name、schema adm_tab_statistics pg_catalog、sys owner、table_name adm_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name adm_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name adm_types pg_catalog、sys owner、type_name adm_users pg_catalog、sys username、default_tablespace、temporary_tablespace、default_collation adm_views pg_catalog、sys owner、view_name db_all_tables pg_catalog、sys owner、table_name、tablespace_name db_arguments pg_catalog、sys owner、object_name、package_name、argument_name db_col_comments pg_catalog、sys owner、table_name、column_name、schema db_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege db_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name db_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name db_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name db_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name db_objects pg_catalog、sys owner、object_name、subobject_name db_procedures pg_catalog、sys owner、object_name db_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema db_source pg_catalog、sys owner、name db_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema db_tab_comments pg_catalog、sys owner、table_name、schema db_tables pg_catalog、sys owner、table_name、tablespace_name db_triggers pg_catalog、sys trigger_name、table_owner、table_name db_types pg_catalog、sys owner、type_name db_users pg_catalog、sys username db_views pg_catalog、sys owner、view_name dict pg_catalog、sys table_name dictionary pg_catalog、sys table_name my_col_comments pg_catalog、sys owner、table_name、column_name、schema my_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege my_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name my_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name my_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name my_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name my_objects pg_catalog、sys object_name、subobject_name my_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename my_role_privs pg_catalog、sys grantee、granted_role my_tab_col_statistics pg_catalog、sys table_name、column_name、schema my_source pg_catalog、sys owner、name my_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema my_tab_comments pg_catalog、sys owner、table_name、column_name、schema my_tab_statistics pg_catalog、sys table_name my_tables pg_catalog、sys owner、table_name、tablespace_name my_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name my_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name my_types pg_catalog、sys type_name my_views pg_catalog、sys owner、view_name pg_indexes pg_catalog、sys schemaname、tablename、indexname、tablespace pg_roles pg_catalog、sys rolename pg_tables pg_catalog、sys schemaname、tablename、tableowner、tablespace、tablecreator pg_user pg_catalog、sys username、nodegroup pg_views pg_catalog、sys schemaname、viewname、viewowner column_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name、column_name columns information_schema、sys table_catalog、table_schema、table_name、column_name constraint_column_usage information_schema、sys table_catalog、table_schema、table_name、column_name、constraint_catalog、constraint_schema、constraint_name constraint_table_usage information_schema、sys table_catalog、table_schema、table_name、constraint_catalog、constraint_schema、constraint_name enabled_roles information_schema、sys role_name schemata information_schema、sys catalog_name、schema_name、schema_owner、default_character_set_catalog、default_character_set_schema、default_character_set_name table_constraints information_schema、sys constraint_catalog、constraint_schema、constraint_name、table_catalog、table_schema、table_name table_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name tables information_schema、sys table_catalog、table_schema、table_name、self_referencing_column_name、user_defined_type_catalog、user_defined_type_schema、user_defined_type_name triggers information_schema、sys trigger_catalog、trigger_schema、trigger_name、event_object_catalog、event_object_schema、event_object_table、action_reference_old_table、action_reference_new_table usage_privileges information_schema、sys grantor、grantee、object_catalog、object_schema、object_name views information_schema、sys table_catalog、table_schema、table_name 表3 支持审核的SQL语法 DDL类型 SQL语法 DROP DROP TABLE, DROP TABLESPACE, DROP AGGREGATE, DROP AUDIT POLICY, DROP CAST, DROP DATABASE, DROP DATA SOURCE, DROP DIRECTORY, DROP EVENT, DROP FOREIGN TABLE, DROP GLOBAL CONFIGURATION, DROP GROUP, DROP MASKING POLICY, DROP MATERIALIZED VIEW, DROP MODEL, DROP OPERATOR, DROP OWNED, DROP PACKAGE, DROP PACKAGE BODY, DROP PROCEDURE, DROP RESOURCE LABEL, DROP RESOURCE POOL, DROP ROLE, DROP ROW LEVEL SECURITY POLICY, DROP RULE, DROP PUBLICATION, DROP SCHEMA, DROP SEQUENCE, DROP FUNCTION, DROP SERVER, DROP SUBSCRIPTION, DROP SYNONYM, DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH DICTIONARY, DROP TRIGGER, DROP TYPE, DROP USER, DROP USER MAPPING, DROP VIEW, DROP WEAK PASSWORD DICTIONARY ALTER ALTER DROP PARTITION, ALTER TRUNCATE PARTITION, ALTER DROP COLUMN, ALTER DROP CONSTRAINT, ALTER DROP FOREIGN TABLE, ALTER DROP AUDIT POLICY, ALTER DROP MASKING POLICY, ALTER DROP SERVER, ALTER DROP TEXT SEARCH CONFIGURATION, ALTER DROP USER MAPPING, ALTER DROP DATA SOURCE TRUNCATE TRUNCATE
  • 操作步骤 登录UGO控制台。 单击左侧导航栏的“数据源管理”。 在数据源管理页面,单击右上角的“创建数据源”按钮。 进入创建数据源页面,完成基本信息的填写。 基本信息填写完成后,“开始测试”高亮显示。 图1 创建数据源 表1 创建数据源参数说明 参数名称 说明 名称 在数据源管理列表中显示的名称。 由字母、数字、_、-组成,长度是5-50个字符,不区分大小写且必须以字母开头、数字或字母结束的唯一的项目名称。 数据库类型 下拉选择待创建的数据库类型。当前仅支持GaussDB和MySQL。 网络类型 公网网络:通过弹性公网IP(Elastic IP,EIP)进行数据库连接。 如果数据库网络有IP白名单限制,请将弹性公网IP添加至数据库网络白名单,确保UGO可以连接。 连接方法 仅支持通过服务名称进行连接。 数据库名称 待进行管理的数据库名称。 请输入由字母、数字、.、_、-、$、#组成,长度是2-128个字符,必须以字母、数字、.、_、-开头且允许使用"包裹的名称。 主机类型 当前仅支持主机IP地址。 主机IP地址 填写具体主机IP地址,IP地址格式支持IPv4和IPv6。 说明: 支持IPv6数据库如下:MySQL。 主机端口 待进行管理的数据库端口。 用户名 待进行管理的数据库用户名。 由字母、数字、“_”、“-”、“$”、“#”组成,长度为2-128个字符,必须以字母、数字、“.”、“_”、“-”开头且允许使用双引号包裹的用户名。 密码 待进行管理的数据库密码。 密码最多支持50个字符。 单击“开始测试”,测试通过显示“已连接”,右下角“创建”高亮显示。 当前仅测试连通性,若断连或权限不足,会导致“连接数据库失败”,无法创建数据源。 单击创建。显示“项目创建成功”。 单击“确定”,返回数据源管理页面,用户可以看到最新创建的数据源已在列表中。 可通过数据源ID、名称、数据库名称、数据库类型、IP地址及端口信息进行搜索。 图2 数据源管理
  • SQL审核 SQL审核功能能够帮助用户在开发阶段发现隐藏在代码中的SQL规范性、设计合理性和性能等问题,内置200多条审核规则,覆盖DML、DDL、PL/SQL等各类SQL的深度审核,且支持规则内风险级别、阈值及建议内容的调整,和规则间的自由组合创建定制化审核模板。支持GaussDB、MySQL两种数据库的审核,可通过单语句、批量代码文件上传(自动提取SQL)、直连数据库,共3种方式接入SQL进行审核,深度看护代码,避免烂SQL流入生产环境。 步骤一:创建数据源 步骤二:创建规则模板 步骤三:创建审核任务
  • 操作场景 创建迁移项目创建完成后,启动迁移项目,选择需要迁移对象,根据迁移风险项配置转换方案,启动语法转后,UGO服务会将源库的SQL语法一键转换成目标库语法,转换失败的语法支持手工进行校正,修改完成后,迁移验证阶段,在目标数据库执行,完成源库对象到目标库的迁移,查看迁移进度和详情来确认迁移结果。 数据库迁移验证为五个步骤: 步骤一:选择对象迁移。 步骤二:配置转换方案。 步骤三:启动语法转换。 步骤四:校正转换失败对象。 步骤五:对象迁移验证。
  • 启动语法转换 单击“下一步”,进入语法转换界面。 单击“启动”,进行语法的转换。 图4 语法转换 转换完成后页面显示对象类型、总数、转换成功、转换失败等信息以及转换开始时间与结束时间。 页面以进度条和百分比显示迁移进度。 再次单击“启动”,将再次进行语法转换,会覆盖上一次转换的全部转换数据,包含手工修改的对象,请谨慎操作。如确需重新转换,单击“确认”。 语法转化完成后,可查看语法转化历史记录和转化详情,可参考查看语法转换历史详情。 若语法转化完成,需要修改转换方案,可参考配置转换方案重新配置。 语法转换失败,需要进行手工修改,可参考校正转换失败对象。
  • 对象迁移验证 单击“下一步”,进入迁移验证界面。默认显示“迁移”页签界面。 图8 迁移 单击“迁移验证配置”,可以对迁移过程中的迁移行为进行详细设置。 显示迁移项目的详细信息,包括对象类型、总数、迁移成功、迁移失败、剩余量等信息。当在“迁移验证配置”中设置了不迁移转换失败对象时,还会展示“转换失败不迁移”信息。 单击操作列“详情”,跳转至“对象校正”界面,可以查看迁移详情,语法转换等情况。 单击“启动”开始进行迁移验证,开始将对象迁移至目标数据库中。 迁移成功:可登录目标库查看迁移对象,也可以查看步骤3。 迁移失败:单击失败对象后的“详情”,跳转至校正转换失败对象,重新进行对象的手工校正。 迁移完成后,单击“迁移历史”,查看迁移详情。 以倒序显示已经迁移过项目的详细信息,包括序号、总数、迁移成功、迁移失败等。可以查看“详情”。 单击“详情”,显示对象类型、总数、迁移成功、迁移失败等信息。可以查看各对象类型的详细信息。 单击对象类型后的“详情”,显示Schema、对象名称、对象类型、迁移状态等信息。可以依据具体对象名称搜索,也可以查看各Schema的详细信息。
  • 前提条件 用户需拥有创建UGO迁移项目的对应权限。具体权限,可参见权限管理进行设置。 创建迁移项目至少需要一个状态显示为“完成 创建迁移项目”的数据库评估项目。 待使用的目标数据库类型及版本信息要与评估项目确认的目标库类型及版本一致。 待连接的目标库正常,无欠费、停机等情况。 确保提供的目标数据库可正常访问,且连接用户需要具有对于Schema、表、程序、索引、用户、函数、视图等迁移对象的创建、删除和更改的权限。具体可查看权限检查报告。
  • 网络准备 源数据库与UGO服务的网络是否打通,目前UGO连接源库仅支持公网连接。 源数据库的防火墙需要放通UGO服务的访问,使得UGO可以正常访问本地数据库。 源数据库的访问白名单限制是否对UGO服务放行,各类型数据库添加白名单的方法不同,具体方法请参考各数据库官方文档进行操作。 源数据库设置的最大连接数限制,各类型数据库最大连接数控制的参数和修改方法不同,具体方法请参考各数据库官方文档进行操作。 检查数据库连接信息是否正确,包括提供的IP地址、数据库服务名称、用户名、密码等信息。
  • URI GET /v1/{project_id}/migration-projects/{migration_project_id}/download-failure-report 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 migration_project_id 是 String 迁移项目ID。
  • 响应示例 状态码: 200 请求成功。 { "total_objects_count" : 6, "completed_objects_count" : 4, "objects_list" : [ { "object_type" : "FUNCTION", "total_count" : 4, "succeed_count" : 3, "failed_count" : 1, "ignored_count" : 0, "manual_count" : 0, "success_rate" : "75.00%" }, { "object_type" : "GRANT", "total_count" : 2, "succeed_count" : 0, "failed_count" : 0, "ignored_count" : 0, "manual_count" : 0, "success_rate" : "0.00%" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 total_objects_count Integer 对象总数。 completed_objects_count Integer 完成迁移的对象数量。 objects_list Array of 表4 objects 对象迁移的对象列表。 表4 DatabaseObject 参数 参数类型 描述 object_type String 对象类型。 total_count Long 该类型对象的总数。 succeed_count Long 成功的对象数量。 failed_count Long 失败的对象数量。 ignored_count Long 忽略的对象数量。 manual_count Long 手动操作的对象数量。 success_rate String 成功率。