's Blog

PSQ实践

  • tk.mybatis
    // 设置查询的最大结果数
    // 可以通过追加sql语句的形式 如下添加。
    // 类似的需求注意一下sql关键字的顺序
    Example example = new Example(*.class);
    example.setOrderByClause("driver_code asc limit " + maxCount);
  • pg_dump
    • 备份
      • # 授权target文件夹 postgres用户的操作权限
        chown postgres:postgres /target
        # 切换postgres用户
        su - postgres
        # 开始备份
        cd /opt/fsepv13server64/bin
        # database 替换为要操作的数据库
        # -s 备份数据结构 不备份数据
        ./pg_dump -Fp -s database > /target/back.sql
    • 还原
  • pg_ctl
    • 重新加载postgres配置
      pg_ctl reload -D [psql的数据目录:/inst/data]
  •  COPY
    • 导入
    • 导出 
      • 1. 二进制格式
        # 导出结果集为二进制数据
        # 在 PostgreSQL 7.4 中 COPY BINARY 的文件格式发生了变化。新格式由一个文件头、零或多条行、文件尾组成。文件头和数据现在是网络字节顺序。
        # 文件头由 15 个字节的固定域组成,后面跟着一个变长的头扩展区。
        # 文件头:11字节的序列 PGCOPY\n\377\r\n\0(请注意字节零是签名必须的一部分)
        \copy (select "template" from table where ...) to /target/a.data with (FORMAT binary)
      • 2.二进制格式
        # 导出
        psql -h 数据库IP地址 -p 端口 -d 数据库名称 -X -c "COPY ( SELECT xxx FROM xxxx where xxxx) TO STDOUT WITH BINARY" > filename.dat
        # 导入
        copy  binary table_name(字段名称,,,)  from 'filename.dat';
        # 官网定义:
        COPY table_name [ ( column_name [, ...] ) ] FROM { 'filename' | PROGRAM 'command' | STDIN } 
        [ [ WITH ] ( option [, ...] ) ]
            [ WHERE condition ]
        
        COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } TO { 'filename' | PROGRAM 'command' | STDOUT }
            [ [ WITH ] ( option [, ...] ) ]
            
        #where option can be one of:
        FORMAT format_name
        FREEZE [ boolean ]
        DELIMITER 'delimiter_character'
        NULL 'null_string'
        HEADER [ boolean | MATCH ]
        QUOTE 'quote_character'
        ESCAPE 'escape_character'
        FORCE_QUOTE { ( column_name [, ...] ) | * }
        FORCE_NOT_NULL ( column_name [, ...] )
        FORCE_NULL ( column_name [, ...] )
        ENCODING 'encoding_name'
  • 异常解决
    • JIT相关
      Cause: org.postgresql.util.PSQLException: ERROR: could not load library "/opt/fsepv13server64/lib/llvmjit.so": libLLVM-10.so: cannot open shared object file: No such file or directory
      原因:没有llvmjit,而jit是on
      解决:设置psql数据目录下的postgresql.conf
      jit=off
posted @ 2022-01-26 12:55  Limit℃  阅读(155)  评论(0)    收藏  举报