GP 常用数据库命令

合集下载

gp数据库循环语句

gp数据库循环语句

gp数据库循环语句GP数据库是一种关系型数据库管理系统,它可以通过循环语句来实现对数据库中数据的逐行处理。

下面列举了十个基于GP数据库的循环语句的示例。

1. 使用FOR循环语句遍历表中的所有记录```sqlFOR row IN SELECT * FROM table_name LOOP-- 处理每一行数据的逻辑-- 可以使用row.column_name来访问每一列的值END LOOP;```2. 使用WHILE循环语句实现条件控制的循环```sqlDECLAREcounter integer := 0;BEGINWHILE counter < 10 LOOP-- 处理逻辑counter := counter + 1;END LOOP;END;```3. 使用CURSOR循环语句遍历游标中的结果集```sqlDECLAREcursor_name CURSOR FOR SELECT * FROM table_name; row record;BEGINOPEN cursor_name;LOOPFETCH cursor_name INTO row;EXIT WHEN NOT FOUND;-- 处理每一行数据的逻辑-- 可以使用row.column_name来访问每一列的值END LOOP;CLOSE cursor_name;END;```4. 使用RECORD类型和FOREACH循环语句遍历表中的所有记录```sqlDECLARErow RECORD;BEGINFOREACH row IN ARRAY (SELECT * FROM table_name) LOOP-- 处理每一行数据的逻辑-- 可以使用row.column_name来访问每一列的值END LOOP;END;```5. 使用LOOP语句和EXIT条件语句实现循环的控制```sqlDECLAREcounter integer := 0;BEGINLOOP-- 处理逻辑counter := counter + 1;EXIT WHEN counter >= 10;END LOOP;END;```6. 使用FOR循环语句和RAISE NOTICE语句输出循环过程中的信息```sqlFOR i IN 1..10 LOOPRAISE NOTICE '当前循环次数:%', i;-- 处理逻辑END LOOP;```7. 使用FOR循环语句和CONTINUE条件语句实现循环的跳过```sqlFOR i IN 1..10 LOOPIF i % 2 = 0 THENCONTINUE;END IF;-- 处理逻辑END LOOP;```8. 使用FOR循环语句和EXIT条件语句实现循环的中止```sqlFOR i IN 1..10 LOOPIF i = 5 THENEXIT;END IF;-- 处理逻辑END LOOP;```9. 使用LOOP语句和RETURN NEXT语句返回逐行处理的结果集```sqlCREATE OR REPLACE FUNCTION function_name() RETURNS SETOF table_name AS $$DECLARErow record;BEGINFOR row IN SELECT * FROM table_name LOOP-- 处理每一行数据的逻辑-- 可以使用row.column_name来访问每一列的值RETURN NEXT row;END LOOP;END;$$ LANGUAGE plpgsql;```10. 使用FOR循环语句和UPDATE语句批量更新表中的数据```sqlFOR row IN SELECT * FROM table_name LOOPUPDATE table_name SET column_name = new_value WHERE id = row.id;END LOOP;```以上是十个基于GP数据库的循环语句的示例,可以根据实际需求进行灵活运用。

PostgreSQL数据库常用SQL命令示例

PostgreSQL数据库常用SQL命令示例

PostgreSQL数据库常⽤SQL命令⽰例本⽂仅记录我使⽤到的部分命令⽰例。

这⾥不对命令及各种参数做详细介绍,仅列出⽰例与简单说明。

详细介绍可参考PostgreSQL官⽅发布的⼿册。

已验证环境Ubuntu 20.04PostgreSQL 12.5注意事项psql内运⾏的SQL命令末尾都会以分号作为结束标志。

如果没有带上分号,会被认为命令还未结束。

字符串要⽤单引号来包含,不是双引号。

1. 创建表命令:CREATE TABLE⽰例1:create table webpage(id serial primary key,name varchar(60) unique not null,contents text not null default '',scripts text not null default '');简单说明:其中的serial表⽰是⾃增列,primary key为主键。

unique表⽰唯⼀约束,not null表⽰不能为空,default为默认值。

2. 修改表命令:ALTER TABLE2.1 修改表名或字段名:alter table 表名 rename to 新表名;alter table 表名 rename 字段名 to 新字段名;2.2 给指定字段设置默认值与删除默认值:alter table webpage alter column contents set default '';alter table webpage alter column contents drop default;简单说明:修改默认值的命令与设置默认值的命令⼀样,即都使⽤set default来实现。

2.3 修改字段类型:alter table 表名 alter column 字段名 type 新类型;alter table webpage alter column name type char(40);alter table webpage alter column contents type text;2.4 删除约束alter table webpage drop constraint webpage_name_key;这⾥要注意的是,约束名称最好使⽤“\d 表名”命令查看,并根据查看结果来操作。

postgresql数据库简单应用命令

postgresql数据库简单应用命令

目录1.创建数据库: (1)2.访问数据库 (1)3.创建新表 (1)4.向表中添加行 (1)5.查询一个表 (2)6.在表间连接 (2)7.聚合函数 (3)8.更新 (3)9.删除 (4)10. 视图 (4)11. 外键 (4)12.事务 (5)13.窗口函数 (5)14.继承 (6)15.索引 (6)1.创建数据库:删除数据库:2.访问数据库psql mydb3.创建新表双划线("--") 引入注释,任何跟在它后面的东西直到该行的结尾都被忽略。

SQL 是对关键字和标识符大小写不敏感的语言,只有在标识符用双引号包围时才能保留它们的大小写属性。

4.向表中添加行所有数据类型都使用了相当明了的输入格式。

那些不是简单数字值的常量必需用单引号(')包围。

可以使用COPY从文本文件中装载大量数据。

这么干通常更快,因为COPY命令就是为这类应用优化的,只是比INSERT 少一些灵活性。

5.查询一个表6.在表间连接一般认为在连接查询里使用字段全称是很好的风格,这样,即使在将来向其中一个表里添加了同名字段也不会引起混淆。

7.聚合函数聚合和SQL的WHERE和HAVING 子句之间的关系非常重要。

WHERE和HAVING的基本区别如下:WHERE在分组和聚合计算之前选取输入行(它控制哪些行进入聚合计算),而HAVING在分组和聚合之后选取输出行。

因此,WHERE 子句不能包含聚合函数;因为试图用聚合函数判断那些行将要输入给聚合运算是没有意义的。

相反,HAVING子句总是包含聚合函数。

当然,你可以写不使用聚合的HAVING 子句,但这样做没什么好处,因为同样的条件用在WHERE阶段会更有效。

8.更新UPDATE命令更新现有的行。

假设你发现所有11 月28 日的温度计数都低了两度,那么你就可以用下面的方式更新数据:9.删除10. 视图11. 外键确保没有人可以在weather表里插入一条在cities 表里没有匹配记录的数据行。

GP 常用数据库命令

GP 常用数据库命令

Greenplum 日常简明维护手册1.数据库启动:gpstart常用参数:-a : 直接启动,不提示终端用户输入确认-m:只启动master 实例,主要在故障处理时使用访问单个数据实例:PGOPTIONS='-c gp_session_role=utility' psql template1 -p 5432启动某个segment instance :pg_ctl stop/start -D /datadir/取端口号:select * from gp_segment_configuration 启动以后会在/tmp/ 下生成一个.lock 隐藏文件,记录主进程号。

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

连接数,重启3.查看实例配置和状态select * from gp_segment_configuration order by content ;select * from pg_filespace_entry ;主要字段说明:Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror Instance)Isprimary:实例是否作为primary instance 运行Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。

Port:实例运行的端口Datadir:实例对应的数据目录4.gpstate :显示Greenplum数据库运行状态,详细配置等信息常用可选参数:-c:primary instance 和mirror instance 的对应关系-m:只列出mirror 实例的状态和配置信息-f:显示standby master 的详细信息该命令默认列出数据库运行状态汇总信息,常用于日常巡检。

postgresql 常用sql 语句

postgresql 常用sql 语句

一、概述PostgreSQL是一种功能强大的开源关系型数据库管理系统,广泛应用于各种规模和类型的应用程序中。

在使用PostgreSQL时,熟练掌握常用的SQL语句是非常重要的,可以帮助用户更高效地管理和操作数据库。

本文将介绍PostgreSQL中常用的SQL语句,帮助读者更好地使用这一数据库管理系统。

二、连接数据库1. 连接到数据库使用以下命令可以连接到PostgreSQL数据库:```psql -U username -d database_name```其中,-U参数用于指定用户名,-d参数用于指定要连接的数据库名称。

2. 退出数据库在连接到数据库后,可以使用以下命令退出数据库:```\q```三、数据库管理1. 创建数据库使用以下命令可以在PostgreSQL中创建数据库: ```CREATE DATABASE database_name;```2. 删除数据库若要删除数据库,可以使用以下命令:```DROP DATABASE database_name;```四、表操作1. 创建表使用以下命令可以在数据库中创建表:```CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,...);```2. 删除表若要删除表,可以使用以下命令:```DROP TABLE table_name;```五、数据操作1. 插入数据使用以下命令可以向表中插入数据:```INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);```2. 查询数据查询表中的数据可以使用以下命令:```SELECT column1, column2, ...FROM table_nameWHERE condition;```3. 更新数据若要更新表中的数据,可以使用以下命令:```UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;```4. 删除数据若要删除表中的数据,可以使用以下命令:```DELETE FROM table_nameWHERE condition;```六、数据过滤1. 按条件过滤使用WHERE子句可以对查询结果进行条件筛选,例如: ```SELECT *FROM table_nameWHERE column1 = value;```2. 模糊查询若要进行模糊查询,可以使用LIKE运算符,例如:```SELECT *FROM table_nameWHERE column1 LIKE 'value';```七、数据排序1. 升序排序若要按升序对查询结果进行排序,可以使用以下命令: ```SELECT *FROM table_nameORDER BY column1 ASC;```2. 降序排序若要按降序对查询结果进行排序,可以使用以下命令: ```SELECT *FROM table_nameORDER BY column1 DESC;```八、聚合函数1. 求和使用SUM函数可以对数据列进行求和操作,例如:```SELECT SUM(column1)FROM table_name;```2. 平均值若要计算数据列的平均值,可以使用AVG函数:```SELECT AVG(column1)FROM table_name;```3. 计数使用COUNT函数可以统计行数或满足条件的行数,例如: ```SELECT COUNT(*)FROM table_name;九、数据分组1. 分组统计若要对数据进行分组统计,可以使用GROUP BY子句,例如:```SELECT column1, COUNT(*)FROM table_nameGROUP BY column1;```2. 分组筛选若要对分组后的数据进行筛选,可以使用HAVING子句:```SELECT column1, COUNT(*)FROM table_nameGROUP BY column1HAVING COUNT(*) > 1;```十、连接表1. 内连接使用INNER JOIN可以连接两个表,并返回满足连接条件的行,例```SELECT *FROM table1INNER JOIN table2ON table1.column1 = table2.column2;```2. 左连接若要返回左表中所有行以及与其关联的右表中的行,可以使用LEFT JOIN:```SELECT *FROM table1LEFT JOIN table2ON table1.column1 = table2.column2;```十一、子查询1. 标量子查询若要返回单一值的子查询结果,可以使用标量子查询,例如:```SELECT column1,(SELECT MAX(column2) FROM table2) AS max_value FROM table1;```2. 列表子查询使用列表子查询可以返回一列多行结果,例如:```SELECT column1FROM table1WHERE column1 IN (SELECT column2 FROM table2); ```十二、索引1. 创建索引若要在表的一个或多个列上创建索引,可以使用以下命令: ```CREATE INDEX index_nameON table_name (column1, column2, ...);```2. 删除索引若要删除索引,可以使用以下命令:```DROP INDEX index_name;```十三、事务管理1. 开始事务使用以下命令可以开始一个事务:```BEGIN;```2. 提交事务若要将未提交的事务更改保存到数据库中,可以使用以下命令: ```COMMIT;```3. 回滚事务若要撤销未提交的事务更改,可以使用以下命令:```ROLLBACK;```十四、权限管理1. 授权若要授予用户对数据库或表的特定操作许可,可以使用GRANT命令:```GRANT permissionON object_nameTO user_name;```2. 撤销权限若要撤销用户对数据库或表的特定操作许可,可以使用REVOKE命令:```REVOKE permissionON object_nameFROM user_name;```3. 角色管理使用CREATE ROLE命令可以创建新角色,使用ALTER ROLE命令可以修改角色,使用DROP ROLE命令可以删除角色。

GP日常维护手册-常用命令

GP日常维护手册-常用命令

Green‎p lum 日常维护手‎册1.数据库启动‎:g psta‎r t常用可选参‎数:-a : 直接启动,不提示终端‎用户输入y‎e s确认-m:只启动ma‎s ter 实例,主要在故障‎处理时使用‎2.数据库停止‎:g psto‎p:常用可选参‎数:-a:直接停止,不提示终端‎用户输入确‎认-m:只停止ma‎s t er 实例,与gpst‎a rt –m 对应使用-M fast:停止数据库‎,中断所有数‎据库连接,回滚正在运‎行的事务-u:不停止数据‎库,只加载pg‎_hba.conf 和post‎gresq‎l.conf中‎运行时参数‎,当改动参数‎配置时候使‎用。

-f:强制停止数‎据库-r:重启数据库‎3.查看实例配‎置和状态selec‎t * from gp_co‎n figu‎r atio‎n order‎by 1 ;selec‎t * from gp_co‎n figu‎r atio‎n_his‎t ory order‎by 1 ;主要字段说‎明:Conte‎n t:该字段相等‎的两个实例‎,是一对P(prima‎r y insta‎n ce)和M(mirro‎rInsta‎n ce)Ispri‎m ary:实例是否作‎为p rim‎ary insta‎n ce 运行V alid‎:实例是否有‎效,如处于fa‎l se 状态,则说明该实‎例已经do‎w n 掉。

Port:实例运行的‎端口Datad‎i r:实例对应的‎数据目录注 4.0后,实例配置的‎数据表:gp_se‎g ment‎_conf‎i gura‎t ion 、pg_fi‎l espa‎c e_en‎t ry、gp_fa‎u lt_s‎t rate‎g y;其它常用的‎系统表:pg_cl‎a ss,pg_at‎t ribu‎te,pg_da‎tabas‎e,pg_ta‎b l es……可以用ta‎b来匹配表‎名;4.gpsta‎t e :显示Gre‎e n plu‎m数据库运‎行状态,详细配置等‎信息常用可选参‎数:-c:prima‎ry insta‎n ce 和mirro‎r insta‎n ce 的对应关系‎-m:只列出mi‎r ror 实例的状态‎和配置信息‎-f:显示sta‎n dby maste‎r的详细信息‎-s:查看详细状‎态,如在同步,可显示数据‎同步完成百‎分比--versi‎o n,查看数据库‎v ersi‎o n(也可使用p‎g_con‎t rold‎ata查看‎数据库版本‎和p ost‎g r esq‎l版本)该命令默认‎列出数据库‎运行状态汇‎总信息,常用于日常‎巡检。

PG数据库常用命令

PG数据库常用命令

PG数据库常⽤命令查看帮助命令DB=# help --总的帮助DB=# \h --SQL commands级的帮助DB=# \? --psql commands级的帮助按列显⽰,类似MySQL的\GDB=# \xExpanded display is on.查看DB安装⽬录(最好root⽤户执⾏)find / -name initdb查看有多少DB实例在运⾏(最好root⽤户执⾏)find / -name postgresql.conf查看DB版本cat $PGDATA/PG_VERSIONpsql --versionDB=# show server_version;DB=# select version();查看DB实例运⾏状态pg_ctl status查看所有数据库psql –l --查看5432端⼝下⾯有多少个DBpsql –p XX –l --查看XX端⼝下⾯有多少个DBDB=# \lDB=# select * from pg_database;创建数据库createdb database_nameDB=# \h create database --创建数据库的帮助命令DB=# create database database_name进⼊某个数据库psql –d dbnameDB=# \c dbname查看当前数据库DB=# \cDB=# select current_database();查看数据库⽂件⽬录DB=# show data_directory;cat $PGDATA/postgresql.conf |grep data_directorycat /etc/init.d/postgresql|grep PGDATA=lsof |grep 5432得出第⼆列的PID号再ps –ef|grep PID查看表空间select * from pg_tablespace;查看语⾔select * from pg_language;查询所有schema,必须到指定的数据库下执⾏select * from information_schema.schemata;SELECT nspname FROM pg_namespace;\dnS查看表名DB=# \dt --只能查看到当前数据库下public的表名DB=# SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;DB=# SELECT * FROM information_schema.tables WHERE table_name='ff_v3_ff_basic_af';查看表结构查看表结构DB=# \d tablenameDB=# select * from information_schema.columns where table_schema='public' and table_name='XX';查看索引DB=# \diDB=# select * from pg_index;查看视图DB=# \dvDB=# select * from pg_views where schemaname = 'public';DB=# select * from information_schema.views where table_schema = 'public';查看触发器DB=# select * from information_schema.triggers;查看序列DB=# select * from information_schema.sequences where sequence_schema = 'public';查看约束DB=# select * from pg_constraint where contype = 'p'DB=# select a.relname as table_name,b.conname as constraint_name,b.contype as constraint_type from pg_class a,pg_constraint b where a.oid = b.conrelid and a.relname = 'cc';查看XX数据库的⼤⼩SELECT pg_size_pretty(pg_database_size('XX')) As fulldbsize;查看所有数据库的⼤⼩select pg_database.datname, pg_size_pretty (pg_database_size(pg_database.datname)) AS size from pg_database;查看各数据库数据创建时间:select datname,(pg_stat_file(format('%s/%s/PG_VERSION',case when spcname='pg_default' then 'base' else'pg_tblspc/'||t2.oid||'/PG_11_201804061/' end, t1.oid))).* from pg_database t1,pg_tablespace t2 where t1.dattablespace=t2.oid;按占空间⼤⼩,顺序查看所有表的⼤⼩select relname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_tables where schemaname='public' order bypg_relation_size(relid) desc;按占空间⼤⼩,顺序查看索引⼤⼩select indexrelname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_indexes where schemaname='public' order bypg_relation_size(relid) desc;查看参数⽂件DB=# show config_file;DB=# show hba_file;DB=# show ident_file;查看当前会话的参数值DB=# show all;查看参数值select * from pg_file_settings查看某个参数值,⽐如参数work_memDB=# show work_mem修改某个参数值,⽐如参数work_memDB=# alter system set work_mem='8MB'--使⽤alter system命令将修改postgresql.auto.conf⽂件,⽽不是postgresql.conf,这样可以很好的保护postgresql.conf⽂件,加⼊你使⽤很多alter system命令后搞的⼀团糟,那么你只需要删除postgresql.auto.conf,再执⾏pg_ctl reload加载postgresql.conf⽂件即可实现参数的重新加载。

gp导出表结构

gp导出表结构

gp导出表结构
在GP(Greenplum)数据库中,您可以使用以下命令导出表结构:
1. 如果您只需要导出单个表的结构,可以使用以下命令:
sql
pg_dump -t tablename -s databasename > structure.sql 其中,`tablename`是要导出结构的表名,`databasename`是包含该表的数据库名。

这将把表结构以SQL语句的形式保存到名为`structure.sql`的文件中。

2. 如果您需要导出整个数据库的所有表结构,可以使用以下命令:
sql
pg_dump -s databasename > structure.sql
这将把整个数据库的所有表结构以SQL语句的形式保存到`structure.sql`文件中。

请确保在执行上述命令之前,您具有适当的权限以及足够的磁盘空间来保存导出的结构文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Greenplum 日常简明维护手册1.数据库启动:gpstart常用参数:-a : 直接启动,不提示终端用户输入确认-m:只启动master 实例,主要在故障处理时使用访问单个数据实例:PGOPTIONS='-c gp_session_role=utility' psql template1 -p 5432启动某个segment instance :pg_ctl stop/start -D /datadir/取端口号:select * from gp_segment_configuration启动以后会在/tmp/ 下生成一个.lock 隐藏文件,记录主进程号。

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

连接数,重启3.查看实例配置和状态select * from gp_segment_configuration order by content ;select * from pg_filespace_entry ;主要字段说明:Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror Instance)Isprimary:实例是否作为primary instance 运行Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。

Port:实例运行的端口Datadir:实例对应的数据目录4.gpstate :显示Greenplum数据库运行状态,详细配置等信息常用可选参数:-c:primary instance 和mirror instance 的对应关系-m:只列出mirror 实例的状态和配置信息-f:显示standby master 的详细信息该命令默认列出数据库运行状态汇总信息,常用于日常巡检。

5.查看用户会话和提交的查询等信息select * from pg_stat_activity该表能查看到当前数据库连接的IP 地址,用户名,提交的查询等。

另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。

ps -ef |grep -i postgres |grep -i con杀进程:Linux: kill -11 PIDSql :pg_cancel_backend(pid)ps –ef |grep – i postgre |grep –i con6.查看数据库、表占用空间select pg_size_pretty(pg_relation_size('schema.tablename'));select pg_size_pretty(pg_database_size('databasename));分区表:Select *from pg_partitions where …查某个schema 占用的空间:select pg_size_pretty(pg_relation_size(tablename))from pg_tables t inner join pg_namespace d on t.schemaname=d.nspname group by d.nspname必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。

7.收集统计信息,回收空间定期使用Vacuum analyze tablename 回收垃圾和收集统计信息,尤其在大数据量删除,导入以后,非常重要将delete 或update 的“旧”数据放到Rollback Segment,与表分开存放。

并发事务为了保证数据一致性,需要从Rollback Segment 上恢复数据。

Greenplum:“旧数据”与表存放在一起,对旧的数据做了标志。

并发事务通过transaction ID(XID)判断数据是否可用系统表也是需要进行vaccum:#!/bin/bashDBNAME="databasename"VCOMMAND="VACUUM ANALYZE"#VCOMMAND="VACUUM FULL ANALYZE"psql -tc "select '$VCOMMAND' || ' pg_catalog.' || relname || ';' from pg_classa,pg_namespace b where a.relnamespace=b.oid and b.nspname= 'pg_catalog' anda.relkind='r'" $DBNAME | psql -a $DBNAME长期没有vaccum 的大表,使用重建表/drop 表的方式,消除垃圾空间。

Alter table xxx rename to yyyy.8.查看数据分布情况两种方式:Select gp_segment_id,count(*) from tablename group by 1 ;如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。

9.实例恢复:gprecoverseg通过gpstate 或gp_segment_configuration 发现有实例down 掉以后,使用该命令进行回复,恢复时候不需要停机,不影响应用10.查看锁信息:SELECT locktype, database, c.relname, l.relation,l.transactionid, l.transaction, l.pid, l.mode, l.granted,a.current_queryFROM pg_locks l, pg_class c, pg_stat_activity aWHERE l.relation=c.oid AND l.pid=a.procpid ORDER BY c.relname;主要字段说明:relname: 表名locktype、mode 标识了锁的类型MVCC: 读写相互不影响select / insert update delete避免死锁:delete 和update 是表级排他EXCLUSIVE锁。

11.数据库备份gp_dump, pg_dump常用参数:-s: 只导出对象定义(表结构,函数等)-n: 只导出某个schemagp_dump 默认在master 的data 目录上产生这些文件:gp_catalog_1_<dbid>_<timestamp> :关于数据库系统配置的备份文件gp_cdatabase_1_<dbid>_<timestamp>:数据库创建语句的备份文件gp_dump_1_<dbid>_<timestamp>:数据库对象ddl语句gp_dump_status_1_<dbid>_<timestamp>:备份操作的日志在每个segment instance 上的data目录上产生的文件:gp_dump_0_<dbid>_<timestamp>:用户数据备份文件gp_dump_status_0_<dbid>_<timestamp>:备份日志12.数据库恢复gp_restore pg_restore必选参数:--gp-k=key :key 为gp_dump 导出来的文件的后缀时间戳-d dbname :将备份文件恢复到dbname13.Master主机硬件故障时,如何切换至Stand by Master,切换成功后是否需要进行数据检查或恢复等HA答:在stand by master 主机上,运行gpactivatestandby -d /gpdata 进行切换。

由于Master 只存储系统元数据信息,切换成功后,一般不需要进行数据检查和恢复。

日常巡检中要检查Stand by master 是否同步,可以通过表gp_master_mirroring 确认,如果发现不同步,可以通过命令:gpinitstandby -s standby_master_hostname –n 使得master和standby 重新同步。

14.当Master主机硬件故障排除时,如何由Stand by切换至原Master主机。

答:1,在standby master运行:gpinitstandby –s original_master_hostname2,在standby master 上运行:gpstop –m,注意这里只停止master 实例3,在原来的maste上运行:gpactivatestandby -d /gpdata。

4,在原来的master上运行:gpinitstandby -s original_standby_master_hostn ame15.日志:master 和segment 上分别有日志:$DATADIR/pg_log/*.csv$DATADIR:select * from pg_filespace_entry ;使用外部表将日志导入数据库,进行分析。

使用xfs 文件系统。

后台存储目录结构:base 下每个目录,对应select oid ,* from pg_database ;select relfilenode from pg_class : ;16.gpconfig : 4.0 新增加管理工具,参数配置工具;-c | --change <param_name>-v | --value value-m | --mastervalue master_value-s | --show <param_name>gpconfig -c max_connections -v 100 -m 1017.gpcheckperf :网络:gpcheckperf -f hostfile_gpchecknet_ic1 -r N –netperf -d /tmp磁盘IOgpcheckperf -f hostfile_gpcheckperf -d /data1 -d /data2 -r d linux DD 命令:dd if=/dev/zero of=/vol2/a.test bs=256k count=161000dd if=/vol2/b.test of=/dev/null bs=256k count=16000018.gpssh: 同时登陆到多个机器上,进行操作Gpssh -h sdw1 –h sdw2 -h sdw319.gp_toolkit: 管理工具包:◆gp_bloat_diag◆gp_stats_missing更多详细信息参见GpadminGuide appendix I ;pg_stat_last_operation:Shows the last time certain database operations were performed on adatabase object, for example, the last time a table was vacuumed。

相关文档
最新文档