zoukankan      html  css  js  c++  java
  • 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进行数据库的迁移,但是不能对单独的数据表进行操作。

  • 相关阅读:
    Oracle SQL语句收集
    SqlParameter In 查询
    SQL 性能优化
    Entity Framework
    【XLL API 函数】 xlfSetName
    【XLL API 函数】xlfUnregister (Form 2)
    【XLL API 函数】xlfUnregister (Form 1)
    【Excel 4.0 函数】REGISTER 的两种形式以及VBA等效语句
    【Excel 4.0 函数】REGISTER
    【Bochs 官方手册翻译】 第一章 Bochs介绍
  • 原文地址:https://www.cnblogs.com/fpqi/p/9630453.html
Copyright © 2011-2022 走看看