我正在尝试连接到远程 psql 数据库。在我使用客户端的 IP 地址添加 pg_hba.conf 条目之前,我收到一条错误消息:
xdev@xdevbox:~$ psql -U postgres testdb -h 10.1.1.47
psql: FATAL: no pg_hba.conf entry for host "10.201.50.71", user "postgres", database "testdb", SSL off
Run Code Online (Sandbox Code Playgroud)
我使用信任设置添加了客户端的 IP。我还在服务器上的postgres.conf 中更改了监听地址来监听“*”。然后我使用 /etc/init.d/postgresql restart 命令重新启动了数据库服务器。
现在,当我尝试连接时,收到以下错误消息:
psql: could not connect to server: Connection refused
Is the server running on host "10.1.1.47" and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
在 postgresql.conf 中,端口设置为 5432。我不知道还有什么要检查的。
谢谢
背景:
我正在尝试创建一个仅包含数据库中的数据的转储文件。我希望它使用 INSERT 命令创建数据。在阅读手册时,(http://www.postgresql.org/docs/9.2/static/app-pgdump.html#PG-DUMP-EXAMPLES)我发现我可以使用
从手册中并不清楚有什么区别。所以我尝试了两者并对文件进行了比较。存在差异,我想知道为什么。有人能告诉我这两个命令有什么区别吗?
这是我正在运行的完整命令:
pg_dump -a --column-inserts -U postgres testdb > /tmp/test_data_as_inserts2.sql
Run Code Online (Sandbox Code Playgroud)
和 :
pg_dump -a --attribute-inserts -U postgres testdb > /tmp/test_data_as_inserts.sql
Run Code Online (Sandbox Code Playgroud)
任何提示将不胜感激。与此同时,我将深入研究这两个文件之间的区别……为什么某些记录被包含而另一些则不被包含。
谢谢。
我被要求对一个在后端使用 postgresql 的应用程序进行逆向工程。我可以看到正在进行一些数据库复制...根据我的阅读,我*认为它被称为流复制。主服务器上的设置如下所示:
wal_level = hot_standby
max_wal_senders = 5
wal_keep_segments = 32
Run Code Online (Sandbox Code Playgroud)
我的问题是:什么会影响在 master 上创建新记录与何时出现/复制到 slave 之间的延迟?
通过阅读手册,(http://www.postgresql.org/docs/current/static/hot-standby.html)我看到它使用的模型是“最终一致性”......该页面上的第 4 段指出:
备用服务器上的数据需要一些时间才能从主服务器到达,因此主服务器和备用服务器之间会存在可测量的延迟。因此,在主数据库和备用数据库上几乎同时运行相同的查询可能会返回不同的结果。我们说备用数据库上的数据最终与主数据库一致。
但是有没有任何模式/方法可以猜测需要多长时间?或者它真的只是随意的?
如果您能指出我正确的方向,我将不胜感激。谢谢。
我有一个小部件集合,其中包含这样的记录:
{ "_id" : ObjectId("55a6abe193819c033d4d755a"), "name" : "widget1"}
{ "_id" : ObjectId("55a6abe193819c033d4d755a"), "name" : "widget2", "loc" : ObjectId("55a69475da314d9984fc6201") }
Run Code Online (Sandbox Code Playgroud)
我还有一个位置集合,如下所示:
{ "_id" : ObjectId("55a69475da314d9984fc6201"), "abbrev" : "CAN", "description" : "Canada" }
{ "_id" : ObjectId("55a6948eda314d9984fc6202"), "abbrev" : "USA", "description" : "United States" }
{ "_id" : ObjectId("55a69496da314d9984fc6203"), "abbrev" : "MEX", "description" : "Mexico" }
Run Code Online (Sandbox Code Playgroud)
如果我想使用 Objectid 查找位于加拿大的所有小部件,我知道我可以这样做:
> db.widgets.find( { loc: ObjectId("55a69475da314d9984fc6201")})
{ "_id" : ObjectId("55a6abe193819c033d4d755a"), "name" : "widget2", "loc" : ObjectId("55a69475da314d9984fc6201") }
Run Code Online (Sandbox Code Playgroud)
但是,如果我想不使用 objectid 而使用缩写或描述来搜索位置怎么办?我该怎么做?
我想知道是否有办法永久设置查询缓存的大小并确保它始终处于启用状态。现在,我只是使用set global query_cache_size
命令来设置大小,但是当数据库重新启动时它就会消失。