greenplum6.7运维⼿册
greenplum6.7运维⼿册
⼀.数据库运维
1.数据库状态维护
包含数据库启动、停⽌、更新配置命令,通常是数据库整体down掉或者修改数据库的配置参数时使⽤启动
gpstart
重启 参数的改变需要重启数据库
调⽤的是f
gpstop -r
加载变更的配置 session级别的会话不需要重启数据库
调⽤的是f
gpstop -u
启⽤维护模式
gpstart -m
链接到主节点维护
PGOPTIONS='-c gp_session_role=utility' psql template1
结束维护
gpstop -m
关闭数据库
gpstop
快速关闭gp,会kill客户端
gpstop -M fast
2.节点状态维护
当数据库性能出现问题时可以⽤来排查运⾏的节点是否出现问题
使⽤gpstate可以查看当前运⾏节点的状态
查看全部的运⾏节点状态
gpstate -s
查看运⾏的mirror状态
gpstate -m
查看运⾏的standby状态
gpstate -f
或者执⾏SQL:select * from gp_segment_configuration order by role,content;
3.恢复down掉的节点
当发现有节点挂掉时可以采⽤此⽅法恢复,单纯重启数据库不会恢复down掉的节点
⾸先产⽣⼀个恢复的配置⽂件 : gprecoverseg -o ./recov
其次,执⾏ gprecoverseg -i ./recov进⾏恢复
当数据库出现问题时,可以进⼊相应的节点⽬录查看⽇志进⾏问题的排查
路径描述
/home/gpadmin/gpadminlogs/ *gp的⽇志⽂件主⽬录,每个节点都有/home/gpadmin/gpadminlogs/gpstart_date.log gp启动⽇志
/home/gpadmin/gpadminlogs/gpstop_date.log gp停⽌⽇志/home/gpadmin/gpadminlogs/gpsegstart.py_idb * gpadmin_date.log Segment启动⽇志
/home/gpadmin/gpadminlogs/gpsegstop.py_idb * gpadmin_date.log Segment停⽌⽇志
/data/master/gpseg-1/pg_log_startup.log实例启动⽇志/data/master/gpseg-1/gpperfmon/logs/gpmon.
* .log gpperfmon⽇志
/data/mirror/gpseg-1/pglog/*.csv镜像segment⽇志
/data/primary/gpseg-1/pglog/*.csv主segment⽇志
/home/log/messages全局Linux系统消息
⼆.数据库配置
1.使⽤gpconfig优化数据库
⽤于查看数据库配置和修改数据库配置,调整好后不宜频繁修改
此⽅式等同于修改Master节点中$MASTER_DATA_f配置⽂件和
$SEGMENT_DATA_f配置⽂件,都属于系统级别的参数修改
使⽤⽅法
查看参数:
gpconfig -s [参数]
修改参数
gpconfig -c [参数] -v [Segment] -m [Master]
修改完参数后需要重启数据库才能使参数⽣效
gpstop -r
例如
配置最⼤连接数
gpconfig -s max_connections
gpconfig -c max_connections -v 3000 -m 1500
gpstop -r
详细全部参数:/6-4/ref_guide/config_params/guc_category-list.html
常⽤参数:
name desc计算公式max_connections最⼤连接数,Segment建议设置成Master的5-10倍。
这个参数只有在启动数据库时,才能被设置。它决定能够同时处于
max_prepared_transactions prepared状态的事务的最⼤数⽬(参考PREPARE TRANSACTION 命令)。如果它的值被设为0。则将数据库将关闭prepared事务的特性。它的值通常应该和max_connections的值⼀样⼤。每个事务消耗
600字节(b)共享内存
gp_resqueue_priority_cpucores_per_segment master和每个segment的可以使⽤的cpu个数,每个segment的分配
线程数;
max_statement_mem 设置每个查询最⼤使⽤的内存量,该参数是防⽌statement_mem参数设置的内存过⼤导致的内存溢出.
statement_mem 设置每个查询在segment主机中可⽤的内存,该参数设置的值不能超过max_statement_mem设置的值,如果配置了资源队列,则不能超
过资源队列设置的值。
gp_vmem_protect_limit 控制了每个segment数据库为所有运⾏的查询分配的内存总量。如果
查询需要的内存超过此值,则会失败。
gp_vmem = ((SWAP +
RAM) – (7.5GB + 0.05 *
RAM)) / 1.7
gp_vmem_protect_limit =
gp_vmem /
acting_primary_segments
gp_statement_mem 服务器配置参数 gp_statement_mem 控制段数据库上单个查询可以使⽤的内存总量。如果语句需要更多内存,则会溢出数据到磁盘。
shared_buffers 只能配置segment节点,⽤作磁盘读写的内存缓冲区,开始可以设置⼀
个较⼩的值,⽐如总内存的15%,然后逐渐增加,过程中监控性能提
升和swap的情况。
> 16K * max_connections
effective_cache_size
(master节点,可以设为物理内存的85%)这个参数告诉PostgreSQL的优化器有多少内存可以被⽤来缓存数据,以及帮助决定是否应该使⽤索引。这个数值越⼤,优化器使⽤索引的可能性也越⼤。因此这个数值应该设置成shared_buffers加上可⽤操作系统缓存两者的总量。通常这个数值会超过系统内存总量的50%以上。
temp_buffers 即临时缓冲区,拥有数据库访问临时数据,GP中默认值为1M,在访问⽐较到⼤的临时表时,对性能提升有很⼤帮助。
work_mem work_mem(,global,物理内存的2%-4%),segment⽤作sort,hash 操作的内存⼤⼩当PostgreSQL对⼤表进⾏排序时,数据库会按照此参数指定⼤⼩进⾏分⽚排序,将中间结果存放在临时⽂件中,这些中间结果的临时⽂件最终会再次合并排序,所以增加此参数可以减少临时⽂件个数进⽽提升排序效率。当然如果设置过⼤,会导致swap的发
⽣,所以设置此参数时仍需谨慎。
name desc计算公式
使⽤sql
select * from pg_settings;
可以查看全部的数据库配置
2.数据库连接配置
⽤于配置连接数据库的主机以及拥有的权限
登陆greenplum主机切换管理员⽤户
su gpadmin
数据库连接配置在f中
vi$MASTER_DATA_DIRECTORY/f
可以看到访问连接可以配置为下⾯⼏种形式,下⾯还有⼀些系统默认的系统连接
PostgreSQL Client Authentication Configuration File
# ===================================================
...
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
.
..
local all gpadmin ident
host all gpadmin 127.0.0.1/28 trust
host all gpadmin 10.0.61.41/32 trust
host all gpadmin ::1/128 trust
host all gpadmin fe80::f816:3eff:fe71:578d/128 trust
官⽅⽂档上对于连接的相关说明
Field Description
local匹配使⽤UNIX域套接字的连接尝试。如果没有此类记录,则不允许UNIX域套接字连接。
host 匹配使⽤TCP / IP进⾏的连接尝试。除⾮以适当的值启动服务器,否则⽆法进⾏远程TCP / IP连接。listen_addresses 服务器配置参
数。
hostssl 匹配使⽤TCP / IP进⾏的连接尝试,但仅当使⽤SSL加密进⾏连接时才匹配。必须在服务器启动时通过设置SSL启⽤SSLssl 服务器配置
参数。
hostnossl匹配通过不使⽤SSL的TCP / IP进⾏的连接尝试。
greenplum数据库database 指定此记录匹配的数据库名称。价值 所有指定它匹配所有数据库。可以使⽤逗号分隔多个数据库名称。可以通过在⽂件名之前添加⼀个
包含数据库名的单独⽂件来指定 @。
role 指定此记录匹配的数据库⾓⾊名称。价值所有指定它匹配所有⾓⾊。如果指定的⾓⾊是⼀个组,并且您希望包括该组的所有成员,请在⾓⾊名称前添加⼀个+。可以使⽤逗号分隔多个⾓⾊名称。可以通过在⽂件名前添加⼀个包含⾓⾊名的单独⽂件来指定⽂件名@。
address 指定此记录匹配的客户端计算机地址。该字段可以包含IP地址,IP地址范围或主机名。IP地址范围是使⽤标准数字符号指定范围的起始地址,然后使⽤斜杠(/)和CIDR掩码长度。掩码长度表⽰必须匹配的客户端IP地址的⾼位位数。在给定的IP地址中,其右边的位应为零。IP地址之间不能有任何空格,/,以及CIDR掩码长度。这样指定的IPv4地址范围的典型⽰例是 172.20.143.89/32 对于单个
主机,或172.20.143.0/24 对于⼩型⽹络,或 10.6.0.0/16为更⼤的。IPv6地址范围可能看起来像:: 1/128 单个主机(在本例中为IPv6环回地址)或 fe80 :: 7a31:c1ff:0000:0000/96 ⽤于⼩型⽹络。 0.0.0.0/0 代表所有IPv4地址,并且 :: 0/0代表所有IPv6地址。要指定单个主机,对于IPv4使⽤32的掩码长度,对于IPv6使⽤128的掩码长度。在⽹络地址中,请勿省略尾随零。以IPv4格式给出的条⽬将仅匹配IPv4连接,以IPv6格式给出的条⽬将仅匹配IPv6连接,即使所表⽰的地址在IPv4-in-IPv6范围内。注意:如果主机系统C库不⽀持IPv6地址,则IPv6格式的条⽬将被拒绝。如果指定了主机名(将⾮IP地址或IP范围的地址视为主机名),则将该名称与客户端IP地址的反向名称解析结果(例如,反向DNS查)进⾏⽐较,如果使⽤DNS)。主机名⽐较不区分⼤⼩写。如果存在匹配项,则对主机名执⾏正向名称解析(例如,正向DNS查)以检查其解析为的地址是否等于客户端IP地址。如果两个⽅向都匹配,则认为该条⽬匹配。某些主机名数据库允许将IP地址与多个主机名相关联,但是当系统要求您解析IP地址时,操作系统仅返回⼀个主机名。在中使⽤的主机名f 必须是客户端IP地址的地址名称解析返回的内容,否则该⾏将不被视为匹配项。在中指定主机名时 f,则应确保名称解析相当快。设置本地名称解析缓存(例如,光盘。另外,您可以启⽤服务器配置参数log_hostname 查看客户端主机名⽽不是
⽇志中的IP地址。
IP-address IP-
mask 这些字段可以⽤作CIDR地址表⽰法的替代⽅法。⽽不是指定掩码长度,⽽是在单独的列中指定实际掩码。例如,255.0.0.0 表⽰IPv4 CIDR掩码长度为8,并且 255.255.255.255 表⽰CIDR掩码长度为32。
authentication-
method
指定连接时使⽤的⾝份验证⽅法。Greenplum⽀持PostgreSQL 9.4 ⽀持的⾝份验证⽅法。为了使⽤外部⼯具连接上我们增加⼀条
host all all 0.0.0.0/0 trust # 新增规则允许任意ip 密码登陆
修改配置⽂件之后使⽤gpstop -u使配置⽣效
gpstop -u
使⽤navicat连接选择postgreSQL连接
3.查询当前的连接
根据连接数判断是否因为并发导致数据库出现了问题
查询当前连接数
select count(1) from pg_stat_activity;
三.数据库使⽤
1.使⽤psql
gp⾃带管理⼯具,可以在导⼊导出数据时使⽤
psql
弹出错误提⽰
psql: FATAL: database "gpdw" does not exist
错误原因是没有这个⽤户和库
CREATE DATABASE gpdw WITH OWNER gpdw ENCODING 'UTF8';
报错
ERROR: source database "template1" is being accessed by other users
使⽤select * from pg_stat_activity where DATNAME = 'template1';
查询出被占⽤数据库的pid
然后退出psql将这个进程kill掉就可以创建这个数据库了
再次使⽤psql
psql (9.4.24)
Type"help"for help.
gpdw=#
可以成功登陆了
psql指令说明
Connection options:
-h,--host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql") -p,--port=PORT database server port (default: "")
-U,--username=USERNAME database user name (default: "zhangjin")
-w,--no-password never prompt for password
-W,--password force password prompt (should happen automatically)
进⼊psql程序中的指令说明
help
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
2.导⼊导出数据
导出csv数据
\o /tmp/test.csv
select * from tablename limit 10000
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论