我已经将 PostgreSQL 与 PGAdmin III 一起使用了一段时间,但一直困扰着我,有一个插件菜单选项是空的。我在谷歌上搜索了一些并在这里和那里找到了一个插件,但我想知道是否有我错过的存储库?
如果您不知道 repo 但知道其他插件,请也让我知道它们。
我正在从 postgres 8.4 升级到 9.0 并查看手册,看起来这是我唯一的选择:
pg_dumpall -p 5432 | psql -d postgres -p 6543
Run Code Online (Sandbox Code Playgroud)
这意味着我需要停止对数据库的任何写入并等待传输几 GB 的数据。
有没有更好的方法可以使用预写日志 (WAL) 将任何新 SQL 重播到新数据库上?
请推荐一个工具来将 PostgreSQL 数据库逆向工程为实体关系图 (ERD) 或等效的 ??
理想情况下,我正在寻找一种易于使用的格式(SVG、PDF 或任何常见的 UML 文件格式)的简单 ERD 或 UML 类图。
到目前为止,我只为 MySQL 和 Windows 创建了软件,但这不是解决方案。
我最近使用 apt-get install 在 Ubuntu 10.0.4 上安装了 pg 8.4。
它将 pg 安装为一项服务,该服务在机器启动时启动。但是,我已经在我希望 postgres 使用的特定位置创建了一个数据库集群。
这是我如何创建集群的命令行输出:
username@jupiter:~$ sudo /usr/lib/postgresql/8.4/bin/initdb --encoding=UTF8 --pgdata=/mydata/pgdbdata/
initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.
username@jupiter:~$ /usr/lib/postgresql/8.4/bin/initdb --encoding=UTF8 --pgdata=/mydata/pgdbdata/
The files belonging to this database system will be owned by user "username".
This user must also own the server process.
The database cluster will be initialized with locale en_US.utf8.
The default text search …Run Code Online (Sandbox Code Playgroud) 我们正在使用 BTM 2.1.2 运行 Jetty 8.1.0。
我们使用 Postgres 作为我们的数据库。
一切都很好,除了当我们在某个表的主要=空的条件下运行任何查询时,服务器会失去与数据库的连接。以下是我们看到的异常:
org.postgresql.util.PSQLException:错误:整数的无效输入语法:“null”
at
...
...长堆栈转储随之而来...
...
2012 年 6 月 15 日下午 12:20:19 org.eclipse。 jetty.server.AsyncHttpConnection 句柄信息:EndPoint 不长进度:stack 100dump SCEP@162b333{l(/74.93.245.209:60506)<->r(/10ensues.99.21.87:80),d=true,open=true ,ishut=false,oshut=false,rb=false,wb=false,w=false,i=5r}-{AsyncHttpConnection@18fc7ca,g=HttpGenerator{s=3,h=-1,b=20909,c= -1},p=HttpParser{s=0,l=16,c=0},r=1} AsyncHttpConnection@18fc7ca,g=HttpGenerator{s=3,h=-1,b=20909,c=-1 },p=HttpParser{s=0,l=16,c=0},r=1 2012 年 6 月 15 日下午 12:20:19
org.eclipse.jetty.server.AsyncHttpConnection 句柄警告:关闭端点没有任何进展:200 SCEP@162b333{l(/74.93.245.209:60506)<->r(/10.99.21.87:80),d=true,open =true,ishut=false,oshut=false,rb=false,wb=false,w=false,i=5r}-{AsyncHttpConnection@18fc7ca,g=HttpGenerator{s=3
此事件后的任何查询均会因以下异常而中断
它发生在我们的生产服务器上!是什么导致了这个问题?
更新:
这是代码!
我知道我们不应该使用 primarykey = null 查询,因为 primary 永远不能为 null。但是它的参数和空验证被遗漏了!
令人惊讶的是,Jetty 6 与它配合得很好!即使在运行此查询之后,它也完全没有问题。它只是 Jetty 8-1-0,在运行此类查询时永久丢失数据库连接。直到我重新启动服务器
String query = "select * from table where primarykey="+parameter;
Statement lStatement = null;
Connection lConnection = null;
ResultSet lResultSet = …Run Code Online (Sandbox Code Playgroud) 我正在将几个巨大的 csv 文件导入一个表 - 所以我想知道如果我同时运行 COPY FROM 作业会发生什么?
我正在尝试使用switch2osm.org 上列出的 Ubuntu 包在 Ubuntu 12.04 机器上设置 OpenStreetMap 服务器。我最初使用仅限美国东北部的地图提取物安装并设置了所有内容,但现在我想安装整个地图星球。我下载了planet-latest.osm.bz2并osm2pgsql --slim -C 60000 planet-latest.osm.bz2以对数据库具有写权限的用户身份运行;这与之前安装 us-northeast.osm.pbf 的命令相同。第二天我回来发现这个命令似乎成功完成,但由于某种原因渲染守护进程没有从新数据生成新的图块。我尝试重新启动渲染,当没有效果时,我尝试使用sudo /etc/init.d/postgresql restart. 但是,服务器启动失败,日志中出现以下错误:
2012-07-13 18:54:59 UTC WARNING: page 1525147 of relation base/16385/477861 was uninitialized
2012-07-13 18:54:59 UTC WARNING: page 2247965 of relation base/16385/477861 was uninitialized
...500 more lines like this...
2012-07-13 18:54:59 UTC WARNING: page 2262926 of relation base/16385/477861 was uninitialized
2012-07-13 18:54:59 UTC PANIC: WAL contains references to invalid pages
2012-07-13 18:55:00 UTC LOG: startup process (PID 22826) …Run Code Online (Sandbox Code Playgroud) 今天我在恢复一个PostgreSQL数据库后发现一个奇怪的行为:所有serial字段默认值的模式都被修剪掉了。
例如:
CREATE TABLE testschema.testtable
(
id serial,
name character varying(255),
CONSTRAINT pk_testtable PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
;
SELECT a.attnum, n.nspname, c.relname, d.adsrc AS default_value
FROM pg_attribute AS a
JOIN pg_class AS c ON a.attrelid = c.oid
JOIN pg_namespace AS n ON c.relnamespace = n.oid
LEFT OUTER JOIN pg_attrdef AS d ON d.adrelid = c.oid AND d.adnum = a.attnum
WHERE a.attnum > 0
AND n.nspname = 'testschema'
AND c.relname = 'testtable'
Run Code Online (Sandbox Code Playgroud)
该 …
我有一个现有的 8.4 集群(名为main),我想升级到 9.1。但是,当我去升级它时,我收到一个错误,因为 9.1 已经有一个名为的集群main(显然是我执行 a 时创建的默认集群sudo apt-get install postgresql-9.1-postgis):
$ pg_upgradecluster 8.4 main
Error: target cluster 9.1/main already exists
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
删除默认的 9.1/主集群?如何?
重命名 9.1/主集群?如何?
Postgresql 默认main集群有什么特别之处吗?
Ubuntu 11.10 Oneiric、Postgresql 8.4.8 和 9.1.4
更新:我刚刚发现了这个AskUbuntu 问答,它说首先做一个pg_dropcluster --stop 9.1 main 我试过的,它奏效了。所以现在我想知道默认 9.1main集群中是否有任何数据、配置设置等可能会因为删除而丢失?
我想弄清楚如何在一个 sql 脚本中删除 PostgreSQL 上的多个数据库。我最好需要它在pgAdmin控制台中执行时和在psql命令行工具中使用时都能工作。当我做:
DROP DATABASE db1;
DROP DATABASE db2;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法从函数或多命令字符串执行 DROP DATABASE
有没有办法解决这个问题?即,有没有办法单独运行每个命令(比如在 MSSQL 上使用“GO”语句时),或者其他一些明智的方法来轻松删除多个数据库?我在开发过程中需要此功能用于维护脚本。
postgresql ×10
ubuntu ×4
pgadmin ×2
upgrade ×2
corruption ×1
erd ×1
import ×1
linux ×1
psql ×1
scripting ×1