六、从纯文本格式的备份文件恢复数据库

下面我们详细介绍如何使用psql程序从一个纯文本格式的备份文件恢复数据库。

注意:如果您使用的是Postgres Plus Advanced Server的话,那么可以使用edb-psql程序。

上面,我们为数据库sample建立了一个纯文本格式的备份文件,即sample_backup,之后我们要用它来恢复该示例数据库。

第一步:登录到Postgres Plus数据库服务器所在的计算机。在该计算机上任何有效的帐户都可以。

第二步:如果想把数据库恢复到建立备份文件的数据库集群之外的数据库集群的话,或者从数据库集群中删除了角色的话,那么要确保制作备份文件时数据库对象属主的所有的角色名称都存在于用来恢复备份文件的数据库集群中。

注意:如果制作备份文件时不知道数据库对象属于哪些角色,您可以使用文本编辑程序搜索ALTER object OWNER TO role语句,下面是些例子:

ALTERPROCEDURAL LANGUAGE plpgsql OWNERTOpostgres;ALTERTYPEpublic.emp_query_type OWNERTOpostgres;ALTERFUNCTIONpublic.emp_comp(p_sal numeric, p_comm numeric) OWNERTOpostgres;

您可以通过psql程序连接到数据库集群,然后运行\dg命令列出当前存在于数据库集群中的角色,如下所示:

$ cd/opt/PostgresPlus/8.4SS/bin

$ ./psql-d postgres-U postgres

Passwordforuserpostgres:

psql (8.4.1)

Type "help"forhelp.

postgres=# \dg

Listofroles

Role name|Attributes|Memberof-----------+-------------+-----------postgres|Superuser|{}

:Createrole

:CreateDB

如果您需要创建角色的话,可以使用CREATE ROLE语句。

注意:如果用来恢复数据库对象的数据库集群中没有该数据库对象原属主的角色,那么当ALTER语句无法指定该属主时,就会显示一个出错信息。当执行恢复操作时,该数据库对象最终将分配给psql程序的-U选项指定的角色。

第三步:保证在用于恢复数据库的数据库集群中没有与制作备份的数据库同名的数据库。

注意:如果不知道制作备份文件的数据库的名称,您可以使用文本编辑程序搜索CREATE DATABASE语句,下面举例说明:

CREATEDATABASEsampleWITHTEMPLATE=template0 ENCODING='UTF8'LC_COLLATE='en_US.UTF-8'LC_CTYPE='en_US.UTF-8';

您可以通过psql程序连接到数据库集群,然后运行\l命令列出当前存在于数据库集群中的数据库,如下所示:

$ cd/opt/PostgresPlus/8.4SS/bin

$ ./psql-d postgres-U postgres

Passwordforuserpostgres:

psql (8.4.1)

Type "help"forhelp.

postgres=# \l

Listofdatabases

Name|Owner|Encoding|Collation|Ctype|Accessprivileges-----------+----------+----------+-------------+-------------+-----------------------postgres|postgres|UTF8|en_US.UTF-8|en_US.UTF-8|template0|postgres|UTF8|en_US.UTF-8|en_US.UTF-8|=c/postgres

: postgres=CTc/postgres

template1|postgres|UTF8|en_US.UTF-8|en_US.UTF-8|=c/postgres

: postgres=CTc/postgres

(3rows)

如果数据库集群中的一个数据库与用于建立备份文件的数据库同名,那么您现在就可以使用ALTER DATABASE语句的RENAME TO选项给现有的数据库改名,或者使用DROP DATABASE语句删除它。

注意:在恢复操作期间,如果该数据库集群含有一个与制作备份文件的数据库同名的数据库的话,那么当CREATE DATABASE语句无法用同一名称新建数据库时,就会显示一个出错信息。这时,psql程序将从现有的数据库中的备份文件来重新创建各数据库对象。这很可能导致生成的数据库中包含不希望有的数据库对象,并且数据库设置也不正确。

第四步::使用cd命令将当前工作目录切换至Postgres Plus所在的bin目录。

cd/opt/PostgresPlus/8.4SS/bin

注意:如果您使用的是Postgres Plus Advanced Server的话,请将当前工作目录通过cd命令切换至dbserver/bin。

第五步:运行psql程序,并给出要连接(使用-d选项)的数据库的名称、具有超级用户特权的角色(使用-U选项)和备份文件的目录路径(使用-f选项)。

注意:用-d选项规定的数据库对恢复操作没有影响。psql程序需要先通过数据库连接建立一个会话,然后才能处理备份文件中的SQL语句和psql命令。

./psql-d postgres-U postgres-f/home/user/sample_backup

这样就会从备份文件sample_backup中重新创建数据库sample。下面给出psql程序处理备份文件中的SQL语句和psql命令时所显示的部分消息:

$ ./psql-d postgres-U postgres-f/home/user/sample_backup

Passwordforuserpostgres:SETSETSETSETSETSETCREATEDATABASEALTERDATABASEpsql (8.4.1)

You are now connectedtodatabase"sample".

linux postgres恢复数据库,从纯文本格式的备份文件恢复数据库相关推荐

  1. 1.6python网络爬虫--读取和处理纯文本格式(CSV,PDF,docx)

    目录: 前言: 一,文档编码 二,纯文本 1.对一般简单的纯文本的介绍: 2.文本编码介绍和使用 (1)编码类型简介 (2)使用编码 三,CSV 四,PDF 五, 微软Word和.docx 六,拓展: ...

  2. Outlook发送后,收到的邮件都是纯文本格式

    不知道哪国语言的网址 疑似官方文档的解决方法,[排错]Outlook中,HTML邮件发送后变成了纯文本格式 https://social.technet.microsoft.com/Forums/he ...

  3. csv文件,不是excel格式的,不是excel格式的,不是excel格式的,其实csv就是纯文本格式即txt,可以用txt打开

    csv文件,不是excel格式的,不是excel格式的,不是excel格式的,其实csv就是纯文本格式即txt,可以用txt打开 很多人认为,csv就是xls格式的,因为windows系统下,csv文 ...

  4. Word自定义快捷键:将粘贴内容设为纯文本格式

    这两天做了一些文档的工作,文档中间复制粘贴格式不同很麻烦,仅仅靠Ctrl+V,无法实现纯文本粘贴,因为word里自带的粘贴快捷方式"Ctrl+V"默认是带原来文本格式的粘贴,如需转 ...

  5. 为 TradingView 添加电话报警(纯文本格式)

    TradingView 支持配置不同的报警条件,并通过邮件.App 推送等方式通知用户.通过饭碗警告(Fw: Alert),可以进一步升级为电话,实现更及时的股票.数字货币交易监控. TradingV ...

  6. linux纯文字界面,Linux入门 Part1: 使用控制台(1)-纯文本界面

    本教程选用的linux distribution 是ubuntu 13.04 desktop,这个发行版默认使用的是Unity 的图形界面(GUI 或者叫 X window),登陆之后界面如下图所示. ...

  7. html是一种纯文本类型语言,什么是HTML格式、纯文本格式,有什么区别呢?

    满意答案 lyqstart 推荐于 2017.11.29 采纳率:46%    等级:6 已帮助:709人 Hypertext Markup Language,中文也就是超文本链接标示语言.HTML( ...

  8. mysql数据库存储富文本格式_使用格式将富文本框的数据存储到数据库

    我是wpf的新手,我想将富文本框的数据及其格式(斜体,彩色,粗体..)存储到数据库(Mysql)中.目前,当我保存数据时,格式化将被忽略.此外,当我将其从数据库加载回富文本框时,它会在同一行中显示所有 ...

  9. Java使用QQ邮箱发送纯文本格式信息

    1.导包 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</a ...

最新文章

  1. Python设计模式-备忘录模式
  2. 八十、归并排序及其分而治之思想
  3. python zip()函数的理解与应用
  4. [转]Displaying standard DataTables in MVC
  5. 《零基础看得懂的C++入门教程 》——(5) 容我套个娃 循环
  6. Unity 通过Unity Admob Plugin插件集成admob教程
  7. 设计模式(第十七式:迭代器模式)
  8. nginx 配置入门 进行跨域
  9. Atitit code for biz lst idx项目分析法,包括模块分析,与模块位置idx数据库分析 数据表的分类 日志表不断增长(包括用户表,订单表等)。。元数据表表 基本不增长。。。
  10. 软件破解技术之API替换
  11. visual basic是不是计算机语言,辉煌不再!Microsoft计划结束Visual Basic编程语言
  12. echarts 文本标签配置、label文字样式
  13. Adobe Photoshop如何导入动作?ps 2020动作导入方法详解,PS动作安装教程
  14. Discuz大气游戏风格模板/仿lol英雄联盟游戏DZ游戏模板GBK
  15. gcc 版本管理工具 scl
  16. Jenkins与DevOps持续交付详解
  17. 【性能测试】性能测试测试指标
  18. 方差、标准差和均方根误差的区别总结
  19. 【RDMA】LRH和GRH InfiniBand标头(LRH and GRH InfiniBand Headers)
  20. 计算机病毒考试及答案,计算机病毒类考试题目以及参考答案.doc

热门文章

  1. python 转百分比_2020 | python必读书单
  2. Qt Example各例子演示功能说明
  3. Android通过广播实现强制下线功能
  4. 解决Can 't connect to local MySQL server throug
  5. WSFC2008R2跨群集迁移WSFC2012R2
  6. UbbCode用正则替换指定格式的输入实现想要的输出
  7. 算法导论——DFS深度优先搜索
  8. Exchange 2013学习(六),脱机通讯簿
  9. 如何在WES 7的开发工具ICE里面添加OEM客户信息
  10. 如何给计算机主机进行静电导流,一种具有高散热性的计算机主机箱的制作方法...