云服务器内容精选
-
注意事项 pg_cron需要后台守护进程,因此启动数据库前,需要将pg_cron放到shared_preload_libraries中。 定时任务不会在备机上运行,但当备机升主后,定时任务会自动启动。 定时任务会以任务创建者的权限执行。 定时任务使用GMT时间执行。 一个实例可以并行运行多个任务,但同一时间某个任务仅能运行一个。 某个任务,需要等待前一个定时任务结束,那么该任务会进入等待队列,且会在前一个任务结束后尽快启动。 使用前,需要将cron.database_name修改为创建定时任务的数据库,并且只能设为单个数据库,不支持设置多个数据库。
-
支持的版本说明 PostgreSQL 12及以上版本的最新小版本支持该插件。可通过以下SQL语句查询当前实例支持该插件的版本: SELECT * FROM pg_available_extension_versions WHERE name = 'pg_cron'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS for PostgreSQ L实例 支持的插件,具体请参见支持的插件列表。
-
插件介绍 标准cron语法,*表示每个时间段运行,特定数字表示仅在此时间。 ┌───────────── min (0 - 59) │ ┌────────────── hour (0 - 23) │ │ ┌─────────────── day of month (1 - 31) │ │ │ ┌──────────────── month (1 - 12) │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to │ │ │ │ │ Saturday, or use names; 7 is also Sunday) │ │ │ │ │ │ │ │ │ │ 例如每周六9:30 AM(GMT)的语法为: 30 9 * * 6
-
操作场景 服务Operator是OSC管理的最大粒度实体,服务运行载体是一个Operator,当服务对应的服务实例首次安装时,容器集群中如果没有对应的服务Operator,OSC会自动安装。 OSC将在首次部署服务的集群中创建三个新的命名空间osc-global、osc-oc、osc-system,并运行Operator或Helm插件。例如,Redis服务将在osc-global命名空间中部署一个redis-operator插件,这个插件就是Redis服务的管理插件。
-
安装插件 安装E-Backup插件后,请谨慎卸载,否则可能导致已有的备份无法恢复。因为E-Backup插件在执行备份恢复任务时,依赖自定义资源BackupStorageLocation及其Secret,该资源在卸载后重新安装会发生更改。 登录集群控制台。 在左侧导航栏中单击“插件管理”,在可安装插件栏中单击E-Backup插件下的“安装”按钮。 参照表1进行插件规格配置。 表1 E-Backup插件规格配置 参数 参数说明 插件规格 单实例部署。 容器 设置插件容器实例的资源配额。 velero:提供K8s元数据备份/恢复支持。 restic:提供应用数据存储卷备份/恢复支持。 说明: 集群中需要预留足够的资源,若资源不足,插件实例将无法调度。 申请值需小于等于限制值,否则无法成功创建。 请根据备份/恢复数据量大小,适当调整资源限制以避免插件故障。 进行参数配置,当前支持配置以下参数。 volumeWorkerNum:代表并发执行数据卷备份的工作数量,默认为3。 { "volumeWorkerNum": 3 } 单击“安装”后,返回“插件管理”页面查看已安装插件,插件状态为“运行中”,表明该插件已在当前集群中安装成功。
-
插件简介 E-Backup是云原生存储系统(Everest2.0)中负责云原生应用数据保护的子系统。它支持用户将应用数据(k8s资源)和业务数据(pv卷中的数据)备份到OBS桶中,也允许用户将某次备份数据恢复到指定的K8s集群中。 E-Backup通过备份和恢复两个子功能提供对以下使用场景的支持: 单集群下的容灾 周期性地对集群内部署的应用进行备份,在集群或者应用被破坏时通过恢复功能将应用重新部署到集群中,继续向外提供服务,实现应用的容灾。 同集群/跨集群的克隆 对于需要大批量部署到多个集群中的应用,特别是应用已经在某个集群工作一段时间后需要增添实例的情况。首先对处于工作状态的应用进行备份,随后恢复到同集群的不同Namespace下或者其他集群中,实现应用的克隆。 跨集群/跨云的迁移 由于网络、成本、业务地点变动等原因,需要将应用从某个集群迁移到跨Region的另一个集群,或者从其他云的集群迁入CCE。对迁出集群中的应用进行备份,而后恢复到迁入集群中,实现应用的迁移。
-
约束与限制 目标集群Kubernetes版本需为1.15及以上,且集群中至少包含一个可用节点。 集群在安装插件时,需要保证集群可正常拉取SWR镜像。 备份/恢复过程中,需尽量保证集群处于稳态,不要触发增、删、改等变更行为,以免出现备份/恢复失败或不完整的情况。若集群发生变更,建议等15分钟后,集群处于稳态,再做备份操作。 E-Backup插件集成开源的Restic组件完成PV数据备份,会对备份时间点的数据做自有快照,并上传数据,不影响用户后续数据的读写,但Restic不进行文件内容的校验和业务一致性校验,其特性遵循restic约束。 Restic组件占用内存大小与初次备份的PV卷数据大小有关。若PV卷数据大于300G,建议采用 云存储 提供的迁移方式。若使用应用数据管理功能迁移大量PV数据,可修改restic实例的资源配额,具体操作方式请参见修改插件资源配额。 E-Backup插件遵循开源Velero和Restic插件的约束,例如在恢复过程中Service会清除ClusterIP以适应源集群和目标集群间的差异。 若在CCE集群中使用了扩展加密的Secret类型(cfe/secure-opaque),在恢复到其他集群时,需要提前手动创建同名、同类型的Secret(不同集群加解密物料不同),以免恢复的应用无法成功运行。
-
基本使用 此插件只能由root用户或者root的成员用户执行。 可以通过root用户直接执行,或者通过如下操作: grant root to drs_sync; 将root权限赋予drs_sync,这样drs_sync用户也能够执行。 赋予某个用户对pg_catalog.pg_authid的select权限。 select control_select_on_pg_authid('grant', 'drs_sync'); 其中,第一个参数可以选择grant, revoke;第二个参数是具体的用户,用户必须已存在。 对用户赋予bypassrls, replication的权限。 select control_user_privilege('bypassrls', 'drs_sync'); 其中,第一个参数是要赋予的权限,可选范围是bypassrls, nobypassrls, replication, noreplication;第二个参数是具体的用户,用户必须已存在。 创建对all tables的发布。 select create_publication_for_all_tables('foo_pub', 'insert, update'); select create_publication_for_all_tables('foo_pub'); 该函数只创建for all tables的发布,对于某个表的发布可以使用正常的SQL。 其中,第一个参数是发布名,不能和已有的发布重名;第二个参数是选项,可以缺省,缺省情况下和create publication foo_pub for all tables一样;不缺省的情况下,在RDS for PostgreSQL 10版本中可选的是insert, update, delete,在11版本中可选项多了truncate。 创建出来的publication的owner是root。可以使用root用户或者root的成员用户,通过SQL对该publication进行接下来的操作。 执行部分pg_replication_origin_xxx函数。 -- 创建一个复制源 select exec_pg_replication_origin_func('pg_replication_origin_create', 'foo_repl_origin'); -- 删除这个复制源 select exec_pg_replication_origin_func('pg_replication_origin_create', 'foo_repl_origin'); -- 查看当前会话是否绑定了复制源 select exec_pg_replication_origin_func('pg_replication_origin_session_is_setup'); 其中,第一个参数是要执行的函数名,可选范围是'pg_replication_origin_create', 'pg_replication_origin_drop', 'pg_replication_origin_oid', 'pg_replication_origin_session_setup', 'pg_replication_origin_session_reset', 'pg_replication_origin_session_is_setup';第二个参数是可以缺省的,是否缺省取决于要执行的函数是否需要参数值。
-
支持的版本说明 该插件支持从9.5到15的版本,但是该插件的目的是给未root提权版本(9.5, 9.6, 10, 11.5及之前的版本)提升权限的,建议11.5之后的版本直接使用root用户进行此插件执行的赋权动作。 可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'rds_hwdrs_privs'; RDS for PostgreSQL实例支持的插件,具体请参见支持的插件列表。
-
支持的版本说明 PostgreSQL 10及以上版本的最新小版本支持该插件。 可通过以下SQL语句查询当前实例是否支持该插件: SELECT * FROM pg_available_extension_versions WHERE name = 'pg_stat_statements'; 如果不支持,可通过升级内核小版本或者使用转储与还原升级大版本使用该插件。 RDS for PostgreSQL实例支持的插件,具体请参见支持的插件列表。
-
插件安装与卸载 查看当前数据库是否有安装pg_stat_statements插件,执行如下SQL: select * from pg_extension where extname = 'pg_stat_statements'; 如果显示结果为空说明未安装该插件,如果显示插件的信息说明已安装该插件。 pg_stat_statements已默认预加载在shared_preload_libraries参数中,直接通过如下方式进行插件安装。 安装插件 SELECT control_extension('create', 'pg_stat_statements'); 删除插件 SELECT control_extension('drop', 'pg_stat_statements'); 更多信息,请参见通过界面安装和卸载插件和通过SQL命令安装和卸载插件。
-
基本使用 pg_stat_statements插件安装好之后,需要开启对应参数。默认参数配置如下,可根据不同业务进行调整。 表1 参数说明 参数名称 是否需要重启 值 允许值 描述 pg_stat_statements.max 是 5000 100~5,000,000 设置pg_stat_statements跟踪的最大语句数。 pg_stat_statements.save 否 on on,off 保存服务器关闭期间的pg_stat_statements统计信息。 pg_stat_statements.track 否 top top,all,none 控制哪个语句可以被该模块计数。 pg_stat_statements.track_planning 否 off on,off 选择是否由pg_stat_statements跟踪计划持续时间。 pg_stat_statements.track_utility 否 on on,off 选择是否由pg_stat_statements跟踪实用程序命令。 此时,可以通过查询pg_stat_statements视图,获取统计信息。 select * from pg_stat_statements; 查询最耗IO的SQL。 --消耗IO的前五条SQL select userid::regrole, dbid, query from pg_stat_statements order by (blk_read_time+blk_write_time) desc limit 5; 查询最耗共享内存的SQL。 select userid::regrole, dbid, query from pg_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 5; 重置统计信息。 select pg_stat_statements_reset();
-
进阶使用 使用pg_stat_statements排查CPU过高问题。 为了方便排查CPU过高的问题,需要重置pg_stat_statements的计数器。 select pg_stat_statements_reset(); 等待一段时间,使pg_stat_statements能够统计到足够的信息。 获取最耗时的SQL。 select * from pg_stat_statements order by total_exec_time desc limit 10; 此步骤获取到的SQL会长时间占用用户态CPU时间,把这些SQL取出来分析。 获取读取Buffer次数最多的SQL。 select * from pg_stat_statements order by shared_blks_hit + shared_blks_read desc limit 10; 此步骤获取到的SQL可能由于缺少查询对应的索引,导致过多的buffer读,从而消耗大量CPU。 获取执行次数最多的SQL。 select * from pg_stat_statements order by calls desc limit 10; 有些比较简单的SQL单独执行耗时较低,但是在某些情况下(例如:在事务中循环执行、大量的并发执行)也会导致CPU的消耗增高。
-
注意事项 plpgsql为内置插件,不允许卸载。 decoderbufs, wal2json等逻辑复制插件可以直接使用,不需要安装。 部分插件依赖“shared_preload_libraries”参数,只有在加载相关库之后,才能安装成功。 pg_cron插件当前仅支持PostgreSQL 12(12.11.0及其以上版本)、PostgreSQL 13及以上版本。使用时需要先修改参数“cron.database_name”为需要使用的数据库(仅支持单个数据库),同时修改“cron.use_background_workers”为“on”。 pltcl插件在PostgreSQL 13.2版本实例暂不支持使用,如需使用该插件,请先升级到最新小版本。 部分插件安装或卸载时,会同步安装或卸载其依赖插件,以及相关依赖表。例如:创建插件postgis_sfcgal时,需要先创建postgis插件,这时会同步创建postgis_sfcgal插件;同时,卸载postgis插件时,会同步卸载postgis_sfcgal插件。 部分插件在小版本升级后不支持直接升级,如需升级请卸载后重新安装。
-
基本使用 设置pgaudit扩展 首先需要在插件管理中预加载pgaudit插件,因为pgaudit扩展会安装用于审核数据定义语言 (DDL) 语句的事件触发器。 默认插件管理中已预加载pgaudit插件,也可通过如下命令查看是否加载成功。 show shared_preload_libraries; shared_preload_libraries --------------------------------------------------------------------------------- pg_stat_statements,pgaudit,passwordcheck.so,pg_sql_history,auth_delay,pglogical (1 row) 加载成功后再进行创建插件,请参考插件安装/卸载。 插件安装好后,需要开启审计日志。 如需开通审计日志功能,请联系客服申请。 在控制台上单击实例名称,在基本信息页面,选择“SQL审计”页签。 单击“设置SQL审计”。 在弹框中,开启审计日志开关,可选择审计日志保留天数。 图1 设置SQL审计 开启审计日志后,还需要配置参数。 在界面“参数修改”页签,搜索“pgaudit.log”参数(指定会话审计日志将记录哪些类型的语句)并设置为适合业务需要的值,可以捕获对日志的插入、更新、删除和其他一些类型的更改。“pgaudit.log”参数取值如下: 表1 参数值说明 参数值 描述 none 这是原定设置值。不记录任何数据库更改。 all 记录所有内容(read、write、function、role、ddl、misc)。 ddl 记录所有数据定义语言(DDL)语句(不包括在 ROLE 类中)。 function 记录函数调用和DO块。 misc 记录其他命令,例如:DISCARD、FETCH、CHECKPOINT、VACUUM、SET read 当源为关系(例如表)或查询时记录SELECT和COPY。 role 记录与角色和权限相关的语句,例如:GRANT、REVOKE、CREATE ROLE、ALTER ROLE、DROP ROLE write 当目标为关系(表)时,记录INSERT、UPDATE、DELETE、TRUNCATE和COPY。 pgaudit还有一些参数,可根据业务需要在界面上进行设置。 表2 参数说明 参数名称 描述 pgaudit.log 指定会话审计日志记录将记录哪些类的语句。 pgaudit.log_catalog 指定在语句中的所有关系都在pg_catalog中的情况下,应该启用会话日志记录。 pgaudit.log_client_authentication 控制是否记录用户认证的信息。 pgaudit.log_extra_field 控制是否记录PID、IP、用户名、数据库等字段。 pgaudit.log_file_rotation_age 设置独立审计日志的轮转时间。 pgaudit.log_parameter 指定审核日志记录应该包含与语句传递的参数。 pgaudit.log_relation 指定会话审核日志记录是否应该为SELECT或DML语句中引用的每个关系(表、视图等)创建单独的日志项。 pgaudit.log_rows 指定审计日志记录应包括语句检索或影响的行。 pgaudit.log_write_txid 控制是否记录写操作(insert/update等)的txid。 pgaudit.logstatementonce 指定日志记录是否包含语句、文本和参数。 pgaudit.log_client 指定审计日志是否发送到客户端。 pgaudit.log_level 指定用于日志条目的日志级别。 pgaudit.write_into_pg_log_file 控制是否仍旧向PostgreSQL的运行日志记录审计信息。 如果您需要在客户端上显示审计日志,可以通过修改以下参数进行配置: “pgaudit.write_into_pg_log_file”和“pgaudit.log_client”参数值同时为on,再根据“pgaudit.log_level”参数选择客户端显示的日志级别(例如notice),客户端再次进行查询时,可以在客户端显示对应级别的审计日志。 “pgaudit.write_into_pg_log_file”和“pgaudit.log_client”参数只要有一个值为off,客户端不会显示审计日志。 “pgaudit.log_level”仅在“pgaudit.log_client”打开时启用。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格