常用可参数: -a : 直接启动,不提示终端用户输入确认
-m:只启动master 实例,主要在故障处理时使用
常用可参数:-a:直接停止,不提示终端用户输入确认
-m:只停止master 实例,与gpstart –m 对应使用
-M fast:停止数据库,中断所有数据库连接,回滚正在运
行的事务
-u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中运行时参数,当改动参数配置时候使用。
评:-a用在shell里,最多用的还是-M fast。
select * from gp_segment_configuration order by 1 ;
主要字段说明:
Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror
Instance)
Isprimary:实例是否作为primary instance 运行
Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。
Port:实例运行的端口
Datadir:实例对应的数据目录
常用可参数:-c:primary instance 和 mirror instance 的对应关系
-m:只列出mirror 实例的状态和配置信息
-f:显示standby master 的详细信息
-Q:显示状态综合信息
该命令默认列出数据库运行状态汇总信息,常用于日常巡检。
评:最开始由于网卡驱动的问题,做了mirror后,segment经常down掉,用-Q参数查询综合信息还是比较有用的。
select * from pg_stat_activity 该表能查看到当前数据库连接的IP 地址,用户名,提交的查询等。另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con
评:常用的命令,我经常用这个查看数据库死在那个sql上了。
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之类的系统表链接,统计出各类关于数据库对象的空间信息。
两种方式:
Select gp_segment_id,count(*) from tablename group by 1 ;
在命令运行:gpskew -t public.ate -a postgres
如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。
通过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 恢复错误节点
全量备份
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 备份的时间
注意点:
gpdbrestore -a -e -d masterdir --prefix dbid -u backupdir --restore-stats include --report-status-dir logdir -t dumpid
backupdir 备份数据路径
dbid 会添加到文件名中
logdir 日志文件的路径
masterdir 主节点的数据目录
dumpid备份的时间
注意点:
psql -c 'SHOW ALL;' -d database
gpconfig --show max_connections
评:这个用,可以管道给grep。
createdb dhdw
或者
psql postgres
create database dhdw
文件系统名
gpfsdw
子节点,视segment数创建目录
mkdir -p /gpfsdw/seg1
mkdir -p /gpfsdw/seg2
chown -R lotus:lotus/gpfsdw
主节点
mkdir -p /gpfsdw/master
chown -R lotus:lotus/gpfsdw
gpfilespace -o gpfilespace_config
gpfilespace -c gpfilespace_config
创建GP表空间
psql gpdb
create tablespace TBS_DW_DATA filespace gpfsdw;
SET default_tablespace = TBS_DW_DATA;
select * from gp_segment_configuration;
select * from pg_filespace_entry;
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是安全key
lazyquote是指定忽略转义字符的开关;,false是关闭忽略转义字符,ture是开启忽略转义字符,默认是false关闭忽略转义字符。
ldb(postgres)外部表
create external table test_2(
xxx xxx,
xxx xxx,
xxx xxx
)
location('ldpipe://localhost:50031/ldsql/tablename')
format 'spq';