PostgreSQL教程(十八):客户端命令(2)

PostgreSQL教程(十八):客户端命令(2)
七、pg_dump:

pg_dump是备份PostgreSQL数据库的工具,它可以使一个完整的和一致的备份数据库时被同时使用,不会阻塞其他用户对数据库的访问。由工具生成的转储格式可分为两种类型脚本和存档文件的脚本格式是一个平原。文本格式,包含了许多SQL命令。可以使用这些SQL命令重建数据库,并在生成数据库时将其还原到状态。此操作需要完成的psql,存档格式,如果你需要重新建立数据库,你必须使用它的pg_restore工具。在重建过程中,你可以选择恢复的对象,甚至重新排序,需要恢复之前的恢复项目。该命令的使用如下:

复制代码代码如下所示:

pg_dump { } {在}选项
1。命令行选项列表:
选项
解释
- A(仅数据)
只输出数据,没有输出模式(数据对象的定义)。此选项为纯文本格式的才是有意义的。存档格式,您可以指定在调用pg_restore选项。
- B(-斑点)
转储中包含一个大对象。
- C(-清洁)
删除数据库对象的SQL命令是第一输出之前的SQL命令的输出来创建数据库对象。此选项为纯文本格式的才是有意义的。存档格式,您可以指定在调用pg_restore选项。
- C(-创建)
首先,输出命令创建数据库,然后重新连接新创建的数据库。在这种格式的脚本,数据库在运行连接就显得不那么重要了。此选项为纯文本格式的才是有意义的。存档格式,您可以指定在调用pg_restore选项。
- eencoding
转储文件是用指定的字符集创建的。
-文件
输出到指定的文件,如果没有该选项,则输出到标准输出。
- fformat
P(平):一个文本格式的SQL脚本文件(默认),C(自定义):输出自定义文件格式适合pg_restore.this是最灵活的格式,允许加载数据和对象定义的重排。这种格式压缩时,它是默认的。T(焦油):输出一个tar归档文件的适用对于pg_restore.use这档案重新排序和/或排除数据库对象还原数据库时,它也可能限制数据恢复当我恢复。
N模式
只转储模式的内容。如果不声明该选项,则将转储目标数据库中的所有非系统模式。此选项也可以多次指定以指定不同的模式模式。
- nschema
不要转储匹配模式的内容,而其他规则与N是一致的。
O(-- OID)
作为数据的一部分,对象标识(OID)是每个表的输出。
o(无所有者)
设置对象所有权的SQL命令不输出。
- S(仅模式)
只输出对象定义(模式),而不是输出数据。
- susername
指定关闭触发器时需要使用的超级用户名。它只与禁用触发器有关。
-表
只有输出表的数据,它是可能的,在不同的模式中相同名称的多个名称,如果是这样的话,所有匹配的表将被抛弃了。多个表可以扔一次指定此参数几次。你也可以指定图案作为psql更符合表同。(关于模式,使用它的最基本的方法是把它作为UNIX,通配符,表示任何字符,表示任意单个字符。(DOT)表示模式和对象之间的分隔符,例如* *,这意味着从B.开始的数据库对象开始。(点),它只代表数据库对象。基本的正则表达式,如{ 0-9 },也可以用在这里。)
-表
排除指定的表,其他规则与t选项相同。
- x(-没有特权)
未导出访问访问信息(授予/撤消命令)。
-Z0..9
声明用于支持压缩的格式中的压缩级别(目前仅支持自定义格式压缩)。
——列插入
插入table_name(columns_list)得出的值的数据(values_list)这样的操作相对其他操作比较慢的命令,但在特殊情况下,如数据表字段的位置可能变化或到原始字段列表中的新领域,因为columns_list明确指定,是没有问题的,数据导入一场错误的进口。
——插入
出口数据被插入命令表示,不复制命令。即使使用插入比复制慢一点,但可以进口到其他非PostgreSQL数据库的未来。
没有表空间
该表空间的命令没有输出,如果这个选项了,所有的物体都会被恢复到默认表空间时,pg_restore执行
没有记录的表中的数据
对于一个数据表不登录(未记录),它不出口数据。至于是否导出模式信息,它需要依赖其他选项。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的侦听器端口默认为5432。
–(用户名=用户名)
此操作的登录用户名,如果未指定o选项,则数据库的所有者将是登录用户。
- W(没有密码
如果当前登录用户没有密码,您可以指定此选项直接登录。
2。应用实例:

复制代码代码如下所示:

# -H:PostgreSQL服务器主机192.168.149.137。

# U:登录Postgres。

# T:口表名称开始与测试数据表,如数据。

# -:唯一的出口数据,不是架构信息的对象。

# F:输出文件在当前目录中my_dump.sql

#名称是目标数据库的操作。

pg_dump H 192.168.149.137 -U postgres / T测试* - F / my_dump.sql MyDataBase

# C:第一输出和删除数据库对象的SQL命令,并创建输出中的数据库对象的SQL命令,这是部署干净的初始系统或测试环境的建立非常方便。

pg_dump H 192.168.220.136 U Postgres C / / my_dump.sql名称- F.

# derived mydatabase database.In the PSQL command can be re designated into the database, such as: -d newdb -f my_dump.sql > PSQL

pg_dump H 192.168.220.136 -U postgres / / my_dump.sql MyDatabase F.

#出口模式my_schema和数据库对象开始测试,但不包括my_schema.employee_log对象。

pg_dump - t'my_schema。测试* T my_schema.employee_log名称> > my_dump.sql

所有数据库对象#来自East和欧美地区的模式。下面两个命令是等价的,但后者的使用规律。

pg_dump - n'eastn'west ' /名称F my_dump.sql

pg_dump / N'的名称- F my_dump。SQL(东|西)
八、pg_restore:
pg_restore用于恢复任何非文本文件格式导出的pg_dump,恢复数据库的状态,当它被保存为文件格式的文件,pg_restore可以进行选择性恢复或重新排列数据之前恢复序列。

pg_restore可以工作在两种模式。如果数据库指定的档案将直接恢复数据库,数据库必须手动创建,然后恢复数据到新的数据库,通过该命令的pg_restore.the使用如下:

复制代码代码如下所示:

pg_restore { } { }选项文件名…
1。命令行选项列表:
选项
解释
文件名
指定要还原的备份文件,如果未声明,则使用标准输入
- A(仅数据)
只还原数据,而不是恢复表模式(数据对象定义)。
- C(-清洁)
在创建数据库对象之前清除(删除)它们。
- C(-创建)
在恢复数据库之前创建它。(使用这个选项时,数据库名称需要由d选项指定,这只是最基本的创建数据库命令。需要解释归档中的所有数据将恢复到归档文件中指定的数据库中。
- ddbname
建立与数据库的连接,直接将数据恢复到数据库。
- e(-退出错误)
如果在将SQL命令发送到数据库时遇到错误,则退出。默认情况下继续,并在恢复结束时显示错误计数。
- fformat
指定备份文件的格式,因为pg_restore会自动判断格式,指定的格式是不必要的。如果指定的话,它可以是下列格式:T(焦油):使用这种格式允许重新排序和/或排除表模式信息恢复数据库时,同时,它也可能限制加载数据的恢复过程中。C(自定义):这种格式是从pg_dump.this自定义格式是最灵活的格式,因为它允许数据和架构信息刷新的重新排序,这是默认的压缩。
我的指标
只恢复指定的索引。
- L(-列表)
列出备份的内容,这个操作的输出可以用作L选项的输入。请注意,如果过滤器选项N或T与L选项一起使用,它们也将限制列出的项目。
-列表文件
只需在列表文件中恢复列出的条目,以便每一个项目在恢复文件的顺序下,也可以手动编辑文件,并重新排列入口位置,在恢复操作后,包括分号(;)行为注释,在行的开头,注释行将不会被导入。
N的命名空间
只还原指定模式(schema)的数据库对象。此选项可与T选项一起使用,以恢复指定的数据对象。
o(无所有者)
设置对象所有权的SQL命令不输出。
- P的名字(argtype {…})
只还原指定的命名函数。这个名称应该与转储内容列表中的名称完全相同。
- S(仅模式)
只恢复表结构(数据定义)。如果不恢复数据,序列值将被重置。
- susername
指定关闭触发器时需要使用的超级用户名。它只与禁用触发器有关。
T台
只需还原指定表的模式和或数据,此选项也可以指定与N选项一起的模式。
- x(-没有特权)
没有恢复访问权限信息。
- 1(单事务)
在单个事件中执行恢复命令。
没有表空间
该表空间的命令没有输出,如果这个选项了,所有的物体都会被恢复到默认表空间时,pg_restore执行。
-没有失败表的数据
默认情况下,即使表失败了,如果表已经存在,那么数据加载的操作将不会停止。这个结果很容易导致大量重复的数据被插入到表中。如果执行此选项,如果表出现任何错误,数据表的加载将被忽略。
——作用= rolename
使用指定的角色名称执行还原操作。一般来说,如果连接角色没有足够的权限使用此恢复操作,则可以在建立连接后使用此选项切换到具有足够权限的角色。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的侦听器端口默认为5432。
–(用户名=用户名)
此操作的登录用户名,如果未指定o选项,则数据库的所有者将是登录用户。
- W(没有密码)
如果当前登录用户没有密码,您可以指定此选项直接登录。

2。应用实例:

复制代码代码如下所示:

#首先通过createdb命令的权限的用户登录,以newdb数据恢复了

U中newdb / createdb

#与导出数据库对象导出my_dump.dat -l选项备份文件在pg_restore命令列表。

pg_restore / L my_dump.dat > db.list

猫/ db.list

2;145344表种Postgres

4;145359表nt_header Postgres

6;145402表species_records Postgres

8;145416表ss_old Postgres

10;145433表map_resolutions Postgres

#将上述清单文件的内容修改为如下形式。

主要的变化是#注释编号为三到2, 4和8的数据库对象,而在文件头10对象的数量,因此基于列表

#文件,2, 4和8三个对象将不会被导入,在恢复的过程为对象的数据数10,然后导入数据对象6。

猫/ new_db.list

10;145433表map_resolutions Postgres

2;145344表种Postgres

4;145359表nt_header Postgres

6;145402表species_records Postgres

8;145416表ss_old Postgres

#恢复数据库时指定的数据库对象是newdb,进口和进口订单将在new_db.list文件导入规则规定的建议。

D newdb L new_db.list my_dump.dat > pg_restore
九、psql:

PostgreSQL交互式终端相当于Oracle的SQLPLUS。

1。常用命令行选项列表:
选项
解释
c命令
指定要执行的SQL命令命令PSQL(括在双引号里)和退出后执行。
D在
要连接的数据库的名称。
E

D和其他反斜杠命令产生实际的查询显示。
f文件名
在文件名中使用的数据文件作为命令的输入源,不是查询的交互式阅读。后处理文件,psql结束并退出。
h主机名
该声明正在运行服务器的主机名。
l
列出所有可用的数据库并退出。
l文件名
除了正常输出源之外,所有查询记录都输出到文件名。
o文件名
所有的查询将被重定向到文件的文件名。
P端口
指定监听端口的服务器。
-安静
让PSQL执行处理任务的时候悄悄。默认psql将打印出打印的欢迎和许多其他信息。
- t仅元组
关闭打印列名称和结果行,以计算脚注和其他信息。
-你的用户名
使用用户名而不是默认用户与数据库建立连接。
2。应用实例:

复制代码代码如下所示:

#首先通过createdb命令的权限的用户登录,以newdb数据恢复了

U中newdb / createdb

#与导出数据库对象导出my_dump.dat -l选项备份文件在pg_restore命令列表。

pg_restore / L my_dump.dat > db.list

猫/ db.list

2;145344表种Postgres

4;145359表nt_header Postgres

6;145402表species_records Postgres

8;145416表ss_old Postgres

10;145433表map_resolutions Postgres

#将上述清单文件的内容修改为如下形式。

主要的变化是#注释编号为三到2, 4和8的数据库对象,而在文件头10对象的数量,因此基于列表

#文件,2, 4和8三个对象将不会被导入,在恢复的过程为对象的数据数10,然后导入数据对象6。

猫/ new_db.list

10;145433表map_resolutions Postgres

2;145344表种Postgres

4;145359表nt_header Postgres

6;145402表species_records Postgres

8;145416表ss_old Postgres

#恢复数据库时指定的数据库对象是newdb,进口和进口订单将在new_db.list文件导入规则规定的建议。

D newdb L new_db.list my_dump.dat > pg_restore
三.内置命令列表:

内置的psql命令是命令动词的形式由一个反斜杠,其次是任意的参数,参数和命令动词与其他参数的关系可以由空格隔开,如果其中包含空格的参数,该参数必须用单引号,如果包含在单引号中的参数,它需要这么做了,在单引号标记的参数也支持关键字支持逃避类似于C的printf函数。比如,等..
命令
解释

如果当前表输出格式未对齐,则切换到对齐。如果对齐,则切换到不对齐。
目录}
将当前工作目录切换到目录。没有参数切换到当前用户的主目录。
标题}
添加查询结果的标题(标题),如果没有参数,则取消当前标题。
◎{用户名} } {在C
将新的数据库并断开当前连接。如果单个参数,这意味着当前的数据库仍然是连接。如果用户名是不容忽视的,这意味着当前的用户名继续使用。
复制
参数类似于SQL复制功能几乎等同于SQL复制的一个重要区别是内置命令可以出口内容表的地方,或从本地数据库到指定的表,而SQL复制表中的数据文件到服务器,或从服务器上的文件在数据表中。因此,SQL复制效率优于内置命令。
{模式}
显示与模式匹配的数据库对象,如表、视图、索引或序列。显示所有列、它们的类型、表空间(如果不是默认的)和任何特殊属性
模式}
列出所有可用的表空间。如果声明模式,则只显示与模式匹配的表空间。
{ }模式}
与前面的命令相比,将有更多的权限信息来显示每个表空间。
{模式}
列出所有可用的函数及其参数和返回的数据类型。如果声明模式,则只显示匹配(正则表达式)的函数。
{模式}
与以前的命令之下,附加信息添加到显示的各项功能,包括语言和描述,U3000 U3000
◎模式distvs { }
这不是一个单独的命令名:字母i、s、t、v、s表示索引(索引)、序列(序列)、表(表)、视图(视图)和系统表(系统表),您可以以任意顺序声明一些或所有这些字母以获得这些对象的列表。
模式}
列出所有可用的模式。如果声明模式,则只列出匹配模式的模式名称。
模式}
与前面的命令比较,添加了每个对象的权限和注释。
{模式}
生成可用表的列表和与之相关联的权限。如果声明模式,则只列出与模式匹配的名称列表。
{模式}
列出所有数据类型,或者只显示那些与模式匹配的数据类型。
{模式}
列出所有已配置的用户,或只列出与模式匹配的用户。
echotext {…}
将参数打印到标准输出,与一个空格分隔,并在结尾处执行一个新的行。
◎G { {文件名| |命令} }
将当前查询结果缓冲区的内容发送到服务器,并将查询的输出存储到可选的文件名或输出到一个独立的UNIX shell执行命令。
ifilename
查询是从文件名及其内容作为键盘输入读取的。
◎L
列出服务器上所有数据库的名称及其所有者和字符集编码。
◎O { {文件名| |命令} }
将下列查询结果保存到文件名,或者将后续查询结果指向一个单独的shell命令。
◎P
将当前查询缓冲区打印到标准输出。
◎Q
退出psql程序
R
重置(空)查询缓冲区。
{文件名}
打印命令行历史或将其存储到文件名。如果省略文件名,历史将输出到标准输出。
◎T
切换到输出字段的栏位名称和行符号脚注。
◎W {文件名| |命令}
将当前查询缓冲区输出到文件名或UNIX命令命令。
{模式}
包含访问权限列表的数据库中所有表、视图和序列的列表。如果给定任何模式,则将其视为正则表达式,只显示匹配表、视图和序列。
!{命令}
返回独立的UNIX shell或执行UNIX命令命令。这些参数将不能进一步解释,shell将看到所有参数。
4。内置命令应用程序示例:

在PSQL,大多数的内置命令更容易理解,这里是一些命令,我个人认为是比较容易混淆的。

复制代码代码如下所示:

的# C线(-)仍然连接到现有的数据库中,是一个新的用户名。

Postgres = # C中

用户权限密码:

Postgres = >选择用户;

current_user





(1行)

#执行任意的SQL语句。

Postgres = # SELECT * FROM TestTable表我= 2;







(1行)

# G命令将SQL命令输出到指定文件。

Postgres = # G my_file_for_command_g

Postgres = # !猫my_file_for_command_g







(1行)

# G命令将SQL命令的结果从管道输出到指定的shell命令,如猫。

Postgres = # G猫|







(1行)

一个p SQL #打印命令。

Postgres = # P

SELECT * FROM TestTable表我= 2;

# W对SQL命令输出到指定文件。

Postgres = # W my_file_for_option_w

Postgres = # !猫my_file_for_option_w

SELECT * FROM TestTable表我= 2;

# 和 G相反,命令将该psql命令返回指定文件的输出,直到下一个 O,

那么结果将不再#命令输出到文件。

Postgres = # O my_file_for_option_o

Postgres = # SELECT * FROM TestTable表我= 1;

结果还#终止后面的命令输出到my_file_for_option_o文件。

Postgres = # O

Postgres = # !猫my_file_for_option_o







(1行)
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部