Tag: postgres

Postgres pg_dump without password

I have to do a dump of a Postgres database on a regular basis.

So pg_dump is the obvious choice to do this as is cron to do this periodically.

But the main problem with this is – pg_dump expects a password to be entered at the prompt. There’s no way to pass the password in the prompt to be able to do this.

Stackoverflow to the rescue.

What is required is a .pgpass file in the home directory.

Continue reading

increase Postgres statement_timeout

Sometimes it is required to increase the statement_timeout for Postgres.

The correct way to do this would be to create a .psqlrc in the home directory and add the setting inside there.

$> cat .psqrc
set statement_timeout to 10000;

This is given in milliseconds so the above is for 10 seconds.

This can be verified from within psql command

psql> show statement_timeout;
(1 row)

Reference: https://stackoverflow.com/a/24093305/33581

Postgres DB migration error due to replication

We got a weird error today when running the latest migration on a production Postgres DB.

cannot update table "schema_info" because it does not have a replica identity and publishes updates

The table schema_info is created when we run ruby Sequel migrations. This table stores just the version number of the latest migration applied under a column called version.

We had set up a replica database some time ago and it looked like the issue was because of this.

Continue reading

Postgres authentication

Reference: Stackoverflow

pg_hba.conf controls the authentication method. If you want to request a password, use md5 authentication. If you want to allow login with no password to anyone, use trust. If you want to require the same username in the operating system as in PostgreSQL, use peer (UNIX, only for local connections) or sspi (Windows).

If there’s a password set, but pg_hba.conf doesn’t tell PostgreSQL to ask for it, the password is ignored.

If pg_hba.conf tells PostgreSQL to ask for a password but there’s none set, then all login attempts will fail no matter what password is supplied.

Create Postgres replica on separate server over the network

A database replica is able to provide another layer of protection in case of the main database server going down.

Postgres has this capability out of the box.

In this case the requirement was to create a replica on a separate server. (It’s also possible to create it on the same server where Postgres is running).

The replica maintains an exact copy of the main database (called Primary) on a real-time basis.

Continue reading

Run Postgres exposed to the internet

Although this is not recommended, there might be scenarios where there are no other options.

An example is an analysis software which doesn’t give the capability to connect via SSH. I came across this scenario when someone wanted to use QLik. Although this has a lot of capabilities, but when something like this is required, I’d rather use the open source and free Metabase.

Continue reading

Setup up READ_ONLY users on Postgres

To grant access to users for only viewing a database (i.e. no INESRTs or CREATE or UPDATE access) there are certain conditions.

First, access should be only allowed through ssh.

Second, the ssh user should not be able to get into a shell directly.

And finally, the database should restrict access to that particular user with relevant permissions.

Continue reading

Copyright © 2024 the möbius trip

Theme by Anders NorenUp ↑