Greenplum常规操作与配置参数
8. GPDB 系统常规操作
在 Greenplum 数据库 DBMS 中,数据库服务实例(主节点和所有segment节点)开始或者停⽌时是可以跨所有服务器的,在这种⽅式下,他们可以作为统⼀的 DBMS ⼯作。
由于 Greenplum 数据库系统 是分布跨在很多的机器上,Greenplum 数据库系统 开始和停⽌的处理不同于常规的 PostgreSQL DBMS 处理。
使⽤ gpstart 和 gpstop ⼯具来开启和停⽌ Greenplum 数据库。这些⼯具都会被定位在你的 Greenplum 数据库主节点服务器的$GPHOME/bin ⽬录下。
重要提⽰:
不要发出 kill 命令⾏给终端中任何的 Postgre 进程。
你可以使⽤数据库命令⾏ pg_cancel_backend() 来代替。
发出⼀个 kill -9 或者 kill -ll 可能会导致数据库错误。
8.1 GPDB 的启动、重启、停⽌
启动
在主节点服务器上运⾏gpstart来启动 Greenplum 数据库:
$gpstart
重启
重启 Greenplum 数据库,指的是,停⽌ Greenplum 数据库系统 之后,再重新启动它。
gpstop⼯具带上-r选项可以重启 Greenplum 数据库。 重启 Greenplum 数据库,可以在主节点服务器上键⼊下⾯的命令:
$gpstop -r
仅对更改的配置⽂件进⾏重新载⼊, 重新载⼊ Greenplum 数据库 的配置⽂件不会中断系统。
gpstart⼯具可以重新载⼊变更的f配置⽂件,也可以在服务不中断的情况下重载主节点上的f和f配置中的运⾏时参数。活动着的会话(客户端与数据库的连接),会在
重新连接数据库后拣选变更的配置(使其⽣效)。很多服务器的配置参数需要整个整个系统进⾏重启(gpstart -r)来进⾏激活。
不关闭系统,重新载⼊更改的配置⽂件可以这样使⽤gpstop⼯具:
$gpstop -u
停⽌
在主节点上使⽤ gostop ⼯具可以停⽌或者重启你的 Greenplum 数据库系统。当这个命令被激活时,gpstop 会停⽌系统中所有的 postgre 进程,包括主节点和所有段实例上的 postgre 进程。gpstop ⼯具使⽤⼀个默认多达 64 个并⾏⼯作线程来关闭 Greenplum 数据集中的Postgre 实例。系统会等待所有激活的传输,直到他们完成⼯作才关闭。⽴即停⽌ Greenplum 数据库,可以使⽤快速模式。
停⽌ Greenplum 数据库
$ gpstop
使⽤快速模式停⽌ Greenplum 数据库
$ gstop -M fast
8.2 维护模式
仅仅启动主节点来执⾏维护或者管理任务不会影响到在段上的数据。
在维护模式下,你看可以只连接到数据库的主节点来编辑系统的⽇志设置。更多的系统⽇志表的内容,请查看 Greenplum 数据库参考指南(Greenplum Database Reference Guide)
1. 运⾏ gpstart 带上 -m 选项:
$gpstart -m
2. 在维护模式下连接到主节点,做⽇志的维护,例⼦如下:
$ PGOPTIONS='-c gp_session_role=utility' psql template1
3. 在这之后,完成你的管理任务,停⽌主节点上的维护模式,切换到⽣产模式。
$ gpstop -mr
警告:
不正确使⽤维护模式连接会导致系统状态的不⼀致。
只有技术⽀持才应该执⾏这个操作。
8.3 访问数据库
8.3.1 通过 psql 进⾏连接
⽤户可以使⽤与 PostgreSQL兼容的客户端程序来连接到 Greenplum 数据库,例如:psql。⽤户和管理员连接到 Greenplum 数据库主要是通过访问主节点来进⾏;段不接受客户端的连接。
为了连接到 Greenplum 数据库的 主节点,你需要知道下⾯的连接信息 并相应配置你的客户端程序。
表1.连接参数
接参数描述
环境
变量
⽤名称应⽤名是连接到数据库的默认值,保存在 psql 中的连接参数 application_name中。
$PG
APP
NAM
E
据库名你希望连接的数据库名。在新初始化的系统中,使⽤template1数据库来做第⼀次连接。
$PG
DAT
ABA
SE
机名Greenplum 数据库主节点的主机名。默认的主机名是 localhost。
$PG
HOS
T
端⼝运⾏着的 Greenplum 数据库主节点端⼝号。默认是 5432。
$PG
POR
T
⽤户名⽤来连接的数据库⽤户(⾓⾊)名。这不是必与你的操作系统⽤户名⼀样。检查你的 Greenplum 管理员⽤户名,如果你不确定,每个
Greenplum 数据库系统都有⼀个超级⽤户(账号),它是在初始化的时候⾃动创建的。这个账号是你的操作系统在初始化 Greenplum 系统
的时候的操作系统⽤户名(典型的是 gpadmin)。
$PG
USE
R
连接
参数描述
环境
变量
通过 psql 进⾏连接
如何连接取决于默认值的使⽤或者环境变量的使⽤,下⾯是⼏个访问数据库的例⼦:
$ psql -d gpdatabase -h master_host -p 5432 -U gpadmin
$ psql gpdatabase
$ psql
如果⽤户定义的数据库还没有被创建,你可以访问 template1 数据库,例⼦:
$ psql template1
连接到数据库之后, psql 提供⼀个提⽰,这个提⽰代表当前连接着的数据库,下⾯的字符串 => (或者 =# 你是数据库的超级⽤户)。例⼦:gpdatabase=>
在提⽰符后,你可以键⼊ SQL 命令,⼀条 SQL 命令必须以⼀个 ;(英⽂分号) 结尾,然后发送到服务器并执⾏。例⼦:
=> SELECT * FROM mytable;
8.3.2 客户端应⽤程序
Greenplum 数据库在安装之后,就有⼤量客户端⼯具应⽤被放在你的 Greenplum 数据库的主节点的 $
GPHOME/bin ⽬录下。下⾯这些是最常⽤的客户端⼯具应⽤:
表1. 常⽤客户端应⽤
名称⽤法
createdb创建⼀个新的数据库
createlang定义⼀种新的(数据库⽀持的)程序语⾔
createuser定义⼀个新的数据库⾓⾊
dropdb移除⼀个数据库
droplang移除⼀种程序语⾔
dropuser移除⼀个⾓⾊
psql PostgreSQL 交互终端
reindexdb为⼀个数据库重建索引
greenplum数据库vacuumdb垃圾收集并分析⼀个数据库
当使⽤这些客户端⼯具的时候,你必须通过 Greenplum 主节点实例连接到数据库。你需要知道你的⽬标数据库的名字,主节点的主机名,主节点的端⼝号和⽤于连接的数据库⽤户名。这些信息的提供使⽤的命令⾏选项是 -d, -h, -p 和 -U。如果⼀个参数被发现不属于任何选项,它将⾸先被解释为数据库名。
如果这些选项在使⽤的时候没有被指定,所有的这些选项都有默认值。默认的主机名是 localhost 。默认的端⼝号是 5432。默认的⽤户名是你操作系统的⽤户名。默认的数据库名也是你的操作系统⽤户名。注意操作系统的⽤户名和 Greenplum 数据库的⽤户名不是必须⼀样的。
如果默认值不正确,你可以设置环境变量 PGDATABASE, PGHOST, PGPORT 和 PGUSER 为正确的值,或者使⽤⼀个 psql ~/.pgpass ⽂件来包含频繁使⽤的密码。
8.3.3 适⽤于 Greenplum 数据库的 pgAdmin III
如果你更喜欢图形接⼝,就使⽤ pgAdmin III。这个 GUI 客户端 ⽀持 PostgreSQL 数据库 所有 标准的功能,同时添加了 Greenplum 特殊功能的⽀持。
Greenplum 的 pgAdmin III ⽀持下⾯这些 Greenplum 特殊的功能:
扩展表
追加优化表,包括压缩过的追加优化表
表分区
资源队列
图形化的EXPLAIN ANALYZE
Greenplum 服务器配置参数
图1.在 pgAdmin III 中的 Greenplum 选项
8.3.3.1 在 pgAdmin III 中执⾏管理员任务
编辑服务器配置
pgAdmin III 提供了两种⽅式来更新服务器配置f: 在本地的时候,通过 ⽂件(File)菜单,在远程的时候,通过 ⼯具(Tools)菜单。在很多时候,远程编辑服务器的配置是很⽅便的,因为它不需要你上传或者复制 f ⽂件。
远程编辑服务器配置
1. 连接到你想要编辑的服务器。如果你要连接到多个服务器,要确保在左边窗格中的服务器对象⾼亮。
2. 选择 ⼯具(Tools) > 服务配置(Server Configuration) > f。后端的配置编辑器就会打开,显⽰可⽤的列表并激活服
务器的配置参数。
3. 定位你想要的编辑的参数,双击进⼊打开配置设置对话框。
4. 输⼊新的参数值,或者选择/反选激活想要的编辑的项,之后双击确定(OK)。
5. 如果参数可以通过重载服务器配置被激活,那么双击绿⾊的重载图标,或者选择 ⽂件(File)> 重载服务(Reload server)。注意:
很多参数还是需要服务的整个重启才能⽣效的。
查看⼀个图形化的查询计划
使⽤ pgAdmin III 查询⼯具,你可以运⾏⼀个 EXPLAIN 查询来查看查询计划的细节。
9. GPDB 的系统配置
有很多服务器配置参数影响着GPDB系统的⾏为。⼤多数的参数与常规的 PostgreSQL⼀样,但还有⼀些GP特有的配置参数。
9.1 设置本地化配置参数
设置本地化配置参数,必须修改所有的f⽂件才能使得修改⽣效。多数情况下,这意味着需要在Master和每个
Segment(Primary和Mirror)上进⾏修改。
要在GPDB系统所有f⽂件修改参数,可以使⽤gpconfig命令。
例如:
$ gpconfig -c gp_vmem_protect_limit -v 4096MB
然后重启GPDB以确保修改的配置⽣效:
$ gpstop –r
9.2 设置 Master 配置参数
如果参数是Master级别的,仅需要在GP Master Instance设置即可。如果参数是会话级别的,可以灵活的在特定的数据库、⾓⾊或者会话来设置。若某个参数在多个级别设置,越细粒度的级别优先级越⾼。例如,会话复写⾓⾊,⾓⾊复写数据库,数据库复写系统。
在系统级别设置参数
在 Master 的 f ⽂件设置参数以设定新的系统层⾯的缺省值。
1. 编辑 $MASTER_DATA_f ⽂件。
2. 到需要修改的参数,去除注释(删除⾏⾸的井号#字符),设置新的值。
3. 保存关闭该⽂件。
4. 对于会话级别的参数,不需要重启服务,使⽤下⾯的命令使得修改⽣效:
$ gpstop -u
5. 对于需要重启服务的参数,使⽤下⾯的命令重启GPDB:
$ gpstop -r
在数据库级别设置参数
在数据库设置会话级别参数,每个连接到该数据库的会话将使⽤这些参数设置。在数据库级别的设置复写系统级别的设置。使⽤ ALTER DATABASE 命令在数据库级别设置参数。例如:
=# ALTER DATABASE mydatabase SET search_path TO myschema;
在⾓⾊级别设置参数
在⾓⾊设置会话级别的参数,每个使⽤该⾓⾊的会话将使⽤这些参数设置。在⾓⾊级别的设置复写数据库级别的设置。使⽤ ALTER ROLE 命令在⾓⾊级别设置参数。例如:
=# ALTER ROLE bob SET search_path TO bobschema;
在会话级别设置参数
任何会话级别的参数都可以在活动的数据库会话中使⽤SET命令设置。设置对于当前会话后⾯的查询
有效(直到使⽤RESET命令恢复缺省值)。在会话级别的设置复写在⾓⾊级别的设置。例如:
=# SET work_mem TO '200MB';
=# RESET work_mem;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。