云服务器内容精选

  • 场景描述 在搭建canal环境,使用指定用户从 GaussDB (for MySQL)获取Binlog时,启动canal经常会报如下错误:'show master status' has an error! Access denied: you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation 完整报错信息如下: 2021-01-10 23:58:32.964 [destination = evoicedc , address = /dbus-mysql:3306 , EventParser] ERROR com.alibaba.ot ter.canal.common.alarm.LogAlarmHandler - destination:evoicedc[com.alibaba.otter.canal.parse.exception.CanalParseEx ception: command : 'show master status' has an error! Caused by: java.io.IOException: ErrorPacket [errorNumber=1227, fieldCount=-1, message=Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation, sqlState=42000, sqlStateMarker=#] with command: show master status at com.alibaba.otter.canal.parse.driver.mysql.MysqlQueryExecutor.query(MysqlQueryExecutor.java:61)
  • pgxc_lock_for_backup() 描述:备份前给集群加锁,备份是为了在新增节点上执行恢复操作。 返回值类型:boolean pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。 示例: 1 2 3 4 5 SELECT pgxc_lock_for_backup(); pgxc_lock_for_backup ---------------------- t (1 row)
  • pgxc_get_senders_catchup_time() 描述:显示所有DN上当前活跃的主备发送线程的追赶信息。 返回值类型:record 函数返回信息如下: 表1 pgxc_get_senders_catchup_time()字段 名称 类型 描述 node_name text 节点名称。 lwpid integer 当前sender的lwpid。 local_role text 本地的角色。 peer_role text 对端的角色。 state text 当前sender的复制状态。 sender text 当前sender的类型。 catchup_start timestamp with time zone catchup启动的时间。 catchup_end timestamp with time zone catchup结束的时间。 catchup_type text catchup方式为全量还是增量。 catchup_bcm_filename text catchup当前执行到的bcm文件 catchup_bcm_finished integer catchup已经操作完成的bcm文件数量。 catchup_bcm_total integer catchup总共需要操作的bcm文件数量。 catchup_percent text catchup已经操作完成的百分比。 catchup_remaining_time text catchup预估剩余时间。
  • pg_switch_xlog() 描述:切换到一个新的事务日志文件。(需要管理员角色) 返回值类型:text 备注:pg_switch_xlog移动到下一个事务日志文件,以允许将当前日志文件归档(假定使用连续归档)。返回值是刚完成的事务日志文件的事务日志结束位置+1。如果从最后一次事务日志切换以来没有活动的事务日志,则pg_switch_xlog什么事也不做,直接返回当前事务日志文件的开始位置。 示例: 1 2 3 4 5 SELECT pg_switch_xlog(); pg_switch_xlog ---------------- 0/45017978 (1 row)
  • pg_enable_delay_ddl_recycle() 描述:开启延迟DDL功能,并返回开启点的xlog位置。 返回值类型:text 示例: 1 2 3 4 5 SELECT pg_enable_delay_ddl_recycle(); pg_enable_delay_ddl_recycle ----------------------------- 00000000/4607B250 (1 row)
  • pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名字)。这个函数向数据库集群的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 1 2 3 4 5 SELECT pg_start_backup('label_goes_here'); pg_start_backup ----------------- 0/3000020 (1 row)
  • pg_cbm_get_changed_block(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个表,并返回表的各行记录。 返回值类型:record 备注:pg_cbm_get_changed_block返回的表字段包含:合并起始的lsn,合并截止的lsn, 表空间oid,库oid,表的relfilenode,表的fork number,表是否被删除,表是否被创建,表是否被截断,表被截断后的页面数,有多少页被修改以及被修改的页号的列表。
  • pg_stop_backup() 描述:完成执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,这样,结束的事务日志文件可以被立即归档从而完成备份。 示例: 1 2 3 4 5 SELECT pg_stop_backup(); pg_stop_backup ---------------- 0/4401E610 (1 row)
  • pg_xlogfile_name_offset(location text) 描述:将事务日志的位置字符串转换为文件名并返回在文件中的字节偏移量。 返回值类型:text,integer 备注:可以使用pg_xlogfile_name_offset从前述函数的返回结果中抽取相应的事务日志文件名称和字节偏移量。例如: 1 2 3 4 5 6 7 SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup()); NOTICE: pg_stop_backup cleanup done, waiting for required WAL segments to be archived NOTICE: pg_stop_backup complete, all required WAL segments have been archived file_name | file_offset --------------------------+------------- 000000010000000000000003 | 272 (1 row)
  • pg_cbm_recycle_file(slotName name, targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。其中,slotName为空字符串时,将直接使用targetLSNArg作为回收点;在备份和容灾时,因为并行因素,需要指定相应的slotName,首先记录该任务的targetLSNArg到该slot中,然后遍历所有的backup slots,找到最小的lsn作为回收点。 返回值类型:text
  • pg_create_restore_point(name text) 描述:为执行恢复创建一个命名点。(需要管理员角色) 返回值类型:text 备注:pg_create_restore_point创建了一个可以用作恢复目的、有命名的事务日志记录,并返回相应的事务日志位置。在恢复过程中,recovery_target_name可以通过这个名称定位对应的日志恢复点,并从此处开始执行恢复操作。避免使用相同的名称创建多个恢复点,因为恢复操作将在第一个匹配(恢复目标)的名称上停止。
  • pg_current_xlog_insert_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:pg_current_xlog_insert_location显示当前事务日志的插入位置。插入点是事务日志在某个瞬间的“逻辑终点”,而实际的写入位置则是从服务器内部缓冲区写出时的终点。写入位置是可以从服务器外部检测到的终点,如果要归档部分完成事务日志文件,则该操作即可实现。插入点主要用于服务器调试目的。如果是只读操作,不需要系统管理员权限。 示例: 1 2 3 4 5 SELECT pg_current_xlog_insert_location(); pg_current_xlog_insert_location --------------------------------- 0/4316AD50 (1 row)
  • pg_current_xlog_location() 描述:获取当前事务日志的写入位置。 返回值类型:text 备注:pg_current_xlog_location使用与前面那些函数相同的格式显示当前事务日志的写入位置。如果是只读操作,不需要系统管理员权限。 示例: 1 2 3 4 5 SELECT pg_current_xlog_location(); pg_current_xlog_location -------------------------- 0/4310D5D8 (1 row)
  • MRS 集群数据备份恢复概述 Manager提供对集群内的用户数据及系统数据的备份恢复能力,备份功能按组件提供。系统支持备份Manager的数据、组件元数据及业务数据。 MRS 3.x及之后版本,备份功能支持将数据备份至本地磁盘(LocalDir)、本端HDFS(LocalHDFS)、远端HDFS(RemoteHDFS)、NAS(NFS/CIFS)、SFTP服务器(SFTP)、OBS,具体操作请参考备份MRS集群组件数据。 MRS 3.1.0及之后版本才支持备份数据到OBS。 备份恢复任务的使用场景如下: 用于日常备份,确保系统及组件的数据安全。 当系统故障导致无法工作时,使用已备份的数据完成恢复操作。 当主集群完全故障,需要创建一个与主集群完全相同的镜像集群,可以使用已备份的数据完成恢复操作。 表1 根据业务需要备份元数据(MRS 2.x及之前版本) 备份类型 备份内容 OMS 默认备份集群管理系统中的数据库数据(不包含告警数据)以及配置数据。 LdapServer 备份用户信息,包括用户名、密码、密钥、密码策略、用户组信息。 DBService 备份DBService管理的组件(Hive)的元数据。 NameNode 备份HDFS元数据。 表2 根据业务需要备份Manager配置数据(MRS 3.x及之后版本) 备份类型 备份内容 备份目录类型 OMS 默认备份集群管理系统中的数据库数据(不包含告警数据)以及配置数据。 LocalDir LocalHDFS RemoteHDFS NFS CIFS SFTP OBS 表3 根据业务需要备份组件元数据或其他数据(MRS 3.x及之后版本) 备份类型 备份内容 备份目录类型 DBService 备份DBService管理的组件(Loader、Hive、Spark、Oozie、Hue、CDL)的元数据。 LocalDir LocalHDFS RemoteHDFS NFS CIFS SFTP OBS Flink (适用于MRS 3.2.0及以后版本) Flink的元数据。 LocalDir LocalHDFS RemoteHDFS Kafka Kafka的元数据。 LocalDir LocalHDFS RemoteHDFS NFS CIFS OBS NameNode 备份HDFS元数据。添加多个NameService后,支持不同NameService的备份恢复功能且备份恢复操作与默认实例“hacluster”一致。 LocalDir RemoteHDFS NFS CIFS SFTP OBS Yarn 备份Yarn服务资源池相关信息。 HBase HBase系统表的tableinfo文件和数据文件。 IoTDB IoTDB的元数据。 LocalDir NFS RemoteHDFS CIFS SFTP ClickHouse ClickHouse的元数据。 LocalDir RemoteHDFS 表4 根据业务需要备份特定组件业务数据(MRS 3.x及之后版本) 备份类型 备份内容 备份目录类型 HBase 备份表级别的用户数据。 RemoteHDFS NFS CIFS SFTP HDFS 备份用户业务对应的目录或文件。 说明: 加密目录不支持备份恢复。 Hive 备份表级别的用户数据。 IoTDB 备份IoTDB业务数据。 RemoteHDFS ClickHouse 备份表级别的用户数据。 RemoteHDFS MRS 3.x及之后版本,需要特别说明的是,部分组件不提供单独的数据备份与恢复功能: Kafka支持副本特性,在创建主题时可指定多个副本来备份数据。 CDL的数据存储在DBService与Kafka服务中,系统管理员可以通过创建备份DBService和Kafka的任务来备份数据。 Mapreduce和Yarn的数据存放在HDFS上,故其依赖HDFS提供备份与恢复即可。 ZooKeeper中存储的业务数据,其备份恢复能力由各上层组件按需独立实现。
  • MRS集群数据备份恢复原理 任务 在进行备份恢复之前,需要先创建备份恢复任务,并指定任务的参数,例如任务名称、备份数据源和备份文件保存的目录类型等等。通过执行备份恢复任务,用户可完成数据的备份恢复需求。在使用Manager执行恢复HDFS、HBase(MRS 3.x及之后版本)、Hive和NameNode数据时,无法访问集群。 每个备份任务可同时备份不同的数据源,每个数据源将生成独立的备份文件,每次备份的所有备份文件组成一个备份文件集,可用于恢复任务。备份任务支持将备份文件保存在Linux本地磁盘、本集群HDFS与备集群HDFS中。 MRS 3.x及之后版本,备份任务提供全量备份或增量备份的策略,云数据备份任务不支持增量备份策略。如果备份的路径类型是NFS或CIFS,不建议使用增量备份功能。因为在NFS或CIFS备份时使用增量备份时,每次增量备份都会刷新最近一次全量备份的备份数据,所以不会产生新的恢复点。 MRS 2.x及之前版本,备份任务提供全量备份或增量备份的策略,增量备份策略支持HDFS和Hive备份任务,OMS、LdapServer、DBService和NameNode备份任务默认只应用全量备份策略。 任务运行规则: 某个任务已经处于执行状态,则当前任务无法重复执行,其他任务也无法启动。 周期任务自动执行时,距离该任务上次执行的时间间隔需要在120秒以上,否则任务推迟到下个周期启动。手动启动任务无时间间隔限制。 周期任务自动执行时,当前时间不得晚于任务开始时间120秒以上,否则任务推迟到下个周期启动。 周期任务锁定时无法自动执行,需要手动解锁。 OMS、LdapServer(MRS 2.x及之前版本)、DBService、Kafka(MRS 3.x及之后版本)和NameNode备份任务开始执行前,若主管理节点“LocalBackup”分区可用空间小于20GB,则无法开始执行。 用户在规划备份恢复任务时,请严格根据业务逻辑、数据存储结构、数据库或表关联关系,选择需要备份或者恢复的数据。 MRS 2.x及之前版本,系统默认创建了一个间隔为24小时的周期备份任务“default”,支持全量备份OMS、LdapServer、DBService和NameNode数据到Linux本地磁盘。 MRS 3.x及之后版本,系统默认创建间隔为1小时的周期备份任务“default-oms”、“default-集群ID”,支持全量备份OMS及集群的DBService、NameNode等元数据到本地磁盘。 快照(MRS 3.x及之后版本) 系统通过快照技术,快速备份数据。快照包含HBase快照、HDFS快照。 HBase快照 HBase快照是HBase表在特定时间的一个备份,该备份文件不复制业务数据,不影响RegionServer。HBase快照主要复制表的元数据,包含table descriptor,region info和HFile的引用信息。通过这些元数据信息可以恢复快照时间点之前的数据。 HDFS快照 HDFS快照是HDFS文件系统在特定时间点的只读备份副本,主要用于数据备份、用户误操作保护和灾难恢复的场景。 任意HDFS目录均可以配置启用快照功能并创建对应的快照文件,为目录创建快照前系统会自动启用此目录的快照功能。创建快照不会对正常的HDFS操作有任何影响。每个HDFS目录最多可创建65536个快照。 如果一个HDFS目录已创建快照,那么在快照完全删除以前,此目录无法删除或修改名称。该目录的上级目录或子目录也无法再创建快照。 DistCp(MRS 3.x及之后版本) DistCp(distributed copy)是一个用于在本集群HDFS中或不同集群HDFS间进行大量数据复制的工具。在HBase、HDFS或Hive元数据的备份恢复任务中,如果选择将数据备份在备集群HDFS中,系统将调用DistCp完成操作。主备集群请选择安装相同版本的MRS软件版本并安装集群系统。 DistCp使用Mapreduce来影响数据的分布、异常处理及恢复和报告,此工具会把指定列表中包含的多个源文件和目录输入不同的Map任务,每个Map任务将复制列表中指定文件对应分区的数据。 使用DistCp在两个集群的HDFS间进行数据复制,集群双方需要分别配置互信(同一个 FusionInsight Manager管理下的集群不需要配置互信)和启用集群间复制功能。集群数据备份到另一个集群的HDFS时,需要安装Yarn组件,否则备份失败。 本地快速恢复(MRS 3.x及之后版本) 使用DistCp将本集群HBase、HDFS和Hive数据备份在备集群HDFS中以后,本集群HDFS保留了备份数据的快照。用户可以通过创建本地快速恢复任务,直接从本集群HDFS的快照文件中恢复数据。 NAS(MRS 3.x及之后版本) NAS(Network Attached Storage)是一种特殊的专用数据存储服务器,包括存储器件和内嵌系统软件,可提供跨平台文件共享功能。利用NFS(支持NFSv3、NFSv4)和CIFS(支持SMBv2、SMBv3)协议,用户可以连通MRS的业务平面与NAS服务器,将数据备份至NAS或从NAS恢复数据。 数据备份至NAS前,系统会自动将NAS共享地址挂载为备份任务执行节点的本地分区。在备份结束后,系统会卸载备份任务执行节点的NAS共享分区。 为防止备份恢复失败,数据备份及恢复期间,请勿访问NAS服务器挂载至本地的共享地址,如:“/srv/BigData/LocalBackup/nas”。 业务数据备份至NAS时,会使用DistCp。