
PostgreSQL
文章平均质量分 72
lk_db
这个作者很懒,什么都没留下…
展开
-
PG缓存理解
并不仅仅shared_buffers内存块独自负责缩短响应时间,OS的缓存也通过保持大量的数据随时可用,进而大大缩短了响应时间。这两个缓存一起明显降低了实际读取次数和物理读取的容量。除了这两个级别的缓存之外,还存在磁盘控制器缓存、磁盘驱动器缓存等。这些缓存通过减少所需的物理I/O来提高性能。巨大缓存也存在风险,比如当大量数据从缓冲区写入硬盘时所产生的I/O瓶颈。原创 2017-09-13 21:34:49 · 1247 阅读 · 1 评论 -
HGDB更改参数确认是否需要重启
在文件中更改配置后,通过重新载入该配置文件可以使参数生效;重新加载可以使用如下命令:$ pg_ctl reload或者在psql中执行:select pg_reload_conf();通过查询pg_settings,可以了解使参数更改生效是否需要服务器重启:highgo=# select distinct context from pg_settings; con原创 2017-09-13 21:36:53 · 611 阅读 · 0 评论 -
pg_dump不能导出访问权限 pg_dumpall可以导出访问权限
pg_dump导出,psql导入:[highgo@hg lib]$ ./pg_dump -h localhost -U highgo --port=5866 -f my_dump.sql --inserts[highgo@hg lib]$ psql psql (4.0.0)Type "help" for help.highgo=# highgo=# \l原创 2017-09-13 21:39:55 · 4207 阅读 · 0 评论 -
pg_dump导出psql导入举例
备份:[postgres9.6@db bin]$ pg_dump -h localhost -U postgres9.6 test > /tmp/test.bak恢复: postgres# drop database test;DROP DATABASE[postgres9.6@db tmp]$ psql -h localhost -U postgres9.6 -d test原创 2017-09-13 21:46:22 · 6840 阅读 · 1 评论 -
pg_dump与pg_dumpall的区别
pg_dump支持指定所要备份的对象:可以单独备份表、schema或者database;pg_dumpall仅支持导出全库数据。pg_dump可以将数据备份为SQL文本文件格式,也支持备份为用户自定义的压缩格式或者TAR包格式。在恢复数据时,对压缩格式和TAR包格式的备份文件可以实现并行恢复,该特性是从8.4版开始支持的。pg_dumpall仅可以将当前PostgreSQL服务实例中所有d原创 2017-09-13 21:49:01 · 4389 阅读 · 0 评论 -
pg_dump与pg_dumpall的用法
pg_dump仅导出数据库结构:pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1备份某个database,备份结果以自定义压缩格式输出:pg_dump -h localhost -p 5432 -U someuser -F c -b -v -f mydb.backup mydb备份某个database,备份结果以SQL文本方式输出原创 2017-09-13 21:50:01 · 12320 阅读 · 2 评论 -
pg_dump语法
D:\HighGo DataBase\bin>pg_dump --helppg_dump 把一个数据库转储为纯文本文件或者是其它格式.用法: pg_dump [选项]... [数据库名字]一般选项: -f, --file=FILENAME 输出文件或目录名 -F, --format=c|d|t|p 输出文件格式 (定制原创 2017-09-13 21:51:28 · 3480 阅读 · 0 评论 -
pg_restore及psql恢复数据的用法
一、使用psql恢复SQL文本格式的数据备份(即一个包含SQL脚本的文本文件)恢复一个SQL备份文件并忽略过程中可能发生的所有错误:psql -U postgres -f myglobals.sql恢复一个SQL备份文件,如遇任何错误则立即停止恢复:psql -U postgres --set ON_ERROR_STOP=ON -f myglobals.sql将SQL原创 2017-09-13 21:53:44 · 30892 阅读 · 2 评论 -
pg基于时间点的恢复(PITR)
[postgres9.6@db ~]$ psql postgres postgres9.6Null display is "NULL".Pager is always used.Timing is on.psql (9.6.1)Type "help" for help.postgres9.6@[local]:5432 postgres# show wal_level;原创 2017-09-13 21:55:20 · 831 阅读 · 0 评论 -
Postgres物化视图使用
创建、刷新、删除物化视图:一、语法CREATE MATERIALIZED VIEW table_name [ (column_name [, ...] ) ] [ WITH ( storage_parameter [= value] [, ... ] ) ] [ TABLESPACE tablespace_name ] AS query [原创 2017-09-14 22:37:24 · 3367 阅读 · 0 评论 -
connection limit仅对非superuser起作用,对superuser不起作用
highgo=# create database test connection limit 2;CREATE DATABASEhighgo=# \c testYou are now connected to database "test" as user "highgo".test=# test=# select current_database(); current_d原创 2017-09-14 22:47:09 · 800 阅读 · 0 评论 -
highgo database中\copy可以导出二进制文件(图片等)
[highgo@sourcedb ~]$ ll /home/highgo/desk.jpg -rwxrwxrwx 1 highgo highgo 72902 Jun 21 15:29 /home/highgo/desk.jpg[highgo@sourcedb ~]$ xxd -p /home/highgo/desk.jpg | tr -d '\n' > /tmp/image.hex原创 2017-09-14 22:49:13 · 3673 阅读 · 0 评论 -
postgres drop table后会删除物理文件
test=> select pg_relation_filepath('test'); pg_relation_filepath ---------------------- base/16384/16394(1 row)[postgres9.6@db 16384]$ pwd/home/postgres9.6/data/base/16384[postgres9.6@原创 2017-09-14 22:50:58 · 980 阅读 · 0 评论 -
HGDB与oracle中dual的区别
Oracle dual对象是表:SQL> select owner,OBJECT_TYPE from dba_objects where OBJECT_NAME = 'DUAL';OWNER OBJECT_TYPE------------------------------ -------------------SYS原创 2017-09-14 22:52:02 · 349 阅读 · 0 评论 -
Postgres中FSM及VM文件说明
PostgreSQL使用一个名为FSM的文件记录每个数据块的空闲空间。FSM的英文是Free Space MapFSM文件并不是在闯进表文件时就立马创建的,而是等到需要时才会创建,也就是执行VACUUM操作时,或者是为了插入行而第一次查询FSM文件时才创建。PG中更新、删除某行后,该行并不会马上从数据块中清除掉,而是需要等执行VACUUM命令时再清理。为了能加快VACUUM清理原创 2017-09-14 22:54:09 · 4167 阅读 · 1 评论 -
HGDB psql中\g执行上一条SQL
\g执行上一条sql语句:highgo=# select version(); version ------------------------------------ HighGo Database 3.1.4 Linux 64-bit(1 row)highgo=# \g vers原创 2017-09-14 22:55:37 · 625 阅读 · 0 评论 -
postgres HBA基于主机的认证
HBA的含义host-based authentication 基于主机的认证initdb初始化数据库目录时,会生成一个默认的pg_hba.conf文件。每条记录声明一种连接类型、一个客户端IP地址范围、一个数据库名、一个用户名字,以及对匹配这些参数的连接所使用的认证方法。原创 2017-09-14 22:56:58 · 354 阅读 · 0 评论 -
从HGDB 1.3版本开始,瀚高数据库中添加了dual表
从HGDB 1.3版本开始,瀚高数据库中添加了dual表:highgo=# select version() from dual; version ------------------------------------ HighGo Database 3.0.2 Linux 64-bit(1 row)highg原创 2017-09-14 22:58:30 · 811 阅读 · 0 评论 -
HGDB修改数据库用户访问权限举例
highgo=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+--------+----------+-------------+----------原创 2017-09-13 21:57:01 · 297 阅读 · 0 评论 -
瀚高数据库(HGDB)不同schema间的数据迁移
本实验将将public.test表导入到schema lk下1、验证public.test表存在及其表中数据[highgo@sourcedb ~]$ psql -d highgo -U highgopsql (3.1.4)Type "help" for help.highgo=# \dt List of relations Schema | Na原创 2017-09-15 14:19:08 · 2103 阅读 · 0 评论 -
瀚高数据库(HGDB 3.1.4)常用管理命令
一、数据库常用命令1、查看数据库版本highgo=# select kernel_version(); kernel_version -------------------------原创 2017-09-15 14:25:15 · 10891 阅读 · 0 评论 -
HGDB瀚高数据库各进制之间的转换
highgo=# select version(); version ------------------------------------ HighGo Database 3.1.4 Linux 64-bit(1 row)十进制转二进制示例:highgo=# select 85::bit(8); bit原创 2017-09-15 14:26:32 · 917 阅读 · 0 评论 -
HGDB(HighGo Database)高版本支持blob和clob类型
瀚高数据库:highgo=# select version(); version ------------------------------------ HighGo Database 3.1.4 Linux 64-bit(1 row)highgo=# create table b (ZP blob);CREATE原创 2017-09-15 14:28:37 · 525 阅读 · 0 评论 -
HGDB默认支持xml数据类型;Postgresql如若使用xml需在编译时指定
highgo=# select version(); version ------------------------------------ HighGo Database 3.1.4 Linux 64-bit(1 row)highgo=# select xml 'hello world ';原创 2017-09-15 14:30:20 · 942 阅读 · 0 评论 -
HGDB不知道数据库用户密码的情况下,新库使用原密码创建该用户(适用于postgres)
通过如下方式先查询角色及密码:highgo=# \d pg_authid Table "pg_catalog.pg_authid" Column | Type | Modifiers ----------------+--------------------------+----------- ro原创 2017-09-15 14:39:45 · 403 阅读 · 0 评论 -
HGDB新版本开始兼容oracle varchar2类型,作用pg里的varchar类型支持一致
HGDB新版本开始兼容oracle varchar2类型,作用pg里的varchar类型支持一致HGDB 1.3.1还不支持varchar2类型:select version();"HighGo Database 1.3.1 windows 64-bit"create table test (name varchar2(10);ERROR: syntax error原创 2017-09-15 14:42:48 · 817 阅读 · 0 评论 -
HGDB允许在root用户执行psql命令连接使用数据库
首先在root用户.bash_profile中加入环境变量信息:[root@ldap ~]# cat .bash_profile # .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi# User specific environment原创 2017-09-15 14:48:49 · 2048 阅读 · 0 评论 -
HGDB重建模板数据库的方法(适用于PG)
highgo=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------+--------------+----------+-----原创 2017-09-15 14:50:35 · 283 阅读 · 0 评论 -
initdb -s参数仅输出错误日志或告警信息
[highgo@db1 1]$ pg_ctl initdb -s -D /data/highgo/4.1.0/1/WARNING: enabling "trust" authentication for local connectionsYou can change this by editing pg_hba.conf or using the option -A, or--au原创 2017-09-15 14:52:04 · 1319 阅读 · 0 评论 -
HGDB基于时间点的恢复
本示例以Windows环境下的HighGo Database v4.1.1演示为例:数据库安装目录为:D:\HighGo\Database\4.1.11、修改配置文件 postgresql.confarchive_mode = onarchive_directory = 'D:\\BACKUP\\ARCHIVELOG'wal_level = archive因此环原创 2017-09-18 14:59:51 · 550 阅读 · 0 评论 -
Linux HGDB执行pg_ctl start或stop时显示?解决办法
在Linux系统下使用瀚高数据库,经常会出现汉字显示?的现象,解决办法如下:highgo=# select version();version----------------------------------------------------------------------------------------PostgreSQL 9.5.7 on x86_64-pc-l原创 2017-09-19 13:27:33 · 1018 阅读 · 0 评论 -
PG date类型插入数据说明
datastyle格式为DMY或者MDY时,允许以YMD的格式插入数据;但datastyle格式为YMD时,不允许以DMY或者MDY的格式插入数据;postgres9.6@[local]:5432 postgres# create table t (coll date);CREATE TABLETime: 10.555 mspostgres9.6@[local]:5432原创 2017-09-19 13:29:35 · 8616 阅读 · 1 评论 -
pg psql中切换current_user
test=# \cYou are now connected to database "test" as user "postgres9.6".test=# select current_user,session_user; current_user | session_user --------------+-------------- postgres9.6 | pos原创 2017-09-19 13:31:02 · 683 阅读 · 0 评论 -
PG update操作说明
PG update并不改动原来的数据,而是另复制出一个新行,修改都在新行上,事物不提交,别人是看不到这条数据的。由于旧的那行数据没有变化,在修改过程中,读数据的人仍然可以读到旧的数据。“多版本”原创 2017-09-19 13:32:36 · 4373 阅读 · 0 评论 -
pg_ctl stop -m fast停止时的异常后台日志
2017-07-19 16:03:29.201 CST日志: 接到到智能 (smart) 停止请求2017-07-19 16:03:29.201 CST日志: 正在关闭autovacuum启动进程2017-07-19 16:04:00.759 CST日志: 接收到快速 (fast) 停止请求2017-07-19 16:04:00.759 CST日志: 中断任何激活事务201原创 2017-09-19 13:33:52 · 1907 阅读 · 0 评论 -
pg_dump使用注意事项
pg_dump使用注意事项:如果同时指定了-n和-N,那么将只转储匹配-n但不匹配-N的模式。如果出现-N而不出现-n,那么匹配-N的模式将不会被转储。如果同时指定了-t和-T,那么将只转储匹配-t但不匹配-T的模式。如果出现-T而不出现-t,那么匹配-T的模式将不会被转储。-v或--verbosr:执行过程中打印更详细的信息。使用此选项后,pg_dump将输出详细的对象评注及原创 2017-09-19 13:37:21 · 4003 阅读 · 0 评论 -
HGDB pg_xlog个数
HGDB 4.1.0之前的版本:pg_xlog个数一般在(2+checkpoint_completion_target)*checkpoint_segment+1左右但是高并发环境下如果checkpoint_segment设置比较大,且checkpoint较少被触发的时候,pg_xlog下会存有很多的事务日志,严重会耗掉磁盘存储,所以设置checkpoint_segment的大小要视磁盘容量和原创 2017-09-19 13:40:08 · 528 阅读 · 0 评论 -
PG-HGDB 把WAL位置转换成WAL文件名和偏移量
在主库上把WAL位置转换成WAL文件名和偏移量highgo=# select pg_switch_xlog(); pg_switch_xlog ---------------- 0/18F7350(1 row)highgo=# select * from pg_xlogfile_name_offset('0/18F7350'); file_name原创 2017-09-19 13:41:38 · 432 阅读 · 0 评论 -
HGDB表空间之间移动数据
一、迁移单个表至另一个表空间highgo=# create tablespace test location '/home/highgo/test';CREATE TABLESPACEhighgo=# select * from pg_tablespace; spcname | spcowner | spcacl | spcoptions ------------+---原创 2017-09-19 13:45:00 · 494 阅读 · 0 评论 -
事物默认自动提交AUTOCOMMIT
修改为非自动提交的方式有两种:1、# \set AUTOCOMMIT off --注意此处的AUTOCOMMIT要大写,小写无效highgo=# \echo :autocommit:autocommithighgo=# \echo :AUTOCOMMITonhighgo=# \set autocommit offhighgo=# \echo :AUTOCOMMIT原创 2017-09-11 22:37:17 · 1187 阅读 · 0 评论