postgres常用语句
2015-07-21 16:33
405 查看
``copy view model
alter schema copy rename to copy_schema;alter schema model rename to model_schema;alter schema model remame to view_schema;
系统参数
gpssh -f all_hosts
cat /etc/hosts
cat /etc/sysctl.conf
cat /boot/grub/menu.lst
cat /etc/security/limits.conf
cat /etc/fstab
数据库的参数
gpssh -f all_hosts
cat pg_hba.conf
cat postgresql.conf
查看重启数据库的日志,显示如下,
received fast shutdown request
当数据库某一个节点宕机时,可以用
gprecoverseg -r
检查instance出差的状态
gpstate -e [查看节点恢复状态]
查看系统日志表
"select * from gp_segment_configuation where status=‘d';"
重启GP系统用
gpstop -r
查看primary instance 和mirror instance 的关系用
gpstate -m
gpconfig -s max_prepared_transactions 查看节点配置参数
清除SQ语句用
select pg_cancel_backend+进程号
查看资源队列中等待的语句
select * from gp_toolkit.gp_locks_on_resqueue where lorwaiting='true'
如果没有结果返回,则没有语句在资源队列中执行。
su - ebankdb
Appuser01
查看数据库的最大并发连接数
gpconfig -s max_connections
收集日志
如果是
可以用tar -zcvf 'hostname' +命名
scp + 新的文件名+ gpadmin@by19ssvsdb:/home/ap/gpdata/文件名
查找scheamname表的总大小,
select scheamname_total (列表名);
停应用
./ctm_set_gp_res.sh -stop SOR
检查数据库的节点恢复状态
while true; do gpstate -e | grep Incremental; date ;echo '=================='; sleep 30;done
查看表的大小
select pg_size_pretty(pg_relation_size('表名'));
查看系统配置参数两种方法
一.用gpconfig -s + 参数名
二.进入数据库 psql postgres【master】
show + 参数名;
进入PGOPTIONS='-c gp_session_role=utility' psql -h 主机名 -p 端口号 +数据库名【segment】
show + 参数名;
查看数据库某个表是否被杀掉
ps -ef | grep postgres | grep -i con+进程号
20140213
一.执行脚本两种
1. 用sh 执行
后台运行输出到一个文本 nohup sh + 脚本名 > 1.log &
2 ./ 执行
后台执行的话 nohup ./ 脚本名 > 1.log &
二.查看一个表下有多少条记录
1. psql -tc “select count(*) base.+表名;” sordb >> 2.log
查看base分区表的大小
psql -tc "select get_table_size (‘base.表名’);" sordb >> 3.log
列出schemname的表名
select schemaname from pg_tables;
显示所有的base的表
select * from pg_tables where schemaname='base';
只列出base下的表名
select tablename pg_tales where schemaname='base' and tablename not like '%_prt_%';
#################################
李宁数据库的备份
nohup gp_dump --gp-c eposrpt 1>db_dump_eposrpt.log 2>&1 &
gp_dump --gp-d=/home/gpadmin lxl(数据库名字)
在/home/gpadmin/目录下会产生
gp_cdatabase_1_1_20131204160415
gp_dump_1_1_20131204160415(多个文件)
gp_restore --gp-k=20131204160415 --gp-d=/home/gpadmin -d lxl
gp_dump --gp-d=/data/test_db --gp-c test_db
gp_restore -d sales_history --gp-k=20110419154139 --gp-c
恢复测试环境数据用如下命令
gp_dump --gp-d=/data/test_db --gp-c test_db
gp_restore --gp-k=20141029173207 --gp-c --gp-d=/data/chenyaobin/ -d chenyaobin
#####################################
select * from pg_tables where schemaname='base';
查看schemaname下表的数量
select schemaname,count(*) from pg_tables where schemaname not in ('public') group by 1 order by 1;
计算schemname的大小
select schemaname_total ('表名');
pg_dump -s -n public ldsdb -f public.sql
除偶数行
%s/\(^.*$\)\n^.*$l/\l/g
20140220
查看资源队列的状态
select * from gp_toolkit.gp_resqueue_status;
查看资源的角色
select * from gp_toolkit.gp_resqueue_role;
查看资源队列中等待的语句
select * from gp_toolkit.gp_locks_on_resqueue;或 select * from gp_toolkit.gp_locks_resqueue where lorwaiting;
计算sql语句执行超过20
select ctime,tfinish,tstart,query_text from queries_history where substr(ctime,1,10)='2013-12-30' and (tfinish-interval '20 minutes')>tstart ;
计算磁盘的使用量
COPY (SELECT hostname,filesystem,total_bytes,(max(bytes_used)-min(bytes_used)) as "max-min" from diskspace_history where ctime >= '2014-03-04 0:0:0' and ctime <= '2014-03-04 23:59:59' group by
hostname,filesystem,total_bytes ORDER BY hostname,filesystem) TO '/tmp/diskspace.csv' WITH CSV;
20140306
查看资源队列
select * form pg_resqueue;
20140307
磁盘、数据库空间
SELECT * FROM gp_toolkit.gp_disk_free ORDER BY dfsegment;
SELECT * FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;
数据库的启动时间
SELECT pg_postmaster_start_time();
查看一个数据库中有多少张表
select count(*) from information_schema.tables where table_schema not in (‘information_schema’, ’pg_catalog’);
当前数据库占用空间大小
SELECT pg_database_size(current_database());
dd count=10240 df=1024 if=/dev/zero of=/data4/test.disk.sde
查看数据库最大表和最大索引语句
SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;
\d +表明 看表的结构
ps -ef|grep con593518|grep -v grep |grep -v idle 主机语句的状态(如果全是idle的话,正确)
cat kehubiao201409.csv | awk -F, '{print $1}' | sort|uniq |grep -v '客户号' ()
查看数据库的系统时间 SELECT current_time,NOW();
kill 11 pid (两次)
用pg_cancel 和pg_terminate 都是通过数据库来完成的,刚才master process 在10月8号 reset了, 意思是master process 没有正常工作了,所以肯定pg_cancel 这些命令是不起作用的
from Shawn Yan to Everyone:
下次要给客户说发现master process reset 后,就要及时找售后来调查原因,或直接重启数据库也行,千万不要出了问题还继续使用
to Shawn Yan (privately):
李宁测试环境数据传输
~> scp -r gpadmin@10.1.254.199:/data1/bankup_master.tar.gz/
/data1/
scp /data1/bankup_master.tar.gz gpadmin@10.1.254.199:/data1/
from Shawn Yan to Everyone:
具体检查方法,就是跑ps -ef |grep post 命令来看
from Shawn Yan to Everyone:
看master 上的进程是否都是同一天跑起来的
查看备份数据磁盘情况
while(true);do date; gpssh -f config/all_hosts -e 'uptime' | grep -v uptime; sleep 25; gpssh -f config/all_hosts -e 'df -h | grep data1' | grep -v df; sleep 25; done
数据库备份用户全局信息
pg_dumpall --globals-only --filespaces --resource-queues > ./all.sql
pg_dumpall --globals-only --filespaces --resource-queues -c > ./all_c.sql
vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。
alter schema copy rename to copy_schema;alter schema model rename to model_schema;alter schema model remame to view_schema;
系统参数
gpssh -f all_hosts
cat /etc/hosts
cat /etc/sysctl.conf
cat /boot/grub/menu.lst
cat /etc/security/limits.conf
cat /etc/fstab
数据库的参数
gpssh -f all_hosts
cat pg_hba.conf
cat postgresql.conf
查看重启数据库的日志,显示如下,
received fast shutdown request
当数据库某一个节点宕机时,可以用
gprecoverseg -r
检查instance出差的状态
gpstate -e [查看节点恢复状态]
查看系统日志表
"select * from gp_segment_configuation where status=‘d';"
重启GP系统用
gpstop -r
查看primary instance 和mirror instance 的关系用
gpstate -m
gpconfig -s max_prepared_transactions 查看节点配置参数
清除SQ语句用
select pg_cancel_backend+进程号
查看资源队列中等待的语句
select * from gp_toolkit.gp_locks_on_resqueue where lorwaiting='true'
如果没有结果返回,则没有语句在资源队列中执行。
su - ebankdb
Appuser01
查看数据库的最大并发连接数
gpconfig -s max_connections
收集日志
如果是
可以用tar -zcvf 'hostname' +命名
scp + 新的文件名+ gpadmin@by19ssvsdb:/home/ap/gpdata/文件名
查找scheamname表的总大小,
select scheamname_total (列表名);
停应用
./ctm_set_gp_res.sh -stop SOR
检查数据库的节点恢复状态
while true; do gpstate -e | grep Incremental; date ;echo '=================='; sleep 30;done
查看表的大小
select pg_size_pretty(pg_relation_size('表名'));
查看系统配置参数两种方法
一.用gpconfig -s + 参数名
二.进入数据库 psql postgres【master】
show + 参数名;
进入PGOPTIONS='-c gp_session_role=utility' psql -h 主机名 -p 端口号 +数据库名【segment】
show + 参数名;
查看数据库某个表是否被杀掉
ps -ef | grep postgres | grep -i con+进程号
20140213
一.执行脚本两种
1. 用sh 执行
后台运行输出到一个文本 nohup sh + 脚本名 > 1.log &
2 ./ 执行
后台执行的话 nohup ./ 脚本名 > 1.log &
二.查看一个表下有多少条记录
1. psql -tc “select count(*) base.+表名;” sordb >> 2.log
查看base分区表的大小
psql -tc "select get_table_size (‘base.表名’);" sordb >> 3.log
列出schemname的表名
select schemaname from pg_tables;
显示所有的base的表
select * from pg_tables where schemaname='base';
只列出base下的表名
select tablename pg_tales where schemaname='base' and tablename not like '%_prt_%';
#################################
李宁数据库的备份
nohup gp_dump --gp-c eposrpt 1>db_dump_eposrpt.log 2>&1 &
gp_dump --gp-d=/home/gpadmin lxl(数据库名字)
在/home/gpadmin/目录下会产生
gp_cdatabase_1_1_20131204160415
gp_dump_1_1_20131204160415(多个文件)
gp_restore --gp-k=20131204160415 --gp-d=/home/gpadmin -d lxl
gp_dump --gp-d=/data/test_db --gp-c test_db
gp_restore -d sales_history --gp-k=20110419154139 --gp-c
恢复测试环境数据用如下命令
gp_dump --gp-d=/data/test_db --gp-c test_db
gp_restore --gp-k=20141029173207 --gp-c --gp-d=/data/chenyaobin/ -d chenyaobin
#####################################
select * from pg_tables where schemaname='base';
查看schemaname下表的数量
select schemaname,count(*) from pg_tables where schemaname not in ('public') group by 1 order by 1;
计算schemname的大小
select schemaname_total ('表名');
pg_dump -s -n public ldsdb -f public.sql
除偶数行
%s/\(^.*$\)\n^.*$l/\l/g
20140220
查看资源队列的状态
select * from gp_toolkit.gp_resqueue_status;
查看资源的角色
select * from gp_toolkit.gp_resqueue_role;
查看资源队列中等待的语句
select * from gp_toolkit.gp_locks_on_resqueue;或 select * from gp_toolkit.gp_locks_resqueue where lorwaiting;
计算sql语句执行超过20
select ctime,tfinish,tstart,query_text from queries_history where substr(ctime,1,10)='2013-12-30' and (tfinish-interval '20 minutes')>tstart ;
计算磁盘的使用量
COPY (SELECT hostname,filesystem,total_bytes,(max(bytes_used)-min(bytes_used)) as "max-min" from diskspace_history where ctime >= '2014-03-04 0:0:0' and ctime <= '2014-03-04 23:59:59' group by
hostname,filesystem,total_bytes ORDER BY hostname,filesystem) TO '/tmp/diskspace.csv' WITH CSV;
20140306
查看资源队列
select * form pg_resqueue;
20140307
磁盘、数据库空间
SELECT * FROM gp_toolkit.gp_disk_free ORDER BY dfsegment;
SELECT * FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;
数据库的启动时间
SELECT pg_postmaster_start_time();
查看一个数据库中有多少张表
select count(*) from information_schema.tables where table_schema not in (‘information_schema’, ’pg_catalog’);
当前数据库占用空间大小
SELECT pg_database_size(current_database());
dd count=10240 df=1024 if=/dev/zero of=/data4/test.disk.sde
查看数据库最大表和最大索引语句
SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;
\d +表明 看表的结构
ps -ef|grep con593518|grep -v grep |grep -v idle 主机语句的状态(如果全是idle的话,正确)
cat kehubiao201409.csv | awk -F, '{print $1}' | sort|uniq |grep -v '客户号' ()
查看数据库的系统时间 SELECT current_time,NOW();
kill 11 pid (两次)
用pg_cancel 和pg_terminate 都是通过数据库来完成的,刚才master process 在10月8号 reset了, 意思是master process 没有正常工作了,所以肯定pg_cancel 这些命令是不起作用的
from Shawn Yan to Everyone:
下次要给客户说发现master process reset 后,就要及时找售后来调查原因,或直接重启数据库也行,千万不要出了问题还继续使用
to Shawn Yan (privately):
李宁测试环境数据传输
~> scp -r gpadmin@10.1.254.199:/data1/bankup_master.tar.gz/
/data1/
scp /data1/bankup_master.tar.gz gpadmin@10.1.254.199:/data1/
from Shawn Yan to Everyone:
具体检查方法,就是跑ps -ef |grep post 命令来看
from Shawn Yan to Everyone:
看master 上的进程是否都是同一天跑起来的
查看备份数据磁盘情况
while(true);do date; gpssh -f config/all_hosts -e 'uptime' | grep -v uptime; sleep 25; gpssh -f config/all_hosts -e 'df -h | grep data1' | grep -v df; sleep 25; done
数据库备份用户全局信息
pg_dumpall --globals-only --filespaces --resource-queues > ./all.sql
pg_dumpall --globals-only --filespaces --resource-queues -c > ./all_c.sql
vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。
相关文章推荐
- 修改一行代码提升 Postgres 性能 100 倍
- postgres 数据库中的数据转换
- Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法
- Postgres SQL 用法摘记
- postgresql通过repmgr搭建standby
- postgres字符串常用函数整理
- Postgres 指南
- 用C++或C#连接oracle、postgres数据库的字符串和语句
- POSTGRESQL 数据库 数据库管理
- Slony-I 2.1.0 同步postgreSQL
- postgres pgpool PIRT online recovery steps
- PostgreSQL的postgres_fdw跨库使用
- postgres 数据库常用sql语句
- postgres数据库开发笔记
- postgres数据库简单的使用
- 我是如何书写SQL
- Fedora19更改postgres数据目录,并创建用户初始化数据库
- Kettle学习笔记一 :MySQL到Postgres导入数据且发送日志邮件
- postgres 数据库 数据导入导出
- postgres修改字段错误:cached plan must not change result type