云服务器内容精选

  • RDS for SQL Server 2012功能概览 类别 功能 版本 web版 标准版 企业版 单机 单机 主备 单机 主备 实例管理 购买实例 √ √ √ √ √ 重启实例 √ √ √ √ √ 实例续费 √ √ √ √ √ 变更计费方式 按需实例转包周期 包周期实例转按需 √ √ √ √ √ 变更实例的CPU和规格 √ √ √ √ √ 重置密码 √ √ √ √ √ 单机转主备 × √ × √ × 磁盘扩容 √ √ √ √ √ 手动切换主备实例 × × √ × √ 删除按需实例 √ √ √ √ √ 升级引擎版本 √ √ √ √ √ 创建只读实例 × × × × × 修改实例名称 √ √ √ √ √ 修改备注 √ √ √ √ √ 创建指定实例字符集 √ √ √ √ √ 设置可维护时间段 √ √ √ √ √ 购买相同配置实例 √ √ √ √ √ 标签 管理标签 √ √ √ √ √ 任务中心 任务中心 √ √ √ √ √ 数据迁移 DRS备份迁移 √ √ √ √ √ 数据库连接 VPC内访问(内网访问) √ √ √ √ √ 公网访问 √ √ √ √ √ 修改内网地址 √ √ √ √ √ 修改数据库端口 √ √ √ √ √ 备份恢复 全量备份(自动备份) √ √ √ √ √ 增量备份 √ √ √ √ √ 下载备份 √ √ √ √ √ 复制备份 √ √ √ √ √ 自动备份策略 √ √ √ √ √ 通过备份文件恢复到RDS for SQL Server √ √ √ √ √ 恢复实例到指定时间点 √ √ √ √ √ 手动备份 √ √ √ √ √ 恢复到新实例 √ √ √ √ √ 恢复到已有实例 √ √ √ √ √ 设置跨区域备份策略 √ √ √ √ √ 监控与告警 资源监控 √ √ √ √ √ 引擎监控 √ √ √ √ √ 设置告警规则 √ √ √ √ √ 参数管理 创建参数模板 √ √ √ √ √ 比较参数模板 √ √ √ √ √ 应用参数模板 √ √ √ √ √ 查看参数模板应用记录 √ √ √ √ √ 编辑参数模板 √ √ √ √ √ 导出参数模板 √ √ √ √ √ 查看参数修改历史 √ √ √ √ √ 日志管理 查看或下载运行日志 √ √ √ √ √ 查看或下载慢日志 √ √ √ √ √ 安全管理 云审计 服务 √ √ √ √ √ 数据库审计(DBSS) √ √ √ √ √ 服务端加密 √ √ √ √ √ 数据库安全 √ √ √ √ √ 修改实例安全组 √ √ √ √ √ 开启透明 数据加密 (TDE) × × × √ √ 回收站 设置回收站策略 √ √ √ √ √ 重建实例 √ √ √ √ √ 引擎主要功能 账号管理 √ √ √ √ √ 数据库管理 √ √ √ √ √ 加域实例创建与访问 √ √ √ √ √ 分布式事务(MSDTC) √ √ √ √ √ 集成服务(SSIS) × × × × × 文件流(FileStream) √ √ × √ × 开启CLR集成功能 √ √ √ √ √ 创建和配置Agent Job和Dblink √ √ √ √ √ 存储过程相关 修改自定义数据库名称 √ √ √ √ √ 变更数据捕获(CDC) × √ √ √ √ 收缩数据库 √ √ √ √ √ 数据库复制 √ √ √ √ √ 更新数据库统计信息 √ √ √ √ √ 跟踪标记 √ √ √ √ √ 最佳实践 发布与订阅 √ √ √ √ √ 对接SSRS报表服务 √ √ √ √ √ 添加链接服务器 √ √ √ √ √ 父主题: RDS for SQL Server各版本功能概览
  • 简介 本文档仅用于指导租户在公有云平台上准备资源(云服务器、网络资源等)并进行SAP on SQL Server的安装,SAP 采用BYOL(Bring Your Own License)模式进行授权,租户需要自行登录SAP公司的技术支持网站购买License。 本文档并不可替代SAP标准文档。在安装和使用SAP过程中,针对SAP软件自身的问题和疑问,请联系SAP公司技术支持人员解决。 本文档基于Windows编写,本文档中出现的安装部署方式仅供参考,具体请参考SAP标准安装手册或根据实际场景及应用情况进行安装部署。 SAP官方安装手册和相关内容请参见: SAP Installation Guides SAP Notes SAP Library 父主题: 华为云SAP on SQL Server安装最佳实践
  • 数据类型表 表1 数据类型表 分类 关键字 数据类型 描述 整数类型 Int8 Int8 取值范围:【-128,127】 Int16 Int16 取值范围:【-32768,32767】 Int32 Int32 取值范围:【-2147483648,2147483647】 Int64 Int64 取值范围:【-9223372036854775808,9223372036854775807】 浮点类型 Float32 单精度浮点数 同C语言Float类型,单精度浮点数在机内占4个字节,用32位二进制描述。 Float64 双精度浮点数 同C语言Double类型,双精度浮点数在机内占8个字节,用64位二进制描述。 Decimal类型 Decimal Decimal 有符号的定点数,可在加、减和乘法运算过程中保持精度。支持几种写法: Decimal(P, S) Decimal32(S) Decimal64(S) Decimal128(S) 说明: P:精度,有效范围:[1:38],决定可以有多少个十进制数字(包括分数)。 S:规模,有效范围:[0:P],决定数字的小数部分中包含的小数位数。 字符串类型 String 字符串 字符串可以是任意长度的。它可以包含任意的字节集,包含空字节。因此,字符串类型可以代替其他DBMSs中的VARCHAR、BLOB、CLOB等类型。 FixedString 固定字符串 当数据的长度恰好为N个字节时,FixedString类型是高效的。 在其他情况下,这可能会降低效率。可以有效存储在FixedString类型的列中的值的示例: 二进制表示的IP地址(IPv6使用FixedString(16)) 语言代码(ru_RU, en_US … ) 货币代码(USD, RUB … ) 二进制表示的哈希值(MD5使用FixedString(16),SHA256使用FixedString(32)) 时间日期类型 Date 日期 用两个字节存储,表示从1970-01-01(无符号)到当前的日期值。日期中没有存储时区信息。 DateTime 时间戳 用四个字节(无符号的)存储Unix时间戳。允许存储与日期类型相同的范围内的值。最小值为1970-01-01 00:00:00。时间戳类型值精确到秒(没有闰秒)。时区使用启动客户端或服务器时的系统时区。 DateTime64 DateTime64 此类型允许以日期(date)加时间(time)的形式来存储一个时刻的时间值。 布尔型 Boolean Boolean ClickHouse没有单独的类型来存储布尔值。可以使用UInt8 类型,取值限制为0或1。 数组类型 Array Array Array(T),由T类型元素组成的数组。T可以是任意类型,包含数组类型。但不推荐使用多维数组,ClickHouse对多维数组的支持有限。例如,不能在MergeTree表中存储多维数组。 元组类型 Tuple Tuple Tuple(T1, T2, ...),元组,其中每个元素都有单独的类型,不能在表中存储元组(除了内存表)。它们可以用于临时列分组。在查询中,IN表达式和带特定参数的lambda函数可以来对临时列进行分组。 Domains数据类型 Domains Domains Domains类型是特定实现的类型: IPv4是与UInt32类型保持二进制兼容的Domains类型,用于存储IPv4地址的值。它提供了更为紧凑的二进制存储的同时支持识别可读性更加友好的输入输出格式。 IPv6是与FixedString(16)类型保持二进制兼容的Domain类型,用于存储IPv6地址的值。它提供了更为紧凑的二进制存储的同时支持识别可读性更加友好的输入输出格式。 枚举类型 Enum8 Enum8 取值范围:【-128,127】 Enum保存 'string'= integer的对应关系,例如:Enum8('hello' = 1, 'world' = 2) Enum16 Enum16 取值范围:【-32768,32767】 可为空 Nullable Nullable 除非在ClickHouse服务器配置中另有说明,否则NULL是任何Nullable类型的默认值。Nullable类型字段不能包含在表索引中。 可以与TypeName的正常值存放一起。例如,Nullable(Int8) 类型的列可以存储Int8类型值,而没有值的行将存储NULL。 嵌套类型 nested nested 嵌套的数据结构就像单元格内的表格。嵌套数据结构的参数(列名和类型)的指定方式与CREATE TABLE查询中的指定方式相同。每个表行都可以对应于嵌套数据结构中的任意数量的行。 示例:Nested(Name1 Type1, Name2 Type2, …)
  • 建议3.10 尽量避免对关联条件字段和过滤条件字段进行函数运算 违反规范的影响: 对关联条件字段和过滤条件字段进行函数运算,导致优化器无法获取准确的字段统计信息,无法生成最优计划,影响执行性能。 方案建议: 关联条件字段之间直接比较,如有需要运算后比较的场景需在数据入库前进行预处理。 过滤条件和常量比较时,只对常量列进行函数运算,字段列不进行函数运算,例如: 1 2 3 4 5 6 7 8 9 SELECT id, from_image_id, from_person_id, from_video_id FROM face_data WHERE SS.DEL_FLAG = 'N' AND NVL(SS.DELETE_FLAG, 'N') = 'N' 改写为: SELECT id, from_image_id, from_person_id, from_video_id FROM face_data where SS.DEL_FLAG = 'N' AND (SS.DELETE_FLAG = 'N' or SS.DELETE_FLAG is null)
  • 建议3.17 针对SQL标记注释,唯一标识SQL的归属 违反规范的影响: 业务溯源能力较差,只能通过数据库、用户名、客户端IP信息找开发人员确认。 方案建议: 建议使用query_band,例如: 1 SET query_band='JobName=abc;AppName=test;UserName=user'; 每个SQL开头标记注释,唯一标识SQL的归属,方便问题定位及应用性能分析,命名建议为: /* 模块名_工具名_作业名_步骤 */,如: /* mca_python_xxxxxx_step1 */ insert into xxx select … from
  • 建议3.17 针对SQL标记注释,唯一标识SQL的归属 违反规范的影响: 业务溯源能力较差,只能通过数据库、用户名、客户端IP信息找开发人员确认。 方案建议: 建议使用query_band,例如: 1 SET query_band='JobName=abc;AppName=test;UserName=user'; 每个SQL开头标记注释,唯一标识SQL的归属,方便问题定位及应用性能分析,命名建议为: /* 模块名_工具名_作业名_步骤 */,如: /* mca_python_xxxxxx_step1 */ insert into xxx select … from
  • 建议3.10 尽量避免对关联条件字段和过滤条件字段进行函数运算 违反规范的影响: 对关联条件字段和过滤条件字段进行函数运算,导致优化器无法获取准确的字段统计信息,无法生成最优计划,影响执行性能。 方案建议: 关联条件字段之间直接比较,如有需要运算后比较的场景需在数据入库前进行预处理。 过滤条件和常量比较时,只对常量列进行函数运算,字段列不进行函数运算,例如: 1 2 3 4 5 6 7 8 9 SELECT id, from_image_id, from_person_id, from_video_id FROM face_data WHERE SS.DEL_FLAG = 'N' AND NVL(SS.DELETE_FLAG, 'N') = 'N' 改写为: SELECT id, from_image_id, from_person_id, from_video_id FROM face_data where SS.DEL_FLAG = 'N' AND (SS.DELETE_FLAG = 'N' or SS.DELETE_FLAG is null)
  • SQL防御功能介绍 MRS 在主力SQL引擎(Hive、Spark、HetuEngine、ClickHouse、Doris(MRS 3.5.0及之后版本))中增加SQL防御能力,基于用户可理解的SQL防御策略,实现对典型大SQL、低质量SQL的主动防御,包括事前拦截和事中熔断,并不强制改变用户的SQL提交方式、SQL语法,对业务零改动且易落地。 支持管理员界面化配置SQL防御策略,同时可支持防御规则的查询和修改。 每个SQL引擎在进行SQL业务响应、执行过程中,基于SQL防御策略进行主动防御行为。 管理员可将SQL防御行为在“提示”、“拦截”、“熔断”选项之间进行灵活切换,系统会将发生的SQL防御事件实时写入到防御审计日志中。运维人员可进行 日志分析 ,评估现网SQL质量,提前感知潜在SQL风险,并做出有效预防措施。 SQL防御规则包含以下类型: 静态拦截规则:基于纯粹的SQL语法规则进行拦截或提示。 动态拦截规则:基于与数据表的统计信息、元数据信息等内容有关的规则进行拦截或提示。 运行熔断规则:基于SQL语句运行时的系统动态信息(如CPU、内存、IO等)的规则进行阻断。 对于静态拦截规则、动态拦截规则,系统在SQL请求满足条件时,可对该请求进行中止或者提示处理。对于运行熔断规则,系统在SQL请求满足条件时,会阻断该SQL任务。
  • URI URI格式 GET /v3/{project_id}/instances/{instance_id}/sql-limit?db_name={db_name}&offset={offset}&limit={limit} 参数说明 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID。 db_name 是 String 数据库名称。 offset 否 Integer 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。 limit 否 Integer 查询记录数。默认为10,不能为负数,最小值为1,最大值为100。
  • 响应消息 正常响应要素说明 表2 字段说明 名称 参数类型 说明 count Integer SQL限流总数。 sql_limit_objects Array of objects SQL限流详情。 请参见表3。 表3 sql_limit_objects字段数据结构说明 名称 参数类型 说明 id String SQL限流ID。 query_id String 由SQL的语法解析树计算出的内部哈希码,默认为0,取值范围:-9223372036854775808~ 9223372036854775807。 query_string String SQL语句的文本形式。 max_concurrency Integer 同时执行的SQL数量,小于等于0表示不限制,默认为0,取值范围:-1~50000。 is_effective Boolean 是否生效。 max_waiting Integer 最大等待时间,单位为秒。 search_path String 为不是模式限定的名称设置模式搜索顺序,默认为public。 正常响应样例 { "count": 2, "sql_limit_objects": [ { "id": "3", "query_id": "1147616880456321454", "query_string": "select 1;", "max_concurrency": 10, "is_effective": false, "max_waiting": 10, "search_path": "public" }, { "id": "4", "query_id": "-7472493489976133824", "query_string": "select * from pg_type;", "max_concurrency": 10, "is_effective": false, "max_waiting": 10, "search_path": "public" } ] } 异常响应 请参见异常请求结果。
  • 操作步骤 登录UGO控制台。 单击左侧导航栏的“数据源管理”。 在数据源管理页面,单击右上角的“创建数据源”按钮。 进入创建数据源页面,完成基本信息的填写。 基本信息填写完成后,“开始测试”高亮显示。 图1 创建数据源 表1 创建数据源参数说明 参数名称 说明 名称 在数据源管理列表中显示的名称。 由字母、数字、_、-组成,长度是5-50个字符,不区分大小写且必须以字母开头、数字或字母结束的唯一的项目名称。 数据库类型 下拉选择待创建的数据库类型。当前仅支持 GaussDB 、MySQL和PostgreSQL。 网络类型 公网网络:通过弹性公网IP(Elastic IP,EIP)进行数据库连接。 如果数据库网络有IP白名单限制,请将弹性公网IP添加至数据库网络白名单,确保UGO可以连接。 连接方法 仅支持通过服务名称进行连接。 数据库名称 待进行管理的数据库名称。 请输入由字母、数字、.、_、-、$、#组成,长度是2-128个字符,必须以字母、数字、.、_、-开头且允许使用"包裹的名称。 主机类型 当前仅支持主机IP地址。 主机IP地址 填写具体主机IP地址,IP地址格式支持IPv4和IPv6。 说明: 支持IPv6数据库如下:MySQL。 主机端口 待进行管理的数据库端口。 用户名 待进行管理的数据库用户名。 由字母、数字、“_”、“-”、“$”、“#”组成,长度为2-128个字符,必须以字母、数字、“.”、“_”、“-”开头且允许使用双引号包裹的用户名。 密码 待进行管理的数据库密码。 密码最多支持50个字符。 单击“开始测试”,测试通过显示“已连接”,右下角“创建”高亮显示。 当前仅测试连通性,若断连或权限不足,会导致“连接数据库失败”,无法创建数据源。 单击创建。显示“项目创建成功”。 单击“确定”,返回数据源管理页面,用户可以看到最新创建的数据源已在列表中。 可通过数据源ID、名称、数据库名称、数据库类型、IP地址及端口信息进行搜索。 图2 数据源管理
  • 不支持下推的函数 首先介绍函数的易变性。在GaussDB中共分三种形态: IMMUTABLE 表示该函数在给出同样的参数值时总是返回同样的结果。 STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,因此不会做任何优化。 函数易变性可以查询pg_proc的provolatile字段获得,i代表IMMUTABLE,s代表STABLE,v代表VOLATILE。另外,在pg_proc中的proshippable字段,取值范围为t/f/NULL,这个字段与provolatile字段一起用于描述函数是否下推。 如果函数的provolatile属性为i,则无论proshippable的值是否为t,则函数始终可以下推。 如果函数的provolatile属性为s或v,则仅当proshippable的值为t时,函数可以下推。 random、exec_hadoop_sql、exec_on_extension如果出现CTE中,也不下推。因为这种场景下下推可能出现结果错误。 对于用户自定义函数,可以在创建函数的时候指定provolatile和proshippable属性的值,详细请参见CREATE FUNCTION。 对于函数不能下推的场景: 如果是系统函数,建议根据业务等价替换这个函数。 如果是自定义函数,建议分析客户业务场景,看函数的provolatile和proshippable属性定义是否正确。
  • 语句下推介绍 目前,GaussDB优化器在分布式框架下制定语句的执行策略时,有三种执行计划方式:生成下推语句计划、生成分布式执行计划、生成发送语句的分布式执行计划。 下推语句计划:指直接将完整的查询语句从CN发送到DN进行执行,然后将执行结果返回给CN。 分布式执行计划:指CN对查询语句进行编译和优化,生成计划树,再将计划树发送给DN进行执行,并在执行完毕后返回结果到CN。 发送语句的分布式执行计划:上述两种方式都不可行时,将可下推的查询部分组成查询语句(多为基表扫描语句)下推到DN进行执行,获取中间结果到CN,然后在CN执行剩下的部分。 在第3种策略中,要将大量中间结果从DN发送到CN,并且要在CN运行不能下推的部分语句,会导致CN成为性能瓶颈(带宽、存储、计算等)。在进行性能调优的时候,应尽量避免只能选择第3种策略的查询语句。 执行语句不能下推是因为语句中含有不支持下推的函数或者不支持下推的语法。一般都可以通过等价改写规避执行计划不能下推的问题。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 --创建dev_audit和bob_audit用户。 gaussdb=# CREATE USER dev_audit PASSWORD '********'; gaussdb=# CREATE USER bob_audit PASSWORD '********'; --创建一个表tb_for_audit。 gaussdb=# CREATE TABLE tb_for_audit(col1 text, col2 text, col3 text); --创建资源标签。 gaussdb=# CREATE RESOURCE LABEL adt_lb0 ADD TABLE(tb_for_audit); --对数据库执行create操作创建审计策略。 gaussdb=# CREATE AUDIT POLICY adt1 PRIVILEGES CREATE; --对数据库执行select操作创建审计策略。 gaussdb=# CREATE AUDIT POLICY adt2 AC CES S SELECT; --仅审计记录用户dev_audit和bob_audit在执行针对adt_lb0资源进行的create操作数据库创建审计策略。 gaussdb=# CREATE AUDIT POLICY adt3 PRIVILEGES CREATE ON LABEL(adt_lb0) FILTER ON ROLES(dev_audit, bob_audit); --仅审计记录用户dev_audit和bob_audit,客户端工具为gsql,IP地址为'10.20.30.40', '127.0.0.0/24',在执行针对adt_lb0资源进行的select、insert、delete操作数据库创建审计策略。 gaussdb=# CREATE AUDIT POLICY adt4 ACCESS SELECT ON LABEL(adt_lb0), INSERT ON LABEL(adt_lb0), DELETE FILTER ON ROLES(dev_audit, bob_audit), APP(gsql), IP('10.20.30.40', '127.0.0.0/24'); --删除审计策略。 gaussdb=# DROP AUDIT POLICY adt1, adt2, adt3, adt4; --删除资源标签。 gaussdb=# DROP RESOURCE LABEL adt_lb0; --删除表tb_for_audit。 gaussdb=# DROP TABLE tb_for_audit; --删除dev_audit和bob_audit用户。 gaussdb=# DROP USER dev_audit, bob_audit;
  • 参数说明 policy_name 审计策略名称,需要唯一,不可重复; 取值范围:字符串,要符合标识符命名规范。 resource_label_name 资源标签名称。 DDL 指的是针对数据库执行如下操作时进行审计,目前支持:CREATE、ALTER、DROP、ANALYZE、COMMENT、GRANT、REVOKE、SET、SHOW。 取值为ANALYZE时,ANALYZE和VACUUM操作都会被审计。 DML 指的是针对数据库执行如下操作时进行审计,目前支持:SELECT、COPY、DEALLOCATE、DELETE、EXECUTE、INSERT、PREPARE、REINDEX、TRUNCATE、UPDATE。 ALL 指的是上述DDL或DML中支持的所有对数据库的操作。当形式为{ DDL | ALL }时,ALL指所有DDL操作;当形式为{ DML | ALL }时,ALL指所有DML操作。 filter_type 描述策略过滤的条件类型,包括APP、ROLES、IP。 filter_value 指具体过滤信息内容。 ENABLE|DISABLE 可以打开或关闭统一审计策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。