首页 > 数据库 > PostgreSQL > 正文

PostgreSQL7.0手册-管理员手册-31. 管理数据库

2019-09-08 23:33:51
字体:
来源:转载
供稿:网友
第三十一章. 管理数据库
内容 
创建数据库 
访问数据库 
管理数据库 
备份和恢复 
如果 Postgrespostmaster 已经就绪并且运行起来了,那么我们就可以创建一些数据库做一些试验了.这里我们描述管理数据库的基本命令. 
创建数据库
我们假设你要创建一个名为 mydb 的数据库.你可以用下面命令做这件事情: 
% createdb dbname
Postgres 允许你在一个节点上创建任意数量的数据库,并且你自动成为该数据库的管理员.数据库名必须以字母开头而且少于 31 个字符长(译注:可以通过配置和重新编译 postgres 改变这个值。).并不是任何用户都有权利成为数据库管理员.如果Postgres拒绝为你创建数据库,那么节点管理员有必要赋予你创建数据库的权限.如果出现这种现象,请与你的节点管理员联系.
--------------------------------------------------------------------------------

访问数据库
一旦你已经建立了一个数据库,你可以用下面方法访问它: 
运行 Postgres 的终端控制程序(SQL界面)(psql),它允许你交互地输入,编辑和执行 SQL 命令.
写一个利用 libpq 子过程库的 C 程序.它允许你在 C 里面提交一个 SQL 命令,然后再收到返回和状态信息.这个接口将在 PostgreSQL 程序员手册 中进一步讨论.
你可能希望运行起 psql,然后把本手册的例子试验一下.这个可以通过用下面命令激活数据库 dbname 进行: 
psql dbname
你将看到如下欢迎信息: 
Welcome to psql, the PostgreSQL interactive terminal.

Type:  /copyright for distribution terms
       /h for help with SQL commands
       /? for help on internal slash commands
       /g or terminate with semicolon to execute query
       /q to quit

dbname=>
这个提示符表示SQL界面正在侦听你的输入,因此你可以键入 SQL 查询到由SQL界面维护的工作区中.psql 程序响应由反斜杠 "/" 开头的转意字符.例如,你可以键入下面命令获得关于各种 PostgresSQL 命令的语法的帮助: 
dbname=> /h
一旦你完成了向工作区中查询的输入,你可以键入下面命令把工作区的内容提交给 Postgres 服务器: 
dbname=> /g
这个命令告诉服务器执行查询.如果你以分号结束查询(语句),上面的反斜杠-g就不必输入了.psql 会自动处理分号结尾的查询.如果要从一个文件里读入查询,而不是交互地输入,键入: 
dbname=> /i filename
从 psql 退回到 UNIX,键入 
dbname=> /q
psql 将退出并且回到你的命令行 shell.(要知道更多的转意字符信息,在SQL界面提示符上键入反斜杠-h.)在 SQL 查询里面可以随意使用空白(例如,空格,tabs 和 新行).单行注释用 “--”(破折号).在破折号后面到行尾的所有内容都被忽略.多行注释以及行内注释,用 “/* ... */”-- 从 Ingres 借来的习惯。

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

删除数据库
如果你是数据库 mydb 的数据库管理员,你可以用下面 UNIX 命令将其删除: 
% dropdb dbname
这个动作物理上删除所有与该数据库相关的 UNIX 文件,而且是不可逆的,所以在这么做之前你必须要考虑清楚. 
还可以用下面语句在一次 SQL 会话里删除一个数据库。(译注:但不能是正在联接的数据库。) 

> drop database dbname


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

备份和恢复
  注意 
每个数据库都应该经常备份。因为 Postgres 在文件系统里管理它自己的文件,我们不建议依靠你的文件系统的系统备份作为你的数据库备份;那样不能保证在恢复后文件处于可用的一致的状态。 

Postgres 提供两个工具备份你的系统:pg_dump 备份独立的数据库以及 pg_dumpall 在一个步骤里备份你的数据库节点。 
可以用下面的命令备份一个独立的数据库: 

% pg_dump dbname > dbname.pgdump
然后可以用下面命令恢复 
cat dbname.pgdump | psql dbname
这个技巧可以用于把数据库移动到一个新位置,然后重新命名现有数据库。 
大数据库
作者:由 Hannu Krosing 写于 1999-06-19。
因为 Postgres 允许表的尺寸大于你的系统的最大文件尺寸,可能把表输出到一个文件会有问题,因为生成的文件很可能比你的系统允许的最大文件大。 
因为 pg_dump 输出到 stdout,你可以用标准的 *nix 工具绕开这个问题: 
  

使用压缩的 输出: 
% pg_dump dbname | gzip > filename.dump.gz
重载: 
% createdb dbname
% gunzip -c filename.dump.gz | psql dbname
或 
% cat filename.dump.gz | gunzip | psql dbname
使用分割(split): 
% pg_dump dbname | split -b 1m - filename.dump.
重载: 
% createdb dbname
% cat filename.dump.* | pgsql dbname
当然,文件名(filename)和 pg_dump 输出的内容不必与数据库名一样。同样,重载的数据库可以有任意新的名称,所以这个机制还适用于给数据库改名。

--------------------------------------------------------------------------------
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选