postgresql 9.4.4 源码安装
Postgresql下载网址:
http://www.postgresql.org/ftp/source/
这里我们选择最新的稳定版版postgresql-9.4.4 的源码版
https://ftp.postgresql.org/pub/source/v9.4.4/postgresql-9.4.4.tar.bz2
下载后解压
tar jxvf postgresql-9.4.4.tar.bz2
因为postgresql不能用root 用户启动,需要为他重新新建一个用户
创建用户
useradd pg944
进入下载的目录
cd postgresql-9.4.4
编译,这里设置安装目录
./configure --prefix=/home/pg944/pgsql
完成后执行
gmake world
gmake install-world
到此为止,postgreSQL数据库程序安装完毕;
现在初始化postgresql 用户的相关配置:
su - pg944
添加环境变量:
vi ~/.bash_profile
进行环境变量的配置:
export PGPORT=1999
export PGDATA=/home/pg944/pg_root
export LANG=en_US.utf8
export PGHOME=/home/pg944/pgsql
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
export PGHOST=$PGDATA
alias rm='rm -i'
alias ll='ls -lh'
export PGDATABASE=postgres
保存设置:
source ~/.bash_profile
初始化数据库:
initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
$PGDATA代表配入环境变量的值,-U后面的 postgres 代表初始化数据库的用户名为 postgres;
这里要输入密码,和输入确认密码,输错会让你重新初始化
测试下:
$ psql -V
psql (PostgreSQL) 9.4.4
启动数据库:
./pg_ctl -D ../PGDATA start\stop\restart
-D 命令 是为了启动非默认的 存放数据文件和配置文件的目录(PGDATA)
存放数据文件和配置文件的目录,文档中叫做cluster's data directory,内核分析中译作数据集簇。数据集簇通常叫做PGDATA。每个数据库实例都会有一个PGDATA,每台机器上可以并存多个不同的实例。
[pguser@TR-OS-DB 9.4]$ pg_ctl /data/pgdata/9.4/ start\stop\restart
就可以正常启动了。
切换至postgresql数据库用户pguser 或 postgres(根据自己实际情况)
SELECT version();
2. 查看数据库大小:
SELECT pg_size_pretty(pg_database_size('tianrun')) As fulldbsize;
3. 查看所有的数据库的大小:
select pg_database.datname, pg_size_pretty (pg_database_size(pg_database.datname)) AS size from pg_database;
4. 查看各数据库数据创建时间:
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;
5.按占空间大小,顺序查看所有表的大小
select relname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_tables where schemaname='public' order by pg_relation_size(relid) desc;
6. 按占空间大小,顺序查看索引大小
select indexrelname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_indexes where schemaname='public' order by pg_relation_size(relid) desc;
结束语