• postgresql批量备份和恢复数据表


    备份数据库:
    pg_dump -h localhost -U root demo02 > /home/arno/dumps/demo02.bak

    恢复数据库:
    psql -h localhost -U root -d demo <  demo.bak

    备份表:
    pg_dump -h localhost -U root demo02 -t books > /home/arno/dumps/books.bak

    恢复表:
    psql -h localhost -U root -d demo -t books <  /home/arno/dumps/books.bak

    psql copy to/from用法:

    1. 需要使用postgres超级用户登陆数据库
       psql -U postgres -d demo02

    2. 保存/读取的文件夹需要赋予postgres用户可读写的权限

    3. 导出表中数据到文件
       copy books to '/opt/PostgreSQL/9.5/data/xxx.csv' with CSV;

    4. 导入文件内容到数据库(增加不是覆盖,以前表中数据保留)
       copy books(id,title) from '/opt/PostgreSQL/9.5/data/xxx.csv' delimiter as ',' csv ;

    以上参考网址:

    https://my.oschina.net/bianweiall/blog/516604

    https://www.cnblogs.com/alianbog/p/5621660.html

    https://www.cnblogs.com/chjbbs/p/6480687.html

    注意:

    1,该命令是在dos窗口执行的,而且需要定位到命令所在的文件夹,比如我的psql命令是在F:installpostgre9.4.5in。F:installpostgre9.4.5是我的数据库的安装路径。

    2,低版本的数据库不能对高版本的数据库进行备份和还原操作,因此有可能需要对自己的数据库进行升级(我是重装数据库,因为我的数据库中没什么数据,所以懒得备份,实际中你们可以按照前面的命令进行数据库的备份,然后重装)。

    3,在使用copy命令的时候需要先登录数据库,因为copy命令是数据库自带的命令,而且在copy的末尾,一定要加分号,默认是以分号结束。

    4,导入文件时原表需要存在,表结构需要完整,导入数据只是导入数据内容,并不会创建表结构,而且导入的时候是以追加的方式,并不会覆盖表中原来的数据。

    5,使用psql恢复数据时,如果数据库中有相同的表格,那么会以追加的形式恢复数据,但是会提示2个ERROR,一个表示的是原表存在,另一个表示的是只能有一个主键(前提是设置了主键)。

    但是通过查看数据库可以知道,即使报错,数据也可以恢复成功。

    这几点是我在实际操作过程中遇到的问题,希望对大家有帮助。

     另外,也可以使用navicat进行数据库的迁移,但是不能对单独的数据表进行操作。

  • 相关阅读:
    在酷热的就业天气寻找几丝凉意
    《Orange ’ s :一个操作系统的实现 》作者自序
    Windows的设备驱动框架
    Windows的设备驱动框架中的上层与下层模块
    如何搭建自己的开发环境
    数据库设计指南(二)设计表和字段
    软件敏捷架构师
    Struts到JSF/Tapestry
    敏捷开发
    barcode制作条形码及破解
  • 原文地址:https://www.cnblogs.com/fpqi/p/9630453.html
Copyright © 2020-2023  润新知