postgresql超时的简单介绍

postgresql的连接超时问题,谁知道在连接字符串写什么关键字可以让连接永不超时

NpgsqlConneciton, NpgsqlCommand都有CommandTimeout属性值,单位为毫秒,默认值为90秒。如果命令执行时间超过CommandTimeout值,就会发生timeout错误,即执行时间超出设定时间。

创新互联公司是一家专注于成都网站设计、成都网站制作与策划设计,化隆网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:化隆等地区。化隆做网站价格咨询:028-86922220

所以,解决方式就是将CommandTimeout值设置足够大。

讨论PostgreSQL 和其他数据库的差异在哪里

PostgreSQL 近几年在全球的人气不断攀升,每年发布的版本都体现了社区的活力,9.6作为里程碑式的作品,更加有非常多的新特性加入。

例如

1. 多核并行计算

2. FDW 下推join, sort, where clause.

3. snapshot too old

4. 检查点平滑fsync

5. vacuum freeze加速

6. sharding base on fdw

7. 分词增强,支持相邻phrases搜索,据说比ES用起来还爽。

8. scale-up 多核增强, 72HT的机器tpc-b select only达到了180万的tps.

9. 推出等待事件统计信息

10. 支持多副本同步复制,满足金融级可靠性要求

11. 聚合复用SFUNC,多个聚合如果INIT和SFUNC一致的话,可以节约非常多的运算开销。

12. 事务idle超时机制

还有很多,可以在 release notes页面查找

除此之外,社区开发的一些特性也很吸引人,例如

1. rum插件,支持文本相似度查询,效率嘛10亿级别TOKEN,毫秒级响应,比搜索引擎还好用,具体见云栖社区的测试文章。

2. LLVM版本的PostgreSQL,对大数据量的表达式处理性能提升非常明显。也是大数据处理惯用的手法,例如Impala。虽然PostgreSQL的定位是OLTP,但不代表它不能处理OLAP的请求,而且Gartner去年就提出了HTAP的数据库概念,指即能处理TP有能处理AP的数据库产品,PostgreSQL的特性可见一斑。

3. 10.0版本已经加入的聚合算子下推,你是不是开始浮想联翩了呢?

更多的插件可以到github , pgxn.org , pgfoundry ,

idle in transaction 怎么处理

引发 idle in transaction 的原因很多,例如应用代码中忘记关闭已开启的事务,或者系统中存在僵死进程等,曾经看到过某个库中的 idle in transaction 进程存在一年有余,这类进程严重危害了数据库的安全,例如它会阻止 VACUUM 进程回收记录,造成表数据膨胀,同时它有可能引起整个 PostgreSQL 数据库 Transaction ID Wraparound 的风险。

--修改 postgresql.conf 以下参数

idle_in_transaction_session_timeout = 20000

备注:参数单位为毫秒,这里设置 idle in transaction 超时空闲事务时间为 20 秒。

--重载配置文件

[pg96@db1 pg_root]$ pg_ctl reload

server signaled

备注:此参数修改后对当前连接依然生效,应用不需要重连即能生效。

--开启会话一:模拟一个事务

[pg96@db1 ~]$ psql francs francs

psql (9.6beta1)

Type "help" for help.

francs= begin;

BEGIN

francs= select 1;

?column?

----------

1

(1 row)

事务中,不提交也不回滚。

postgresql如何备份数据库

postgresql中可以使用pg_dump来备份数据库。pg_dump是用于备份PostgreSQL数据库的工具。它可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。

用法:

pg_dump [选项]... [数据库名字]

一般选项:

-f, --file=FILENAME output file or directory name

-F, --format=c|d|t|p output file format (custom, directory, tar, plain text)

-v, --verbose 详细模式

-Z, --compress=0-9 被压缩格式的压缩级别

--lock-wait-timeout=TIMEOUT 在等待表锁超时后操作失败

--help 显示此帮助信息, 然后退出

--versoin 输出版本信息, 然后退出

示例:

备份数据库,指令如下:

pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak

开始-运行-cmd 弹出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:

cd C:Program FilesPostgreSQL9.0bin

最后执行备份指令:

pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak

指令解释:

pg_dump 是备份数据库指令,164.82.233.54是数据库的ip地址(必须保证数据库允许外部访问的权限哦~),当然本地的数据库ip写 localhost;

postgres 是数据库的用户名;databasename 是数据库名。

意思是导出到C:databasename.bak文件里,如果没有写路径,单单写databasename.bak文件名,那么备份文件会保存在C: Program FilesPostgreSQL9.0bin 文件夹里。

推荐学习《Python教程》。


新闻名称:postgresql超时的简单介绍
分享路径:http://scyanting.com/article/dsdgisi.html