云服务器内容精选

  • 如何确认Linux云服务器上的文件系统处于可用状态? SFS容量型文件系统:以root用户登录云服务器,执行“showmount -e 文件系统域名或IP”命令,将会回显指定域名或IP下所有可用的SFS容量型文件系统。 通用文件系统:当前不支持使用。 SFS Turbo文件系统:以root用户登录云服务器,执行“showmount -e 文件系统域名或IP”命令,回显如下内容,则代表命令中“文件系统域名或IP”对应的SFS Turbo文件系统处于可用状态。 Export list for 文件系统域名或IP / * 或 Export list for 文件系统域名或IP / 所有可接入该SFS Turbo文件系统的客户端IP 父主题: 其他类
  • 迁移后验证 迁移完成后,请使用Redis-cli连接源Redis和目标Redis,确认数据的完整性。 连接源Redis和目标Redis。 输入info keyspace,查看keys参数和expires参数的值。 对比源Redis和目标Redis的keys参数分别减去expires参数的差值。如果差值一致,则表示数据完整,迁移正常。 注意:如果是全量迁移,迁移过程中源Redis更新的数据不会迁移到目标实例。
  • 步骤5:配置在线迁移任务 创建完在线迁移任务之后,在“在线迁移”的列表,单击“配置”,配置在线迁移的源Redis、目标Redis等信息。 选择迁移方法。 支持“全量迁移”和“全量迁移+增量迁移”两种,“全量迁移”和“全量迁移+增量迁移”的功能及限制如表1所示。 表1 在线迁移方法说明 迁移类型 描述 全量迁移 该模式为Redis的一次性迁移,适用于可中断业务的迁移场景。全量迁移过程中,如果源Redis有数据更新,这部分更新数据不会被迁移到目标Redis。 全量迁移+增量迁移 该模式为Redis的持续性迁移,适用于对业务中断敏感的迁移场景。增量迁移阶段通过解析日志等技术, 持续保持源Redis和目标端Redis的数据一致。 增量迁移,迁移任务会在迁移开始后,一直保持迁移中状态,不会自动停止。需要您在合适时间,在“操作”列单击“停止”,手动停止迁移。停止后,源端数据不会造成丢失,只是目标端不再写入数据。增量迁移在传输链路网络稳定情况下是秒级时延,具体的时延情况依赖于网络链路的传输质量。 图1 选择迁移方法 配置“源Redis”和“目标Redis”。 Redis类型支持“云服务Redis”和“自建Redis”,需要根据迁移场景选择数据来源。 云服务Redis:当源端或目标Redis为DCS Redis,且与迁移任务处于相同VPC时,可以选择“云服务Redis”类型,并指定需要迁移的DCS Redis实例。 自建Redis:DCS Redis、其他云厂商Redis、自行搭建的Redis,都可以选择“自建Redis”类型,并输入Redis的连接地址。 当源Redis和目标Redis属于华为云的不同Region,则打通网路后,目标Redis实例无论是自建Redis或华为云Redis实例,在“目标Redis类型”区域,只能选中自建Redis,输入实例相关信息。 如果是密码访问模式实例,在输入连接实例密码后,单击密码右侧的“测试连接”,检查实例密码是否正确、网络是否连通。如果是免密访问的实例,请直接单击“测试连接”。 在“源DB”或“目标DB”中,您可以选择是否需要指定具体迁移的DB。例如源端输入5,目标端输入6时,表示迁移源Redis DB5中的数据到目标Redis的DB6;当源端不指定DB,目标端指定DB时,表示默认迁移源端的全部数据,到目标端指定的DB,当目标端不指定DB时,表示默认迁移到与源端对应的DB。 当源端为多DB,目标端为单DB的DCS实例时(单DB的实例只有DB0),需要源端的所有数据都在DB0,或者指定仅迁移源端某一DB中的数据并将目标端DB指定为0,否则会迁移失败。 DCS Redis的DB数请参见Redis实例是否支持多DB方式?。 单击“下一步”。 确认迁移信息,然后单击“提交”,开始创建迁移任务。 可返回迁移任务列表中,观察对应的迁移任务的状态,迁移成功后,任务状态显示“成功”。 如果是增量迁移,会一直保持迁移中状态,需要手动停止迁移。 如需停止迁移中的任务,勾选迁移任务左侧的方框,单击实例上方信息栏的“停止”,即可停止迁移。 数据迁移后,源端与目标端重复的Key会被覆盖。 如果出现迁移失败,可以单击迁移任务名称,进入迁移任务详情页面,查看“迁移日志”。
  • 步骤:3:检查网络 检查源Redis、目标Redis、迁移任务资源所在VPC是否在同一个VPC内。 如果是,则执行步骤4:创建在线迁移任务;如果不是,执行2。 检查源Redis的VPC、目标Redis的VPC、迁移任务资源所在VPC的网络是否打通,确保迁移任务的虚拟机资源能访问源Redis和目标Redis。 如果已打通,则执行步骤4:创建在线迁移任务;如果没打通,则执行3。 执行相应操作,打通网络。 当源Redis和目标Redis都属于DCS同一region,请参考VPC对等连接说明,查看和创建对等连接,打通网络。 当源Redis和目标Redis属于DCS不同Region,请参考云连接,查看和创建云连接,打通网络。 当源Redis和目标Redis属于不同的云厂商,仅支持云专线打通网络,请参考云专线。
  • 步骤4:创建在线迁移任务 登录分布式缓存服务控制台。 单击左侧菜单栏的“数据迁移”。页面显示迁移任务列表页面。 单击右上角的“创建在线迁移任务”。 设置迁移任务名称和描述。 配置在线迁移任务虚拟机资源的VPC、子网和安全组。 创建在线迁移任务时,需要选择迁移虚拟机资源的VPC和安全组,并确保迁移资源能访问源Redis和目标Redis实例。 创建的在线迁移任务会占用一个租户侧IP,即控制台上迁移任务对应的“迁移IP”。如果源端Redis或目标端Redis配置了白名单,需确保配置了迁移IP或关闭白名单限制。 迁移任务所选安全组的“出方向规则”需放通源端Redis和目标端Redis的IP和端口(安全组默认情况下为全部放通,则无需单独放通),以便迁移任务的虚拟机资源能访问源Redis和目标Redis。
  • 场景描述 在满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提下,使用在线迁移的方式,将源Redis中的数据全量迁移或增量迁移到目标Redis中。 如果源Redis禁用了SYNC和PSYNC命令,请务必放通后再执行在线迁移,否则迁移失败,选择DCS Redis实例进行在线迁移时,会自动放开SYNC命令。 在线迁移不支持公网方式直接迁移。 进行在线迁移时,建议将源端实例的参数repl-timeout配置为300秒,client-output-buffer-limit配置为实例最大内存的20%。 源端仅支持Redis 3.0及3.0以上的Redis版本。
  • 前提条件 在迁移之前,请先阅读迁移方案概览,选择正确的迁移方案,了解当前DCS支持的在线迁移能力,选择适当的目标实例。 如果是单机/主备等多DB的源端实例迁移到Proxy集群实例,Proxy集群默认不开启多DB,仅有一个DB0,请先确保源端实例DB0以外的DB是否有数据,如果有,请先参考开启多DB操作开启Proxy集群多DB设置。 如果是单机/主备等多DB的源端实例迁移到Cluster集群实例,Cluster集群不支持多DB,仅有一个DB0,请先确保源端实例DB0以外的DB是否有数据,如果有,请将数据转存到DB0,否则会出现迁移失败,将数据转存到DB0的操作请参考使用Rump在线迁移。
  • PG_DIRECTORY PG_DIRECTORY系统表用于保存用户添加的directory对象,可以通过CREATE DIRECTORY语句向该表中添加记录,当enable_access_server_directory=off时,只允许初始用户创建directory对象;当enable_access_server_directory=on时,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象。普通用户需要授权才能访问该表。 表1 PG_DIRECTORY字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 dirname name 目录对象的名称。 owner oid 目录对象的所有者。 dirpath text 目录路径。 diracl aclitem[] 访问权限。 父主题: 其他系统表
  • GS_TOTAL_NODEGROUP_MEMORY_DETAIL GS_TOTAL_NODEGROUP_MEMORY_DETAIL返回当前数据库逻辑实例使用内存的信息,单位为MB,若GUC参数enable_memory_limit设置为off,则该视图不能使用。 表1 GS_TOTAL_NODEGROUP_MEMORY_DETAIL字段 名称 类型 描述 ngname text 逻辑实例名称。 memorytype text 内存类型,包括以下几种: ng_total_memory:该逻辑实例的总内存大小。 ng_used_memory:该逻辑实例的实际使用内存大小。 ng_estimate_memory:该逻辑实例的估算使用内存大小。 ng_foreignrp_memsize:该逻辑实例的外部资源池的总内存大小。 ng_foreignrp_usedsize:该逻辑实例的外部资源池实际使用内存大小。 ng_foreignrp_peaksize:该逻辑实例的外部资源池使用内存的峰值。 ng_foreignrp_mempct:该逻辑实例的外部资源池占该逻辑实例总内存大小的百分比。 ng_foreignrp_estmsize:该逻辑实例的外部资源池估算使用内存大小。 memorymbytes integer 内存类型分配内存的大小。 父主题: 其他系统视图
  • 定时任务管理 创建测试表。 1 gaussdb=# CREATE TABLE test(id int, time date); 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLE 创建自定义存储过程。 1 2 3 4 5 6 7 8 9 gaussdb=# CREATE OR REPLACE PROCEDURE PRC_JOB_1() AS N_NUM integer :=1; BEGIN FOR I IN 1..1000 LOOP INSERT INTO test VALUES(I,SYSDATE); END LOOP; END; / 当结果显示为如下信息,则表示创建成功。 1 CREATE PROCEDURE 创建任务。 新创建的任务(未指定job_id)表示每隔1分钟执行一次存储过程PRC_JOB_1。 1 2 3 4 5 gaussdb=# call dbe_task.submit('call public.prc_job_1(); ', sysdate, 'interval ''1 minute''', :a); id ----- 1 (1 row) 指定job_id创建任务,其中job_id可用范围为1~32767。 1 2 3 4 5 gaussdb=# call dbe_task.id_submit(1,'call public.prc_job_1(); ', sysdate, 'interval ''1 minute'''); id_submit ---------- (1 row) 通过视图查看当前用户已创建的任务信息。 1 2 3 4 5 gaussdb=# select job,dbname,start_date,last_date,this_date,next_date,broken,status,interval,failures,what from my_jobs; job | dbname | start_date | last_date | this_date | next_date | broken | status | interval | failures | what -----+--------+---------------------+----------------------------+----------------------------+---------------------+--------+--------+---------------------+----------+--------------------------- 1 | testdb | 2017-07-18 11:38:03 | 2017-07-18 13:53:03.607838 | 2017-07-18 13:53:03.607838 | 2017-07-18 13:54:03 | n | s | interval '1 minute' | 0 | call public.prc_job_1(); (1 row) 停止任务。 1 2 3 4 5 gaussdb=# call dbe_task.finish(1,true); finish -------- (1 row) 启动任务。 1 2 3 4 5 gaussdb=# call dbe_task.finish(1,false); finish -------- (1 row) 修改任务属性。 修改JOB的Next_date参数信息。 1 2 3 4 5 6 --修改Job1的Next_date为1小时以后开始执行。 gaussdb=# call dbe_task.next_date(1, sysdate+1.0/24); next_date ----------- (1 row) 修改JOB的Interval参数信息。 1 2 3 4 5 6 --修改Job1的Interval为每隔1小时执行一次。 gaussdb=# call dbe_task.interval(1,'sysdate + 1.0/24'); interval ---------- (1 row) 修改JOB的What参数信息。 1 2 3 4 5 6 --修改Job1的What为执行SQL语句“insert into public.test values(333, sysdate+5);”。 gaussdb=# call dbe_task.content(1,'insert into public.test values(333, sysdate+5);'); content ------ (1 row) 同时修改JOB的Next_date、Interval、What等多个参数信息。 1 2 3 4 5 gaussdb=# call dbe_task.update(1, 'call public.prc_job_1();', sysdate, 'interval ''1 minute'''); update -------- (1 row) 删除JOB。 1 2 3 4 5 gaussdb=# call dbe_task.cancel(1); cancel -------- (1 row) 查看JOB执行情况。 当JOB自动执行时,如果JOB执行失败(即job_status状态值为'f')时,请联系管理员查看gs_log的运行日志来查看JOB的失败信息。 日志信息如下所示,从失败信息(detail error msg)中可以查看失败的具体错误。 LOG: Execute Job Detail: job_id: 1 what: call public.test(); start_date: 2017-07-19 23:30:47.401818 job_status: failed detail error msg: relation "test" does not exist end_date: 2017-07-19 23:30:47.401818 next_run_date: 2017-07-19 23:30:56.855827 JOB的权限控制。 当创建一个JOB时,该JOB会和创建该JOB的数据库和用户绑定(即:pg_job系统表新增的JOB记录中的dbname和log_user)。 如果当前用户是DBA用户、系统管理员或该JOB的创建用户(即:pg_job中的log_user),那么该用户有权限通过高级包接口remove、change、next_data、what、interval删除或修改JOB的参数信息。否则,会提示当前用户没有权限操作该JOB。 如果当前数据库是该JOB创建所属的数据库(即:pg_job系统表中的dbname),那么连接到当前数据库上可以通过高级包接口cancel、update、next_data、content、interval删除或修改JOB的参数信息。 当删除JOB所属的数据库(即:pg_job系统表中的dbname)时,系统会关联删除该数据库从属的JOB记录。 当删除JOB所属的用户(即:pg_job系统表中的log_user)时,系统会关联删除该用户从属的JOB记录。 JOB的并发控制管理。 用户可以通过配置GUC参数job_queue_processes调整并发同时执行的JOB数目。 当job_queue_processes为0时,表示不启用定时任务功能,任何job都不会被执行。 当job_queue_processes为大于0时,表示启用定时任务功能且系统能够并发处理的最大任务数。 由于并行运行的任务数太多会消耗更多的系统资源,因此需要设置系统并发处理的任务数,当前并发的任务数达到job_queue_processes时,且此时又有任务到期,那么这些任务本次得不到执行而延期到下一轮询周期。因此,建议用户需要根据每个任务的执行时长合理的设置任务的时间间隔(即submit接口中的interval参数),来避免由于任务执行时间太长而导致下个轮询周期无法正常执行。 注:对于不使用JOB的集群中,用户可以通过在集群安装初始化完成后,通过设置job_queue_processes为0来关闭JOB功能,减少系统资源的消耗。
  • 背景信息 当客户在使用数据库过程中,如果白天执行一些耗时比较长的任务(例如:统计数据汇总之类或从其他数据库同步数据的任务),会对正常的业务有性能影响,所以客户经常选择在晚上执行,无形中增加了客户的工作量。因此GaussDB Kernel数据库兼容ORA数据库中定时任务的功能,可以由客户创建定时任务,当任务时间点到达后可以自动触发任务的执行,从而可以减少客户运维的工作量。 GaussDB Kernel数据库兼容ORA定时任务功能主要通过DBE_SCHEDULER和DBE_TASK高级包提供的接口,可以实现定时任务的创建、任务到期自动执行、任务删除和修改任务属性(包括:任务id、任务的关闭开启、任务的触发时间、触发时间间隔和任务内容等)。推荐使用DBE_SCHEDULER接口,保证高可用性、高可靠性,并且支持更灵活的任务调度。接口说明、迁移指导示例请参见DBE_SCHEDULER章节。
  • PG_HASHBUCKET PG_HASHBUCKET系统表存储hashbucket信息。 表1 PG_HASHBUCKET字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 bucketid oid CN上为PG_HASHBUCKET系统表所在DATABASE绑定的node group。DN上此列为空。 bucketcnt integer CN上不使用此参数,DN上为当前DN所拥有的bucket数量。 bucketmapsize integer 当前版本不使用此参数。 bucketref integer 预留字段,默认值为1。 bucketvector oidvector_extend CN上不使用此参数,DN上为当前DN所拥有的bucket列表。 bucketmap text 用来存储逻辑bucket到物理bucket的映射关系,即16384到1024的映射关系。 bucketversion oidvector_extend 记录后续hashbucket扩容过程中发生改变的信息版本号。 bucketcsn text hashbucket重分布前源节点每个bucket的对应的最大CSN,用于新节点可见性判断。 bucketxid text hashbucket扩容,新节点上线设置的next_xid,用于校验是否在阈值范围内。 父主题: 其他系统表
  • V$SYSSTAT V$SYSSTAT视图显示自数据库实例启动那刻起就开始累计的全实例的资源使用情况。默认只有初始用户或监控管理员可以访问,其它用户需授予MONADMIN权限才可访问。该视图同时存在于PG_CATALOG和SYS Schema下。在ARM环境下,需先开启内存资源管理功能,详细操作请联系管理员处理。具体字段信息如表1所示。 表1 V$SYSSTAT字段 名称 类型 描述 statistic# numeric 统计编号。 name character varying(64) 统计名称。 class numeric 暂不支持,值为NULL。 value numeric 统计值。 stat_id numeric 暂不支持,值为NULL。 con_id numeric 暂不支持,值为0。 父主题: 其他系统视图
  • 背景信息 GaussDB数据库支持的分区表为范围分区表、间隔分区表、列表分区表和哈希分区表。 范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进行分区。 间隔分区表:是一种特殊的范围分区表,相比范围分区表,新增间隔值定义,当插入记录找不到匹配的分区时,可以根据间隔值自动创建分区。 列表分区表:将数据中包含的键值分别存储在不同的分区中,依次将数据映射到每一个分区,分区中包含的键值由创建分区表时指定。 哈希分区表:将数据根据内部哈希算法依次映射到每一个分区中,包含的分区个数由创建分区表时指定。 分区表和普通表相比具有以下优点: 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。 增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。 方便维护:如果分区表的某个分区出现故障,需要修复数据,只修复该分区即可。 普通表若要转成分区表,需要新建分区表,然后把普通表中的数据导入到新建的分区表中。因此在初始设计表时,请根据业务提前规划是否使用分区表。
  • ADM_OBJECTS ADM_OBJECTS视图显示数据库中所有数据库对象的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_OBJECTS字段 名称 类型 描述 owner name 对象的所有者。 object_name name 对象的名称。 object_id oid 对象的OID。 object_type name 对象的类型。例如table,schema,index等。 namespace oid 对象所在的命名空间。 temporary character(1) 对象是否为临时对象。 status character varying(7) 对象的状态。 valid:有效。 invalid:已失效。 subobject_name name 对象的子对象名称。 generated character(1) 对象名称是否是系统生成。 created timestamp with time zone 对象的创建时间。 last_ddl_time timestamp with time zone 对象的最后修改时间。 default_collation character varying(100) 对象的默认排序规则。 data_object_id numeric 暂不支持,值为NULL。 timestamp character varying(19) 暂不支持,值为NULL。 secondary character varying(1) 暂不支持,值为NULL。 edition_name character varying(128) 暂不支持,值为NULL。 sharing character varying(18) 暂不支持,值为NULL。 editionable character varying(1) 暂不支持,值为NULL。 oracle_maintained character varying(1) 暂不支持,值为NULL。 application character varying(1) 暂不支持,值为NULL。 duplicated character varying(1) 暂不支持,值为NULL。 sharded character varying(1) 暂不支持,值为NULL。 created_appid numeric 暂不支持,值为NULL。 modified_appid numeric 暂不支持,值为NULL。 created_vsnid numeric 暂不支持,值为NULL。 modified_vsnid numeric 暂不支持,值为NULL。 created和last_ddl_time支持的范围参见PG_OBJECT中的记录范围。 父主题: 其他系统视图