zoukankan      html  css  js  c++  java
  • PostgreSQL 备份与恢复

    PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),
     
    其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_dump,psql。
     在数据库的安装目录下,如:C:Program FilesPostgreSQLin文件夹,会看到不少的exe文件,这就是PostgreSQL内置的工具了。里面会找到 pg_dump.exe,psql.exe两个文件。我们怎么用他们?
    用法:
    备份数据库,指令如下:
    pg_dump -h 164.82.233.54 -U postgres databasename > C:databasename.bak
    开始-运行-cmd 弹出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:
    cd C:Program FilesPostgreSQL9.0in
    最后执行备份指令:  
    pg_dump -h 164.82.233.54 -U postgres databasename > C:databasename.bak
     
     
    恢复数据库
    例:c:pgsqlin  pg_restore -h localhost -p 5432 -U postgres -d yy_ly -Fc "f:yy_ly.dump"
     -h 服务器地址
    -p 端口号
    -U 用户号
    -d 数据库名字 database
    -F, --format=c|d|t       备份文件格式(应该自动进行)  
         其中--format=c|d|t    c 代表定制custor   d 代表目录 t 代表 tar 压缩文件
    ========================================================
     
    D:Program Filespgsqlin>pg_restore --help
    pg_restore 从一个归档中恢复一个由 pg_dump 创建的 PostgreSQL 数据库.
     
    用法:
      pg_restore [选项]... [文件名]
     
    一般选项:
      -d, --dbname=名字        连接数据库名字
      -f, --file=文件名       输出文件名(- 对于stdout)
      -F, --format=c|d|t       备份文件格式(应该自动进行)
      -l, --list               打印归档文件的 TOC 概述
      -v, --verbose            详细模式
      -V, --version            输出版本信息, 然后退出
      -?, --help               显示此帮助, 然后退出
     
    恢复控制选项:
      -a, --data-only              只恢复数据, 不包括模式
      -c, --clean                  在重新创建之前,先清除(删除)数据库对象
      -C, --create                 创建目标数据库
      -e, --exit-on-error          发生错误退出, 默认为继续
      -I, --index=NAME             恢复指定名称的索引
      -j, --jobs=NUM               执行多个并行任务进行恢复工作
      -L, --use-list=FILENAME      从这个文件中使用指定的内容表排序
                                   输出
      -n, --schema=NAME            在这个模式中只恢复对象
      -N, --exclude-schema=NAME    不恢复此模式中的对象
      -O, --no-owner               不恢复对象所属者
      -P, --function=NAME(args)    恢复指定名字的函数
      -s, --schema-only            只恢复模式, 不包括数据
      -S, --superuser=NAME         使用指定的超级用户来禁用触发器
      -t, --table=NAME             恢复命名关系(表、视图等)
      -T, --trigger=NAME           恢复指定名字的触发器
      -x, --no-privileges          跳过处理权限的恢复 (grant/revoke)
      -1, --single-transaction     作为单个事务恢复
      --disable-triggers           在只恢复数据的过程中禁用触发器
      --enable-row-security        启用行安全性
      --if-exists                  当删除对象时使用IF EXISTS
      --no-comments                不恢复注释
      --no-data-for-failed-tables  对那些无法创建的表不进行
                                   数据恢复
      --no-publications            不恢复发行
      --no-security-labels         不恢复安全标签信息
      --no-subscriptions           不恢复订阅
      --no-tablespaces             不恢复表空间的分配信息
      --section=SECTION            恢复命名节 (数据前、数据及数据后)
      --strict-names               要求每个表和(或)schema包括模式以匹配至少一个实体
      --use-set-session-authorization
                                   使用 SESSION AUTHORIZATION 命令代替
                                   ALTER OWNER 命令来设置所有权
     
    联接选项:
      -h, --host=主机名        数据库服务器的主机名或套接字目录
      -p, --port=端口号        数据库服务器的端口号
      -U, --username=名字      以指定的数据库用户联接
      -w, --no-password        永远不提示输入口令
      -W, --password           强制口令提示 (自动)
      --role=ROLENAME          在恢复前执行SET ROLE操作
     
    选项 -I, -n, -N, -P, -t, -T, 以及 --section 可以组合使用和指定
    多次用于选择多个对象.
     
    示例:
    D:Program Filespgsqlin>pg_restore -h localhost -p 5432 -U postgres -d yy_ly -Fc "f:yy_ly.dump"
     
       一、 备份:
     
    导出命令:pg_dump [OPTION]… [DBNAME]
    查看使用帮助:pg_dump –help
    主要参数解释:
     
    关键字    说明(默认值)
    -h, –host=HOSTNAME    数据库服务器IP
    -p, –port=PORT    数据库服务器端口号
    -U, –username=NAME    用户名
    -W, –password    密码
    -F, –format=c|t|p    输出文件格式(custom,tar,plain text)
    -v, –verbose    详细信息模式,会显示备份时的信息
    -f, –file=FILENAME    输出文件名
    -b, –blobs    在dump文件中包含大对象
     
     
    活到老,学到老。
  • 相关阅读:
    四级英语day9
    123
    像程序员一样思考
    Kali
    OS X
    Effective Java
    DHU ACM OJ
    Ambari
    Hadoop
    Hadoop2
  • 原文地址:https://www.cnblogs.com/lrzy/p/14662976.html
Copyright © 2011-2022 走看看