第二十二章 管理数据库

每个PostgreSQL服务均可过了多个数据库。数据库为组织SQL对象(即数据库对象)的最上一级。本章介绍数据库属性以及如何创建、管理和删除数据库。

22.1 数据库管理概览

一些数据库对象,比如角色、数据库和表空间,在数据库群集层面定义,并存储在pg_global下。群集内为各个数据库,他们之间相互独立,但均可访问群集级别的对象。数据库内是多个模式(schema),其下可包含如表、函数等对象。所以层级为:群集,数据库,模式,表及其他对象。

 

数据库级别的安全有两个方面:访问控制(在连接时控制)和认证控制(grant)。

 

数据库使用 CREATE DATABASE命令创建,使用 DROP DATABASE命令删除。

 

可通过查看pg_database检索当前存在的数据库:

SELECT datname FROM pg_database;   --也可以使用\l

 

注:SQL标准中,称数据库为“catalog”。

22.2 创建数据库

使用SQL命令CREATE DATABASE(也可在命令行使用createdb)创建数据库。

 

在初始化的时候会创建数据库postgres。另一个数据库为template1,可用作创建新数据库的模板。

 

也可在创建数据库时指定所有者:

SQL语句:

CREATE DATABASE dbname OWNER rolename;

命令行:

createdb -O rolename dbname

22.3 数据库模板

CREATE DATABASE命令实际上是考虑模板数据库,默认使用的模板数据库为template1。在其中创建的对象,也会创建到新创建的数据库中。

 

还有一个模板数据库为template0。其包含的内容与template1相同。但该数据库不应修改。

22.4 数据库配置

PostgreSQL提供大量运行时配置变量,参考第19章。可在数据库级别设置默认参数值。

 

例如想在mydb数据库级别关闭GEQO:

ALTER DATABASE mydb SET geqo TO off;

撤销设置:

ALTER DATABASE dbname RESET varname.

22.5 删除数据库

使用DROP DATABASE命令(或命令行的命令dropdb)删除数据库。

22.6 表空间

PostgreSQL中的表空间即存储数据库对象文件的目录。可在创建数据库对象时指定使用的表空间。使用 CREATE TABLESPACE命令创建表空间:

CREATE TABLESPACE fastspace LOCATION '/ssd1/postgresql/data';  --路径需已存在、为空且属于PostgreSQL的操作系统用户

建表时指定表空间:

CREATE TABLE foo(i int) TABLESPACE space1;

也可以使用指定默认表空间:

SET default_tablespace = space1;   --temp_tablespace指定默认临时表空间
CREATE TABLE foo(i int);

使用DROP TABLESPACE删除空的表空间。

 

可从pg_tablesapce查看当前已有表空间:

select spcname from pg_tablespace ;   --或使用\db

目录$PGDATA/pg_tblspc下含指向非预定义表空间的链接:

postgres=# create tablespace tbs location '/home/postgres/tbs';
CREATE TABLESPACE
[postgres@postgresql ~]$ cd $PGDATA/pg_tblspc
[postgres@postgresql pg_tblspc]$ ll
total 0
lrwxrwxrwx. 1 postgres postgres 18 Feb 26 11:03 32877 -> /home/postgres/tbs
[postgres@postgresql pg_tblspc]$

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丹心明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值