美文网首页
Linux下PostgreSql备份和恢复

Linux下PostgreSql备份和恢复

作者: Aaha | 来源:发表于2022-06-20 15:04 被阅读0次
    1. 环境

    OS版本:centos
    数据库版本:postgreSql 9.6+ 所有版本

    2. 备份数据库

    进入postgreSql安装目录的bin文件夹下,使用pg_dump工具进行备份。

    a. 备份整个数据库
    # cd /usr/pgsql-14/bin
    # ./pg_dump -h 192.168.1.16  -p 5432 -U sa -O -W -d mydb  -f ~/mydb_20220601.sql
    
    b. 备份指定模式下的数据
    # ./pg_dump -h 192.168.1.16  -p 5432 -U sa -O -W -d mydb -n schema1 -f ~/mydb_20220601.sql
    
    c. 备份指定的表
    //导出表结构和数据
    # ./pg_dump -h 192.168.1.16  -p 5432 -U sa -O -d mydb -t  schema1.t_table1  -f  table1.sql
    
    //只导出数据
    # ./pg_dump -h 192.168.1.16  -p 5432 -U sa -O -a -d mydb -t  schema1.table1  -f  table1.sql 
    
    //表名存在大小写(包括全大写)的情况
    # ./pg_dump -h 192.168.1.16  -p 5432 -U sa -O -a -d mydb -t  schema1.\"t_Table1\"  -f  table1.sql
    
    d. 参数详情
    // -h: 数据库IP(192.168.1.16)
    // -p: 数据库端口(5432)
    // -U: 用户名(sa)
    // -O: 导出文件不指定owner(无值)
    // -W: 需要输入密码(无值。貌似不添加该项仍然需要输入密码)
    // -a: 只导出数据(无值。如果要导出建表语句等,不要设置该选项)
    // -d: 数据库名(mydb)
    // -n: 模式名(schema1。不添加该项则表示所有模式都备份)
    // -f: 导出文件路径和名称(~/mydb_20220601.sql)
    // -t: 表名(schema1.t_web。如果不输入模式名,一般默认模式为public)
    
    3. 恢复数据库

    进入postgreSql安装目录的bin文件夹下,使用psql工具进行数据恢复。

    a. 如果恢复数据存在模式改变(不存在则忽略此步骤)

    修改备份文件,指定新模式名和所属用户。
    打开mydb_20220601.sql ,找到以下几行,将模式schema1和用户sa分别修改成新的模式名和用户名。如果导出的时候添加了-O选项,则备份文件里面没有OWNER。

    CREATE SCHEMA schema1 ;
    ALTER SCHEMA schema1 OWNER TO sa;
    SET search_path = schema1 , pg_catalog;
    
    b. 导入备份文件
    # ./psql -h 192.168.1.17  -p 5432 -U sa2 -d mydb2 -W -f  ~/mydb_20220601.sql
    
    c. 参数详情

    参考上文pg_dump。

    相关文章

      网友评论

          本文标题:Linux下PostgreSql备份和恢复

          本文链接:https://www.haomeiwen.com/subject/rrdjvrtx.html