Greenplum日常维护命令

2023年 8月 12日 52.6k 0

文章目录1. 数据库启动:gpstart2. 数据库停止:gpstop3. 查看实例配置和状态4. gpstate :显示数据库运行状态,详细配置等信息5. 查看用户会话和提交的查询等信息6.查看数据库、表占用空间7.查看数据分布情况8.实例恢复:gprecoverseg9.数据库备份 gpcrondump10.数据库恢复 gpdbrestore11.参数查询12.创建数据库13.创建GP文件系统15.查看segment配置16.文件系统17. ldpipe 外部表创建方法1. 数据库启动:gpstart常用可参数: -a : 直接启动,不提示终端用户输入确认-m:只启动master 实例,主要在故障处理时使用

2. 数据库停止:gpstop常用可参数:-a:直接停止,不提示终端用户输入确认-m:只停止master 实例,与gpstart –m 对应使用-M fast:停止数据库,中断所有数据库连接,回滚正在运行的事务-u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中运行时参数,当改动参数配置时候使用。评:-a用在shell里,多用的还是-M fast。

3. 查看实例配置和状态select * from gp_segment_configuration order by 1 ;

主要字段说明:Content:该字段相等的两个实例,是一对P(primary instance)和M(mirrorInstance)Isprimary:实例是否作为primary instance 运行Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。Port:实例运行的端口Datadir:实例对应的数据目录

4. gpstate :显示数据库运行状态,详细配置等信息常用可参数:-c:primary instance 和 mirror instance 的对应关系-m:只列出mirror 实例的状态和配置信息-f:显示standby master 的详细信息-Q:显示状态综合信息该命令默认列出数据库运行状态汇总信息,常用于日常巡检。评:开始由于网卡驱动的问题,做了mirror后,segment经常down掉,用-Q参数查询综合信息还是比较有用的。

5. 查看用户会话和提交的查询等信息select * from pg_stat_activity 该表能查看到当前数据库连接的IP 地址,用户名,提交的查询等。另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con评:常用的命令,我经常用这个查看数据库死在那个sql上了。

6.查看数据库、表占用空间select pg_size_pretty(pg_relation_size('schema.tablename'));select pg_size_pretty(pg_database_size('databasename'));

必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。评:可以查看任何数据库对象的占用空间,pg_size_pretty可以显示如mb之类的易读数据,另外,可以与pg_tables,pg_indexes之类的系统表链接,统计出各类关于数据库对象的空间信息。

7.查看数据分布情况两种方式:

Select gp_segment_id,count(*) from tablename group by 1 ;

在命令运行:gpskew -t public.ate -a postgres如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。

8.实例恢复:gprecoverseg通过gpstate 或gp_segment_configuration 发现有实例down 掉以后,使用该命令进行回复。Select * from gp_segement_configuration;gpstate -e 看恢复进度 -s恢复状态 -m 查看mirror节点的状态gprecoverseg -r 恢复角色

gprecoverseg -o ./recover.info 导出错误节点信息gprecoverseg -i recover.info 恢复错误节点

9.数据库备份 gpcrondump全量备份

gpcrondump -a -C --dump-stats -g -G -h -r --use-set-session-authorization -x dbname -u backupdir --prefix dbid -l logdir -d masterdir -K now

增量备份

gpcrondump -a -C --dump-stats -g -G -h -r --use-set-session-authorization -x dbname -u backupdir --incremental --prefix dbid -l logdir -d masterdir -K now

dbname 备份数据库的名字backupdir 备份数据路径dbid 会添加到文件名中logdir 日志文件的路径masterdir 主节点的数据目录now 备份的时间注意点:

不支持指定备份用的超级用户名,默认在gpcrondump中会让pg_dump去调用OS对应的用户名.备份language handler, create database的DDL时,没有使用双引号引用。 如果用户名包含除小写字母和下划线以外的字符,在还原是会报错。不支持删除模板库,在使用gpdbrestore恢复时,如果使用了-e来清除库,会导致失败。copy需要大量的内存,可能触发OOM。执行gpcrondump时,会使用getcwd获得当前目录,所以不能在一个不存在的目录环境下执行.10.数据库恢复 gpdbrestoregpdbrestore -a -e -d masterdir --prefix dbid -u backupdir --restore-stats include --report-status-dir logdir -t dumpid

backupdir 备份数据路径dbid 会添加到文件名中logdir 日志文件的路径masterdir 主节点的数据目录dumpid备份的时间

注意点:

gpdbrestore -e 参数表示恢复前是否执行 drop database, 然后执行 create database。如果 gpcrondump 时使用了-C 参数, 则恢复时会先执行DROP TABLE再执行建表的动作。如果 gpcrondump 时没有使用 -C 参数,参数恢复时想先清理数据的话,可以使用gpdbrestore的–truncate参数(–truncate只能是表级恢复模式下使用, 即与-T . 或 --table-file 一同使用)Greenplum不允许删除模板库, 所以如果使用-e恢复模板库,会报错。 解决方法是改gpcrondump代码,对于模板库特殊处理,例如drop schema的方式清理模板库, 跳过模板库的DROP database报错以及create database 报错。11.参数查询psql -c 'SHOW ALL;' -d databasegpconfig --show max_connections

评:这个用,可以管道给grep。

12.创建数据库createdb dhdw或者psql postgrescreate database dhdw

13.创建GP文件系统文件系统名gpfsdw子节点,视segment数创建目录

mkdir -p /gpfsdw/seg1mkdir -p /gpfsdw/seg2chown -R lotus:lotus/gpfsdw123主节点mkdir -p /gpfsdw/masterchown -R lotus:lotus/gpfsdwgpfilespace -o gpfilespace_configgpfilespace -c gpfilespace_config

创建GP表空间psql gpdb

create tablespace TBS_DW_DATA filespace gpfsdw;SET default_tablespace = TBS_DW_DATA;

15.查看segment配置select * from gp_segment_configuration;

16.文件系统select * from pg_filespace_entry;

17. ldpipe 外部表创建方法S3外部表

create external table test_1(xxx xxx,xxx xxx,xxx xxx)location('ldpipe://localhost:50031/s3/文件路径/*?bucket= , host= , port= , accesskey= , secretkey=, delimiter=\001 , escape=\001 , lazyquote=true')format 'csv';

bucket是桶名 host是访问的ip prot是访问的端口 accesskey是访问key secretkey是安全keylazyquote是指定忽略转义字符的开关;,false是关闭忽略转义字符,ture是开启忽略转义字符,默认是false关闭忽略转义字符。

ldb(postgres)外部表

create external table test_2(xxx xxx,xxx xxx,xxx xxx)location('ldpipe://localhost:50031/ldsql/tablename')format 'spq';

本文来源:https://blog.csdn.net/qq_43303221/article/details/88636057

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论