我们在windows下有一个postgres-databse,也就是版本9.1。 从那里我们要转储的数据和导入Linux的服务器,运行Postgres 8.4。 数据包括Postgis的空间数据。 问题是,转储不会导入,因为它使用了像'CREATE EXTENSION ..'这样的旧Postgres无法理解的命令。 有没有办法在这些数据库之间传输数据?
我有标准的“开箱即用”安装 Linux version 3.0.1.stk64 ([email protected]) (gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) ) #1 SMP Sat Aug 13 12:53:46 EDT 2011 它有安装postgresql 8.4(启动脚本) /etc/init.d/postgresql 数据目录 /etc/postgresql/8.4/main/ 我的问题是,有时内核决定在内存不足的时候杀掉一些Postgresql进程。 我想告诉内核,不应该selectPostgresql被杀死。 我从postgresql文档( http://www.postgresql.org/docs/9.1/static/kernel-resources.html )中echo -17 > /proc/self/oom_adj可以使用命令行echo -17 > /proc/self/oom_adj来避免kill。 我试图添加这个命令行到/etc/init.d/postgresql脚本,但不知道该把它放在哪里。 任何指针如何去呢? scipt( /etc/init.d/postgresql )的方式是: #!/bin/sh set -e ### BEGIN INIT INFO # Provides: postgresql # Required-Start: […]
我试图在Windows 2008 R2 64位机器上安装Postgres ODBC 32bit驱动程序。 安装完成后,没有错误,我去ODBC面板,在/ syswow64文件夹下的32位版本,并尝试添加驱动程序,从列表中selectPostgres驱动程序,但我得到一个错误126,说他找不到司机在指定的path。 问题是他显示的path是驱动程序的确切path,我在寄存器(在HKLM \ SOFTWARE \ Wow6432Node \ ODBC \ ODBCINST.INI \ location)上进行了双重检查,并且在那里也很好。 technet上的另外几个人也有同样的问题。 有没有人遇到过这个? 任何想法将不胜感激。 编辑:驱动程序在我的win7 x64testing机器上工作正常,这种行为只发生在服务器上。
我的研究表明,现代文件系统(ext4,xfs)的标准和最大(内核限制)块大小都是4KB。 但是, AWS允许IO的操作大到256KB,并说 对于32 KB或更小的I / O操作,只要您驱动足够的I / O来保持驱动器繁忙,则应该会看到已设置的IOPS数量。 对于较小的I / O操作,甚至可能会看到IOPS值高于您设置的IOPS值(在客户端测量时),这是因为客户端可能会将多个较小的I / O操作合并为一个较小的数字大块。 Linux在哪里暴露和/或允许configuration“设备块大小?” 当说一个在postgres(8KB块大小)的全表扫描时,你可以在哪里看到和/或configuration操作系统问题的“IO操作”的大小?
我收到错误 错误:无法写入临时文件的块3478284:设备上没有剩余空间 在运行以下查询时: INSERT INTO summary SELECT t1.a, t1.b, SUM(t1.p) AS p, COUNT(t1.*) AS c, t1.d, t1.r, DATE_TRUNC('month', t1.start) AS month, t2.t AS t, t2.h, t2.x FROM raw1 t1, raw2 t2 WHERE t1.t2_id=t2.id AND (t2.t<>'a' OR t2.y) GROUP BY month, t, a, b, d, r, h, x 表t1非常大,表t2非常大 Caused by: org.postgresql.util.PSQLException: ERROR: could not write […]
我有一个名为mydb_user的PostgreSQL用户,他被授予了mydb_dev的所有权。 mydb_user已经有权删除数据库,但是我希望他能够在删除它之后再次创build数据库。 如果可能的话,我希望他只能再次创build一个同名的数据库(mydb_dev),但是如果有必要,我会解决让他创build一个任何名称的数据库。
我注意到PostgreSQL和MySQL默认有100个客户端连接限制。 我想知道是否应该把它关掉,因为Web服务器在同一个盒子上,我只有大约20个PHP进程需要连接。 如果这个设置匹配或者超过了将要尝试连接的进程的数量?
我正在升级MacBook Pro(我的开发机器)上的Postgres.app,并在运行时遇到错误: pg_upgrade -b /Users/foo/Library/PostgreSQL/9.1/bin/ -B /Applications/Postgres.app/Contents/MacOS/bin/ -d /Users/foo/Library/Application\ Support/Postgres/var-9.1/ -D /Users/foo/Library/Application\ Support/Postgres/var 我得到的错误: lc_collate cluster values do not match: old "en_US", new "en_US.UTF-8" 我该如何纠正? 注: 我曾经有Postgres.app运行9.1,但我覆盖它。 我应该读/遵循的方向是: 升级Postgres.app 。 所以旧的bin不见了,但是我仍然有数据目录。 相反,我下载了Postgres 9.1并将其安装在其他地方,以便使用bin目录升级并将我的数据移动到新的Postgres。
我注意到,我的AWS服务器偶尔会开始使用一堆CPU没有特别的原因,看起来像这样: 注意到它不是在特定的时间发生的,而是有一个非常确定的模式。 它持续不到一个小时。 在这种情况下对机器进行远程处理总是会使其停止发生。 将该帐户永久login允许我捕获更细粒度的CPU使用情况跟踪。 它看起来像这样: 那就对了; 实际使用该CPU的进程不在列表中。 相反,它们总是出现和消失。 ProcMon显然是这项工作的工具,所以我抓住了一个痕迹。 这是我发现的: 还有Postgres参与: 但是,所有的CPU使用率是由Winlogon / LogonUI / etc: 以下是这个过程中的一个简短的过程开始和结束事件摘录: 请注意,postgres不与每个smss / winlogon / etc的启动/停止交错,但只有其中一些。 任何想法,为什么发生这种情况,以及如何预防呢?
在使用Ubuntu 12.04 LTS映像的Azure上,我们正在尝试更改Postgres 9.3的默认数据和日志文件path,并且在辅助驱动器/mnt/pgdata上首次初始化它们。 我们已经从Postgres 9.3通过apt-get进行全新安装的angular度出发了。 我们已经停止了postgres: sudo service postgresql stop 。 我们试着运行pg_createcluster 以下只显示帮助/手册页。 可能是因为它缺less版本和名称参数。 pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log –start-conf auto 即使在/mnt/pgdata没有任何内容,以下结果将显示“错误:集群configuration已经存在”。 pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log –start-conf auto 我们对Linux一般都比较陌生,所以请具体回答一下。 另外,我们有以下问题: 可以使用直接安装path还是使用符号链接更好? 还有什么我们需要做的或改变,以设置默认的端口上的这些默认的数据目录的Postgres 9.3,并自动启动与服务器? 任何其他build议?