您的位置:首页 > 数据库 > SQL

]postgresql 维护手册

2016-02-19 16:43 609 查看
原文地址:postgresql
维护手册.作者:酒醉的探

1 安装:

./configure

gmake

su

gmake install

adduser postgres

mkdir /usr/local/pgsql/data

chown postgres /usr/local/pgsql/data

su - postgres

2 ## 初始化系统数据库。

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

3 .## 启动数据库。

su - postgres

/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & ==/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

/usr/local/pgsql/bin/createdb test // 创建test 数据库/。

/usr/local/pgsql/bin/psql test // 连入test 数据库。

4 . 察看当前连入的用户和使用的数据库 :
liuxgdb-> c
You are now connected to database "postgres" as user "postgres".

5 . 切换到其它数据库:
postgres=# c liuxgdb;
You are now connected to database "liuxgdb".

6. 最常用命令:show all or show parname;

如: show port 显示服务器的端口;
show server_encoding 显示服务器的字符集。

show client_encoding 显示客户段字符集的编码。
show data_directory 显示数据库的工作目录,数据库存放的位置。
show listen_addresses 显示监听的地址。
show log_filename postgresql-%Y-%m-%d_%H%M%S.log
| Sets the file name pattern for log files
show max_connections Set the maximum number of concurrent connections

7 . postgrel 数据库的位置: /usr/local/pgsql/data

8 .查询有哪些数据库:

察看当前数据库下有哪些表:
d{t|i|s|v|S} [PATTERN] (add "+" for more detail)
list
tables/indexes/sequences/views/system tables

9 .创建表: create table liuxg(id int,name char(40));

10 .创建用户:
创建一个可以登录的角色,但是不用给他口令:

CREATE ROLE jonathan LOGIN;
创建一个带口令的角色:

CREATE USER davide WITH PASSWORD 'jw8s0F4';(CREATE USER 和 CREATE ROLE 一样,只不过它隐含 LOGIN。)

创建一个带口令的角色,口令有效期到 2004 年底。在 2005 年跑了一秒之后,口令就不再有效。

CREATE ROLE miriam WITH LOGIN PASSWORD 'jw8s0F4' VALID UNTIL '2005-01-01';

11 .创建一个可以创建数据库和管理角色的角色:

CREATE ROLE admin WITH CREATEDB CREATEROLE;

12 。删除用户: drop user davide;

13 。日志文件:

配置文件: /usr/local/pgsql/data/postgresql.conf

数据库启动方法: /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

数据库关闭方法:

14 。 几个常用的察看命令。

template1=# l 查看系统中现存的数据库

template1=# q 退出客户端程序psql

template1=# c 从一个数据库中转到另一个数据库中,如template1=# c sales 从template1转到sales

template1=# d 查看表

template1=# d test 查看test表结构

template1=# d i 查看索引

15.备份数据库

可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:

/usr/local/pgsql/bin/pg_dump liuxgdb >/tmp/liuxgdb.bak // 这事一个文本文件,包含了表结构和数据,还有权限等信息。

16 . 还原数据库。

createdb dbname // 需要先创建目标库, 恢复本身不能创建库,可察看备份文本。

psql dbname </tmp/liuxgdb.bak // 这样才可恢复成功。

psql newdb</var/lib/pgsql/createobjects.sql

18 。日常维护:
1备份

2 "vacuuming" (清理)数据库。
恢复那些由已更新的或已删除的行占据的磁盘空间.

更新 PostgreSQL 查询规划器使用的数据统计信息.

避免因为事务 ID 重叠造成的老旧数据的丢失

3 日志文件的管理

19 。du 显示帐号信息。

20。 企业邮箱中数据库的导入方法,学习一下。
chkconfig --add postgresql
chkconfig postgresql on
service postgresql start
echo "initing database for mail system........................................."
#su postgres -c initdb
echo "create db for webmail application........................................"
su posn
cp -rf ./sql/pgsql/createobjects.sql /var/lib/pgsql
cp -rf ./sql/pgsql/initdata.sql /var/lib/pgsql
su - postgres -c 'psql -d webmail_database -f createobjects.sql'
su - postgres -c 'psql -d webmail_database -f initdata.sql'
echo "database init complete."

fi

21。连接数据库的方法,这个地方可以放严格,放到有哪些用户通过哪些IP联入到数据库。

psql -hlocalhost -Udavide -dnewdb 连接ok ;

psql -h192.168.0.190 -Udavide -dnewdb

psql: FATAL: no pg_hba.conf entry for host "192.168.0.190", user "davide", database "newdb", SSL off

方法:修改pg_hba.conf 增加:

# TYPE DATABASE USER CIDR-ADDRESS
METHOD

# IPv4 local connections:

host all all 127.0.0.1/32
md5

host all all 192.168.0.190/32
md5

host newdb all 192.168.0.253/32
md5

上面只允许127.0.0.1 和192.168.0.190 这个IP联入数据库。

修改postgresql 启动的监听

vi /var/lib/pgsql/data/postgresql.conf

listen_addresses = '*' // 监听所有端口。

tcp 0 0 :::5432 :::*
LISTEN

察看一个用户的权限。du

List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of

-----------+-----------+-------------+-----------+-------------+-----------
davide | no | no | no
| no limit |
dovecot | no | no | no
| no limit |
postgres | yes | yes | yes
| no limit |

虽然davide 帐号没有创建数据库,创建用户的权限,但是他却有创建表和修改表的权限。

创建一个比较大的权限的用户
postgres=# CREATE ROLE admin WITH CREATEDB CREATEROLE;
Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
admin | no | yes
| yes | no limit
|

默认postgre 用户的密码是什么?

修改webmail 帐号能操作其他用户的表。

帮助文档:
http://man.ddvip.com/database/PostgreSQL80zhref/index.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: