我在增量备份期间使用 WHM 备份了所有 PostgreSQL 数据库,这会创建一个 $dbName。tar文件。
数据存储在这些 .tar 文件中,但我不知道如何通过 SSH 将其恢复到各个数据库中。特别是文件位置。
我一直在使用:
pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar
Run Code Online (Sandbox Code Playgroud)
产生错误“无法打开输入文件:权限被拒绝”
任何帮助表示赞赏。
我一直在 Windows Server 2003 上运行 PostgreSQL,没有任何问题,而且速度很快,所以回答我自己的问题似乎没问题。
然而,我即将启动一个新项目,并且正在考虑使用 Linux 机器代替,因为稳定性和性能至关重要。由于 PostgreSQL 似乎主要是在 Linux 发行版上开发的,也许坚持使用 Linux 会更好?
如何使用 SQL 更改用户的 postgresql 密码。我有用户(alex)和他的密码(例如 pass)我需要使用 sql 语句将他的密码更改为 NULL...
我在 Oracle VirtualBox 上运行 Ubuntu 12.04。几个月前,我在我的机器上安装了 PostgreSQL 服务器版本 9.1。就在最近,我了解到PostgreSQL server 9.3 支持JSON 数据类型,所以我决定升级。
我按照此处的说明升级到 9.3:
https://wiki.postgresql.org/wiki/Apt
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3
Run Code Online (Sandbox Code Playgroud)
这与版本 9.1 一起在我的机器上安装了服务器版本 9.3。全新启动后运行 pg_lsclusters 给出:
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
Run Code Online (Sandbox Code Playgroud)
然后我做了以下升级后维护:我用 pg_dump 从我的 9.1 服务器导出了几个表,并将它们恢复到我的 9.3 服务器。然后我打开 9.1 和 9.3 的配置文件/etc/postgresql/$VERSION/main/postgresql.conf并交换它们的端口号,以便我的 psql …
我听说如果您在运行时更改系统时间,数据库和邮件服务器会发生坏事的传言。但是,我很难找到有关实际风险的任何具体信息。
我有一个在 Debian Wheezy 主机上运行的生产 Postgres 9.3 服务器,时间减少了 367 秒。我可以ntpdate在 Postgres 运行时运行或启动 openntp,还是可能会导致问题?如果是这样,纠正时间的更安全方法是什么?
是否有其他服务对系统时间的变化更敏感?也许是邮件服务器(exim、sendmail 等)或消息队列(activemq、rabbitmq、zeromq 等)?
我有一个用于开发目的的本地 postgresql 数据库,我不想在每次 Windows 启动时启动它 - 我如何阻止它启动!
出于性能原因,我正在审查应用程序针对数据库执行的每条 SQL 语句。有没有一种简单的方法来记录 PostgreSQL 数据库服务器执行的所有语句?谢谢。
我发现每周都必须备份数据库很乏味。而且我还认为每周备份应该变成每日备份。如果我必须这样做,我不想手动完成。每天自动备份 PostgreSQL 数据库的最佳方法是什么?
postgres SELECT 查询在我们的数据库服务器上失控并开始消耗大量内存和交换,直到服务器内存不足。我通过ps aux | grep postgres并运行了特定的过程kill -9 pid。这终止了进程,内存按预期释放。系统的其余部分和 postgres 查询似乎不受影响。此服务器在 SLES 9 SP4 上运行 postgres 9.1.3。
但是,我们的一位开发人员因为使用 杀死了 postgres 进程而批评我kill -9,说它会关闭整个 postgres 服务。事实上,事实并非如此。我以前做过几次,没有看到任何负面影响。
话虽如此,在进一步阅读之后,看起来kill pid没有标志是杀死失控的 postgres 进程的首选方式,但对于 postgres 社区中的其他用户来说,听起来 postgres 多年来“变得更好”,以至于kill -9在单个查询进程/线程上不再是死刑。
有人能告诉我杀死失控的 postgres 进程的正确方法以及kill -9这些天 Postgres 的使用是多么灾难性(或良性)吗?感谢您的洞察力。
各位,
我可以利用你的帮助使我的 Postgres 用户访问控制设计更好,更符合最佳实践。我正在帮助推出一个小型生产 Postgres 服务器,但我不是数据库管理员,所以我知道足够危险。
一台服务器安装了一次 Postgres v9.2。此安装托管多个数据库,每个数据库都完全服务于不同的“客户”。换句话说,customer1 不会,也不应该使用 database2,依此类推。在正常操作期间,每个数据库都由一个匹配的 CakePHP 实例访问,所有实例都与 Postgres 位于同一服务器上。虽然此部署可能会有优化,但我最感兴趣的是 Psql 角色。
根据我所读到的,似乎三种类型的角色是有意义的:
实现该设计是我不太自信的地方。DB与表的所有权以及谁应该从谁那里继承有点混乱。下面是我的数据库和我的用户。这些信息足以评估实施吗?
Role name | Attributes | Member of
-----------+------------------------------------------------+-------------------
admin | Create role, Create DB | {user1, user2}
postgres | Superuser, Create role, Create DB | {}
user1 | | {}
user2 | | {}
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
admin | postgres …Run Code Online (Sandbox Code Playgroud)