linux:postgresql
这是本文档旧的修订版!
目录
PostgreSQL
PostgreSQL是自由的对象-关系型数据库服务器(数据库管理系统),在灵活的BSD-风格许可证下发行。
Install on Ubuntu
Install PostgreSQL 9.5
可查看官网教程添加源安装。
下面以Debian
8 jessie
为例,安装PostgreSQL 9.5(Debian仓库内的PostgreSQL是9.4的)
添加源:
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgdg.list
导入密钥:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \ sudo apt-key add - sudo apt-get update sudo apt-get install postgresql-9.5
添加新用户:
sudo -i -u postgres createuser --interactive
Upgrade PostgreSQL from 9.3 to 9.4
由于Ubuntu 14.04官方源内的PostgreSQL是9.3的,如果已经有数据,升级到9.4时要做以下步骤:
Thanks: Upgrading PostgreSQL from 9.3 to 9.4 when upgrading Ubuntu 14.04 to 14.10
要求:同时安装9.3和9.4的PostgreSQL
0. 先备份数据
$ pg_dumpall > backup.sql
1. 运行pg_lsclusters
,保证9.3和9.4都启动了。
$ pg_lsclusters Ver Cluster Port Status Owner Data directory Log file 9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log 9.4 main 5433 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
2. 暂停9.4
sudo pg_dropcluster 9.4 main --stop
3. 迁移9.3数据到最新版本
sudo pg_upgradecluster 9.3 main
4. 此时9.3数据库应该停止stop
了
$ pg_lsclusters Ver Cluster Port Status Owner Data directory Log file 9.3 main 5433 down postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log 9.4 main 5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
5. 移除9.3
sudo pg_dropcluster 9.3 main sudo aptitude remove postgresql-9.3 postgresql-client-9.3
Install on Centos
Visit PostgreSQL Yum Repository and select PostgreSQL version, download repo rpm like this:
wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-3.noarch.rpm yum install postgresql95 postgresql95-devel postgresql95-libs postgresql95-server
Usage
Change user
password:
sudo -u postgres psql # psql shell \password <user>
Set user
as supersuer:
sudo -u postgres psql -c "ALTER USER <user> with superuser"
Maintain
Show size of every PostgreSQL database:
First, connect to postgres
database:
psql postgres
Then run SQL:
SELECT pg_database.datname, pg_database_size(pg_database.datname), pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database ORDER BY 2 DESC;
性能优化
复用连接可提高数据库的性能,详见PgBouncer
linux/postgresql.1518960548.txt.gz · 最后更改: 2023/12/03 10:24 (外部编辑)