华为云用户手册

  • 购买套餐 登录行业视频管理服务。 单击“立即购买”,使用在注册华为账号并开通华为云中创建的华为账号(已完成个人和企业的实名认证)登录后进入套餐购买界面。 选择套餐包规格,套餐包说明如表1所示,详细价格介绍请参见计费说明。 表1 套餐包说明 套餐包 说明 接入调阅服务 接入调阅套餐根据设备接入数和调阅带宽按月收取费用,包括体验套餐包、标准套餐包和高级套餐包。 录像存储服务 录像存储服务套餐根据存储容量按月收取费用,包括动检存储和连续存储套餐包。 动检存储:当设备发送告警事件后,会保存告警时间段的设备录像到华为云存储。 连续存储:当设备在线的状态下,会保存全体连续的设备录像到华为云存储。 在左侧的“购买清单”中勾选“我已阅读并同意《华为云销售协议》”,单击“订单确认”。 在订单确认界面确认套餐信息后单击“立即购买”。 核对订单详情,勾选“协议及授权”,单击“去支付”。 按需选择扣费优惠,确认付款并支付订单,付款成功后待订单完成即可使用该套餐绑定设备。 套餐购买后可以在设备管理界面中配置,具体请参见配置服务。
  • 操作场景 添加设备后,默认没有开通服务,您可以按需选择并开通服务。提供的服务如下: 接入调阅服务:提供视频接入和管理功能,开通后可以查看实况和录像。 录像存储服务:提供云端视频存储功能,开通后设置录像计划进行录像存储,关闭服务后会删除所有录像文件。 行业数据流服务:提供云端存储设备智能告警数据功能,开通后可以在云端保存设备智能告警数据,如智能告警图片、智能分析元数据等。关闭服务后会删除所有相关数据。
  • 高危操作清单 表1 高危操作一览表 危险操作 操作影响 关闭服务 关闭服务后会立即清理该通道下正在使用或者已经存储的相关数据资源,详细说明如下: 管理服务:该通道所有媒体相关服务,如实况播放,录像回放等。 收录服务:停止该通道云端录像计划,删除已存储的云端录像文件。 行业数据流服务:停止该通道行业数据流数据存储及转发能力,删除已存储的行业数据流数据。 删除设备 删除设备后,会自动关闭该设备下所有通道开通的服务,同时将该设备从设备列表(含持有人及被分享人)中删除。 解散企业 解散企业后会将该企业下所有设备进行删除。 用户注销 用户注销后,会将该用户下所有用户数据进行清除,包含个人信息,个人所拥有设备信息,个人与企业权限关系等。 若用户属于某企业,用户注销只会删除用户与企业的权限关系,不影响企业下设备的正常使用。 解绑设备 用户可以选择登录设备页面后进行设备与云服务解绑。 解绑后,该设备在云服务开通的服务会关闭,用户绑定关系会进行删除,该设备可以重新进行添加绑定。 删除aksk 企业开发者删除aksk后,原有企业凭证申请的所有AccessToken均会失效。 申请AccessToken 单个aksk只维护最新两个AccessToken的有效性,申请新的AccessToken会自动覆盖较早AccessToken有效性。 父主题: 参考
  • 操作步骤 登录行业视频管理服务后台。 选择“人员管理”,单击“添加”,输入部门名称,单击“确定”。按需进行企业组织架构建设,最大支持9级的企业组织管理。 图1 添加部门 选择需要添加用户的部门,右侧单击“添加用户”。 输入用户信息,确认无误后,单击“添加”。 图2 添加用户 表1 角色说明 角色 说明 企业管理员 有所有设备、所有人员的权限。 有企业信息和企业凭证的权限。 有算法管理、算法详情的权限。 部门管理员 由企业管理员分配设备权限,无权限设备不可见。 只能管理所在部门下的人员,其他人员不可见。 不能修改企业管理员和其他部门管理员。 企业信息和凭证无查看权限。 服务管理、算法管理、算法详情无查看权限。 可以给普通用户和其他部门管理员分配设备/设备组。 普通用户 主要通过APP进行操作。 设备权限只能由企业/部门管理员分配。 没有查看部门人员的权限。 如需给用户分配设备,勾选需要分配设备的用户,单击“分配设备组”或“分配设备”,单击“确定”。
  • 到期与欠费 套餐到期 接入调阅套餐到期后,设备将无法继续使用行业视频管理服务,需要给设备绑定新的套餐,或者绑定按需计费。 录像存储套餐到期后,设备将停止将录像存至云端,需要给设备绑定新的套餐,或者绑定按需计费。云上存储的数据,超过保留期后会从行业视频管理删除。 账户欠费 账户欠费超过保留期后,视频点位会自动解绑按需计费,变为失效。账户缴费后,您可以点“恢复按需计费”按钮,恢复所有失效点位的按需计费服务。
  • 计费模式 行业视频管理服务支持包年包月套餐包和按需计费两种计费方式。 包年包月套餐包:您可以先付费购买套餐包,使用时可选择已购套餐包资源绑定设备。行业视频管理服务提供接入调阅服务套餐包(表1)和录像存储服务套餐包(表2)。 (注意:接入设备带宽使用量超出套餐限额的部分,按照按需计费(表3)的资费扣费。) 按需计费:您可以开通按需计费服务,按照接入路数、调阅带宽以及视图云存储容量付费(表3),可以在行业视频管理服务后台随时对设备进行绑定或解绑服务,具体请参见配置服务。 (注意:行业数据流服务当前仅支持按需计费。) 系统会根据资源的实际使用情况按不同的量纲按月或天出账单,并从账户余额里扣款。账户余额可以进入“费用中心”界面查看,具体请参见充值。
  • 包周期套餐包报价 表1 接入调阅服务套餐的商用报价 套餐包 接入路数(路) 调阅带宽(mbps) 官网单价(套/月) 官网包年价(套/年) 价格单位 体验版 20 1 0 - 元 IVM标准版(B100) 100 5 240 2400 元 IVM标准版(B500) 500 25 800 8000 元 IVM标准版(B2000) 2000 100 3000 30000 元 IVM标准版(B5000) 5000 250 6000 60000 元 IVM高级版(A100) 100 20 700 7000 元 IVM高级版(A500) 500 100 2500 25000 元 IVM高级版(A2000) 2000 200 5000 50000 元 IVM高级版(A5000) 5000 500 11000 110000 元 备注: 接入调阅服务套餐包括接入路数与调阅带宽: 实际接入路数达到套餐包接入路数限额后,您将无法将设备绑定该套餐包,但仍可绑定按需计费服务; 每天峰值带宽消耗超过套餐包最高带宽时,超出部分将按照按需计费(1.20元/mbps/天)收取额外费用。 调阅带宽使用场景: 实况/回放预览、回放录像下载:调阅带宽使用量与视频码率&音频码率有关,可配置相机码率上限限制码率。例如:5mbps码率预估支持6路512kbps码率或1024kbps码率视频同时播放; 告警图片下载:调阅带宽使用量与图片下载速率&并发数量有关; 告警数据转发:调阅带宽使用量与告警转发速率&并发数量有关,可配置相机告警生成间隔时间抑制告警并发数量。
  • 行业视频管理服务使用流程 表1 行业视频管理服务使用流程 流程 任务说明 参考文档 注册华为账号并开通华为云 进入华为云首页。 单击右上角的“注册”,创建华为账号并开通华为云,完成个人和企业的实名认证。 新增访问密钥,请参考注册华为账号并开通华为云章节。 密钥文件会自动下载,请妥善保存。 AK、SK、账号名、账号ID、项目、项目ID会作为创建企业时填写的关键参数。 请参考注册华为账号并开通华为云章节。 登录行业视频管理服务后台 使用华为帐号或行业视频管理服务帐号登录行业视频管理服务后台。 请参考登录行业视频管理后台章节。 创建企业 首次使用行业视频云服务,可以选择创建企业或等待管理员邀请加入企业,待管理员发送邀请后刷新页面即可看到企业邀请提示。 如果需要创建企业,可以根据页面提示操作。 请参考创建企业章节。 添加设备 包括添加设备组和设备,以及对设备进行版本升级与回退。 请参考设备管理章节。 添加部门和用户 给企业添加部门和用户。 请参考添加部门和用户章节。 购买套餐 用户根据需求,选择合适的套餐包类型和套餐包规格购买接入能力或存储服务。 请参考套餐购买章节。 开通按需计费 在华为云控制台开通按需计费。 绑定服务 在设备管理选择视频点位,绑定服务。 请参考配置服务章节。 安装算法 选择设备安装需要的算法。 请参考算法管理章节。
  • 使用行业视频管理账号登录行业视频管理后台 进入行业视频管理服务后台。 在华为账号登录框下方,单击“行业视频管理帐号”,进入行业视频管理服务登录界面。 单击“注册账号”。 在注册页面,输入手机号、验证码、密码、验证码并确认密码,完成后勾选协议,单击“注册”。 此处注册的行业视频管理服务账号与注册华为账号并开通华为云中注册的华为账号(华为云实名认证)不同。 行业视频管理服务账号用于登录行业视频管理服务后台,创建企业后可以对所在企业或组织的人员、设备等进行管理。 华为账号指真实的个人或企业登录华为云的账号信息,客户的基本信息、订单信息、费用信息都和客户的账号相关联。 进入行业视频管理帐号登录页面进行登录。
  • 使用华为账号登录行业视频管理后台 进入行业视频管理服务后台。 在华为账号登录框,使用已有的华为账号直接登录。 如果没有华为账号,单击“注册”,进入账号注册界面。 单击选中“华为账号”,在华为账号注册页面,输入手机号、验证码、密码并确认密码,单击“注册”。 如果需要注册行业视频管理账号,则单击选中“行业视频管理服务账号”,跳转至行业视频管理服务账号注册页面,参考登录行业视频管理后台进行创建。 此处注册的华为账号与注册华为账号并开通华为云中注册的华为账号(华为云实名认证)不同。 此处的华为账号用于登录行业视频管理服务后台,创建企业后可以对所在企业或组织的人员、设备等进行管理。 注册华为账号并开通华为云中的华为账号指真实的个人或企业登录华为云的账号信息,客户的基本信息、订单信息、费用信息都和客户的账号相关联。 进入华为帐号登录界面登录。
  • 基础介绍 行业视频管理服务远程配置是行业视频管理服务借助云上能力实现SDC、NVR800、IVS1800直连/透传场景的基础业务远程配置功能,借助行业视频管理服务后台向经销商、渠道商、企业用户提供设备基础参数(智能配置、图像参数、视音频等)远程配置的平台,实现对云上设备统一管理,帮助用户通过行业视频管理配置千里之外的设备,并且能建立以行业视频管理为核心的用户操作架构,达到拓宽行业视频管理边界的效果。
  • 配置平台侧参数 登录行业视频管理服务后台。 单击“设备管理”,选择需要添加设备的设备组,单击“添加设备”。 选择“单个添加”设备,国标协议接入,根据图1填写基本信息。 图1 添加设备 表1 参数说明 参数 说明 设备名称 自定义,应用于本平台的名称。 支持数字、中文、英文、空格、-、_,最大长度26个字符,首位字符不能为空格。 设备ID 设备ID为20位纯数字。其中,第11-13位与设备类型对应关系如下: 摄像机:132 NVR:118 DVR:111 其他位自定义。 设备用户名 登录设备的用户名。 长度5-32个字符,首位字符不能为数字。 设备密码 设备在平台中的注册密码。 注册认证算法 选择设备注册的认证算法类型。建议选择SHA265,安全性更高。 添加设备后,会弹出“添加成功”界面。 请手动记录该信息,配置设备侧参数时需要使用。 单击“关闭”,关闭后可在设备详情页面单击“SIP信息”查看。
  • 设备版本限制 远程配置功能与设备10.0.0版本配套,仅少数其他版本支持部分功能,设备配套关系表如下: 表1 设备配套关系 组网场景 NVR/IVS设备版本 SDC设备版本 适用功能 SDC直连 - SDC 9.0.0.LG0001 SDC 9.0.0.LG0002 SDC 9.0.0.SPC307 SDC 10.0.0及以上 全部 SDC 10.0RC11.SPC100 仅不支持视频参数 其他 不支持 NVR/IVS+SDC透传 NVR 9.0.0 SPC6及以上版本 或 IVS 9.1.0及以上版本 SDC 9.0.0.LG0001 SDC 9.0.0.LG0002 SDC 9.0.0.SPC307 SDC 10.0.0及以上 全部 其他 不支持 其他 - 不支持
  • 安装eihealth-toolkit 本示例中以Windows系统为例,介绍安装命令行工具的方法。 获取Windows版本的命令行工具,得到health.exe文件,health文件无需安装,放置在任一文件夹中即可。例如,放到C盘Users文件夹中。 图1 下载命令行工具 使用键盘win键+R,输入cmd,并单击“确定”打开windows的cmd窗口。 进入cmd窗口,输入health命令,即可使用。 如果命令行工具所在的文件夹和进入cmd的默认路径不一致,可以使用cd命令进入health文件所在目录。例如,命令行工具放在D盘demo文件夹中,可以使用如下命令进入。进入后,再执行health命令即可开始使用命令行工具。如果不清楚获取路径方法,请参考图3获取路径。 cd /d d:\demo 图2 cmd窗口输入health命令 图3 获取路径 使用Linux版本命令行工具时,您需要在本地搭建Linux环境,并将下载的health文件放至所需的目录下。macOS执行命令和linux一致, 如果当前目录为health所在目录,可以使用./health命令使用命令行工具。 如果当前目录不是health所在目录,需要使用绝对路径。如当前目录为/opt,假设health存放在/root/health-toolkit/下,需要指定/root/health-toolkit/health路径进行使用。 如果无法运行,提示Permission denied,使用chmod 755 health命令设置执行权限。
  • 下载命令行工具eihealth-toolkit 针对不同操作系统,eihealth-toolkit下载地址如下所示。 表1 下载列表 支持平台 下载地址 Windows 64位 health-windows-x86_64.zip、health-windows-x86_64.zip.sha256 Linux ARM 64位 health-linux-aarch64.tar、health-linux-aarch64.tar.sha256 Linux AMD 64位 health-linux-x86_64.tar、health-linux-x86_64.tar.sha256 macOS health-macOS-x86_64.tar、health-macOS-x86_64.tar.sha256 本页面命令行工具下载后,在使用时,需用到您注册华为账号并开通华为云时提供的用户名等信息,用于登录并操作EIHealth平台的项目、数据等资产。这些信息的处理将遵循您已接收的《华为云用户协议》及《隐私政策声明》约束。 下载地址中带有sha256后缀的链接,指的是对应软件包的校验文件。例如:Windows x64版本的下载链接是health-windows-x86_64 ,它的校验文件下载链接则是health-windows-x86_64.zip.sha256。
  • 获取AK/SK AK/SK(Access Key ID/Secret Access Key)即访问密钥,包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。 登录华为云管理控制台,鼠标指向页面右上角的用户名,在下拉列表中单击“我的凭证”。 图1 我的凭证入口 在“我的凭证”页面中选择“访问密钥”页签。单击“新增访问密钥”,按操作指引获取认证账号的AK/SK,请妥善保管AK/SK信息。 图2 访问密钥 每个用户仅允许新增两个访问密钥。 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台页面获取。请在生成后妥善保管。
  • 约束与限制 在使用云运维中心COC时,您需注意以下使用限制,详见表1。 表1 云运维中心使用限制 功能模块 对象 使用限制 公共 补丁/脚本/作业/ECS操作 单个操作任务最多支持选择200台实例。 补丁/脚本/作业/ECS操作 执行工单时,超时时间小于等于86400秒(即24小时)。 资源管理 安装UniAgent支持操作系统 目前支持的Linux操作系统版本有: EulerOS 2.2 64bit for Tenant 20210227 EulerOS 2.3 64bit EulerOS 2.5 64bit for Tenant 20210229 CentOS 7.2 64bit CentOS 7.3 64bit CentOS 7.4 64bit CentOS 7.5 64bit CentOS 7.6 64bit for Tenant 20200925(制作资源镜像使用) CentOS 7.6 64bit for Tenant 20210227 CentOS 7.6 64bit for Tenant 20210525 UniAgent客户端 当CPU使用率大于10%或者内存大于200M时,UniAgent客户端将自动重启。 UniAgent安装 单次最多可安装100台UniAgent主机。 应用管理 应用 租户创建的应用层级≤5层。 补丁管理 补丁基线 租户创建的补丁基线个数≤50个(不计入公共基线)。 脚本管理 脚本内容 自定义脚本内容≤4096字节。 作业管理 全局参数 单个自定义作业的全局参数≤30个。 Warroom 起会规则 租户创建的Warroom起会规则个数≤50个。 流转规则 流转规则 租户创建的流转规则个数≤50个。 集成管理 数据记录 COC保存集成数据源的最近10次数据记录。 人员管理 人员数量 租户创建的人员个数≤50个。 排班管理 排班角色 单个排班场景下的排班角色≤10个。 帐号管理 资源类型 目前支持纳管的资源类型: 弹性云服务器 帐号基线 基线帐号数量≤30个,关联的组件数量≤100个。
  • 与其他云服务的关联 云运维中心COC服务与其他服务的关系,如图1所示。 图1 与其他服务的关系 表1 与其他服务的关系 交互功能 相关服务 COC功能场景 云服务器接入云运维中心 应用运维管理(Application Operations Management,AOM) 执行Agent操作 查看租户账号下资源情况 资源管理服务(Resource Management Service,RMS) 资源管理 自定义脚本文件将存储在OBS 对象存储服务(Object Storage Servic) 脚本管理 支持CCE类型虚机进行补丁管理 云容器引擎(Cloud Container Engine) 补丁管理 查看资源安全状态以及告警 安全云脑(SecMaster) 安全概览 通过标签查询资源 标签管理服务(Tag Management Service,TMS) 资源管理 对弹性云服务器进行运维操作 弹性云服务器(Elastic Cloud Server, ECS) ECS操作 华为云监控数据集成接入 云监控(Cloud Eye,CES) 集成管理 事件、任务、变更、审批通知功能 消息通知服务(Simple Message Notification,SMN) 通知管理 为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,使用统一身份认证服务进行精细的权限管理 统一身份认证服务(Identity and Access Management,IAM) 通过角色/资源管理资源访问权限
  • 角色授权系统权限 COC服务支持基于角色授权的授权模型。默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 COC部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问COC时,不需要切换区域。 如表2所示,包括了COC的所有系统权限。基于角色授权场景的系统策略与基于策略授权场景的并不互通。 表2 COC系统权限 系统角色/策略名称 描述 类别 依赖关系 COC ReadOnlyAccess 云运维中心服务只读权限 系统策略 无 COC FullAccess 云运维中心服务管理员权限 系统策略 无 表3 常用操作与系统权限的关系列出了COC常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 常用操作与系统权限的关系 操作 COC ReadOnlyAccess COC FullAccess 查看待办任务 √ √ 创建及处理待办任务 x √ 查看资源列表 √ √ 资源纳管 x √ 查看脚本列表 √ √ 增查改删及执行脚本 x √ 查看作业列表 √ √ 增查改删及执行作业 x √ 执行ECS操作 x √ 查看定时运维任务 √ √ 增查改删及执行定时运维任务 x √ 查看参数中心 √ √ 增查改删参数 x √ 查看事件单 √ √ 创建及处理事件 x √ 查看告警记录 √ √ 处理告警 x √ 查看混沌演练规划 √ √ 执行演练任务 x √ 查看排班 √ √ 创建排班 x √ 查看帐号基线 √ √ 创建帐号基线 x √
  • 任务示例 使用如下命令连接数据库。 gsql -d gaussdb -p 8000 gaussdb为需要连接的数据库名称,8000为CN的端口号。 连接成功后,系统显示类似如下信息: gsql ((GaussDB Kernel VxxxRxxxCxx build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. 查看gsql的帮助信息。具体执行命令请参见表1。 表1 使用gsql联机帮助 描述 示例 查看版权信息 \copyright 查看GaussDB支持的SQL语句的帮助 查看GaussDB支持的SQL语句的帮助 例如,查看GaussDB支持的所有SQL语句: 1 2 3 4 5 6 openGauss=# \h Available help: ABORT ALTER AGGREGATE ALTER APP WORKLOAD GROUP ... ... 例如,查看CREATE DATABASE命令的参数可使用下面的命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 openGauss=# \help CREATE DATABASE Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE database_name [ [ WITH ] {[ OWNER [=] user_name ]| [ TEMPLATE [=] template ]| [ ENCODING [=] encoding ]| [ LC_COLLATE [=] lc_collate ]| [ LC_CTYPE [=] lc_ctype ]| [ DBCOMPATIBILITY [=] compatibility_type ]| [ TABLESPACE [=] tablespace_name ]| [ CONNECTION LIMIT [=] connlimit ]}[...] ]; 查看gsql命令的帮助 例如,查看gsql支持的命令: 1 2 3 4 5 6 7 openGauss=# \? General \copyright show openGauss usage and distribution terms \g [FILE] or ; execute query (and send results to file or |pipe) \h(\help) [NAME] help on syntax of SQL commands, * for all commands \q quit gsql ... ...
  • 操作步骤 连接数据库时,可以使用如下命令获取帮助信息。 gsql --help 显示如下帮助信息: ...... Usage: gsql [OPTION]... [DBNAME [USERNAME]] General options: -c, --command=COMMAND run only single command (SQL or internal) and exit -d, --dbname=DBNAME database name to connect to (default: "omm") -f, --file=FILENAME execute commands from file, then exit ...... 连接到数据库后,可以使用如下命令获取帮助信息。 help 显示如下帮助信息: You are using gsql, the command-line interface to gaussdb. Type: \copyright for distribution terms \h for help with SQL commands \? for help with gsql commands \g or terminate with semicolon to execute query \q to quit
  • 其他故障 出现因“总线错误”(Bus error)导致的core dump或异常退出 一般情况下出现此种问题,是进程运行过程中加载的共享动态库(在Linux为.so文件)出现变化;或者进程二进制文件本身出现变化,导致操作系统加载机器的执行码或者加载依赖库的入口发生变化,操作系统出于保护目的将进程杀死,产生core dump文件。 解决此问题,重试便可。同时请尽可能避免在升级等运维操作过程中,在集群内部运行业务程序,避免升级时因替换文件产生此问题。 此故障的core dump文件的可能堆栈是dl_main及其子调用,它是操作系统用来初始化进程做共享动态库加载的。如果进程已经初始化,但是共享动态库还未加载完成,严格意义上来说,进程并未完全启动。
  • PATTERN 很多\d命令都可以用一个PATTERN参数来指定要被显示的对象名称。在最简单的情况下,PATTERN正好就是该对象的准确名称。在PATTERN中的字符通常会被变成小写形式(就像在SQL名称中那样),例如\dt FOO将会显示名为foo的表。就像在SQL名称中那样,把PATTERN放在双引号中可以阻止它被转换成小写形式。如果需要在一个PATTERN中包括一个真正的双引号字符,则需要把它写成两个相邻的双引号,这同样是符合SQL引用标识符的规则。例如,\dt "FOO""BAR"将显示名为FOO"BAR(不是foo"bar)的表。和普通的SQL名称规则不同,不能只在PATTERN的一部分周围放上双引号,例如\dt FOO"FOO"BAR将会显示名为fooFOObar的表。 不使用PATTERN参数时,\d命令会显示当前schema搜索路径中可见的全部对象——这等价于用*作为PATTERN。所谓对象可见是指可以直接用名称引用该对象,而不需要用schema来进行限定。要查看数据库中所有的对象而不管它们的可见性,可以把*.*用作PATTERN。 如果放在一个PATTERN中,*将匹配任意字符序列(包括空序列),而?会匹配任意的单个字符(这种记号方法就像 UNIX shell 的文件名PATTERN一样)。例如,\dt int*会显示名称以int开始的表。但是如果被放在双引号内,*和?就会失去这些特殊含义而变成普通的字符。 包含一个点号(.)的PATTERN被解释为一个schema名称模式后面跟上一个对象名称模式。例如,\dt foo*.*bar*会显示名称以foo开始的schema中所有名称包括bar的表。如果没有出现点号,那么模式将只匹配当前schema搜索路径中可见的对象。同样,双引号内的点号会失去其特殊含义并且变成普通的字符。 高级用户可以使用字符类等正则表达式记法,如[0-9]可以匹配任意数字。所有的正则表达式特殊字符都按照POSIX正则表达式所说的工作。以下字符除外: .会按照上面所说的作为一种分隔符。 *会被翻译成正则表达式记号.*。 ?会被翻译成.。 $则按字面意思匹配。 根据需要,可以通过书写?、(R+|)、(R|)和R?来分别模拟PATTERN字符.、R*和R?。$不需要作为一个正则表达式字符,因为PATTERN必须匹配整个名称,而不是像正则表达式的常规用法那样解释(换句话说,$会被自动地追加到PATTERN上)。如果不希望该PATTERN的匹配位置被固定,可以在开头或者结尾写上*。注意在双引号内,所有的正则表达式特殊字符会失去其特殊含义并且按照其字面意思进行匹配。另外,在操作符名称PATTERN中(即\do的PATTERN参数),正则表达式特殊字符也按照字面意思进行匹配。
  • 元命令 元命令的详细说明请参见表1、表2、表3、表4、表6、表8、表9、表10和表12。 以下命令中所提到的FILE代表文件路径。此路径可以是绝对路径(如/home/gauss/file.txt),也可以是相对路径(file.txt,file.txt会默认在用户执行gsql命令所在的路径下创建)。 表1 一般的元命令 参数 参数说明 取值范围 \copyright 显示GaussDB的版本和版权信息。 - \g [FILE] or ; 执行查询(并将结果发送到文件或管道)。 - \h(\help) [NAME] 给出指定SQL语句的语法帮助。 如果没有给出NAME,gsql将列出可获得帮助的所有命令。如果NAME是一个星号(*),则显示所有SQL语句的语法帮助。 \parallel [on [num]|off] 控制并发执行开关。 on:打开控制并发执行开关,且最大并发数为num。 off:关闭控制并发执行开关。 说明: 不支持事务中开启并发执行以及并发中开启事务。 不支持\d这类元命令的并发。 并发select返回结果混乱问题,此为客户可接受,core、进程停止响应不可接受。 不推荐在并发中使用set语句,否则导致结果与预期不一致。 不支持创建临时表!如需使用临时表,需要在开启parallel之前创建好,并在parallel内部使用。parallel内部不允许创建临时表。 \parallel执行时最多会启动num个独立的gsql进程连接服务器。 \parallel中所有作业的持续时间不能超过session_timeout,否则可能会导致并发执行过程中断连。 num的默认值:1024。 须知: 服务器能接受的最大连接数受max_connection及当前已有连接数限制。 设置num时请考虑服务器当前可接受的实际连接数合理指定。 \q 退出gsql程序。在一个脚本文件里,只在脚本终止的时候执行。 - 表2 查询缓存区元命令 参数 参数说明 \e [FILE] [LINE] 使用外部编辑器编辑查询缓冲区(或者文件)。 \ef [FUNCNAME [LINE]] 使用外部编辑器编辑函数定义。如果指定了LINE(即行号),则光标会指到函数体的指定行。 \p 打印当前查询缓冲区到标准输出。 \r 重置(或清空)查询缓冲区。 \w FILE 将当前查询缓冲区输出到文件。 表3 输入/输出元命令 参数 参数说明 \copy { table [ ( column_list ) ] | ( query ) } { from | to } { filename | stdin | stdout | pstdin | pstdout } [ with ] [ binary ] [ oids ] [ delimiter [ as ] 'character' ] [ useeof ] [ null [ as ] 'string' ] [ csv [ header ] [ quote [ as ] 'character' ] [ escape [ as ] 'character' ] [ force quote column_list | * ] [ force not null column_list ] ] [parallel integer] 在任何gsql客户端登录数据库成功后可以执行导入导出数据,这是一个运行SQL COPY命令的操作,但不是读取或写入指定文件的服务器,而是读取或写入文件,并在服务器和本地文件系统之间路由数据。这意味着文件的可访问性和权限是本地用户的权限,而不是服务器的权限,并且不需要数据库初始化用户权限。 说明: \COPY只适合小批量,格式良好的数据导入,不会对非法字符进行预处理,也无容错能力。导入数据应优先选择GDS或COPY。 \COPY 可以指定数据导入时的客户端数量,从而实现数据文件的并行导入,目前并发数范围为[1, 8]。 \COPY并行导入目前存在以下约束: 临时表的并行导入不支持、在事务内的并行导入不支持、对二进制文件的并行导入不支持、数据导入支持AES128加密时不支持以及COPY选项中存在EOL。在这些情况下,即使指定了parallel参数,仍然会走非并行流程。 \echo [STRING] 把字符串写到标准输出。 \i FILE 从文件FILE中读取内容,并将其当作输入,执行查询。 \i+ FILE KEY 执行加密文件中的命令。 \ir FILE 和\i类似,只是相对于存放当前脚本的路径。 \ir+ FILE KEY 和\i+类似,只是相对于存放当前脚本的路径。 \o [FILE] 把所有的查询结果发送到文件里。 \qecho [STRING] 把字符串写到查询结果输出流里。 表4中的选项S表示显示系统对象,+表示显示对象附加的描述信息。PATTERN用来指定要被显示的对象名称。 表4 显示信息元命令 参数 参数说明 取值范围 示例 \d[S+] 列出当前search_path中模式下所有的表、视图和序列。当search_path中不同模式存在同名对象时,只显示search_path中位置靠前模式下的同名对象。 - 列出当前search_path中模式下所有的表、视图和序列。 1 openGauss=# \d \d[S+] NAME 列出指定表、视图和索引的结构。 - 假设存在表a,列出指定表a的结构。 1 openGauss=# \dtable+ a \d+ [PATTERN] 列出所有表、视图和索引。 如果声明了PATTERN,只显示名称匹配PATTERN的表、视图和索引。 列出所有名称以f开头的表、视图和索引。 1 openGauss=# \d+ f* \da[S] [PATTERN] 列出所有可用的聚集函数,以及它们操作的数据类型和返回值类型。 如果声明了PATTERN,只显示名称匹配PATTERN的聚集函数。 列出所有名称以f开头可用的聚集函数,以及它们操作的数据类型和返回值类型。 1 openGauss=# \da f* \db[+] [PATTERN] 列出所有可用的表空间。 如果声明了PATTERN,只显示名称匹配PATTERN的表空间。 列出所有名称以p开头的可用表空间。 1 openGauss=# \db p* \dc[S+] [PATTERN] 列出所有字符集之间的可用转换。 如果声明了PATTERN,只显示名称匹配PATTERN的转换。 列出所有字符集之间的可用转换。 1 openGauss=# \dc * \dC[+] [PATTERN] 列出所有类型转换。 PATTERN需要使用实际类型名,不能使用别名。 如果声明了PATTERN,只显示名称匹配PATTERN的转换。 列出所有名称以c开头的类型转换。 1 openGauss=# \dC c* \dd[S] [PATTERN] 显示所有匹配PATTERN的描述。 如果没有给出参数,则显示所有可视对象。“对象”包括:聚集、函数、操作符、类型、关系(表、视图、索引、序列、大对象)、规则。 列出所有可视对象。 1 openGauss=# \dd \ddp [PATTERN] 显示所有默认的使用权限。 如果指定了PATTERN,只显示名称匹配PATTERN的使用权限。 列出所有默认的使用权限。 1 openGauss=# \ddp \dD[S+] [PATTERN] 列出所有可用域。 如果声明了PATTERN,只显示名称匹配PATTERN的域。 列出所有可用域。 1 openGauss=# \dD \ded[+] [PATTERN] 列出所有的Data Source对象。 如果声明了PATTERN,只显示名称匹配PATTERN的对象。 列出所有的Data Source对象。 1 openGauss=# \ded \det[+] [PATTERN] 列出所有的外部表。 如果声明了PATTERN,只显示名称匹配PATTERN的表。 列出所有的外部表。 1 openGauss=# \det \des[+] [PATTERN] 列出所有的外部服务器。 如果声明了PATTERN,只显示名称匹配PATTERN的服务器。 列出所有的外部服务器。 1 openGauss=# \des \deu[+] [PATTERN] 列出用户映射信息。 如果声明了PATTERN,只显示名称匹配PATTERN的信息。 列出用户映射信息。 1 openGauss=# \deu \dew[+] [PATTERN] 列出封装的外部数据。 如果声明了PATTERN,只显示名称匹配PATTERN的数据。 列出封装的外部数据。 1 openGauss=# \dew \df[antw][S+] [PATTERN] 列出所有可用函数,以及它们的参数和返回的数据类型。a代表聚集函数,n代表普通函数,t代表触发器,w代表窗口函数。 如果声明了PATTERN,只显示名称匹配PATTERN的函数。 列出所有可用函数,以及它们的参数和返回的数据类型。 1 openGauss=# \df \dF[+] [PATTERN] 列出所有的文本搜索配置信息。 如果声明了PATTERN,只显示名称匹配PATTERN的配置信息。 列出所有的文本搜索配置信息。 1 openGauss=# \dF+ \dFd[+] [PATTERN] 列出所有的文本搜索字典。 如果声明了PATTERN,只显示名称匹配PATTERN的字典。 列出所有的文本搜索字典。 1 openGauss=# \dFd \dFp[+] [PATTERN] 列出所有的文本搜索分析器。 如果声明了PATTERN,只显示名称匹配PATTERN的分析器。 列出所有的文本搜索分析器。 1 openGauss=# \dFp \dFt[+] [PATTERN] 列出所有的文本搜索模板。 如果声明了PATTERN,只显示名称匹配PATTERN的模板。 列出所有的文本搜索模板。 1 openGauss=# \dFt \dg[+] [PATTERN] 列出所有数据库角色。 说明: 因为用户和群组的概念被统一为角色,所以这个命令等价于\du。为了和以前兼容,所以保留两个命令。 如果指定了PATTERN,只显示名称匹配PATTERN的角色。 列出名称为“j?e”所有数据库角色(“?”表示任一字符)。 1 openGauss=# \dg j?e \dl \lo_list的别名,显示一个大对象的列表。 - 列出所有的大对象。 1 openGauss=# \dl \dL[S+] [PATTERN] 列出可用的程序语言。 如果指定了PATTERN,只列出名称匹配PATTERN的语言。 列出可用的程序语言。 1 openGauss=# \dL \dm[S+] [PATTERN] 列出物化视图。 如果指定了PATTERN,只列出名称匹配PATTERN的物化视图。 列出物化视图。 1 openGauss=# \dm \dn[S+] [PATTERN] 列出所有模式(名称空间)。如果向命令追加+,会列出每个模式相关的权限及描述。 如果声明了PATTERN,只列出名称匹配PATTERN的模式名。缺省时,只列出用户创建的模式。 列出所有名称以d开头的模式以及相关信息。 1 openGauss=# \dn+ d* \do[S] [PATTERN] 列出所有可用的操作符,以及它们的操作数和返回的数据类型。 如果声明了PATTERN,只列出名称匹配PATTERN的操作符。缺省时,只列出用户创建的操作符。 列出所有可用的操作符,以及它们的操作数和返回的数据类型。 1 openGauss=# \do \dO[S+] [PATTERN] 列出排序规则。 如果声明了PATTERN,只列出名称匹配PATTERN的规则。缺省时,只列出用户创建的规则。 列出排序规则。 1 openGauss=# \dO \dp [PATTERN] 列出一列可用的表、视图以及相关的权限信息。 \dp显示结果如下: rolename=xxxx/yyyy --赋予一个角色的权限 =xxxx/yyyy --赋予public的权限 xxxx表示赋予的权限,yyyy表示授予这个权限的角色。权限的参数说明请参见表5。 如果指定了PATTERN,只列出名称匹配PATTERN的表、视图。 列出一列可用的表、视图以及相关的权限信息。 1 openGauss=# \dp \drds [PATTERN1 [PATTERN2]] 列出所有修改过的配置参数。这些设置可以是针对角色的、针对数据库的或者同时针对两者的。PATTERN1和PATTERN2表示要列出的角色PATTERN和数据库PATTERN。 如果声明了PATTERN,只列出名称匹配PATTERN的规则。缺省或指定*时,则会列出所有设置。 列出数据库所有修改过的配置参数。 1 openGauss=# \drds * dbname \dT[S+] [PATTERN] 列出所有的数据类型。 如果指定了PATTERN,只列出名称匹配PATTERN的类型。 列出所有的数据类型。 1 openGauss=# \dT \du[+] [PATTERN] 列出所有数据库角色。 说明: 因为用户和群组的概念被统一为角色,所以这个命令等价于\dg。为了和以前兼容,所以保留两个命令。 如果指定了PATTERN,则只列出名称匹配PATTERN的角色。 列出所有数据库角色。 1 openGauss=# \du \dE[S+] [PATTERN] \di[S+] [PATTERN] \ds[S+] [PATTERN] \dt[S+] [PATTERN] \dv[S+] [PATTERN] 这一组命令,字母E,i,s,t和v分别代表着外部表,索引,序列,表和视图。可以以任意顺序指定其中一个或者它们的组合来列出这些对象。例如:\dit列出所有的索引和表。在命令名称后面追加+,则每一个对象的物理尺寸以及相关的描述也会被列出。 如果指定了PATTERN,只列出名称匹配该PATTERN的对象。默认情况下只会显示用户创建的对象。通过PATTERN或者S修饰符可以把系统对象包括在内。 列出所有的索引和视图。 1 openGauss=# \div \dx[+] [PATTERN] 列出安装数据库的扩展信息。 如果指定了PATTERN,则只列出名称匹配PATTERN的扩展信息。 列出安装数据库的扩展信息。 1 openGauss=# \dx \l[+] 列出服务器上所有数据库的名称、所有者、字符集编码以及使用权限。 - 列出服务器上所有数据库的名称、所有者、字符集编码以及使用权限。 1 openGauss=# \l \sf[+] FUNCNAME 显示函数的定义。 说明: 对于带圆括号的函数名,需要在函数名两端添加双引号,并且在双引号后面加上参数类型列表。参数类型列表两端添加圆括号。 - 假设存在函数function_a和函数名带圆括号的函数func()name,列出函数的定义。 1 2 3 openGauss=# \sf function_a openGauss=# \sf "func()name"(argtype1, argtype2) \z [PATTERN] 列出数据库中所有表、视图和序列,以及它们相关的访问特权。 如果给出任何pattern ,则被当成一个正则表达式,只显示匹配的表、视图、序列。 列出数据库中所有表、视图和序列,以及它们相关的访问特权。 1 openGauss=# \z 表5 权限的参数说明 参数 参数说明 r SELECT:允许对指定的表、视图读取数据。 w UPDATE:允许对指定表更新字段。 a INSERT:允许对指定表插入数据。 d DELETE:允许删除指定表中的数据。 D TRUNCATE:允许清理指定表中的数据。 x REFERENCES:允许创建外键约束,分布式场景下暂不支持。 t TRIGGER:允许在指定表上创建触发器。 X EXECUTE:允许使用指定的函数,以及利用这些函数实现的操作符。 U USAGE: 对于过程语言,允许用户在创建函数时,指定过程语言。 对于模式,允许访问包含在指定模式中的对象。 对于序列,允许使用nextval函数。 C CREATE: 对于数据库,允许在该数据库里创建新的模式。 对于模式,允许在该模式中创建新的对象。 对于表空间,允许在其中创建表,以及允许创建数据库和模式的时候把该表空间指定为其缺省表空间。 c CONNECT:允许用户连接到指定的数据库。 T TEMPORARY:允许创建临时表。 A ALTER:允许用户修改指定对象的属性。 P DROP:允许用户删除指定的对象。 m COMMENT:允许用户定义或修改指定对象的注释。 i INDEX:允许用户在指定表上创建索引。 v VACUUM:允许用户对指定的表执行ANALYZE和VACUUM操作。 * 给前面权限的授权选项。 表6 格式化元命令 参数 参数说明 \a 对齐模式和非对齐模式之间的切换。 \C [STRING] 把正在打印的表的标题设置为一个查询的结果或者取消这样的设置。 \f [STRING] 对于不对齐的查询输出,显示或者设置域分隔符。 \H 若当前模式为文本格式,则切换为HTML输出格式。 若当前模式为HTML格式,则切换回文本格式。 \pset NAME [VALUE] 设置影响查询结果表输出的选项。NAME的取值见表7。 \t [on|off] 切换输出的字段名的信息和行计数脚注。 \T [STRING] 指定在使用HTML输出格式时放在table标签里的属性。如果参数为空,不设置。 \x [on|off|auto] 切换扩展行格式。 表7 可调节的打印选项 选项 选项说明 取值范围 border value必须是一个数字。通常这个数字越大,表的边界就越宽线就越多,但是这个取决于特定的格式。 在HTML格式下,取值范围为大于0的整数。 在其他格式下,取值范围: 0:无边框 1:内部分隔线 2:台架 expanded (或x) 在正常和扩展格式之间切换。 当打开扩展格式时,查询结果用两列显示,字段名称在左、数据在右。这个模式在数据无法放进通常的“水平”模式的屏幕时很有用。 在正常格式下,当查询输出的格式比屏幕宽时,用扩展格式。正常格式只对aligned和wrapped格式有用。 fieldsep 声明域分隔符来实现非对齐输出。这样就可以创建其他程序希望的制表符或逗号分隔的输出。要设置制表符域分隔符,键入\pset fieldsep '\t'。缺省域分隔符是'|'(竖条符)。 - fieldsep_zero 声明域分隔符来实现非对齐输出到零字节。 - footer 用来切换脚注。 - format 设置输出格式。允许使用唯一缩写(这意味着一个字母就够了)。 取值范围: unaligned:写一行的所有列在一条直线上中,当前活动字段分隔符分隔。 aligned:此格式是标准的,可读性好的文本输出。 wrapped:类似aligned,但是包装跨行的宽数据值,使其适应目标字段的宽度输出。 html:把表输出为可用于文档里的对应标记语言。输出不是完整的文档。 latex:把表输出为可用于文档里的对应标记语言。输出不是完整的文档。 troff-ms:把表输出为可用于文档里的对应标记语言。输出不是完整的文档。 null 打印一个字符串,用来代替一个null值。 缺省是什么都不打印,这样很容易和空字符串混淆。 numericlocale 切换分隔小数点左边的数值的区域相关的分组符号。 on:显示指定的分隔符。 off:不显示分隔符。 忽略此参数,显示默认的分隔符。 pager 控制查询和gsql帮助输出的分页器。如果设置了环境变量PAGER,输出将被指向到指定程序,否则使用系统缺省。 on:当输出到终端且不适合屏幕显示时,使用分页器。 off:不使用分页器。 always:当输出到终端无论是否符合屏幕显示时,都使用分页器。 recordsep 声明在非对齐输出格式时的记录分隔符。 - recordsep_zero 声明在非对齐输出到零字节时的记录分隔符。 - tableattr(或T) 声明放在html输出格式中HTML table标签的属性(例如:cellpadding或bgcolor)。注意:这里可能不需要声明border,因为已经在\pset border里用过了。如果没有给出value,则不设置表的属性。 - title 为随后打印的表设置标题。这个可以用于给输出一个描述性标签。如果没有给出value,不设置标题。 - tuples_only(或者t) 在完全显示和只显示实际的表数据之间切换。完全显示将输出像列头、标题、各种脚注等信息。在tuples_only模式下,只显示实际的表数据。 - feedback 切换是否输出结果行数。 - 表8 连接元命令 参数 参数说明 取值范围 \c[onnect] [DBNAME|- USER|- HOST|- PORT|-] 连接到一个新的数据库。当数据库名称长度超过63个字节时,默认前63个字节有效,连接到前63个字节对应的数据库,但是gsql的命令提示符中显示的数据库对象名仍为截断前的名称。 说明: 重新建立连接时,如果切换数据库登录用户,将可能会出现交互式输入,要求输入新用户的连接密码。该密码最长长度为999字节,受限于GUC参数password_max_length的最大值。 - \encoding [ENCODING] 设置客户端字符编码格式。 不带参数时,显示当前的编码格式。 \conninfo 输出当前连接的数据库的信息。 - 表9 操作系统元命令 参数 参数说明 取值范围 \cd [DIR] 切换当前的工作目录。 绝对路径或相对路径,且满足操作系统路径命名规则。 \setenv NAME [VALUE] 设置环境变量NAME为VALUE,如果没有给出VALUE值,则不设置环境变量。 - \timing [on|off] 以毫秒为单位显示每条SQL语句的执行时间。 on表示打开显示。 off表示关闭显示。 \! [COMMAND] 返回到一个单独的UNIX shell或者执行UNIX命令COMMAND。 - 表10 变量元命令 参数 参数说明 \prompt [TEXT] NAME 提示用户用文本格式来指定变量名称。 \set [NAME [VALUE]] 设置内部变量NAME为VALUE或者如果给出了多于一个值,设置为所有这些值的连接结果。如果没有给出第二个参数,只设变量不设值。 有一些常用变量被gsql特殊对待,它们是一些选项设置,通常所有特殊对待的变量都是由大写字母组成(可能还有数字和下划线)。 表11是一个所有特殊对待的变量列表。 \unset NAME 不设置(或删除)gsql变量名。 表11 \set常用命令 名称 命令说明 取值范围 \set VERBOSITY value 这个选项可以设置为值default,verbose,terse之一以控制错误报告的冗余行。 value取值范围:default,verbose,terse \set ON_ERROR_STOP value 如果设置了这个变量,脚本处理将马上停止。如果该脚本是从另外一个脚本调用的,那个脚本也会按同样的方式停止。如果最外层的脚本不是从一次交互的gsql会话中调用的而是用-f选项调用的,gsql将返回错误代码3,以示这个情况与致命错误条件的区别(错误代码为1)。 value取值范围为:on/off,true/false,yes/no,1/0 \set AUTOCOMMIT [on|off] 设置当前gsql连接的自动提交行为,on为打开自动提交,off为关闭自动提交。默认情况下,gsql连接处于自动提交模式,每个单独的语句都被隐式提交。如果基于性能或者其它方面考虑,需要关闭自动提交时,需要用户自己显示的发出COMMIT命令来保证事务的提交。例如,在指定的业务SQL执行完之后发送COMMIT语句显式提交,特别是gsql客户端退出之前务必保证所有的事务已经提交。 说明: gsql默认使用自动提交模式,若关闭自动提交,将会导致后面执行的语句都受到隐式事务包裹,数据库中不支持在事务中执行的语句不能在此模式下执行。 on表示打开自动提交。 off表示关闭自动提交。 \set RETRY [retry_times] 用于控制是否开启语句出错场景下的重试功能,参数retry_times用来指定最大重试次数,缺省值为5,取值范围为5-10。当重试功能已经开启时,再次执行\set RETRY可以关闭该功能。 使用配置文件retry_errcodes.conf列举需要重试的错误码列表,该文件和gsql可执行程序位于同一级目录下。该配置文件为系统配置,非用户定义,不允许用户直接修改。 当前支持以下13类出错场景的重试: YY001:TCP通信错误,Connection reset by peer(CN和DN间通信) YY002:TCP通信错误,Connection reset by peer(DN和DN间通信) YY003:锁超时,Lock wait timeout.../wait transaction xxx sync time exceed xxx YY004:TCP通信错误,Connection timed out YY005:SET命令发送失败,ERROR SET query YY006:内存申请失败,memory is temporarily unavailable YY007:libcomm通信库内存分配失败,Memory allocate error YY008:libcomm通信时未接收到数据,No data in buffer YY009:libcomm通信时内存分配错误并关闭连接,Close because release memory YY010:libcomm通信时控制通道收发失败,control channel disconnect YY011:libcomm通信时数据通道收发失败,data channel disconnect YY012:libcomm通信时对端连接异常关闭,Stream closed by remote YY013:libcomm通信时接收数据失败,Wait poll unknown error 同时,出错时gsql会查询所有CN/DN的连接状态,当状态异常时会sleep 1分钟再进行重试,能够覆盖大部分主备切换场景下的出错重试。 说明: 不支持事务块中的语句错误重试; 不支持通过ODBC、JDBC接口查询的出错重试; 含有unlogged表的sql语句,不支持节点故障后的出错重试; 当前不支持CN和GTM节点故障时,gsql客户端的出错重试; gsql客户端本身出现的错误,不在重跑考虑范围之内; retry_times取值范围为:5-10 表12 大对象元命令 参数 参数说明 \lo_list 显示一个目前存储在该数据库里的所有GaussDB大对象和提供给他们的注释。
  • 注意事项 一个gsql元命令的格式是反斜杠后面紧跟一个动词,然后是任意参数。参数命令动词和其他参数以任意个空白字符间隔。 要在参数里面包含空白,必须用单引号把它引起来。要在这样的参数里包含单引号,可以在前面加一个反斜杠。任何包含在单引号里的内容都会被进一步进行类似C语言的替换:\n(新行)、\t(制表符)、\b(退格)、\r(回车)、\f(换页)、\digits(八进制表示的字符)、\xdigits(十六进制表示的字符)。 用""包围的内容被当做一个命令行传入shell。该命令的输出(删除了结尾的新行)被当做参数值。 如果不带引号的参数以冒号(:)开头,它会被当做一个gsql变量,并且该变量的值最终会成为真正的参数值。 有些命令以一个SQL标识的名称(比如一个表)为参数。这些参数遵循SQL语法关于双引号的规则:不带双引号的标识强制转换成小写,而双引号保护字母不进行大小写转换,并且允许在标识符中使用空白。在双引号中,成对的双引号在结果名称中分析成一个双引号。比如,FOO"BAR"BAZ解析成fooBARbaz;而"Aweird""name"解析成A weird"name。 对参数的分析在遇到另一个不带引号的反斜杠时停止。这里会认为是一个新的元命令的开始。特殊的双反斜杠序列(\\)标识参数的结尾并将继续分析后面的SQL语句(如果存在)。这样SQL和gsql命令可以自由的在一行里面混合。但是在任何情况下,一条元命令的参数不能延续超过行尾。
  • 示例 以把一个查询分成多行输入为例。注意提示符的变化: 1 2 3 4 5 openGauss=# CREATE TABLE HR.areaS( openGauss(# area_ID NUMBER, openGauss(# area_NAME VARCHAR2(25) openGauss-# )tablespace EXAMPLE; CREATE TABLE 查看表的定义: 1 2 3 4 5 6 openGauss=# \d HR.areaS Table "hr.areas" Column | Type | Modifiers -----------+-----------------------+----------- area_id | numeric | not null area_name | character varying(25) | 向HR.areaS表插入四行数据: 1 2 3 4 5 6 7 8 openGauss=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe'); INSERT 0 1 openGauss=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas'); INSERT 0 1 openGauss=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia'); INSERT 0 1 openGauss=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa'); INSERT 0 1 切换提示符: 1 2 openGauss=# \set PROMPT1 '%n@%m %~%R%#' omm@[local] openGauss=# 查看表: 1 2 3 4 5 6 7 8 omm@[local] openGauss=#SELECT * FROM HR.areaS; area_id | area_name ---------+------------------------ 1 | Europe 4 | Middle East and Africa 2 | Americas 3 | Asia (4 rows) 可以用\pset命令以不同的方法显示表: 1 2 3 4 5 6 7 8 9 10 11 12 omm@[local] openGauss=#\pset border 2 Border style is 2. omm@[local] openGauss=#SELECT * FROM HR.areaS; +---------+------------------------+ | area_id | area_name | +---------+------------------------+ | 1 | Europe | | 2 | Americas | | 3 | Asia | | 4 | Middle East and Africa | +---------+------------------------+ (4 rows) 1 2 3 4 5 6 7 8 9 10 omm@[local] openGauss=#\pset border 0 Border style is 0. omm@[local] openGauss=#SELECT * FROM HR.areaS; area_id area_name ------- ---------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa (4 rows) 使用元命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 omm@[local] openGauss=#\a \t \x Output format is unaligned. Showing only tuples. Expanded display is on. omm@[local] openGauss=#SELECT * FROM HR.areaS; area_id|2 area_name|Americas area_id|1 area_name|Europe area_id|4 area_name|Middle East and Africa area_id|3 area_name|Asia omm@[local] openGauss=#
  • 操作步骤 使用gsql连接到GaussDB服务器。 gsql工具使用-d参数指定目标数据库名、-U参数指定数据库用户名、-h参数指定主机名、-p参数指定端口号信息。 若未指定数据库名称,则使用初始化时默认生成的数据库名称;若未指定数据库用户名,则默认使用当前操作系统用户作为数据库用户名;当某个值没有前面的参数(-d、-U等)时,若连接的命令中没有指定数据库名(-d)则该参数会被解释成数据库名;如果已经指定数据库名(-d)而没有指定数据库用户名(-U)时,该参数则会被解释成数据库用户名。 示例1,使用omm用户连接到本机gaussdb数据库的8000端口。 gsql -d gaussdb -p 8000 示例2,使用jack用户连接到远程主机gaussdb数据库的8000端口。 gsql -h 10.180.123.163 -d gaussdb -U jack -p 8000 示例3,参数gaussdb和omm不属于任何选项时,分别被解释成了数据库名和用户名。 gsql gaussdb omm -p 8000 等效于 gsql -d gaussdb -U omm -p 8000 详细的gsql参数请参见命令参考。 执行SQL语句。 以创建数据库human_staff为例。 1 2 CREATE DATABASE human_staff; CREATE DATABASE 通常,输入的命令行在遇到分号的时候结束。如果输入的命令行没有错误,结果就会输出到屏幕上。 执行gsql元命令。 以列出GaussDB中所有的数据库和描述信息为例。 1 2 3 4 5 6 7 8 9 10 11 12 openGauss=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------+----------+-----------+---------+-------+----------------------- human_resource | omm | SQL_ASCII | C | C | postgres | omm | SQL_ASCII | C | C | template0 | omm | SQL_ASCII | C | C | =c/omm + | | | | | omm=CTc/omm template1 | omm | SQL_ASCII | C | C | =c/omm + | | | | | omm=CTc/omm human_staff | omm | SQL_ASCII | C | C | (5 rows) 更多gsql元命令请参见元命令参考。
  • 环境变量 表5 与gsql相关的环境变量 名称 描述 COLUMNS 如果\set columns为0,则由此参数控制wrapped格式的宽度。这个宽度用于决定在自动扩展的模式下,是否要把宽输出模式变成竖线的格式。 PAGER 如果查询结果无法在一页显示,它们就会被重定向到这个命令。可以用\pset命令关闭分页器。典型的是用命令more或less来实现逐页查看。缺省值是平台相关的。 说明: less的文本显示,受系统环境变量LC_CTYPE影响。 PSQL_EDITOR \e和\ef命令使用环境变量指定的编辑器。变量是按照列出的先后顺序检查的。在UNIX系统上默认的编辑工具是vi。 EDITOR VISUAL PSQL_EDITOR_LINENUMBER_ARG 当\e和\ef带上一行数字参数使用时,这个变量指定的命令行参数用于向编辑器传递起始行数。像Emacs或vi这样的编辑器,这只是个加号。如果选项和行号之间需要空白,在变量的值后加一个空格。例如: PSQL_EDITOR_LINENUMBER_ARG = '+' PSQL_EDITOR_LINENUMBER_ARG='--line ' UNIX系统默认的是+。 PSQLRC 用户的.gsqlrc文件的交互位置。 SHELL 使用\!命令跟shell执行的命令是一样的效果。 TMPDIR 存储临时文件的目录。缺省是/tmp。
  • 命令参考 详细的gsql参数请参见表1、表2、表3和表4。 表1 常用参数 参数 参数说明 取值范围 -c, --command=COMMAND 声明gsql要执行一条字符串命令然后退出。 - -d, --dbname=DBNAME 指定想要连接的数据库名称。 另外,gsql允许使用扩展的DBNAME,即'postgres[ql]://[user[:password]@][netloc][:port][,...][/dbname][?param1=value1&...]'或'[key=value] [...]'形式的连接串作为DBNAME,gsql将从连接串中解析连接信息,并优先使用这些信息。 字符串。 -f, --file=FILENAME 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-(连字符),则从标准输入读取。 绝对路径或相对路径,且满足操作系统路径命名规则。 -l, --list 列出所有可用的数据库,然后退出。 - -v, --set, --variable=NAME=VALUE 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见变量。 - -X, --no-gsqlrc 不读取启动文件(系统范围的gsqlrc或者用户的~/.gsqlrc都不读取)。 说明: 启动文件默认为~/.gsqlrc,或通过PSQLRC环境变量指定。 - -1 ("one"), --single-transaction 当gsql使用-f选项执行脚本时,会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用以把整个脚本当作一个事务执行。这将保证该脚本完全执行成功,或者脚本无效。 说明: 如果脚本中已经使用了START TRANSACTION,COMMIT,ROLLBACK,则该选项无效。 - -?, --help 显示关于gsql命令行参数的帮助信息然后退出。 - -V, --version 打印gsql版本信息然后退出。 - 表2 输入和输出参数 参数 参数说明 取值范围 -a, --echo-all 在读取行时向标准输出打印所有内容。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -e, --echo-queries 把所有发送给服务器的查询同时回显到标准输出。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -E, --echo-hidden 回显由\d和其他反斜杠命令生成的实际查询。 - -k, --with-key=KEY 使用gsql对导入的加密文件进行解密。 须知: 对于本身就是shell命令中的关键字符如单引号(')或双引号("),Linux shell会检测输入的单引号(')或双引号(")是否匹配。如果不匹配,shell认为用户没有输入完毕,会一直等待用户输入,从而不会进入到gsql程序。 不支持解密导入存储过程和函数。 - -L, --log-file=FILENAME 除了正常的输出源之外,把所有查询输出记录到文件FILENAME中。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 此参数只保留查询结果到相应文件中,主要目标是为了查询结果能够更好更准确地被其他调用者(例如自动化运维脚本)解析;而不是保留gsql运行过程中的相关日志信息。 绝对路径或相对路径,且满足操作系统路径命名规则。 -m, --maintenance 允许在两阶段事务恢复期间连接集群。 说明: 该选项是一个开发选项,禁止用户使用,只限专业技术人员使用,功能是:使用该选项时,gsql可以连接到备机,用于校验主备机数据的一致性。 - -n, --no-libedit 关闭命令行编辑。 - -o, --output=FILENAME 将所有查询输出重定向到文件FILENAME。 绝对路径或相对路径,且满足操作系统路径命名规则。 -q, --quiet 安静模式,执行时不会打印出额外信息。 缺省时gsql将打印许多其他输出信息。 -s, --single-step 单步模式运行。意味着每个查询在发往服务器之前都要提示用户,用这个选项也可以取消执行。此选项主要用于调试脚本。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -S, --single-line 单行运行模式,这时每个命令都将由换行符结束,像分号那样。 - -C,--enable-client-encryption 当使用-C参数连接本地数据库或者连接远程数据库时,可通过该选项打开密态数据库开关。 - 表3 输出格式参数 参数 参数说明 取值范围 -A, --no-align 切换为非对齐输出模式。 缺省为对齐输出模式。 -F, --field-separator=STRING 设置域分隔符(默认为“|”)。 - -H, --html 打开HTML格式输出。 - -P, --pset=VAR[=ARG] 在命令行上以\pset的风格设置打印选项。 说明: 这里必须用等号而不是空格分隔名称和值。例如,把输出格式设置为LaTeX,可以键入-P format=latex - -R, --record-separator=STRING 设置记录分隔符。 - -r 开启在客户端操作中可以进行编辑的模式。 缺省为关闭。 -t, --tuples-only 只打印行。 - -T, --table-attr=TEXT 允许声明放在HTML table标签里的选项。 使用时请搭配参数“-H,--html”,指定为HTML格式输出。 - -x, --expanded 打开扩展表格式模式。 - -z, --field-separator-zero 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -0, --record-separator-zero 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -2, --pipeline 使用管道传输密码,禁止在终端使用,必须和-c或者-f参数一起使用。 - 表4 连接参数 参数 参数说明 取值范围 -h, --host=HOSTNAME 指定正在运行服务器的主机名或者UNIX域套接字的路径。 如果省略主机名,gsql将通过UNIX域套接字与本地主机的服务器相联,或者在没有UNIX域套接字的机器上,通过TCP/IP与localhost连接。 -p, --port=PORT 指定数据库服务器的端口号。 可以通过port参数修改默认端口号。 默认端口可通过编译参数来指定,不指定的话默认为5432。 -U, --username=USERNAME 指定连接数据库的用户。 说明: 通过该参数指定用户连接数据库时,需要同时提供用户密码用以身份验证。您可以通过交换方式输入密码,或者通过-W参数指定密码。 用户名中包含有字符$,需要在字符$前增加转义字符才可成功连接数据库。 字符串,默认使用与当前操作系统用户同名的用户。 -W, --password=PASSWORD 当使用-U参数连接本地数据库或者连接远端数据库时,可通过该选项指定密码。 说明: 登录CN所在服务器后连接本地CN实例时,默认使用trust连接,会忽略此参数。 用户密码中包含特殊字符“\”和"`"时,需要增加转义字符才可成功连接数据库。 如果用户未输入该参数,但是数据库连接需要用户密码,这时将出现交互式输入,请用户输入当前连接的密码。该密码最长长度为999字节,受限于GUC参数password_max_length的最大值。 字符串。 父主题: gsql
  • 命令参考 详细的gsql参数请参见表1、表2、表3和表4。 表1 常用参数 参数 参数说明 取值范围 -c, --command=COMMAND 声明gsql要执行一条字符串命令然后退出。 - -d, --dbname=DBNAME 指定想要连接的数据库名称。 另外,gsql允许使用扩展的DBNAME,即'postgres[ql]://[user[:password]@][netloc][:port][,...][/dbname][?param1=value1&...]'或'[key=value] [...]'形式的连接串作为DBNAME,gsql将从连接串中解析连接信息,并优先使用这些信息。 字符串。 -f, --file=FILENAME 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-(连字符),则从标准输入读取。 绝对路径或相对路径,且满足操作系统路径命名规则。 -l, --list 列出所有可用的数据库,然后退出。 - -v, --set, --variable=NAME=VALUE 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见变量。 - -X, --no-gsqlrc 不读取启动文件(系统范围的gsqlrc或者用户的~/.gsqlrc都不读取)。 说明: 启动文件默认为~/.gsqlrc,或通过PSQLRC环境变量指定。 - -1 ("one"), --single-transaction 当gsql使用-f选项执行脚本时,会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用以把整个脚本当作一个事务执行。这将保证该脚本完全执行成功,或者脚本无效。 说明: 如果脚本中已经使用了START TRANSACTION,COMMIT,ROLLBACK,则该选项无效。 - -?, --help 显示关于gsql命令行参数的帮助信息然后退出。 - -V, --version 打印gsql版本信息然后退出。 - 表2 输入和输出参数 参数 参数说明 取值范围 -a, --echo-all 在读取行时向标准输出打印所有内容。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -e, --echo-queries 把所有发送给服务器的查询同时回显到标准输出。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -E, --echo-hidden 回显由\d和其他反斜杠命令生成的实际查询。 - -k, --with-key=KEY 使用gsql对导入的加密文件进行解密。 须知: 对于本身就是shell命令中的关键字符如单引号(')或双引号("),Linux shell会检测输入的单引号(')或双引号(")是否匹配。如果不匹配,shell认为用户没有输入完毕,会一直等待用户输入,从而不会进入到gsql程序。 不支持解密导入存储过程和函数。 - -L, --log-file=FILENAME 除了正常的输出源之外,把所有查询输出记录到文件FILENAME中。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 此参数只保留查询结果到相应文件中,主要目标是为了查询结果能够更好更准确地被其他调用者(例如自动化运维脚本)解析;而不是保留gsql运行过程中的相关日志信息。 绝对路径或相对路径,且满足操作系统路径命名规则。 -m, --maintenance 允许在两阶段事务恢复期间连接数据库。 说明: 该选项是一个开发选项,禁止用户使用,只限专业技术人员使用,功能是:使用该选项时,gsql可以连接到备机,用于校验主备机数据的一致性。 - -n, --no-libedit 关闭命令行编辑。 - -o, --output=FILENAME 将所有查询输出重定向到文件FILENAME。 绝对路径或相对路径,且满足操作系统路径命名规则。 -q, --quiet 安静模式,执行时不会打印出额外信息。 缺省时gsql将打印许多其他输出信息。 -s, --single-step 单步模式运行。意味着每个查询在发往服务器之前都要提示用户,用这个选项也可以取消执行。此选项主要用于调试脚本。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -S, --single-line 单行运行模式,这时每个命令都将由换行符结束,像分号那样。 - -C,--enable-client-encryption 当使用-C参数连接本地数据库或者连接远程数据库时,可通过该选项打开密态数据库开关。 - 表3 输出格式参数 参数 参数说明 取值范围 -A, --no-align 切换为非对齐输出模式。 缺省为对齐输出模式。 -F, --field-separator=STRING 设置域分隔符(默认为“|”)。 - -H, --html 打开HTML格式输出。 - -P, --pset=VAR[=ARG] 在命令行上以\pset的风格设置打印选项。 说明: 这里必须用等号而不是空格分隔名称和值。例如,把输出格式设置为LaTeX,可以键入-P format=latex - -R, --record-separator=STRING 设置记录分隔符。 - -r 开启在客户端操作中可以进行编辑的模式。 缺省为关闭。 -t, --tuples-only 只打印行。 - -T, --table-attr=TEXT 允许声明放在HTML table标签里的选项。 使用时请搭配参数“-H,--html”,指定为HTML格式输出。 - -x, --expanded 打开扩展表格式模式。 - -z, --field-separator-zero 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -0, --record-separator-zero 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -2, --pipeline 使用管道传输密码,禁止在终端使用,必须和-c或者-f参数一起使用。 - 表4 连接参数 参数 参数说明 取值范围 -h, --host=HOSTNAME 指定正在运行服务器的主机名或者UNIX域套接字的路径。 如果省略主机名,gsql将通过UNIX域套接字与本地主机的服务器相连,或者在没有UNIX域套接字的机器上,通过TCP/IP与localhost连接。 -p, --port=PORT 指定数据库服务器的端口号。 可以通过port参数修改默认端口号。 默认端口可通过编译参数来指定,不指定的话默认为5432。 -U, --username=USERNAME 指定连接数据库的用户。 说明: 通过该参数指定用户连接数据库时,需要同时提供用户密码用以身份验证。您可以通过交换方式输入密码,或者通过-W参数指定密码。 用户名中包含有字符$,需要在字符$前增加转义字符才可成功连接数据库。 字符串,默认使用与当前操作系统用户同名的用户。 -W, --password=PASSWORD 当使用-U参数连接本地数据库或者连接远端数据库时,可通过该选项指定密码。 说明: 登录数据库主节点所在服务器后连接本地数据库主节点实例时,默认使用trust连接,会忽略此参数。 用户密码中包含特殊字符“\”和"`"时,需要增加转义字符才可成功连接数据库。 如果用户未输入该参数,但是数据库连接需要用户密码,这时将出现交互式输入,请用户输入当前连接的密码。该密码最长长度为999字节,受限于GUC参数password_max_length的最大值。 字符串。 父主题: gsql
共100000条