七、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行)