云服务器内容精选

  • 支付使用折扣或优惠券说明 客户在调用“续订包年/包月资源”接口进行续订时,可以设置自动支付。 请求参数“isAutoPay”字段取值为“1”时表示自动支付,自动支付时支持使用折扣和券。 支付规则请参见自动续费规则说明中的相关规则说明。 请求参数未传“isAutoPay”字段,或者将该字段设置为“0”(以具体接口参数描述为准)时需要再调用“支付包年/包月产品订单”接口进行支付。 这种方法支付时可以在调用支付接口前,先调用“查询订单可用优惠券”接口查询可用的优惠券,再进行支付。使用优惠券支付将不能再享受折扣优惠。 父主题: 附录
  • 错误码 状态码 错误码 错误信息 描述 处理措施 400 APP.0001 Application does not exist. 应用不存在 请检查对应应用是否存在 400 APP.0002 Application ID required. 应用ID不能为空 请检查入参中的应用ID字段是否为空 400 APP.0003 Application disabled. 应用已禁用 请联系管理员或换一个未禁用的应用再试 400 APP_ACCOUNT.0001 Application account does not exist. 应用账号不存在 请检查对应应用账号是否存在 400 APP_ACCOUNT.0002 Application account already exists. 应用账号已存在 更换未添加过的应用账号 400 APP_ACCOUNT.0003 Unsupported application account. 不支持此应用账号类型 请检查应用账号类型是否正确 400 APP_ACCOUNT.0004 Unsupported application account permission. 不支持此应用账号权限类型 请检查应用账号权限类型是否正确 400 APP_ACCOUNT.0006 Public account does not exist. 应用公共账号不存在 请检查对应应用公共账号是否存在 400 APP_ACCOUNT.0007 Extended attribute does not exist. 应用账号扩展属性不存在 请检查对应应用账号扩展属性是否存在 400 APP_ACCOUNT.0008 The name of the application account required. 应用账号名称不能为空 请检查入参中的应用账号名称字段是否为空 400 APP_ACCOUNT.0035 Application account name required. 应用账号名不能为空 请检查入参中的应用账号名字段是否为空 400 APP_ACCOUNT.0036 Application account name invalid. 应用账号名不符合校验规则 请检查入参中的应用账号名字段是否符合校验规则 400 APP_ORG.0001 Application organization does not exist. 应用机构不存在 请检查对应应用机构是否存在 400 APP_ORG.0002 Application organization is not enabled. 应用机构未开启 请检查对应应用是否开启应用机构 400 APP_ORG.0003 Application organization code already exists. 应用机构编码已存在 更换未添加过的应用机构编码 400 APP_ORG.0004 Parent application organization does not exist. 父级应用机构不存在 请检查对应应用机构是否存在 400 APP_ORG.0005 Application organization cannot be modified. 应用机构不能被修改 请检查对应应用是否是租户名下的应用 400 APP_ORG.0006 Application organization and its parent must be different. 父级应用机构和应用机构不能是同一个 请检查父级应用机构是否和应用机构是同一个机构 400 APP_ORG.0007 Application organizations cannot be deleted. 应用机构不能被删除 请检查对应应用机构下是否存在子机构或用户 400 APP_ORG.0008 Application organization code required. 应用机构编码不能为空 请检查入参中的应用机构编码字段是否为空 400 APP_ORG.0009 Application organization name required. 应用机构名称不能为空 请检查入参中的应用机构名称字段是否为空 400 APP_ORG.0010 Application organization name already exists. 应用机构名称已存在 更换同层级下未添加过的应用机构名称 400 APP_ORG.0011 Invalid application organization code. 应用机构编码不符合校验规则 请检查入参中的应用机构编码字段是否符合校验规则 400 APP_ORG.0012 Invalid application organization name. 应用机构名称不符合校验规则 请检查入参中的应用机构名称字段是否符合校验规则 400 APP_ROLE.0001 Application role does not exist. 应用角色不存在 请检查对应应用角色是否存在 400 APP_ROLE.0002 Application role is not enabled. 应用角色未开启 请检查对应应用是否开启应用角色 400 APP_ROLE.0003 Application role already exists. 应用角色已存在 更换未添加过的应用角色 400 APP_ROLE.0004 Application role is bound to accounts. 应用角色存在账号绑定 请先解绑应用账号 400 APP_ROLE.0005 Application role code required. 应用角色代码不能为空 请检查入参中应用角色代码是否为空 400 APP_ROLE.0006 Application role code invalid. 应用角色代码不符合校验规则 请检查入参中的应用角色代码字段是否符合校验规则 400 APP_ROLE.0007 Application role name required. 应用角色名称不能为空 请检查入参中应用角色名称是否为空 400 APP_ROLE.0008 Application role name invalid. 应用角色名称不符合校验规则 请检查入参中的应用角色名称字段是否符合校验规则 400 CAPTCHA.0002 Invalid CAPTCHA code. 图形验证码校验失败 请检查输入项是否正确并重新调用 400 CAPTCHA.0003 CAPTCHA token expired. 图形验证码校验通过令牌已失效 请重新获取和校验图形验证码后再调用 400 CAPTCHA.0004 Invalid CAPTCHA token. 图形验证码校验通过令牌校验失败 输入的令牌和校验图形验证码中返回的令牌不一致 400 CAPTCHA.0005 Unsupported scenario. 不支持此发送场景 请检查发送方式是否正确 400 CAPTCHA.0006 Failed to send the verification code. 验证码发送失败 请检查输入项是否正确并重新调用 400 CAPTCHA.0007 Incorrect verification code. 验证码不正确 请检查输入的验证码是否正确 400 COM.0002 System busy. Please try again later. 系统繁忙,请稍后重试 请联系管理员 400 LOG IN.0001 User has been locked due to multiple login failures. It will be unlocked in {0} minutes and {1} seconds. 由于多次登录失败,用户已被锁定。 它将在 {0} 分钟和 {1} 秒内解锁 请解锁后重试 400 LOGIN.0002 Invalid account name or password. Remaining attempts: {0} 无效的账号或密码。 剩余次数:{0} 请检查输入的用户名或密码是否正确 400 LOGIN.0003 id_token generate error. id_token 生成失败 请检查输入的用户名或密码是否正确 400 MOBILE.0002 Unauthenticated mobile number. 未经认证的手机号 请检查输入的手机号是否正确 400 ORG.0001 Organization does not exist. 组织不存在 请检查对应组织是否存在 400 ORG.0002 Parent organization does not exist. 父级组织不存在 请检查对应父组织是否存在 400 ORG.0010 Organization code required. 组织编码不能为空 请检查组织编码 400 ORG.0011 Organization name required. 组织名称不能为空 请检查入参中的组织名称字段是否为空 400 ORG.0012 Organization code already exists. 组织编码已存在 更换未添加过的组织编码 400 ORG.0014 Invalid organization code. 组织编码不符合校验规则 请检查入参中的组织代码字段是否符合校验规则 400 ORG.0015 Invalid organization name. 组织名称不符合校验规则 请检查入参中的组织名称字段是否符合校验规则 400 ORG.0016 Organizations cannot be deleted. 组织不能被删除 请检查对应组织下是否存在子组织或用户 400 ORG.0017 Organization and its parent must be different. 父组织与当前组织不允许重复 请检查父组织与当前组织不允许重复 400 PAGE.0001 Number of records per page is invalid. 每页数量不符合校验规则 请检查输入每页数量 400 PA RAM .0001 Incomplete device information. 设备信息不完整 请检查输入的设备信息是否完整 400 PARAM.0002 clientId required. clientId不能为空 请检查输入的clientId是否为空 400 PARAM.0004 Coordinates required. 坐标信息不能为空 请检查输入的坐标信息是否为空 400 PARAM.0005 Token required. 图形验证码身份令牌不能为空 请检查输入的图形验证码身份令牌是否为空 400 PARAM.0006 Sender required. 发送方不能为空 请检查输入的发送方是否为空 400 PARAM.0007 Scenario required. 发送场景不能为空 请检查输入的发送场景是否为空 400 PARAM.0008 CAPTCHA token required. 图形验证码校验通过令牌不能为空 请检查输入的图形验证码校验通过令牌是否为空 400 PARAM.0009 Verification code required. 验证码不能为空 请检查输入的验证码是否为空 400 PARAM.0010 Account required. 账号不能为空 请检查输入的账号是否为空 400 PARAM.0011 WeChat authorization code required. 微信授权码不能为空 请检查输入的微信授权码是否为空 400 PARAM.0012 Alipay authorization code required. 支付宝授权码不能为空 请检查输入的支付宝授权码是否为空 400 PARAM.0013 State token required. 临时令牌不能为空 请检查输入的临时令牌是否为空 400 PARAM.0014 Invalid state token. 临时令牌无效 请检查输入的临时令牌是否正确 400 PARAM.0017 PARAM.0017 社交ID不能为空 请检查输入的社交ID是否为空 400 PARAM.0018 Old password required. 原密码不能为空 请检查入参中的原密码字段是否为空 400 PARAM.0019 New password required. 新密码不能为空 请检查入参中的新密码字段是否为空 400 PARAM.0020 Old and new passwords must be different. 原密码和新密码不能一致 请检查输入的原密码和新密码是否一致 400 PARAM.0028 Old password is incorrect. 原密码校验失败 请重新输入密码 400 PARAM.0029 Invalid list. 集合大小不符合校验规则 请检查入参中的集合大小是否符合校验规则 400 PARAM.0030 Signature invalid or expired. 签名无效或已过期 请重新生成签名后再试 400 PARAM.0031 SSO ticket required. 一次性令牌不能为空 请检查输入的一次性令牌是否为空 400 PARAM.0032 SSO ticket invalid or expired. 一次性令牌无效或已过期 请重新获取一次性令牌后再试 400 PWD.0001 Historical passwords cannot be used. 不允许使用历史密码 不允许使用历史密码,请重新输入密码 400 PWD.0002 Password cannot be the username spelled backwards. 密码不允许使用用户名的倒写 密码不允许使用用户名的倒写,请重新输入密码 400 PWD.0003 Password cannot include username, mobile number, or email prefix. 密码中不允许包含:用户名、手机号、邮箱前缀、姓名拼音 密码中不允许包含:用户名、手机号、邮箱前缀、姓名拼音,请重新输入密码 400 PWD.0004 Weak password. 密码复杂度低 密码复杂度低,请重新输入密码 400 PWD.0005 Weak password. 该密码为弱密码 该密码为弱密码,请重新输入密码 400 PWD.0006 Max. {0} identical characters in password. 密码中最大字符重复数不能超过{0} 密码中最大字符重复数不能超过{0},请重新输入密码 400 PWD.0007 Password must be {0} to {1} characters. 密码长度为{0}~{1}个字符 密码长度为{0}~{1}个字符,请重新输入密码 400 PWD.0008 Password required. 密码不能为空 请检查输入的密码是否为空 400 SOCIAL.0001 Social media account already bound to another account. Unbind them first. 社交账号已绑定,请先解绑 请检查社交账号是否已绑定,或换个手机号进行绑定 400 USER.0001 User does not exist. 用户不存在 请检查对应用户是否存在 400 USER.0004 User disabled. 姓氏不能为空 请联系管理员 400 USER.0008 Username required. 用户名不能为空 请检查入参中的用户名字段是否为空 400 USER.0009 Name required. 姓名不能为空 请检查入参中的姓名字段是否为空 400 USER.0010 Mobile number required. 手机号不能为空 请检查入参中的手机号字段是否为空 400 USER.0011 Email address required. 邮箱不能为空 请检查入参中的邮箱字段是否为空 400 USER.0012 First name required. 名字不能为空 请检查入参中的名字字段是否为空 400 USER.0013 Middle name required. 中间名不能为空 请检查入参中的中间名字段是否为空 400 USER.0014 Last name required. 姓氏不能为空 请检查入参中的姓氏字段是否为空 400 USER.0015 Nickname required. 昵称不能为空 请检查入参中的昵称字段是否为空 400 USER.0016 Birth date required. 生日不能为空 请检查入参中的生日字段是否为空 400 USER.0017 Gender required. 性别不能为空 请检查入参中的性别字段是否为空 400 USER.0018 ID type required. 证件类型不能为空 请检查入参中的证件类型字段是否为空 400 USER.0019 ID number required. 证件号码不能为空 请检查入参中的证件号码字段是否为空 400 USER.0020 Country/region required. 国家或地区不能为空 请检查入参中的国家或地区字段是否为空 400 USER.0021 City required. 城市不能为空 请检查入参中的城市字段是否为空 400 USER.0022 Employee ID required. 工号不能为空 请检查入参中的工号字段是否为空 400 USER.0024 Immediate supervisor required. 直属上级不能为空 请检查入参中的直属上级字段是否为空 400 USER.0026 On-boarding date required. 入职时间不能为空 请检查入参中的入职时间字段是否为空 400 USER.0027 Office location required. 工作所在地不能为空 请检查入参中的工作所在地字段是否为空 400 USER.0028 Extended attribute {0} required. 扩展属性{0}不能为空 请检查入参中的扩展属性{0}字段是否为空 400 USER.0029 Username already exists. 用户名已存在 更换未添加过的用户名 400 USER.0030 Mobile number already exists. 手机号已存在 更换未添加过的手机号 400 USER.0031 Email address already exists. 邮箱已存在 更换未添加过的邮箱 400 USER.0032 ID number already exists. 证件号码已存在 更换未添加过的证件号码 400 USER.0033 Employee ID already exists. 工号已存在 更换未添加过的工号 400 USER.0035 Extended attribute {0} already exists. 扩展属性{0}已存在 更换未添加过的扩展属性{0} 400 USER.0036 Invalid username. 用户名不符合校验规则 请检查入参中的用户名字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0037 Invalid name. 姓名不符合校验规则 请检查入参中的姓名字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0038 Invalid mobile number. 手机号不符合校验规则 请检查入参中的手机号字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0039 Invalid email address. 邮箱不符合校验规则 请检查入参中的邮箱字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0040 Invalid first name. 名字不符合校验规则 请检查入参中的名字字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0041 Invalid middle name. 中间名不符合校验规则 请检查入参中的中间名字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0042 Invalid last name. 姓氏不符合校验规则 请检查入参中的姓氏字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0043 Invalid nickname. 昵称不符合校验规则 请检查入参中的昵称字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0044 Invalid birth date. 生日不符合校验规则 请检查入参中的生日字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0045 Invalid gender. 性别不符合校验规则 请检查入参中的性别字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0046 Invalid ID type. 证件类型不符合校验规则 请检查入参中的证件类型字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0047 Invalid ID number. 证件号码不符合校验规则 请检查入参中的证件号码字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0048 Invalid country or region. 国家或地区不符合校验规则 请检查入参中的国家或地区字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0049 Invalid city. 城市不符合校验规则 请检查入参中的城市字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0050 Invalid employee ID. 工号不符合校验规则 请检查入参中的工号字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0052 Invalid immediate supervisor. 直属上级不符合校验规则 请检查入参中的直属上级字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0053 Invalid user type. 人员类型不符合校验规则 请检查入参中的人员类型字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0054 Invalid on-boarding date. 入职时间不符合校验规则 请检查入参中的入职时间字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0055 Invalid office location. 工作所在地不符合校验规则 请检查入参中的工作所在地字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0056 Extended attribute {0} is invalid. 扩展属性{0}不符合校验规则 请检查入参中的扩展属性{0}字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0061 User ID required. 用户ID不能为空 请检查入参中的用户ID字段是否为空 父主题: 附录
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 错误码说明 调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。 返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系华为云客服,并提供错误码,以便尽快帮您解决问题。 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 当您调用API时,如果遇到“APIG”开头的错误码,请参见APIG错误码。 状态码 错误码 错误信息 描述 处理措施 400 AIS.0002 The authentication token is abnormal. 验证Token异常。 请检查Token是否正确。 400 AIS.0003 Failed to complete the request because of an internal service error. 服务内部错误。 请联系华为云支持人员,请通过工单联系我们。 400 AIS.0004 The request is unauthorized. 无权限操作。 服务未开通请开通服务。服务开通请参见《 内容审核 快速入门》。 400 AIS.0005 The service does not exist. 服务不存在。 请检查传入的服务类型或场景是否正确,如果无法解决请联系华为云支持人员,请通过工单联系我们。 400 AIS.0007 The service has not been enabled yet. 服务未开通。 请开通服务。开通步骤请参考开通服务步骤说明。 400 AIS.0010 The header is missing or left empty. 缺少Header或者Header为空。 HTTP请求缺少必须的header信息,请检查是否有Content-type等必须字段。 400 AIS.0011 Lack the request parameter, or the request parameter is empty. 缺少请求参数或者参数为空。 请检查请求body是否缺少必须字段,请参考对应API的请求说明。 400 AIS.0012 The request parameter is not supported. 请求参数不支持。 请检查请求中的字段不合法,请参考对应API的请求说明。 400 AIS.0013 The request method is not allowed. 请求方法不允许。 请检查请求方法是否正确。 400 AIS.0014 The JSON format of the input data is incorrect. 输入数据JSON格式错误。 请检查输入数据的JSON格式。 400 AIS.0015 Base64 decoding of the input data is incorrect. 输入数据BASE64解码错误。 图片的Base64编码错误,请检查Base64内容。 400 AIS.0020 The size of the request body exceeds the upper limit. 请求体大小超过限制。 请检查请求体大小。 400 AIS.0021 The requested file type is not supported. 请求的文件类型不支持。 请检查请求的文件类型。 400 AIS.0022 The URL is invalid. URL不合法。 请检查输入的url格式。 400 AIS.0023 The file stored in OBS is oversized. 存储在OBS上的文件过大。 检查图片格式是否是服务支持的格式。具体请参见《内容审核使用限制》。 400 AIS.0024 Failed to obtain the file from OBS. 从OBS上获取文件失败。 原因可能为签名过期或签名验证未通过等。 400 AIS.0025 The file stored in OBS is empty. 存储在OBS上的文件为空。 请先上传文件到OBS上。 400 AIS.0026 Incorrect token type. token类型错误。 应使用project类型的token。 400 AIS.0027 The account has been frozen. 此账户已被冻结。 请检查是否账户是否欠费。 400 AIS.0028 The job is not owned by the current user. 此任务不属于当前用户。 请检查当前账户。 400 AIS.0029 Failed to download the file from the Internet. 从外网下载文件失败。 检查文件url是否正确以及是否在支持的范围内。 400 AIS.0030 Job not found 任务未找到。 任务已过期被清理了或者传入的job id错误。请检查job id是否正确。 400 AIS.0031 The maximum number of uncompleted jobs has been reached. 未处理完的任务总数达到限制。 暂停提交新任务。 400 AIS.0032 The monthly free calls have been used up. 月免费调用量已使用完。 如需继续使用给关联的华为云账户充值即可。 400 AIS.0501 Check whether the request JSON is abnormal. 检查请求json是否存在异常。 请求参数不是json格式。 400 AIS.0502 Check whether the Base64 encoding and URL of the image are correct. 检查图像base64以及url是否正确。 请检查图片base64编码是否正常,检查图片格式是否是服务支持的格式。 400 AIS.0504 The image size does not meet requirements. 图像大小不符合要求。 请检查图像大小是否符合服务限制。 400 AIS.0401 The input parameter is incorrect. 输入参数有误。 请输入正确的参数。 400 AIS.0402 The image format is not supported. 图片格式不支持。 检查图片格式是否是服务支持的格式。 400 AIS.0403 The image file has been damaged. 图片文件已损坏。 请重新上传图片文件。 400 AIS.0404 An exception occurs in Content Moderation . 内容审核处理错误。 请联系华为云支持人员,请通过工单联系我们。 400 AIS.0405 An internal error occurs. 内部错误。 请联系华为云支持人员,请通过工单联系我们。 400 AIS.0039 Repetitive push stream. 重复推流,重复创建审核作业。 如果没有回调预期的审核结果,对该流创建审核作业又提示重复推流,您可以关闭该审核作业,然后对该流重新创建审核作业。 400 APIG.0101 The API does not exist or has not been published. 您所访问的API不存在或尚未在环境中发布。 请检查输入的api信息是否正确,是否该服务存在对应的区域中。检查API的URL是否拼写正确,HTTP请求方法(POST,GET等)是否正确,请检查服务调用配置的 域名 和uri信息是否正确,域名可参考域名。 400 APIG.0301 1. Incorrect IAM authentication information: Failed to decrypt the token. Check whether the entered token is complete. 2. The validity period of a token is 24 hours. If the token expires, obtain a new token and pass it. 3. The AK/SK authentication fails. Check whether the AK/SK is correct and whether the account is restricted due to arrears. 1.IAM身份验证信息不正确:解密令牌失败,检查输入的token是否完整。 2.token有效期为24小时,token超时,重新传入获取token值。 3.因为AK/SK认证失败,请检查AK/SK是否正确,账号是否因欠费等原因权限被限制。 decrypt token fail:发送的HTTP请求header中x-auth-token的token请求认证信息错误,请检查发送的请求和token。 token expires:token超时,请重新获取新token传入。 verify aksk signature fail:请检查AK、SK是否正确,账号是否欠费。 400 APIG.0201 The request body is oversized. 请求体过大。 请检查请求的body体是否过大,具体请参见《内容审核使用限制》,进行调整。 400 APIG.0308 The request is sent too fast and exceeds the default rate limit of the service. 请求发送太快,超过了服务的默认配置限流。 请求发送太快,达到了API的限速阈值,请降低请求速度。如有更高请求速度要求,请联系华为云支持人员,请通过工单联系我们。 400 ModelArts.0203 Invalid token. 非法Token。 请检查Token是否正确。 400 ModelArts.4101 The token is empty. Token为空。 发送的HTTP请求header中没有带x-auth-token的token请求认证信息,请检查发送的请求。 400 ModelArts.4102 Failed to parse the token. 解析Token失败。 发送的HTTP请求header中x-auth-token的token请求认证信息错误,请检查发送的请求和token。 400 ModelArts.4103 The token is invalid. Token不合法。 发送的HTTP请求header中x-auth-token的token请求认证信息错误,请检查发送的请求和token。 400 ModelArts.4104 The length of the request body is invalid. 请求body体长度不合法。 请检查请求body体长度。 400 ModelArts.4105 The JSON format of the request body is incorrect. 请求body体json格式不对。 请检查请求body体是否符合json格式。 400 ModelArts.4106 The account is restricted. 用户账号受限。 请检查用户资源状态,账号受限原因请参考账号中心相关描述。 400 ModelArts.4107 An exception occurred when obtaining the temporary AK/SK. 获取用户临时AK,SK异常。 请联系华为云支持人员,通过工单联系我们。 400 ModelArts.4201 The request URL does not contain the service ID. 请求url中需要包含服务ID。 请检查请求url中的服务ID。 400 ModelArts.4202 The request URL format is invalid. 请求url格式不合法。 请检查请求url格式。 400 ModelArts.4203 No access permission. 没有权限访问。 请检查访问权限。 400 ModelArts.4204 The API is not subscribed to. 没有订阅该API。 请订阅该API,订阅API请参考服务介绍开通申请服务。如已开通服务,请检查开通服务的区域与服务调用的一致,如果一致请检查API的URL是否拼写正确,HTTP请求方法(POST,GET等)是否正确。 400 ModelArts.4601 The external URL is invalid. 外网下载地址不合法。 请检查输入的url下载地址参数格式。 400 ModelArts.4603 The file failed to be downloaded from the external URL. 下载外网URL文件失败。 请检查输入的url是否可下载。 400 ModelArts.4702 The OBS agency failed to be queried. 查询OBS委托失败。 请检查是否已开通给服务的OBS委托。 400 ModelArts.4703 The OBS URL is invalid. OBS地址不合法。 请检查输入的OBS的url地址。 400 ModelArts.4704 Failed to obtain the OBS file. 获取OBS文件失败。 下载OBS文件失败,请检查对应的文件是否存在。 400 ModelArts.4705 The OBS file is oversized. OBS文件大小超限。 请使用符合服务大小限制的文件作为输入,具体请参见《内容审核使用限制》。 400 ModelArts.4706 The OBS file does not exist. OBS文件不存在。 下载OBS文件失败,请检查对应的文件是否存在。 400 其他 如果出现其他无法解决的错误码,请通过工单联系我们。
  • 配置vsftpd服务 安装宿主机的Linux操作系统后,打开终端terminal,输入以下命令,查看vsftpd服务状态。 service vsftpd status 观察是否自启动(enabled),并且是否处于开启状态(active)。 如果没有自启动,执行命令:service enable vsftpd 如果没有处于开启状态,执行命令:service vsftpd start 父主题: 附录
  • API参数获取说明 表1 API参数说明 位置 参数 是否必选 参数类型 说明 查询master地址 region_name 是 String region英文名称,获取方式:表3的region字段。 获取应用树 region_id 否 String 区域id,获取方式:表3的region字段。 获取应用树 business_id 是 Long 应用id,获取方式:表3的id字段。 获取应用树 env_tag_id 否 Long 环境标签id,获取方式:表4的id字段。 查询环境标签 business_id 是 Long 应用id,获取方式:表3的id字段。 获取组件列表 business_id 是 Long 应用id,获取方式:表3的id字段。 获取组件下的环境列表 app_id 是 Long 组件id,获取方式:表4的id字段。 查询单个应用的详情 business_id 是 Long 应用id,获取方式:表3的id字段。 查询子应用详情 sub_business_id 是 Long 子应用id,获取方式:表5的node_type字段为SUB_BUSINESS的对象,取real_id。 查询监控项配置信息 env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 查询监控项配置信息 collector_id 是 Long 采集器id,获取方式:表5的collector_id字段。 调用链拓扑图 trace_id 是 String 调用链traceId,获取方式:表5的trace_id字段。 获取event的详情 trace_id 是 String trace id,获取方式:表4的trace_id字段。 获取event的详情 span_id 是 String span id,获取方式:表4的span_id字段。 获取event的详情 event_id 是 String event id,获取方式:表4event_id字段。 获取event的详情 env_id 是 Long 环境id,获取方式:表4的env_id字段。 获取span数据 env_id 否 Long 环境id,获取方式:表4的id字段。 查询span数据 instance_id 否 Long 实例id,获取方式:表4的instance_id字段。 查询span数据 app_id 否 Long 组件id,获取方式:表4的id字段。 查询span数据 biz_id 是 Long 应用id,获取方式:表3的id字段。 获取一个trace的所有调用链数据 trace_id 是 String 调用链ID,获取方式:表5的trace_id字段。 获取趋势图 view_config 是 TrendView object 视图配置信息,获取方式 :表5的ViewBase对象。 获取趋势图 instance_id 否 Long 实例id,不填写时获取全部实例聚合数据,获取方式:表4的instance_id字段。 获取趋势图 monitor_item_id 是 Long 监控项id,获取方式:表5的monitor_item_id字段。 获取趋势图 env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 获取汇总表格数据 view_config 是 SumTableView object 视图配置信息,获取方式 :表5的ViewBase对象。 获取汇总表格数据 instance_id 否 Long 实例id,不填写时获取全部实例聚合数据,获取方式:表4的instance_id字段。 获取汇总表格数据 monitor_item_id 是 Long 监控项id,获取方式:表5的monitor_item_id字段。 获取汇总表格数据 env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 获取原始数据表格 view_config 是 RawTableView object 原始数据表格视图,获取方式 :表5的ViewBase对象。 获取原始数据表格 instance_id 是 Long 实例id,不填写时获取全部实例聚合数据,获取方式:表4的instance_id字段。 获取原始数据表格 monitor_item_id 是 Long 监控项id,获取方式:表5的monitor_item_id字段。 获取原始数据表格 env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 获取实例信息列表 env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 获取监控项信息 env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 查询告警列表 region 否 String region英文名称,获取方式:表3的region字段。 查询告警列表 business_id 是 Long 应用id,获取方式:表3的id字段。 查询告警列表 monitor_item_id 否 Long 监控项id,获取方式:表5的monitor_item_id字段。 查询告警列表 collector_id 否 Integer 采集器id,获取方式:表5的collector_id字段。 查询告警消息列表 alarm_data_id 是 Integer 告警事件id,获取方式:表4的id字段。 查询告警消息列表 region 是 String region英文名称,获取方式:表3的region字段。 查询应用全部拓扑图 target_business_id 是 Long 目标应用id,获取方式:表3的id字段。 查询应用全部拓扑图 env_tag_list 否 Array of integers 环境标签列表,可为空,获取方式:表4的id字段。 查询组件环境拓扑图 target_env_id 是 Long 环境id,获取方式:表5的node_type字段为ENVIRONMENT的对象,取real_id。 查询URL跟踪配置列表 business_id 是 Long 应用id,获取方式:表3的id字段。 查询URL跟踪配置列表 env_id 否 Long 环境id,获取方式:表4的id字段。 查询URL跟踪Region环境列表 business_id 是 Long 应用id,获取方式:表3的id字段。 查询URL跟踪Region环境列表 region 是 String region英文名称,获取方式:表3的region字段。 查询URL跟踪视图列表 business_id 是 Long 应用id,获取方式:表3的id字段。 查询URL跟踪视图列表 region 是 String region英文名称,获取方式:表3的region字段。 查询URL跟踪视图列表 env_id 否 Long 环境id,获取方式:表4的env_id字段。 查询URL跟踪视图详情 tx_name 是 String 事务名称,获取方式:表4的tx_name字段。 父主题: 附录
  • 规格约束 事务 使用DATABASE LINK的时候本地和远程事务的关系如下: 本地事务会同步控制远程事务的提交/回滚状态。 隔离级别的对应关系为: 本地隔离级别 远程隔离级别 Read Uncommitted Repeatable Read Read Committed Repeatable Read Repeatable Read Repeatable Read Serializable Serializable 本地事务提交过程中会向远端发送事务提交请求,如果远端事务提交成功后出现异常情况导致本地的事务提交失败,如连接异常,本地集群实例异常等情况,远端的事务提交无法被撤回,可能出现本地事务与远端事务不一致的情况。 本地用户对DATABASE LINK的使用权限 如果使用了public关键词,就是公有的DATABASE LINK,可以被所有用户/模式使用。 如果没有使用public关键词,就是私有的DATABASE LINK,仅能被当前用户/模式使用(包括SYSADMIN用户也无法跨SCHEMA使用DATABASE LINK)。 通过DATABASE LINK访问远程数据库对象的权限 对远程数据库对象的访问权限与DATABASE LINK绑定的远程连接用户的权限保持一致。 支持SQL范围 DATABASE LINK相关语句支持情况请参见表1。 DATABASE LINK相关表类型支持情况请参见表2。 DATABASE LINK函数调用 DATABASE LINK调用远程函数不支持自定义类型、OUT/INOUT参数、PACKAGE内函数、聚集函数、窗口函数、以及返回set函数。 PLSQL_BODY内通过DATABASE LINK调用远程数据库的存储过程或函数不支持自定义类型、OUT/INOUT参数、PACKAGE内函数、重载函数、聚集函数、窗口函数、以及返回set函数。 PLSQL_BODY内调用远程数据库的存储过程或函数时,应使用[CALL | SELECT] [ schema. ] { func_name@dblink | procedure_name@dblink } ( param_expr )语法格式调用。 PLSQL_BODY内调用远程数据库的无参存储过程或函数时,应使用[CALL | SELECT] [ schema. ] { func_name@dblink | procedure_name@dblink } ( )语法格式调用。 同义词 不支持将DATABASE LINK名创建为一个同义词的使用方法。 不支持通过DATABASE LINK调用远端数据库中指向一个DATABASE LINK对象的同义词。例如如下场景: 步骤一:在DB1上创建表TABLE1。 步骤二:在DB2上创建连接DB1的DBLINK1,并创建同义词"CREATE SYNONYM T1 FOR TABLE1@DBLINK1"。 步骤三:在DB3上创建连接DB2的DBLINK2,通过DBLINK2调用DB2上的同义词T1,"SELECT * FROM T1@DBLINK2"。 表类型约束 HASHBUCKET:不支持通过DATABASE LINK对远端Hash bucket表进行查询或DML操作。 SLICE:不支持通过DATABASE LINK对远端slice表进行查询或DML操作。 复制表:不支持通过DATABASE LINK对远端复制表进行查询或DML操作。 TEMPORARY:不支持通过DATABASE LINK对远端临时表进行查询或DML操作。 视图 目前支持对DATABASE LINK的远端表创建视图,但是当远端表本身的结构发生变化时,该视图使用时可能会发生异常。例如: 步骤一:在DB1上创建表TABLE1。 步骤二:在DB2上创建连接DB1的DBLINK,并创建视图"CREATE VIEW V1 AS SELECT * FROM TABLE1@DBLINK。 步骤三:在DB1上删除TABLE1的一列,在DB2上查询该视图会产生报错。 其他场景: DATABASE LINK表不支持TRIGGER,包括TRIGGER调用函数内使用DATABASE LINK场景、TRIGGER调用函数为DATABASE LINK函数、在DATABASE LINK上定义TRIGGER情况。 暂不支持UPSERT、MERGE语法。 不支持current cursor语法。 不支持查询表的隐藏字段。 dump与备份 不支持DATABASE LINK相关数据库对象的dump,备机不支持DATABASE LINK调用,也不支持被DATABASE LINK连接。 不支持DATABASE LINK相关数据库对象的集群备份后恢复使用。因为不同集群的密钥文件不同,在使用 DATABASE LINK 时需要使用集群密钥文件进行解密。 谓词下推约束 仅支持WHERE子句使用的数据类型、操作符和函数是内置的,并且使用的函数是IMMUTABLE类型。 聚集函数下推约束 仅支持单表且没有GROUP、ORDER BY、HAVING、LIMIT子句的SELECT语句,并且不支持窗口函数。 hint下推 支持针对DATABASE LINK表对象的hint条件下推,仅限scan方式的hint下推,语法格式如下: [no] tablescan|indexscan|indexonlyscan(table [index]) 并要求在一个 queryblock 中的表名或表别名不能重复。 表1 支持SQL范围 SQL类型 操作对象 支持选项说明 执行上下文 创建DATABASE LINK DATABASE LINK NA 普通事务块 修改DATABASE LINK DATABASE LINK 仅支持用户名、密码的修改 普通事务块 删除DATABASE LINK DATABASE LINK NA 普通事务块 SELECT语句 普通表、普通视图、全量物化视图 WHERE子句 DATABASE LINK表和内部表JOIN DATABASE LINK表和DATABASE LINK表JOIN 聚集函数 LIMIT子句 ORDER BY子句 GROUP BY子句、HAVING子句 UNION子句 WITH子句 START WITH子句和CONNECT BY子句 FOR UPDATE子句 Rownum使用 普通事务块、存储过程、函数、高级包、逻辑视图 INSERT语句 普通表 多VALUE插入 普通事务块、存储过程、函数、高级包 UPDATE语句 普通表 LIMIT子句 ORDER BY子句 WHERE子句 普通事务块、存储过程、函数、高级包 DELETE语句 普通表 LIMIT子句 ORDER BY子句 WHERE子句 普通事务块、存储过程、函数、高级包 LOCK TABLE语句 普通表 LOCKMODE子句 NOWAIT子句 普通事务块 表2 表类型支持情况 维度 GaussDB 表类型 DATABASE LINK支持情况 TEMP选项 临时表 不支持 全局临时表 不支持 UNLOGGED选项 非日志表 支持 存储特性 行存 Astore 支持 Ustore 不支持 分区表 不支持 二级分区表 不支持 视图 DATABASE LINK访问远程视图 支持dql,不支持dml 本地视图通过 DATABASE LINK 关联远程表 支持dql,不支持dml
  • 功能描述 在本地数据库利用DATABASE LINK与远程数据库建立连接,并通过DATABASE LINK对远程数据库进行访问。 DATABASE LINK可以分为public或private,private DATABASE LINK仅能被创建者访问,而当DATABASE LINK为public时则所有用户都能访问。 所有已创建的DATABASE LINK信息都存在本地数据库的系统视图gs_db_links中。
  • 注意事项 DATABASE LINK特性只在ORA兼容版本下可以使用。 DATABASE LINK连接的远端数据库仅支持503.1.0及之后版本。 用户需要保证本地和远端数据库的兼容性参数DBCOMPATIBILITY和guc参数behavior_compat_options、a_format_dev_version、a_format_version取值一致。 DATABASE LINK连接开启session时会设置如下guc参数: set search_path=pg_catalog, '$user', 'public'; set datestyle=ISO; set intervalstyle=postgres; set extra_float_digits=3; 其余参数为远端设置的参数,远端参数与本地参数不同时,可能会出现数据显示格式不一致等情况,使用时应尽量保证远端与本地参数相同。 使用前置准备:使用gs_guc在gs_hba.conf文件中添加白名单允许客户端连接。 示例:gs_guc reload -I all -N all -Z coordinator -Z datanode -h "host all all 192.168.11.11/32 sha256" 详细配置参数信息参考gs_guc客户端认证策略设置。 某些情况集群白名单中也需要添加DN的IP。 创建DATABASE LINK权限需要使用GRANT语法赋予,新建用户默认无权限,系统管理员拥有权限。详见GRANT相关说明。 使用DATABASE LINK对远端表操作时,会在本地创建与远端对应的SCHEMA,若本地不存在该表的元数据信息,会将元数据信息写入本地系统表中,此时会使用7级锁保证写入的一致性,持续到事务结束放锁,删除DATABASE LINK时会将相应的元数据信息删除。 使用DATABASE LINK时在本地创建的表仅用于存储远端表的元数据信息,无法通过\d或pg_get_tabledef函数查询到表结构。 如果业务中有长事务首次使用DATABASE LINK操作远端对象,会持续持锁直到事务结束,其他首次使用DATABASE LINK的事务会被阻塞。可通过一条快速执行的语句先对要使用的远端对象做查询操作使其元数据落盘来规避这种情况,如 "select * from t1@dblink where 1=2;"。另外,远端表结构发生变化时本地要更新存储的元数据信息,也会有类似情况。 在本地创建与远端对应的SCHEMA时会使用“USERNAME(私有DATABASE LINK才有)#远端SCHEMA@DBLINK名”作为SCHEMA名,名称长度上限为63。 如果本地与远端字符集不同,可能会出现无法转换的报错,报错信息为远端返回报错。当本地数据库字符编码为GB18030_2022时,发送到远端会被转换为GB18030。因此,若本地数据库的字符集为GB18030_2022时,远程数据库字符集只能是GB18030或GB18030_2022。 如果在创建DATABASE LINK对象后重新生成密钥文件,使用DATABASE LINK时将会报错。因为创建DATABASE LINK时使用的密钥文件与后续解密时使用的密钥文件不一致。 使用DATABASE LINK对远端表操作时,会创建一个单节点的NODE GROUP随机绑定一个DN。 当赋予用户创建DATABASE LINK权限时,相当于许可用户使用服务端DATABASE的IP对远端进行访问。若不希望有此效果,应不要使用GRANT对用户赋权。
  • 注意事项 DATABASE LINK特性只在ORA兼容版本下可以使用。 DATABASE LINK连接的远端数据库仅支持503.1及之后版本。 用户需要保证本地和远端数据库的兼容性参数DBCOMPATIBILITY和guc参数behavior_compat_options、a_format_dev_version、a_format_version取值一致。 DATABASE LINK连接开启session时会设置如下guc参数: set search_path=pg_catalog, '$user', 'public'; set datestyle=ISO; set intervalstyle=postgres; set extra_float_digits=3; 其余参数为远端设置的参数,远端参数与本地参数不同时,可能会出现数据显示格式不一致等情况,使用时应尽量保证远端与本地参数相同。 使用前置准备:使用gs_guc在pg_hba.conf文件中添加白名单允许客户端连接。 示例:gs_guc reload -I all -N all -Z coordinator -Z datanode -h "host all all 192.168.11.11/32 sha256" 详细配置参数信息参考gs_guc客户端认证策略设置。 某些情况集群白名单中也需要添加DN的IP。 创建DATABASE LINK权限需要使用GRANT语法赋予,新建用户默认无权限,系统管理员拥有权限。详见GRANT相关说明。 使用DATABASE LINK对远端表操作时,会在本地创建与远端对应的Schema,若本地不存在该表的元数据信息,会将元数据信息写入本地系统表中,此时会使用7级锁保证写入的一致性,持续到事务结束放锁,删除DATABASE LINK时会将相应的元数据信息删除。 使用DATABASE LINK时在本地创建的表仅用于存储远端表的元数据信息,无法通过\d或pg_get_tabledef函数查询到表结构。 如果业务中有长事务首次使用dblink操作远端对象,会持续持锁直到事务结束,其他首次使用dblink的事务会被阻塞。可通过一条快速执行的语句先对要使用的远端对象做查询操作使其元数据落盘来规避这种情况,如 "select * from t1@dblink where 1=2;"。另外,远端表结构发生变化时本地要更新存储的元数据信息,也会有类似情况。 在本地创建与远端对应的SCHEMA时会使用“USERNAME(私有DATABASE LINK才有)#远端SCHEMA@DBLINK名作为SCHEMA名,名称长度上限为63。 如果本地与远端字符集不同,可能会出现无法转换的报错,报错信息为远端返回报错。当本地数据库字符编码为gb18030_2022时,发送到远端会被转换为gb18030。因此,若本地数据库的字符集为GB18030_2022时,远程数据库字符集只能是GB18030或GB18030_2022。 如果在创建DATABASE LINK对象后重新生成密钥文件,使用DATABASE LINK时将会报错。因为创建DATABASE LINK时使用的密钥文件与后续解密时使用的密钥文件不一致。 使用DATABASE LINK对远端表操作时,会创建一个单节点的NODE GROUP随机绑定一个DN。 当赋予用户创建DATABASE LINK权限时,相当于许可用户使用服务端DATABASE的IP对远端进行访问。若不希望有此效果,应不要使用GRANT对用户赋权。
  • 规格约束 事务 使用DATABASE LINK的时候本地和远程事务的关系如下: 本地事务会同步控制远程事务的提交/回滚状态。 隔离级别的对应关系为: 本地隔离级别 远程隔离级别 Read Uncommitted Repeatable Read Read Committed Repeatable Read Repeatable Read Repeatable Read Serializable Serializable 本地事务提交过程中会向远端发送事务提交请求,如果远端事务提交成功后出现异常情况导致本地的事务提交失败,如连接异常,本地集群实例异常等情况,远端的事务提交无法被撤回,可能出现本地事务与远端事务不一致的情况。 本地用户对DATABASE LINK的使用权限 如果使用了public关键词,就是公有的DATABASE LINK,可以被所有用户/schema使用。 如果没有使用public关键词,就是私有的DATABASE LINK,仅能被当前用户/schema使用(包括sysadmin用户也无法跨schema使用DATABASE LINK)。 通过DATABASE LINK访问远程数据库对象的权限 对远程数据库对象的访问权限与DATABASE LINK绑定的远程连接用户的权限保持一致。 支持SQL范围 DATABASE LINK相关语句支持情况见表1。 DATABASE LINK相关表类型支持情况见表2。 DATABASE LINK函数调用 DATABASE LINK调用远程函数不支持OUT/INOUT参数、聚集函数、窗口函数、以及返回set函数。 PLSQL_BODY内通过DATABASE LINK调用远程数据库的存储过程或函数不支持OUT/INOUT参数、重载函数、聚集函数、窗口函数、以及返回set函数。 PLSQL_BODY内调用远程数据库的存储过程或函数时,应使用[CALL | SELECT] [ schema. ] { func_name@dblink | procedure_name@dblink } ( param_expr )语法格式调用。 PLSQL_BODY内调用远程数据库的无参存储过程或函数时,应使用[CALL | SELECT] [ schema. ] { func_name@dblink | procedure_name@dblink } ( )语法格式调用。 同义词 不支持将DATABASE LINK名创建为一个同义词的使用方法。 不支持通过DATABASE LINK调用远端数据库中指向一个DATABASE LINK对象的同义词。例如如下场景: 步骤一:在DB1上创建表TABLE1。 步骤二:在DB2上创建连接DB1的DBLINK1,并创建同义词"CREATE SYNONYM T1 FOR TABLE1@DBLINK1"。 步骤三:在DB3上创建连接DB2的DBLINK2,通过DBLINK2调用DB2上的同义词T1,"SELECT * FROM T1@DBLINK2"。 表类型约束 HASHBUCKET:不支持通过DATABASE LINK对远端Hash bucket表进行查询或DML操作。 SLICE:不支持通过DATABASE LINK对远端slice表进行查询或DML操作。 复制表:不支持通过DATABASE LINK对远端复制表进行查询或DML操作。 TEMPORARY:不支持通过DATABASE LINK对远端临时表进行查询或DML操作。 视图 目前支持对DATABASE LINK的远端表创建视图,但是当远端表本身的结构发生变化时,该视图使用时可能会发生异常。例如: 步骤一:在DB1上创建表TABLE1。 步骤二:在DB2上创建连接DB1的DBLINK,并创建视图"CREATE VIEW V1 AS SELECT * FROM TABLE1@DBLINK。 步骤三:在DB1上删除TABLE1的一列,在DB2上查询该视图会产生报错。 其他场景: DATABASE LINK表不支持TRIGGER,包括TRIGGER调用函数内使用DATABASE LINK场景、trigger调用函数为DATABASE LINK函数、在DATABASE LINK上定义TRIGGER情况。 暂不支持UPSERT、MERGE语法。 不支持current cursor语法。 不支持查询表的隐藏字段。 dump与备份 不支持DATABASE LINK相关数据库对象的dump,备机不支持DATABASE LINK调用,也不支持被DATABASE LINK连接。 不支持DATABASE LINK相关数据库对象的集群备份后恢复使用。因为不同集群的密钥文件不同,在使用 DATABASE LINK 时需要使用集群密钥文件进行解密。 谓词下推约束 仅支持WHERE子句使用的数据类型、操作符和函数是内置的,并且使用的函数是IMMUTABLE类型。 聚集函数下推约束 仅支持单表且没有GROUP、ORDER BY、HAVING、LIMIT子句的SELECT语句,并且不支持窗口函数。 hint下推 支持针对DATABASE LINK表对象的hint条件下推,仅限scan方式的hint下推,语法格式如下: [no] tablescan|indexscan|indexonlyscan(table [index]) 并要求在一个 queryblock 中的表名或表别名不能重复。 表1 支持SQL范围 SQL类型 操作对象 支持选项说明 执行上下文 创建DATABASE LINK DATABASE LINK NA 普通事务块 修改DATABASE LINK DATABASE LINK 仅支持用户名、密码的修改 普通事务块 删除DATABASE LINK DATABASE LINK NA 普通事务块 SELECT语句 普通表、普通视图、全量物化视图 WHERE子句 DATABASE LINK表和内部表JOIN DATABASE LINK表和DATABASE LINK表JOIN 聚集函数 LIMIT子句 ORDER BY子句 GROUP BY子句、HAVING子句 UNION子句 WITH子句 FOR UPDATE子句 Rownum使用 普通事务块、存储过程、函数、高级包、逻辑视图 INSERT语句 普通表 多VALUE插入 普通事务块、存储过程、函数、高级包 UPDATE语句 普通表 LIMIT子句 ORDER BY子句 WHERE子句 普通事务块、存储过程、函数、高级包 DELETE语句 普通表 LIMIT子句 ORDER BY子句 WHERE子句 普通事务块、存储过程、函数、高级包 LOCK TABLE语句 普通表 LOCKMODE子句 NOWAIT子句 普通事务块 表2 表类型支持情况 维度 GaussDB表类型 DATABASE LINK支持情况 TEMP选项 临时表 不支持 全局临时表 不支持 UNLOGGED选项 非日志表 支持 存储特性 行存 Astore 支持 Ustore 不支持 分区表 不支持 二级分区表 不支持 视图 DATABASE LINK访问远程视图 支持dql,不支持dml 本地视图通过 DATABASE LINK 关联远程表 支持dql,不支持dml
  • 功能描述 在本地数据库利用DATABASE LINK与远程数据库建立连接,并通过DATABASE LINK对远程数据库进行访问。 DATABASE LINK可以分为public或private,private DATABASE LINK仅能被创建者访问,而当DATABASE LINK为public时则所有用户都能访问。 所有已创建的DATABASE LINK信息都存在本地数据库的系统视图gs_db_links中。
  • 规格约束 事务 使用DATABASE LINK的时候本地和远程事务的关系如下: 本地事务会同步控制远程事务的提交/回滚状态。 隔离级别的对应关系为: 本地隔离级别 远程隔离级别 Read Uncommitted Repeatable Read Read Committed Repeatable Read Repeatable Read Repeatable Read Serializable Serializable 本地事务提交过程中会向远端发送事务提交请求,如果远端事务提交成功后出现异常情况导致本地的事务提交失败,如连接异常,本地集群实例异常等情况,远端的事务提交无法被撤回,可能出现本地事务与远端事务不一致的情况。 本地用户对DATABASE LINK的使用权限 如果使用了public关键词,就是公有的DATABASE LINK,可以被所有用户/模式使用。 如果没有使用public关键词,就是私有的的DATABASE LINK,仅能被当前用户/模式使用(包括sys用户也无法跨schema使用DATABASE LINK)。 通过DATABASE LINK访问远程数据库对象的权限 对远程数据库对象的访问权限与DATABASE LINK绑定的远程连接用户的权限保持一致。 支持SQL范围 DATABASE LINK相关语句支持情况见。表1 DATABASE LINK相关表类型支持情况见表2。 DATABASE LINK函数调用 DATABASE LINK调用远程函数不支持自定义类型、OUT/INOUT参数、PACKAGE内函数、聚集函数、窗口函数、以及返回set函数。 PLSQL_BODY内通过DATABASE LINK调用远程数据库的存储过程或函数不支持自定义类型、OUT/INOUT参数、PACKAGE内函数、重载函数、聚集函数、窗口函数、以及返回set函数。 PLSQL_BODY内调用远程数据库的存储过程或函数时,应使用[CALL | SELECT] [ schema. ] { func_name@dblink | procedure_name@dblink } ( param_expr )语法格式调用。 PLSQL_BODY内调用远程数据库的无参存储过程或函数时,应使用[CALL | SELECT] [ schema. ] { func_name@dblink | procedure_name@dblink } ( )语法格式调用。 同义词 不支持将DATABASE LINK名创建为一个同义词的使用方法。 不支持通过DATABASE LINK调用远端数据库中指向一个DATABASE LINK对象的同义词。例如如下场景: 步骤一:在DB1上创建表TABLE1。 步骤二:在DB2上创建连接DB1的DBLINK1,并创建同义词"CREATE SYNONYM T1 FOR TABLE1@DBLINK1"。 步骤三:在DB3上创建连接DB2的DBLINK2,通过DBLINK2调用DB2上的同义词T1,"SELECT * FROM T1@DBLINK2"。 表类型约束 HASHBUCKET:不支持通过DATABASE LINK对远端Hash bucket表进行查询或DML操作。 SLICE:不支持通过DATABASE LINK对远端slice表进行查询或DML操作。 复制表:不支持通过DATABASE LINK对远端复制表进行查询或DML操作。 TEMPORARY:不支持通过DATABASE LINK对远端临时表进行查询或DML操作。 视图 目前支持对DATABASE LINK的远端表创建视图,但是当远端表本身的结构发生变化时,该视图使用时可能会发生异常。例如: 步骤一:在DB1上创建表TABLE1。 步骤二:在DB2上创建连接DB1的DBLINK,并创建视图"CREATE VIEW V1 AS SELECT * FROM TABLE1@DBLINK。 步骤三:在DB1上删除TABLE1的一列,在DB2上查询该视图会产生报错。 其他场景: DATABASE LINK表不支持TRIGGER,包括TRIGGER调用函数内使用DATABASE LINK场景、trigger调用函数为DATABASE LINK函数、在DATABASE LINK上定义TRIGGER情况。 暂不支持UPSERT、MERGE语法。 不支持current cursor语法。 不支持查询表的隐藏字段。 dump与备份 不支持DATABASE LINK相关数据库对象的dump,备机不支持DATABASE LINK调用,也不支持被DATABASE LINK连接。 谓词下推约束 仅支持WHERE子句使用的数据类型、操作符和函数是内置的,并且使用的函数是IMMUTABLE类型。 聚集函数下推约束 仅支持单表且没有GROUP、ORDER BY、HAVING、LIMIT子句的SELECT语句,并且不支持窗口函数。 hint下推 支持针对DATABASE LINK表对象的hint条件下推,仅限scan方式的hint下推,语法格式如下: [no] tablescan|indexscan|indexonlyscan(table [index]) 并要求在一个 queryblock 中的表名或表别名不能重复。 表1 支持SQL范围 SQL类型 操作对象 支持选项说明 执行上下文 创建DATABASE LINK DATABASE LINK NA 普通事务块 修改DATABASE LINK DATABASE LINK 仅支持用户名、密码的修改 普通事务块 删除DATABASE LINK DATABASE LINK NA 普通事务块 SELECT语句 普通表、普通视图、全量物化视图 WHERE子句 DATABASE LINK表和内部表JOIN DATABASE LINK表和DATABASE LINK表JOIN 聚集函数 LIMIT子句 ORDER BY子句 GROUP BY子句、HAVING子句 UNION子句 WITH子句 START WITH子句和CONNECT BY子句 FOR UPDATE子句 Rownum使用 普通事务块、存储过程、函数、高级包、逻辑视图 INSERT语句 普通表 多VALUE插入 普通事务块、存储过程、函数、高级包 UPDATE语句 普通表 LIMIT子句 ORDER BY子句 WHERE子句 普通事务块、存储过程、函数、高级包 DELETE语句 普通表 LIMIT子句 ORDER BY子句 WHERE子句 普通事务块、存储过程、函数、高级包 LOCK TABLE语句 普通表 LOCKMODE子句 NOWAIT子句 普通事务块 表2 表类型支持情况 维度 GaussDB表类型 DATABASE LINK支持情况 TEMP选项 临时表 不支持 全局临时表 支持 UNLOGGED选项 非日志表 支持 存储特性 行存 Astore 支持 Ustore 支持 分区表 支持 二级分区表 支持 视图 DATABASE LINK访问远程视图 支持dql,不支持dml 本地视图通过 DATABASE LINK 关联远程表 支持dql,不支持dml
  • 注意事项 DATABASE LINK特性只在A兼容版本下可以使用。 DATABASE LINK连接的远端数据库仅支持503.1及之后版本。 用户需要保证本地和远端数据库的兼容性参数DBCOMPATIBILITY和GUC参数behavior_compat_options、a_format_dev_version、a_format_version取值一致。 DATABASE LINK连接开启session时会设置如下GUC参数。 set search_path=pg_catalog, '$user', 'public'; set datestyle=ISO; set intervalstyle=postgres; set extra_float_digits=3; 其他参数为远端设置的参数,远端参数与本地参数不同时,可能会出现数据显示格式不一致等情况,使用时应尽量保证远端与本地参数相同。 使用前置准备:使用gs_guc在pg_hba.conf文件中添加白名单允许客户端连接。 示例:gs_guc reload -I all -N all -Z datanode -h "host all all 192.168.11.11/32 sha256" 详细配置参数信息参考gs_guc客户端认证策略设置。 创建DATABASE LINK权限需要使用GRANT语法赋予,新建用户默认无权限,系统管理员拥有权限。详见GRANT相关说明。 使用DATABASE LINK对远端表操作时,会在本地创建与远端对应的Schema,若本地不存在该表的元数据信息,会将元数据信息写入本地系统表中,此时会使用7级锁保证写入的一致性,持续到事务结束放锁,删除DATABASE LINK时会将相应的元数据信息删除。 使用DATABASE LINK时在本地创建的表仅用于存储远端表的元数据信息,无法通过\d或pg_get_tabledef函数查询到表结构。 如果业务中有长事务首次使用dblink操作远端对象,会持续持锁直到事务结束,其他首次使用dblink的事务会被阻塞。可通过一条快速执行的语句先对要使用的远端对象做查询操作使其元数据落盘来规避这种情况,如 "select * from t1@dblink where 1=2;"。另外,远端表结构发生变化时本地要更新存储的元数据信息,也会有类似情况。 如果本地与远端字符集不同,可能会出现无法转换的报错,报错信息为远端返回报错。当本地数据库字符编码为gb18030_2022时,发送到远端会被转换为gb18030。因此,若本地数据库的字符集为GB18030_2022时,远程数据库字符集只能是GB18030或GB18030_2022。 在本地创建与远端对应的SCHEMA时会使用“USERNAME(私有DATABASE LINK才有)#远端SCHEMA@DBLINK名”做为SCHEMA名,名称长度上限为63。 当赋予用户创建DATABASE LINK权限时,相当于许可用户使用服务端DATABASE的IP对远端进行访问。若不希望有此效果,应不要使用GRANT对用户赋权。
  • 功能描述 在本地数据库利用DATABASE LINK与远程数据库建立连接,并通过DATABASE LINK对远程数据库进行访问。 DATABASE LINK可以分为public或private,private DATABASE LINK仅能被创建者访问,而当DATABASE LINK为public时则所有用户都能访问。 所有已创建的DATABASE LINK信息都存在本地数据库的系统视图gs_db_links中。