我想保留两个具有相同模式的 PostgreSQL 数据库,但有一个从只保留一小部分实时数据的主数据库复制。
基本上,master 接收实时数据并删除时间窗口之外的旧数据,而复制的 slave 应该保留所有历史数据(至少达到磁盘的限制)。所以本质上,除了删除操作之外,从站应该复制主站。
任何“现成的”PostgreSQL 复制方法都可以做到这一点吗?
我在某些服务器上运行了2 个PostgreSQL实例。一个默认端口(5432)和端口5433.有些用户(和工艺)只需要进入二审(5433)其他实例上,我想设置它,这样,当这些用户使用的命令状psql或createdb在他们的 shell 中,它会自动将他们引导到正确的 Postgres 实例,而不是他们必须-p 5433随着每个命令一起输入。
我试图在 www.postgresql.org 上查找它,但找不到它……可能是我的错。有谁知道怎么做?
从 PostgreSQL 9.0 开始,每个大对象都有自己的访问权限,这些权限被授予:
GRANT { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
ON LARGE OBJECT loid [, ...]
TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
Run Code Online (Sandbox Code Playgroud)
SELECT 权限允许以只读模式打开对象,对于 UPDATE,文档说:
For large objects, this privilege allows writing or truncating the object.
Run Code Online (Sandbox Code Playgroud)
但是如果一个大对象属于user1,我找不到如何授予user2删除(lo_unlink)这个对象的权限。如果 user1 说GRANT UPDATE on LARGE OBJECT xyz TO user2;并且 user2 运行SELECT lo_unlink(xyz);,则会被拒绝: …
我已经安装了最新的稳定版 PostgreSQL v9.2,我想安装 PostGIS v2 扩展。
我已经找了3天了,但找不到。
然而,我确实找到了 PostGIS v2 for PostgreSQL v9.1,感谢这个网站:http : //linfiniti.com/2012/05/installing-postgis-2-0-on-ubuntu/
我是 Ubuntu 新手,我更习惯 Windows。
PostgreSQL v9.1 包不起作用。我在哪里可以获得正确的包裹?
我有一个tickets表id,我需要将它关联到一个查找表,其中该数据的对应项是另一个id受外部源控制的表。
tickets
- id
- sutff
lookup
- outside_data_id
- ticket_id
Run Code Online (Sandbox Code Playgroud)
我只需要知道关联是否存在(因此是lookup表)并且具有一对多的关系。我知道没有别的有关outside_data_id除了id本身和相关ticket_id。
此外,我不想更改tickets表格,因为这只会影响少量的ticket_id's。
outside_data_id = 1234
Run Code Online (Sandbox Code Playgroud)
可能与:
ticket_id = 321
ticket_id = 322
ticket_id = 900
Run Code Online (Sandbox Code Playgroud)
下面的查找表结构会起作用还是有更好的方法?
CREATE TABLE lookup
(
outside_data_id integer,
ticket_id integer
)
Run Code Online (Sandbox Code Playgroud) postgresql database-design clustered-index referential-integrity index-tuning
我正在开发一个 Web 应用程序,我计划将应用程序设置存储在数据库中的名称、值字段(一行 = 一个设置)中。
这些设置范围从目录路径到简单的是/否标志。显然,我无法将路径(字符串)存储到布尔字段中。
我唯一的选择是将值字段设为字符串,然后根据设置根据需要解释该值,还是有其他一些策略?
(我使用的是 PostgreSQL,但答案可能适用于任何数据库服务器。)
我们有一组失败的空间查询,我正在努力解决它们。我怀疑我们遇到了一些错误,但我想更好地确定一些事情,以确保并确保生成的错误报告既有用又定向到正确的一方(postgresql,postgis,或其他)。
有人对下一步有什么建议吗?
鉴于:PostgreSQL v9.1 从http://yum.postgresql.org安装在一个完整的 CentOS 5 补丁 32 位安装上
$ rpm -q postgresql91-server
postgresql91-server-9.1.6-1PGDG.rhel5
$ rpm -q geos
geos-3.3.5-1.rhel5
$ rpm -q proj
proj-4.7.0-1.rhel5
$ rpm -q postgis91
postgis91-1.5.5-1.rhel5
$ uname --kernel-name --kernel-release --kernel-version --machine --processor --hardware-platform --operating-system
Linux 2.6.18-308.16.1.el5PAE #1 SMP Tue Oct 2 22:49:17 EDT 2012 i686 i686 i386 GNU/Linux
$ cat /proc/meminfo | grep MemTotal
MemTotal: 5126968 kB
Run Code Online (Sandbox Code Playgroud)
涉及到三个表(为了便于阅读,名称已更改),它们都很小。
db=# select count(1), st_isclosed(the_geom) from table_1 group by st_isclosed(the_geom);
count | st_isclosed
-------+-------------
13268 | …Run Code Online (Sandbox Code Playgroud) 我不想知道所有数据类型,只想知道我的数据库中使用的所有数据类型。这个信息可以查询吗?
PostgreSQL 8.4 和 9.x 版本
我目前需要知道公共(和其他模式)中 200 多个表的所有数据类型
这是一道作业题。
对于以下事务,说明将在不降低数据库完整性的情况下最大化吞吐量的隔离级别。解释答案。
将 coursed_id = 'CPSC1350' 标识的课程从一个部门更改为另一个部门。
Courses 表包含有关课程的信息:课程 ID、名称、提供课程的部门、讲师的 ID 以及可以参加课程的最大学生人数 (max_size)。课程(coursed_id:string,cname:string,dept:string,instructor_id:string,max_size:integer) – 主键:coursed_id – 外键:instructor_id 引用 Instructors
假设使用 PostgreSQL。
我相信可以使用提交的读来完成事务,因为
SELECT陈述 我在正确的轨道上吗?
我在两个 postgres 服务器(主服务器:服务器 A,从服务器:服务器 B)之间进行了流式复制设置。我想知道当我触摸触发器文件并且从设备接管作为主设备时,引擎盖下实际发生了什么?我想知道的一件事是,在教程或文档中似乎没有人提到任何地方,如果我在完成后重新启动以前的奴隶(现在是主人)怎么办?事情不会变得一团糟,因为 .conf 文件仍然反映了旧的从站设置(例如 hot_standby = on)?在我可以安全地重新启动服务器之前,我应该更新那个 .conf 吗?
背景:我所处的情况让我想知道这一切是我需要更换我主控上的硬盘。这是我打算这样做的方式:
(顺便说一句。如果您对更好的工作流程有建议,请告诉我)
postgresql ×10
postgis ×2
command-line ×1
datatypes ×1
failover ×1
index-tuning ×1
optimization ×1
psql ×1
rdbms ×1
replication ×1
ubuntu ×1