。
このバックエンドをスーパーユーザ権限を与えたいユーザALTER
に使用できます。次に、スタンドアロンのバックエンドをシャットダウンし、データベースを正常に起動します。
シングルユーザーモードに入る前にデータベースサーバーを完全に停止することが重要です。 PostgreSQLのシングルユーザモードは、postmasterがある場合は起動を拒否しますが、PostgreSQLのプロセスがシステム上で実行されていないことを確認する必要があります。 Under (almost) no circumstances should you ever delete postmaster.pid
- そのデータディレクトリにアクセスするPostgreSQLプロセスがまだ残っていると、データベースが破損する可能性がかなりあります。
スタンドアロンのバックエンドの起動方法は、OS /ディストリビューションのビットと、PostgreSQLのインストール方法によって異なります。あなたはこの情報を含んでいないので、私は実際にあなたを指すことができるのはthe manual for the postgres
back-end executableです。
まずバックアップを作成してください。
In the single-user mode, the session user will be set to the user with ID 1, and implicit superuser powers are granted to this user. This user does not actually have to exist, so the single-user mode can be used to manually recover from certain kinds of accidental damage to the system catalogs.
はセクションシングルユーザーモードのオプションと、底部に向かって、使用を参照してください。 --single
、でpostgres
バックエンドをデータベースファイルを所有するunixユーザーとして実行し、datadirへのパスを使用したいとします。一般的なLinuxのPostgreSQLの上では、このようなものかもしれませんインストール:
sudo systemctl stop postgresql-9.3.service
sudo -u postgres /usr/pgsql-9.3/bin/postgres --single -D /var/lib/pgsql/9.3/data
あなたDATADIRとpostgres
実行可能な場所がかなり異なる可能性があります。上記は、PGDG PostgreSQLパッケージを実行しているFedoraシステムの場合、http://yum.postgresql.org/です。必要にスーパーユーザーとして
ありがとうございます。私は人形モジュールを使ってデータベースを定義していましたが、postgresユーザーをデータベースの所有者に設定しても問題ないと思っていましたが、Postgresql :: Server :: Db [mydb]/Postgresql :: Server :: Role [postgres]/Postgresql_psql [ALTER ROLE "postgres" NOSUPERUSER]/command)コマンドが 'notrun'を 'ALTER ROLE'に変更しましたpostgres "NOSUPERUSER" – tobixen