系统: Ubuntu 16.04.4 LTS
PostgreSQL数据库: PostgreSQL 10.5
varchar(80)指定一种数据类型,可以存储长度最多为80个字符的任意字符串。
int是普通的整数类型。
real是一种用于存储单精度浮点数的类型。
创建数据库:
$/data/services/postgresql9/bin/createdb databasename
访问数据库:
$/data/services/postgresql9/bin/psql databasename
安装命令行工具:
# python3 -m pip install pgcli
连接PostgreSQL数据库:
# pgcli -h localhost -p 5432 -U postgres -W
查看当前数据库:
postgres=# select current_database();
查看PostgreSQL的版本:
SELECT version()
查看日期:
SELECT current_date;
从文本中读取SQL语句:
COPY tablename FROM 'SQL file path';
服务器配置和操作:
使用postgres用户运行PostgreSQL数据库服务。
1. 管理内核资源:
共享内存和信号量:
SHMMAX 共享内存段的最大大小(字节)
SHMMIN 共享内存段的最小大小(字节) 最多32个字节。
SHMALL 可用共享内存总量(字节或页数)
SHMSEG 每个进程的最大共享内存段数
SHMMNI 系统范围内的最大共享内存段数
SEMMNI 信号量标识符的最大数量(即集合)
SEMMNS 系统范围内的最大信号量数
SEMMSL 每组的最大信号量数
SEMMAP 信号量映射中的条目数
SEMVMX 信号量的最大值
PostgreSQL每个允许的连接使用一个信号量(max_connections),
允许autovacuum工作进程(autovacuum_max_workers)和允许后台进程(max_worker_processes),每组16个。
linux内核资源:
默认的最大段大小为32 MB,默认的最大总大小为2097152页。页面几乎总是4096字节.
更改共享内存大小设置:
$ sysctl -w kernel.shmmax=17179869184
$ sysctl -w kernel.shmall=4194304
限制过度使用内存:
sysctl -w vm.overcommit_memory = 2
或者: echo -1000 > /proc/self/oom_score_adj
也可以更改/proc文件系统的内容:
$ echo 17179869184 >/proc/sys/kernel/shmmax
$ echo 4194304 >/proc/sys/kernel/shmall
资源限制:
/etc/security/limits.conf控制登录期间设置的各种资源限制
/proc/sys/fs/file-max 确定内核将支持的最大打开文件数。
# cat /data/services/postgresql9/postgresql.pid
110460
检查postmaster的VmPeak值:
# grep ^VmPeak /proc/110460/status
系统的大页面大小:
# grep ^Hugepagesize /proc/meminfo
设置大页面大小:
sysctl -w vm.nr_hugepages=3170
通过sysctl设置vm.hugetlb_shm_group,和/或授予使用ulimit -l锁定内存的权限。
PostgreSQL中大页面:
#cat /data/services/postgresql9/data/postgresql.conf
huge_pages = on
本文题目:PostgreSQL数据库使用(三)
网站URL:
http://kswsj.cn/article/ieiidi.html