云服务器内容精选

  • 恢复控制函数 恢复信息函数提供了当前备机状态的信息。这些函数可能在恢复期间或正常运行中执行。 pg_is_in_recovery() 描述:如果恢复仍然在进行中则返回true。 返回值类型:Boolean pg_last_xlog_receive_location() 描述:获取最后接收事务日志的位置并通过流复制将其同步到磁盘。当流复制正在进行时,事务日志将持续递增。如果恢复已完成,则最后一次获取的WAL记录会被静态保持并在恢复过程中同步到磁盘。如果流复制不可用,或还没有开始,这个函数返回NULL。 返回值类型:text pg_last_xlog_replay_location() 描述:获取最后一个事务日志在恢复时重放的位置。如果恢复仍在进行,事务日志将持续递增。如果已经完成恢复,则将保持在恢复期间最后接收WAL记录的值。如果未进行恢复但服务器正常启动时,则这个函数返回NULL。 返回值类型:text pg_last_xact_replay_timestamp() 描述:获取最后一个事务在恢复时重放的时间戳。这是为在主节点上生成事务提交或终止WAL记录的时间。如果在恢复时没有事务重放,则这个函数返回NULL。如果恢复仍在进行,则事务日志将持续递增。如果恢复已经完成,则将保持在恢复期间最后接收WAL记录的值。如果服务器无需恢复就已正常启动,则这个函数返回NULL。 返回值类型:timestamp with time zone 恢复控制函数控制恢复的进程。这些函数可能只在恢复时被执行。 pg_is_xlog_replay_paused() 描述:如果恢复暂停则返回true。 返回值类型:Boolean pg_xlog_replay_pause() 描述:立即暂停恢复。 返回值类型:void pg_xlog_replay_resume() 描述:如果恢复处于暂停状态,则重新启动。 返回值类型:void gs_get_active_archiving_standby() 描述:查询同一分片内归档备机的信息。返回备机名,备机归档位置和已归档日志个数。 返回值类型:text,int gs_pitr_get_warning_for_xlog_force_recycle() 描述:查询开启归档后是否因归档槽不推进日志大量堆积导致日志被回收。 返回值类型:bool gs_pitr_clean_history_global_barriers(stop_barrier_timestamp cstring) 描述:清理指定时间之前所有barrier记录。返回最老的barrier记录。入参为cstring类型,linux时间戳。需要管理员角色或运维管理员角色执行。 返回值类型:text gs_pitr_archive_slot_force_advance(stop_barrier_timestamp cstring) 描述:强制推进归档槽,并清理不需要的barrier记录。返回新的归档槽位置。入参为cstring类型,linux时间戳。需要管理员角色或运维管理员角色执行。 返回值类型:text 当恢复暂停时,没有发生数据库更改。如果是在热备里,所有新的查询将看到一致的数据库快照,并且不会有进一步的查询冲突产生,直到恢复继续。 如果不能使用流复制,则暂停状态将无限的延续。当流复制正在进行时,将连续接收WAL记录,最终将填满可用磁盘空间,这个进度取决于暂停的持续时间,WAL生成的速度和可用的磁盘空间。 gs_recent_barrier_buffer_info(start_time text, end_time text) 描述:根据用户输入的时间范围,进行相应的barrier信息查询,获取time_stamp、 CS N、LSN和standard_time。 返回值类型:records 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。输入参数start_time和end_time采用“年-月-日 时间”格式,其中时间采用clock格式。查询最大时间跨度为1天,超出跨度约束,根据查询起始时间将结束时间自动转换为极限边界进行查询。例如: gaussdb=# SELECT * FROM gs_recent_barrier_buffer_info('2024-01-15 23:27:50', '2024-01-15 23:28:00'); timestamp | lsn | csn | standard_time ------------+-------------------+----------+--------------------- 1705332470 | 00000000/15FFBBA0 | 41020421 | 2024-01-15 23:27:50 1705332471 | 00000000/15FFBDF0 | 41020422 | 2024-01-15 23:27:51 1705332472 | 00000000/15FFC058 | 41020423 | 2024-01-15 23:27:52 1705332472 | 00000000/15FFC0F8 | 41020424 | 2024-01-15 23:27:52 1705332473 | 00000000/15FFC348 | 41020425 | 2024-01-15 23:27:53 1705332474 | 00000000/15FFC598 | 41020426 | 2024-01-15 23:27:54 1705332475 | 00000000/15FFC638 | 41020427 | 2024-01-15 23:27:55 1705332476 | 00000000/15FFC888 | 41020428 | 2024-01-15 23:27:56 1705332476 | 00000000/15FFDC80 | 41020433 | 2024-01-15 23:27:56 1705332477 | 00000000/15FFDD20 | 41020434 | 2024-01-15 23:27:57 1705332478 | 00000000/15FFDF70 | 41020435 | 2024-01-15 23:27:58 1705332479 | 00000000/15FFE1D8 | 41020436 | 2024-01-15 23:27:59 1705332480 | 00000000/15FFE278 | 41020437 | 2024-01-15 23:28:00 1705332480 | 00000000/15FFE4C8 | 41020438 | 2024-01-15 23:28:00 (14 rows) gs_show_obs_media_files(slot_name cstring, src cstring, offset int32, limit int32) 描述:根据用户输入的归档槽(slot_name)和OBS目录地址(src),查询OBS文件列表。 返回值类型:records 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。Offset为查询结果偏移,limit为输出最大行数,查询src下所有文件。例如: gaussdb=# SELECT gs_show_obs_archive_files('ssh','dn1/pg_xlog',0, 5); gs_show_obs_archive_files --------------------------------------------------------------------------------------------- (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_00_01_00000004_00000002_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_00_01_00000103_00000003_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_01_01_00000004_00000002_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_01_01_00000103_00000003_00000000) (wstdist_ssh/archive/dn1/pg_xlog/000000010000000000000007_02_01_00000004_00000002_00000000) (5 rows) gs_upload_obs_media_file(slot_name cstring, src cstring, dest cstring, is_forced bool) 描述:根据用户输入的归档槽(slot_name)、上传文件原地址(src)、OBS地址(dest)和是否强制上传(is_forced),上传OBS文件。 返回值类型:void 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。原文件目录仅允许为$GAUSS LOG 目录。例如: gaussdb=# SELECT * FROM gs_upload_obs_archive_file('ssh', '/data/gauss/log/stwang/test/000000010000000000000007_02_01_00000004_00000002_00000000', 'dn1/pg_xlog/000000010000000000000019_02_01_00000000_00000000_00000003', true); gs_upload_obs_archive_file ---------------------------- (1 row) gs_download_obs_media_file(slot_name cstring, src cstring, dest cstring) 描述:根据用户输入的归档槽(slot_name)、下载原地址(src)和本地目标地址(dest),下载OBS文件。 返回值类型:void 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。下载目录仅允许为$GAUSSLOG目录。例如: gaussdb=# SELECT * FROM gs_download_obs_archive_file('ssh','dn1/pg_xlog/000000010000000000000019_02_01_00000000_00000000_00000003','/data/gauss/log/stwang/test'); gs_download_obs_archive_file ------------------------------ (1 row)
  • 备份控制函数 备份控制函数可帮助进行在线备份。 pg_create_restore_point(name text) 描述:为执行恢复创建一个命名点。需要管理员角色权限。 返回值类型:text 备注:pg_create_restore_point创建了一个可以用作恢复目的、有命名的事务日志记录,并返回相应的事务日志位置。在恢复过程中,recovery_target_name可以通过这个名称定位对应的日志恢复点,并从此处开始执行恢复操作。避免使用相同的名称创建多个恢复点,因为恢复操作将在第一个匹配(恢复目标)的名称上停止。 pg_current_xlog_location() 描述:获取当前事务日志的写入位置。 返回值类型:text 备注:pg_current_xlog_location使用与前面那些函数相同的格式显示当前事务日志的写入位置。如果是只读操作,不需要系统管理员权限。 pg_current_xlog_insert_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:pg_current_xlog_insert_location显示当前事务日志的插入位置。插入点是事务日志在某个瞬间的“逻辑终点”,而实际的写入位置则是从服务器内部缓冲区写出时的终点。写入位置是可以从服务器外部检测到的终点,如果要归档部分完成事务日志文件,则该操作即可实现。插入点主要用于服务器调试目的。如果是只读操作,不需要系统管理员权限。 gs_current_xlog_insert_end_location() 描述:获取当前事务日志的插入位置。 返回值类型:text 备注:gs_current_xlog_insert_end_location显示当前事务日志的实际插入位置。 pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份。需要管理员角色、复制的角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名称)。这个函数向数据库的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 1 2 3 4 5 gaussdb=# SELECT pg_start_backup('label_goes_here'); pg_start_backup ----------------- 0/3000020 (1 row) pg_stop_backup() 描述:完成执行在线备份。需要管理员角色、复制的角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,结束的事务日志文件可以被立即归档从而完成备份。 pg_switch_xlog() 描述:切换到一个新的事务日志文件。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:text 备注:pg_switch_xlog移动到下一个事务日志文件,以允许将当前日志文件归档(假定使用连续归档)。返回值是刚完成的事务日志文件的事务日志结束位置+1。如果从最后一次事务日志切换以来没有活动的事务日志,则pg_switch_xlog不进行移动操作,直接返回当前事务日志文件的开始位置。 pg_xlogfile_name(location text) 描述:将事务日志的位置字符串转换为文件名。 返回值类型:text 备注:pg_xlogfile_name仅抽取事务日志文件名称。如果给定的事务日志位置恰好位于事务日志文件的交界上,这两个函数都返回前一个事务日志文件的名称。这对于管理事务日志归档来说是非常有利的,因为前一个文件是当前最后一个需要归档的文件。 pg_xlogfile_name_offset(location text) 描述:将事务日志的位置字符串转换为文件名并返回在文件中的字节偏移量。 返回值类型:text,integer 备注:可以使用pg_xlogfile_name_offset从前述函数的返回结果中抽取相应的事务日志文件名称和字节偏移量。例如: 1 2 3 4 5 6 7 gaussdb=# 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_xlog_location_diff(location text, location text) 描述:计算两个事务日志位置之间在字节上的区别。 返回值类型:numeric pg_cbm_start_tracked_location() 描述:用于查询cbm解析的起始lsn位置。 返回值类型:text pg_cbm_tracked_location() 描述:用于查询cbm解析到的lsn位置。 返回值类型:text pg_cbm_get_merged_file(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个cbm文件,并返回合并完的cbm文件名。 返回值类型:text 备注:必须是系统管理员或运维管理员才能获取cbm合并文件。 pg_cbm_get_changed_block(startLSNArg text, endLSNArg text) 描述:用于将指定lsn范围之内的cbm文件合并成一个表,并返回表的各行记录。 返回值类型:records 备注:pg_cbm_get_changed_block返回的表字段包含:合并起始的lsn、合并截止的lsn、表空间oid、库oid、表的relfilenode、表的fork number、表是否为系统表、表是否被删除、表是否被创建、表是否被截断、表被截断后的页面数、有多少页被修改以及被修改的页号的列表。 pg_cbm_recycle_file(targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。 返回值类型:text pg_cbm_force_track(targetLSNArg text,timeOut int) 描述:强制执行一次cbm追踪到指定的xlog位置,并返回实际追踪结束点的xlog位置。 返回值类型:text pg_enable_delay_ddl_recycle() 描述:开启延迟DDL功能,并返回开启点的xlog位置。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:text pg_disable_delay_ddl_recycle(barrierLSNArg text, isForce bool) 描述:关闭延迟DDL功能,并返回本次延迟DDL生效的xlog范围。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:records pg_enable_delay_xlog_recycle() 描述:开启延迟xlog回收功能,数据库主节点修复使用。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:void pg_disable_delay_xlog_recycle() 描述:关闭延迟xlog回收功能,数据库主节点修复使用。需要管理员角色或运维管理员角色打开operation_mode。 返回值类型:void pg_cbm_rotate_file(rotate_lsn text) 描述:等待cbm解析到rotate_lsn之后,强制切换文件,在build期间调用。 返回值类型:void。 gs_roach_stop_backup(backupid text) 描述:停止一个内部备份工具GaussRoach开启的备份。与pg_stop_backup系统函数类似,但更轻量。 返回值类型:text,内容为当前日志的插入位置。 gs_roach_enable_delay_ddl_recycle(backupid name) 描述:开启延迟DDL功能,并返回开启点的日志位置。与pg_enable_delay_ddl_recycle系统函数类似,但更轻量。并且,通过传入不同的backupid,可以支持并发打开延迟DDL。 返回值类型:text,内容为返回开启点的日志位置。 gs_roach_disable_delay_ddl_recycle(backupid text) 描述:关闭延迟DDL功能,并返回本次延迟DDL生效的日志范围。与pg_enable_delay_ddl_recycle系统函数类似,但更轻量。并且,通过传入不同的backupid,可以支持并发关闭延迟DDL功能。 返回值类型:records,内容为本次延迟DDL生效的日志范围。 gs_roach_switch_xlog(request_ckpt bool) 描述:切换当前使用的日志段文件,并且,如果request_ckpt为true,则触发一个全量检查点。 返回值类型:text,内容为切段日志的位置。 gs_block_dw_io(timeout int, identifier text) 描述:阻塞双写页面刷盘。 参数说明: timeout 阻塞时长。 取值范围:[0, 3600](秒),0为阻塞时长为0。 identifier 此次操作的标识。 取值范围:字符串,不支持除大小写字母、数字以及下划线(_)以外的字符。 返回值类型:bool 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。 gs_is_dw_io_blocked() 描述:查看当前双写页面刷盘是否被阻塞,如果处于阻塞中则返回true。 返回值类型:bool 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。 gs_pitr_advance_last_updated_barrier() 描述:在PITR模式下,强制推进上次上传到OBS/NAS介质中的全局最大已归档恢复点到当前点,无入参。 返回值类型:text 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。同时只能在集中式的主DN上使用才有效。返回值为当前推进到的最新本地最大已归档恢复点。 gs_pitr_clean_local_barrier_files('delete_timestamp') 描述:清理本地缓存的barrier记录文件。 参数范围:delete_timestamp参数类型为text,为linux时间戳,长度为10位。 返回值类型:text 备注:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限,运维管理员角色须打开operation_mode。返回的结果是删除后本地最老barrier文件的开始时间戳。
  • 双数据库实例容灾控制函数 gs_streaming_dr_in_switchover() 描述:基于流式复制的异地容灾解决方案中主数据库实例在执行计划内switchover过程中截断业务的接口。 返回值类型:Boolean,表明此次业务截断是否成功,是否可以正常进行switchover流程。 gaussdb=# SELECT * FROM gs_streaming_dr_in_switchover(); is_in_switchover ------------------ f (1 row) 父主题: 系统管理函数
  • 咨询锁函数 咨询锁函数用于管理咨询锁(Advisory Lock)。 pg_advisory_lock(key bigint) 描述:获取会话级别的排他咨询锁。 返回值类型:void 备注:pg_advisory_lock锁定应用程序定义的资源,该资源可以用一个64位或两个不重叠的32位键值标识。如果已经有另外的会话锁定了该资源,则该函数将阻塞到该资源可用为止。这个锁是排他的。多个锁定请求将会被压入栈中,因此,如果同一个资源被锁定了三次,它必须被解锁三次以将资源释放给其他会话使用。 pg_advisory_lock(key1 int, key2 int) 描述:获取会话级别的排他咨询锁。 返回值类型:void 备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排他咨询锁,普通用户无权限。 pg_advisory_lock(lock_id int4, lock_id int4, datebase_name Name) 描述:通过传入锁ID和数据库名字,获取指定数据库的排他咨询锁。 返回值类型:void pg_advisory_lock_shared(key bigint) 描述:获取会话级别的共享咨询锁。 返回值类型:void pg_advisory_lock_shared(key1 int, key2 int) 描述:获取会话级别的共享咨询锁。 返回值类型:void 备注:pg_advisory_lock_shared类似于pg_advisory_lock,不同之处仅在于共享锁会话可以和其他请求共享锁的会话共享资源,但排他锁除外。 pg_advisory_unlock(key bigint) 描述:释放会话级别的排他咨询锁。 返回值类型:Boolean pg_advisory_unlock(key1 int, key2 int) 描述:释放会话级别的排他咨询锁。 返回值类型:Boolean 备注:pg_advisory_unlock释放先前取得的排他咨询锁。如果释放成功则返回true。如果实际上并未持有指定的锁,将返回false并在服务器中产生一条SQL警告信息。 pg_advisory_unlock(lock_id int4, lock_id int4, datebase_name Name) 描述:通过传入锁ID和数据库名字,释放指定数据库上的排他咨询锁。 返回值类型:Boolean 备注:如果释放成功则返回true;如果未持有锁,则返回false。 pg_advisory_unlock_shared(key bigint) 描述:释放会话级别的共享咨询锁。 返回值类型:Boolean pg_advisory_unlock_shared(key1 int, key2 int) 描述:释放会话级别的共享咨询锁。 返回值类型:Boolean 备注:pg_advisory_unlock_shared类似于pg_advisory_unlock,不同之处在于该函数释放的是共享咨询锁。 pg_advisory_unlock_all() 描述:释放当前会话持有的所有咨询锁。 返回值类型:void 备注:pg_advisory_unlock_all将会释放当前会话持有的所有咨询锁,该函数在会话结束的时候被隐含调用,即使客户端异常地断开连接也是一样。 pg_advisory_xact_lock(key bigint) 描述:获取事务级别的排他咨询锁。 返回值类型:void pg_advisory_xact_lock(key1 int, key2 int) 描述:获取事务级别的排他咨询锁。 返回值类型:void 备注:pg_advisory_xact_lock类似于pg_advisory_lock,不同之处在于锁是自动在当前事务结束时释放,而且不能被显式的释放。只允许sysadmin对键值对(65535, 65535)加事务级别的排他咨询锁,普通用户无权限。 pg_advisory_xact_lock_shared(key bigint) 描述:获取事务级别的共享咨询锁。 返回值类型:void pg_advisory_xact_lock_shared(key1 int, key2 int) 描述:获取事务级别的共享咨询锁。 返回值类型:void 备注:pg_advisory_xact_lock_shared类似于pg_advisory_lock_shared,不同之处在于锁是在当前事务结束时自动释放,而且不能被显式的释放。 pg_try_advisory_lock(key bigint) 描述:尝试获取会话级排他咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_lock类似于pg_advisory_lock,不同之处在于该函数不会阻塞以等待资源的释放。它要么立即获得锁并返回true,要么返回false表示目前不能锁定。 pg_try_advisory_lock(key1 int, key2 int) 描述:尝试获取会话级排他咨询锁。 返回值类型:Boolean 备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排他咨询锁,普通用户无权限。 pg_try_advisory_lock_shared(key bigint) 描述:尝试获取会话级共享咨询锁。 返回值类型:Boolean pg_try_advisory_lock_shared(key1 int, key2 int) 描述:尝试获取会话级共享咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_lock_shared类似于pg_try_advisory_lock,不同之处在于该函数尝试获得共享锁而不是排他锁。 pg_try_advisory_xact_lock(key bigint) 描述:尝试获取事务级别的排他咨询锁。 返回值类型:Boolean pg_try_advisory_xact_lock(key1 int, key2 int) 描述:尝试获取事务级别的排他咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_xact_lock类似于pg_try_advisory_lock,不同之处在于如果得到锁,在当前事务的结束时自动释放,而且不能被显式的释放。只允许sysadmin对键值对(65535, 65535)加事务级别的排他咨询锁,普通用户无权限。 pg_try_advisory_xact_lock_shared(key bigint) 描述:尝试获取事务级别的共享咨询锁。 返回值类型:Boolean pg_try_advisory_xact_lock_shared(key1 int, key2 int) 描述:尝试获取事务级别的共享咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_xact_lock_shared类似于pg_try_advisory_lock_shared,不同之处在于如果得到锁,在当前事务结束时自动释放,而且不能被显式的释放。 lock_cluster_ddl() 描述:尝试对数据库内所有存活的数据库主节点获取会话级别的排他咨询锁。 返回值类型:Boolean 备注:只允许sysadmin调用,普通用户无权限。 unlock_cluster_ddl() 描述:尝试对数据库主节点会话级别的排他咨询锁。 返回值类型:Boolean 会话级别咨询锁示例: gaussdb=# select pg_advisory_lock(1); --依次获取3个会话级别的咨询锁 pg_advisory_lock ------------------ (1 row) gaussdb=# select pg_advisory_lock(1,2); pg_advisory_lock ------------------ (1 row) gaussdb=# select pg_advisory_lock(2,2,'postgres'); pg_advisory_lock ------------------ (1 row) gaussdb=# select * from pg_locks; --查询pg_locks表,看到新增了3个advisory类型的锁 locktype | database | relation | page | tuple | bucket | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | sessionid | mode | granted | fastpath | locktag | global_sessionid ------------+----------+----------+------+-------+--------+------------+---------------+---------+-------+----------+--------------------+-----------------+-----------------+-----------------+---------+----------+------ -------------+------------------ relation | 12850 | 10652 | | | | | | | | | 4/27611 | 140245958915840 | 140245958915840 | AccessShareLock | t | t | 3232: 299c:0:0:0:0 | 0:0#0 virtualxid | | | | | | 4/27611 | | | | | 4/27611 | 140245958915840 | 140245958915840 | ExclusiveLock | t | t | 4:6bd b:0:0:0:7 | 0:0#0 virtualxid | | | | | | 19/16219 | | | | | 19/16219 | 140246771033856 | 140246771033856 | ExclusiveLock | t | t | 13:3f 5b:0:0:0:7 | 0:0#0 virtualxid | | | | | | 17/97293 | | | | | 17/97293 | 140246750590720 | 140246750590720 | ExclusiveLock | t | t | 11:17 c0d:0:0:0:7 | 0:0#0 advisory | 12850 | | | | | | | 0 | 1 | 1 | 4/27611 | 140245958915840 | 140245958915840 | ExclusiveLock | t | f | 3232: 0:1:1:0:b | 0:0#0 advisory | 12850 | | | | | | | 1 | 2 | 2 | 4/27611 | 140245958915840 | 140245958915840 | ExclusiveLock | t | f | 3232: 1:2:2:0:b | 0:0#0 advisory | 12850 | | | | | | | 2 | 2 | 2 | 4/27611 | 140245958915840 | 140245958915840 | ExclusiveLock | t | f | 3232: 2:2:2:0:b | 0:0#0 (7 rows) gaussdb=# select pg_advisory_unlock(1); --依次释放3个会话级别的咨询锁 pg_advisory_unlock -------------------- t (1 row) gaussdb=# select pg_advisory_unlock(1,2); pg_advisory_unlock -------------------- t (1 row) gaussdb=# select pg_advisory_unlock(2,2,'postgres'); pg_advisory_unlock -------------------- t (1 row) gaussdb=# select * from pg_locks; --查询pg_locks表,看到3个advisory类型的锁已被释放 locktype | database | relation | page | tuple | bucket | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | sessionid | mode | granted | fastpath | locktag | global_sessionid ------------+----------+----------+------+-------+--------+------------+---------------+---------+-------+----------+--------------------+-----------------+-----------------+-----------------+---------+----------+------ -------------+------------------ relation | 12850 | 10652 | | | | | | | | | 4/27618 | 140245958915840 | 140245958915840 | AccessShareLock | t | t | 3232: 299c:0:0:0:0 | 0:0#0 virtualxid | | | | | | 4/27618 | | | | | 4/27618 | 140245958915840 | 140245958915840 | ExclusiveLock | t | t | 4:6be 2:0:0:0:7 | 0:0#0 virtualxid | | | | | | 19/16254 | | | | | 19/16254 | 140246771033856 | 140246771033856 | ExclusiveLock | t | t | 13:3f 7e:0:0:0:7 | 0:0#0 virtualxid | | | | | | 17/97506 | | | | | 17/97506 | 140246750590720 | 140246750590720 | ExclusiveLock | t | t | 11:17 ce2:0:0:0:7 | 0:0#0 (4 rows) gaussdb=# select pg_advisory_lock(1); --再次获取会话级别的咨询锁 pg_advisory_lock ------------------ (1 row) gaussdb=# select pg_advisory_unlock_all(); --释放所有会话级别的咨询锁 pg_advisory_unlock_all ------------------------ (1 row) gaussdb=# select * from pg_locks; --查询pg_locks表,看到advisory类型的锁已被释放 locktype | database | relation | page | tuple | bucket | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | sessionid | mode | granted | fastpath | locktag | global_sessionid ------------+----------+----------+------+-------+--------+------------+---------------+---------+-------+----------+--------------------+-----------------+-----------------+-----------------+---------+----------+------ -------------+------------------ relation | 12850 | 10652 | | | | | | | | | 4/27629 | 140245958915840 | 140245958915840 | AccessShareLock | t | t | 3232: 299c:0:0:0:0 | 0:0#0 virtualxid | | | | | | 4/27629 | | | | | 4/27629 | 140245958915840 | 140245958915840 | ExclusiveLock | t | t | 4:6be d:0:0:0:7 | 0:0#0 virtualxid | | | | | | 19/16369 | | | | | 19/16369 | 140246771033856 | 140246771033856 | ExclusiveLock | t | t | 13:3f f1:0:0:0:7 | 0:0#0 virtualxid | | | | | | 17/98194 | | | | | 17/98194 | 140246750590720 | 140246750590720 | ExclusiveLock | t | t | 11:17 f92:0:0:0:7 | 0:0#0 (4 rows) 事务级别咨询锁示例: gaussdb=# select pg_advisory_xact_lock_shared(1); --获取事务级别的共享咨询锁 pg_advisory_xact_lock_shared ------------------------------ (1 row) gaussdb=# select * from pg_locks; --因单条语句视为一个事务,因此咨询锁已随事务提交自动释放。查询pg_locks表,看不到事务级咨询锁 locktype | database | relation | page | tuple | bucket | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | sessionid | mode | granted | fastpath | locktag | global_sessionid ------------+----------+----------+------+-------+--------+------------+---------------+---------+-------+----------+--------------------+-----------------+-----------------+-----------------+---------+----------+------ -------------+------------------ relation | 12850 | 10652 | | | | | | | | | 4/27631 | 140245958915840 | 140245958915840 | AccessShareLock | t | t | 3232: 299c:0:0:0:0 | 0:0#0 virtualxid | | | | | | 4/27631 | | | | | 4/27631 | 140245958915840 | 140245958915840 | ExclusiveLock | t | t | 4:6be f:0:0:0:7 | 0:0#0 virtualxid | | | | | | 19/16396 | | | | | 19/16396 | 140246771033856 | 140246771033856 | ExclusiveLock | t | t | 13:40 0c:0:0:0:7 | 0:0#0 virtualxid | | | | | | 17/98359 | | | | | 17/98359 | 140246750590720 | 140246750590720 | ExclusiveLock | t | t | 11:18 037:0:0:0:7 | 0:0#0 (4 rows) gaussdb=# start transaction; --显式开启事务块 START TRANSACTION gaussdb=# select pg_advisory_xact_lock_shared(1); --获取事务级别的共享咨询锁 pg_advisory_xact_lock_shared ------------------------------ (1 row) gaussdb=# select * from pg_locks; --查询pg_locks表,新增了一个advisory类型锁 locktype | database | relation | page | tuple | bucket | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | sessionid | mode | granted | fastpath | locktag | global_sessionid ------------+----------+----------+------+-------+--------+------------+---------------+---------+-------+----------+--------------------+-----------------+-----------------+-----------------+---------+----------+------ -------------+------------------ relation | 12850 | 10652 | | | | | | | | | 4/27632 | 140245958915840 | 140245958915840 | AccessShareLock | t | t | 3232: 299c:0:0:0:0 | 0:0#0 virtualxid | | | | | | 4/27632 | | | | | 4/27632 | 140245958915840 | 140245958915840 | ExclusiveLock | t | t | 4:6bf 0:0:0:0:7 | 0:0#0 virtualxid | | | | | | 19/16399 | | | | | 19/16399 | 140246771033856 | 140246771033856 | ExclusiveLock | t | t | 13:40 0f:0:0:0:7 | 0:0#0 virtualxid | | | | | | 17/98377 | | | | | 17/98377 | 140246750590720 | 140246750590720 | ExclusiveLock | t | t | 11:18 049:0:0:0:7 | 0:0#0 advisory | 12850 | | | | | | | 0 | 1 | 1 | 4/27632 | 140245958915840 | 140245958915840 | ShareLock | t | f | 3232: 0:1:1:0:b | 0:0#0 (5 rows) gaussdb=# commit; --提交事务块 COMMIT gaussdb=# select * from pg_locks; --查询pg_locks表,事务级别advisory类型锁已自动释放 locktype | database | relation | page | tuple | bucket | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | sessionid | mode | granted | fastpath | locktag | global_sessionid ------------+----------+----------+------+-------+--------+------------+---------------+---------+-------+----------+--------------------+-----------------+-----------------+-----------------+---------+----------+------ -------------+------------------ relation | 12850 | 10652 | | | | | | | | | 4/27633 | 140245958915840 | 140245958915840 | AccessShareLock | t | t | 3232: 299c:0:0:0:0 | 0:0#0 virtualxid | | | | | | 4/27633 | | | | | 4/27633 | 140245958915840 | 140245958915840 | ExclusiveLock | t | t | 4:6bf 1:0:0:0:7 | 0:0#0 virtualxid | | | | | | 19/16401 | | | | | 19/16401 | 140246771033856 | 140246771033856 | ExclusiveLock | t | t | 13:40 11:0:0:0:7 | 0:0#0 virtualxid | | | | | | 17/98385 | | | | | 17/98385 | 140246750590720 | 140246750590720 | ExclusiveLock | t | t | 11:18 051:0:0:0:7 | 0:0#0 (4 rows) 尝试获取咨询锁示例: gaussdb=# select pg_try_advisory_lock_shared(1); --在没有其他连接加咨询锁时,尝试获取对象1的共享咨询锁成功 pg_try_advisory_lock_shared ----------------------------- t (1 row) gaussdb=# select pg_advisory_unlock_all(); --释放这个咨询锁 pg_advisory_unlock_all ------------------------ (1 row) gaussdb=# select pg_advisory_lock(1); --获取对象1的排他咨询锁 pg_advisory_lock ------------------ (1 row) --保持这个连接不断开,新启动一个连接 gaussdb=# select pg_try_advisory_lock_shared(1); --因已有连接持有排他锁,所以新连接中尝试获取对象1的共享咨询锁失败 pg_try_advisory_lock_shared ----------------------------- f (1 row) 父主题: 系统管理函数
  • 数据库对象位置函数 pg_relation_filenode(relation regclass) 描述:指定关系的文件节点数。 返回值类型:oid 备注:pg_relation_filenode接受一个表、索引、序列或压缩表的OID或者名称,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名称的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说,relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。 pg_relation_filepath(relation regclass) 描述:指定关系的文件路径名。 返回值类型:text 备注:pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于数据库的数据目录PGDATA)。 pg_filenode_relation(tablespace oid, filenode oid) 描述:获取对应的tablespace和relfilenode所对应的表名。 返回类型:regclass pg_partition_filenode(partition_oid) 描述:获取到指定分区表的oid锁对应的filenode。 返回类型:oid pg_partition_filepath(partition_oid) 描述:指定分区的文件路径名。 返回值类型:text
  • 数据库对象尺寸函数 数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。 pg_column_size(any) 描述:存储一个指定的数值需要的字节数(可能压缩过)。 返回值类型:int 备注:pg_column_size显示用于存储某个独立数据值的空间。 1 2 3 4 5 gaussdb=# SELECT pg_column_size(1); pg_column_size ---------------- 4 (1 row) pg_database_size(oid) 描述:指定OID代表的数据库使用的磁盘空间。 返回值类型:bigint pg_database_size(name) 描述:指定名称的数据库使用的磁盘空间。 返回值类型:bigint 备注:pg_database_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 示例: 1 2 3 4 5 6 7 8 9 gaussdb=# CREATE DATABASE testdb dbcompatibility 'A'; CREATE DATABASE gaussdb=# SELECT pg_database_size('testdb'); pg_database_size ------------------ 51590112 (1 row) gaussdb=# DROP DATABASE testdb; DROP DATABASE pg_relation_size(oid) 描述:指定OID代表的表或者索引所使用的磁盘空间。 返回值类型:bigint get_db_source_datasize() 描述:估算当前数据库非压缩态的数据总容量。 返回值类型:bigint 备注:调用该函数前需要做analyze。 示例: 1 2 3 4 5 6 7 gaussdb=# analyze; ANALYZE gaussdb=# SELECT get_db_source_datasize(); get_db_source_datasize ------------------------ 35384925667 (1 row) pg_relation_size(text) 描述:指定名称的表或者索引使用的磁盘空间。表名称可以用模式名修饰。 返回值类型:bigint pg_relation_size(relation regclass, fork text) 描述:指定表或索引的指定分叉树('main','fsm'或'vm')使用的磁盘空间。 返回值类型:bigint pg_relation_size(relation regclass) 描述:pg_relation_size(..., 'main')的简写。 返回值类型:bigint 备注:pg_relation_size接受一个表、索引、压缩表的OID或者名称,然后返回它们的字节大小。 pg_partition_size(oid, oid) 描述:指定OID代表的分区使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_size(text, text) 描述:指定名称的分区使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_partition_indexes_size(oid, oid) 描述:指定OID代表的分区的索引使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_indexes_size(text, text) 描述:指定名称的分区的索引使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_indexes_size(regclass) 描述:附加到指定表的索引使用的总磁盘空间。 返回值类型:bigint pg_size_pretty(bigint) 描述:将以64位整数表示的字节值转换为具有单位的易读格式。 返回值类型:text pg_size_pretty(numeric) 描述:将以数值表示的字节值转换为具有单位的易读格式。 返回值类型:text 备注:pg_size_pretty用于把其他函数的结果格式化成一种易读的格式,可以根据情况使用kB 、MB 、GB 、TB。 pg_table_size(regclass) 描述:指定的表使用的磁盘空间,不计索引(但是包含TOAST,自由空间映射和可见性映射)。 返回值类型:bigint pg_tablespace_size(oid) 描述:指定OID代表的表空间使用的磁盘空间。 返回值类型:bigint pg_tablespace_size(name) 描述:指定名称的表空间使用的磁盘空间。 返回值类型:bigint 备注: pg_tablespace_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 pg_total_relation_size(oid) 描述:指定OID代表的表使用的磁盘空间,包括索引和压缩数据。 返回值类型:bigint pg_total_relation_size(regclass) 描述:指定的表使用的总磁盘空间,包括所有的索引和TOAST数据。 返回值类型:bigint pg_total_relation_size(text) 描述:指定名称的表所使用的全部磁盘空间,包括索引和压缩数据。表名称可以用模式名修饰。 返回值类型:bigint 备注:pg_total_relation_size接受一个表或者一个压缩表的OID或者名称,然后返回以字节计的数据和所有相关的索引和压缩表的尺寸。 datalength(any) 描述:计算一个指定的数据需要的字节数(不考虑数据的管理空间和数据压缩,数据类型转换等情况)。 返回值类型:int 备注:datalength用于计算某个独立数据值的空间。 示例: gaussdb=# SELECT datalength(1); datalength ------------ 4 (1 row) 目前支持的数据类型及计算方式见下表: 数据类型 存储空间 数值类型 整数类型 TINYINT 1 SMALLINT 2 INTEGER 4 BINARY_INTEGER 4 BIGINT 8 任意精度型 DECIMAL 每4位十进制数占两个字节,小数点前后数字分别计算。 NUMERIC 每4位十进制数占两个字节,小数点前后数字分别计算。 NUMBER 每4位十进制数占两个字节,小数点前后数字分别计算。 序列整型 SMALLSERIAL 2 SERIAL 4 BIGSERIAL 8 LARGESERIAL 每4位十进制数占两个字节,小数点前后数字分别计算。 浮点类型 FLOAT4 4 DOUBLE PRECISION 8 FLOAT8 8 BINARY_DOUBLE 8 FLOAT[(p)] 每4位十进制数占两个字节,小数点前后数字分别计算。 DEC[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算。 INTEGER[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算。 布尔类型 布尔类型 BOOLEAN 1 字符类型 字符类型 CHAR n CHAR(n) n CHARACTER(n) n NCHAR(n) n VARCHAR(n) n CHARACTER 字符实际字节数。 VARYING(n) 字符实际字节数。 VARCHAR2(n) 字符实际字节数。 NVARCHAR(n) 字符实际字节数。 NVARCHAR2(n) 字符实际字节数。 TEXT 字符实际字节数。 CLOB 字符实际字节数。 时间类型 时间类型 DATE 8 TIME 8 TIMEZ 12 TIMESTAMP 8 TIMESTAMPZ 8 SMALLDATETIME 8 INTERVAL DAY TO SECOND 16 INTERVAL 16 RELTIME 4 ABSTIME 4 TINTERVAL 12
  • 注意事项 每个用户最多可创建2个访问密钥,每个访问密钥权限相同,相互独立,包括一对AK/SK,有效期为永久。为了账号安全性,建议您妥善保管并定期修改访问密钥,修改访问密钥的方法为删除旧访问密钥,然后重新生成。 由于apm.config文件默认对SK明文存储,不符合某些对于安全有更高要求的用户,apm提供了一种用户自定义的加解密方式,建议用户优先使用加解密方式。 加解密过程如下: 用户编写一个java类,比如com.demo.DecryptDemo,增加一个解密方法,比如decrypt输入和输出均字符串。 编写decrypt的方法内容,实现输入的SK解密,返回解密后的值。 将com.demo.DecryptDemo类打包成jar包,将这个jar包以及依赖的包放在javaagent的文件夹apm-javaagent/ext下。 用户修改apm.config配置文件,增加以下内容: decrypt.className=com.demo.DecryptDemo decrypt.methodName=decrypt secret.key={用户自加密的后的字符串}
  • 服务器信号函数 服务器信号函数向其他服务器进程发送控制信号。只有系统管理员有权执行以下函数。 pg_cancel_backend(pid int) 描述:取消一个后端线程正在执行的语句。 返回值类型:Boolean 备注:pg_cancel_backend向由pid标识的后端进程发送一个查询取消(SIGINT)信号。一个活动的后端进程的PID可以从pg_stat_activity视图的pid字段找到,或者在服务器上用ps列出数据库进程。具有SYSADMIN权限的用户,后端进程所连接的数据库的属主,后端进程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。 pg_cancel_session(pid bigint, sessionid bigint) 描述:线程池模式下,取消一个活跃状态会话正在执行的语句。 返回值类型:Boolean 备注:pg_cancel_session的入参可以通过pg_stat_activity中的pid字段和sessionid的字段查询,可以用于清理线程池模式下,活跃状态会话正在执行的语句。当入参pid和sessionid相同,且均为线程id时,功能和pg_cancel_backend相同。 pg_reload_conf() 描述:导致所有服务器进程重新装载它们的配置文件。 返回值类型:Boolean 备注:pg_reload_conf给服务器发送一个SIGHUP信号,导致所有服务器进程重新装载配置文件。 pg_rotate_logfile() 描述:滚动服务器的日志文件。 返回值类型:Boolean 备注:pg_rotate_logfile给日志文件管理器发送信号,使之立即切换到一个新的输出文件。这个函数只有在redirect_stderr用于日志输出的时候才有用,否则不会产生日志文件管理器子进程。 pg_terminate_backend(pid int) 描述:终止一个后台线程。 返回值类型:Boolean 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户,后端线程所连接的数据库的属主,后端线程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。若执行该函数后未成功终止目标会话,则会强制关闭该会话和客户端的socket连接。 该函数可终止非线程池的线程、活跃状态的线程池线程,但无法终止非活跃状态的线程池线程。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT pid from pg_stat_activity; pid ----------------- 140657876268816 (1 rows) gaussdb=# SELECT pg_terminate_backend(140657876268816); pg_terminate_backend ---------------------- t (1 row) pg_terminate_session(pid int64, sessionid int64) 描述:线程池模式下,终止一个后台session。 返回值类型:Boolean 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户、会话所连接的数据库的属主、会话的属主、或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。若执行该函数后未成功终止目标会话,则会强制关闭该会话和客户端的socket连接。 当入参pid和sessionid相同,且均为线程id时,该函数可终止非线程池的线程、活跃状态的线程池线程。 当入参pid和sessionid不同时,该函数可终止活跃状态的会话,或关闭非活跃状态会话和客户端的socket连接。 pg_terminate_active_session_socket(pid int64, sessionid int64) 描述:关闭一个活跃session和客户端的socket连接。 返回值类型:Boolean 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户、后端线程所连接的数据库的属主、后端线程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。 父主题: 系统管理函数
  • 通用文件访问函数 通用文件访问函数提供了对数据库服务器上的文件的本地访问接口。只有数据库目录和log_directory目录里面的文件可以访问。使用相对路径访问数据库目录里面的文件,以及匹配log_directory配置而设置的路径访问日志文件。只有数据库初始化用户才能使用这些函数。 pg_ls_dir(dirname text) 描述:列出目录中的文件。 返回值类型:setof text 备注:pg_ls_dir返回指定目录里面的除了特殊项“.”和“..”之外所有名称。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 gaussdb=# SELECT pg_ls_dir('./'); pg_ls_dir ---------------------- .postgresql.conf.swp postgresql.conf pg_tblspc PG_VERSION pg_ident.conf core server.crt pg_serial pg_twophase postgresql.conf.lock pg_stat_tmp pg_notify pg_subtrans pg_ctl.lock pg_xlog pg_clog base pg_snapshots postmaster.opts postmaster.pid server.key.rand server.key.cipher pg_multixact pg_errorinfo server.key pg_hba.conf pg_replslot .pg_hba.conf.swp cacert.pem pg_hba.conf.lock global gaussdb.state (32 rows) pg_read_file(filename text, offset bigint, length bigint) 描述:返回一个文本文件的内容。 返回值类型:text 备注:pg_read_file返回一个文本文件的一部分,从offset开始,最多返回length字节(如果先达到文件结尾,则小于这个数值)。如果offset是负数,则它是相对于文件结尾回退的长度。如果省略了offset和length,则返回整个文件。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT pg_read_file('postmaster.pid',0,100); pg_read_file --------------------------------------- 53078 + /srv/BigData/hadoop/data1/dbnode+ 1500022474 + 8000 + /var/run/ FusionInsight + localhost + 2 (1 row) pg_read_binary_file(filename text [, offset bigint, length bigint,missing_ok boolean]) 描述:返回一个二进制文件的内容。 返回值类型:bytea 备注:pg_read_binary_file的功能与pg_read_file类似,除了结果的返回值为bytea类型不一致,相应地不会执行编码检查。与convert_from函数结合,这个函数可以用来读取用指定编码的一个文件。 1 gaussdb=# SELECT convert_from(pg_read_binary_file('filename'), 'UTF8'); pg_stat_file(filename text) 描述:返回一个文本文件的状态信息。 返回值类型:record 备注:pg_stat_file返回一条记录,其中包含:文件大小、最后访问时间戳、最后更改时间戳、最后文件状态修改时间戳以及标识传入参数是否为目录的Boolean值。典型的用法: 1 gaussdb=# SELECT * FROM pg_stat_file('filename'); 1 gaussdb=# SELECT (pg_stat_file('filename')).modification; 示例: 1 2 3 4 5 6 7 8 9 10 11 12 gaussdb=# SELECT convert_from(pg_read_binary_file('postmaster.pid'), 'UTF8'); convert_from -------------------------------------- 4881 + /srv/BigData/gaussdb/data1/dbnode+ 1496308688 + 25108 + /opt/user/Bigdata/gaussdb/gaussdb_tmp + * + 25108001 43352069 + (1 row) 1 2 3 4 5 6 7 8 9 gaussdb=# SELECT * FROM pg_stat_file('postmaster.pid'); size | access | modification | change | creation | isdir ------+------------------------+------------------------+------------------------ +----------+------- 117 | 2017-06-05 11:06:34+08 | 2017-06-01 17:18:08+08 | 2017-06-01 17:18:08+08 | | f (1 row) 1 2 3 4 5 gaussdb=# SELECT (pg_stat_file('postmaster.pid')).modification; modification ------------------------ 2017-06-01 17:18:08+08 (1 row) 父主题: 系统管理函数
  • 财务管理 零担结算 查询零担类型订单列表;结算订单以及查看结算记录。 图1 零担结算1 图2 零担结算2 运单费用管理 查询统计客户对应的上游运费;单击运单数可查看对应订单;添加备注; 图3 运单费用管理 司机费用管理 查询统计司机运费及代收款信息;单击运单数可查看对应订单;添加备注; 图4 司机费用管理 包车结算 查询包车类型订单列表;结算订单以及查看结算记录。 图5 包车结算 司机提现管理 司机可以申请将账号中的钱提现到银行卡中,后台可以审核,有驳回和打款的操作 图6 司机提现管理 父主题: 系统管理后台
  • 管理中心启动 启用虚拟机服务管理界面,在d1用户下执行sudo virt-manager指令,然后会弹出kvm虚拟机管理界面 启动管理面虚拟机(om)和数据面虚拟机(tenant),如下图: 图1 虚拟机管理界面2 虚拟机正常启动之后,会进入到登录界面: 图2 登录界面 输入用户paas和密码***可正常登录(管里面和数据面相同); 虚拟机启动之后大概等待20分钟左右,等待虚拟机里面的服务运行起来 父主题: 设备系统管理
  • 前提条件 创建SFS Turbo文件系统前,确认已有可用的VPC。 如果无VPC,可参考《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及默认子网”章节创建VPC。 创建SFS Turbo文件系统前,确认已有可用的ECS,且ECS归属到已创建的VPC下。 如果无ECS,可参考《弹性云服务器快速入门》中的“购买弹性云服务器”章节购买ECS。 创建SFS Turbo文件系统,依赖的服务有:虚拟私有云 VPC、费用中心 BSS、专属存储服务 DSS和弹性云服务器 ECS。需要配置的角色/策略如下: IAM 用户设置了SFS Turbo FullAccess权限后,权限集中包含了VPC FullAccess,这是创建文件系统所需要的权限,用户不需额外添加VPC FullAccess 系统策略。 如果需要创建包年包月文件系统,需要设置BSS Administrator权限。 如果需要在专属项目下创建文件系统,需要设置DSS FullAccess 和 ECS FullAccess权限。
  • 步骤2:新增线体 如果线体配置了扩展属性,则在添加线体数据时,除了填写表2中的参数,还需要填写扩展属性参数。 在左侧工厂结构树中,选中车间节点(“Workshop[***]”),单击其右侧的,或者单击“新增线体”。 在弹出的“创建线体/作业区”窗口中,填写表2信息。 图3 创建线体/作业区 表2 创建线体/作业区参数表 参数 说明 线体种类 线体/作业区的种类。 取值长度不超过57个字符。 线体编号 线体/作业区编号支持手动输入,也支持根据设置的ID生成器规则自动生成。生成规则:线体种类+三位流水号,例如Line001。 如果手动输入线体/作业区编号,取值长度不超过60个字符。 线体名称 线体/作业区的名称。 取值长度不超过60个字符。 线体描述 线体/作业区的描述。 取值长度不超过3000个字符。 生产单元类别 线体/作业区的生产单元类别。 目前支持Line(生产线体)、Process Cell(过程单元)、Operation Center(作业中心)、Storage Zone(存储区)。 部门 选择部门,数据来源于“部门人员”。 位置 选择位置,数据来源于“位置服务定义”。 业务负责人 线体/作业区的业务负责人。 取值长度不超过60个字符。 车间 选择车间,数据来源于有效的车间。 是否生效 标识是否生效。 默认为是。有效的线体/作业区数据才能被其他功能模块引用。 单击“保存后关闭”,线体添加完成。
  • 步骤3:新增工位 如果工位配置了扩展属性,则在添加工位数据时,除了填写表3中的参数,还需要填写扩展属性参数。 在左侧工厂结构树中,选中线体节点,单击其右侧的,再在弹出的操作列表中单击“添加”,或者单击“新增工位”。 在弹出的“创建工位”窗口中,填写表3信息。 图4 创建工位 表3 创建工位参数表 参数 说明 设备名称 选择设备,数据来源于“设备规格定义”。 工位分类 工位的分类,数据来源于“参数配置”。 当前系统预置的取值包括独立正常加工、诊断工位、返工工位、关联正常加工。 工序代码 选择工序,数据来源于“工序定义”。 工位编号 工位编号支持手动输入,也支持根据设置的ID生成器规则自动生成。生成规则:工序代码 + "-" + 三位流水,例如ce10-001。 如果手动输入工位编号,取值长度不超过60个字符。 工位名称 工位的名称。 取值长度不超过60个字符。 工位描述 工位的描述。 取值长度不超过300个字符。 站型代码 工位的站型代码。 取值长度不超过32个字符。 站型描述 工位的站型描述。 取值长度不超过3000个字符。 是否生效 标识是否生效。 默认为是。有效的工位数据才能被其他功能模块引用。 是否计入工序产量 标识是否计入工序产量。 默认为是。计入工序产量是指记录每个工序的产量数量。 范围 工位的范围。 默认为某线专用。目前支持某线专用、专用。 ESD等级 工位的ESD等级。 默认为一级EPA区域。目前支持一级EPA区域、二级EPA区域。 洁净度 车间的洁净度,数据来源于“参数配置”。 默认为100万级。当前系统预置的取值包括10万级、100万级、1000万级。 铅属性类别 工位的铅属性类别。 默认为无铅。目前支持有铅、无铅。 进出站采集 工位的进出站采集方式,数据来源于“参数配置”。 默认为一枪过站。当前系统预置的取值包括一枪过站、两枪过站、不采集等。 工序转移模式 工位的工序转移模式。 默认为下游工序TraceIn触发。目前支持OUT过站触发、下游工序TraceIn触发、人工触发,包括机器人RFID触发。 自动化程度 工位的自动化程度。 默认为半自动。目前支持纯手工、半自动、全自动、联动化、自主化。 单击“保存后关闭”,工位添加完成。
  • 基本概念 数字化制造云平台(MBM Space)提供了自定义角色的功能,支持为不同的角色配置不同的操作权限,让用户权限管理更加灵活、便捷。在进行用户与权限管理前,请先了解一下如下基本概念。 角色 MBM Space基于RBAC(Role-Based Access Control)能力的授权,通过服务的“角色管理”实现不同用户的访问控制。MBM Space为您预置了超级管理员、租户管理员角色。您可以根据实际需求,自定义角色,并给角色授予菜单栏目权限。 权限 在MBM Space中添加的用户默认是没有任何权限的,需要将其加入角色,才能使得角色中的用户获得对应的权限。用户可以基于被授予的角色权限对系统进行操作。 超级管理员 超级管理员拥有“用户管理”和“租户管理”的权限,可以新增用户、新增业务租户以及管理租户的成员。 购买数字化制造云平台的账号即为MBM Space预置的超级管理员,系统支持将其他用户授予超级管理员角色,使其获得对应的权限。 租户管理员 租户管理员拥有“角色管理”的权限,可以新增角色、授予角色菜单栏目功能权限以及管理角色权限对应的用户。 购买数字化制造云平台的账号即为MBM Space预置的租户管理员,系统支持将其他用户授予租户管理员角色,使其获得对应的权限。