View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001400 | bareos-core | General | public | 2021-11-08 17:48 | 2022-01-27 16:25 |
Reporter | amodia | Assigned To | bruno-at-bareos | ||
Priority | urgent | Severity | major | Reproducibility | always |
Status | closed | Resolution | unable to reproduce | ||
Platform | Linux | OS | Debian | OS Version | 10 |
Product Version | 20.0.2 | ||||
Summary | 0001400: psql: Fehler: FATAL: Peer-Authentifizierung für Benutzer »bareos« fehlgeschlagen | ||||
Description | Nach einem Upgrade von 16.2 auf 20 kommt die folgende Fehlermeldung: --- psql: Fehler: FATAL: Peer-Authentifizierung für Benutzer »bareos« fehlgeschlagen --- Folgende Schritte haben nicht geholfen: - ein anschließender Aufruf von /usr/lib/bareos/scripts/update_bareos_tables - ein neues Passwort für user bareos (!!!) via postgres$ psql -> ALTER ROLE bareos WITH PASSWORD 'geheim'; - erneute GRANT-Vergabe via /usr/lib/bareos/scripts/grant_bareos_privileges Was kann man tun, um das Problem zu lösen? Falls noch Informationen fehlen: Welche? | ||||
Tags | debian 10 | ||||
What are the contain of previously working pg_hba.conf and actually used You didn't indicate what other piece have been updated (because Bareos 16.2 had never been available for Debian 10) You didn't indicate how the catalog database has been upgraded Did you check and make all step necessary to migrate your user from md5 hash to new sha256sum default in PostgreSQL ? |
|
Content of pg_hba.conf files: # grep -v ^# /etc/postgresql/11/main/pg_hba.conf |uniq local all postgres peer local all all peer host all all 127.0.0.1/32 md5 host all all ::1/128 md5 local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 # grep -v ^# /etc/postgresql/13/main/pg_hba.conf |uniq local all postgres peer local all all peer host all all 127.0.0.1/32 md5 host all all ::1/128 md5 local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 History to "create" this problem: 1. Installed bareos long ago All backup messages have the line: "Build OS: x86_64-pc-linux-gnu debian Debian GNU/Linux 9.3 (stretch)" 2. Upgraded Debian to buster and now bullseye Debian kept bareos as a maintained package in buster, so I overlooked that the expected upgrade of bareos did not follow (my fault). 3. With the upgrade to bullseye comes the upgrade of PostgreSQL v11 to v13 4. After this Debian upgrade bareos 16.2 seems to have worked under PostgreSQL v13 (!) 5. Than I noteced that bareos did not upgrade, so I tried to upgrade bareos 16.2 to 20 6. Upgrade of bareos from 16.2 to 20 was performed with the command '/usr/lib/bareos/scripts/update_bareos_tables' It seemed to work without errors, but after that command the error described occured: # psql -U bareos bareos -W psql: Fehler: FATAL: Peer-Authentifizierung für Benutzer »bareos« fehlgeschlagen I did not migrate explicitly from md5 hash to new sha256sum for PostgreSQL. Did this happen implicitly with the PostgreSQL Further notice: 1. The attempt to create a new (empty) database (bareos2) with (modified) files shows differences in the Collate and Ctype columns: # su postgres -c psql could not change directory to "/root": Keine Berechtigung psql (13.4 (Debian 13.4-0+deb11u1)) Type "help" for help. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+-----------+-------------+-------------+----------------------- bareos | bareos | SQL_ASCII | C | C | bareos2 | postgres | SQL_ASCII | de_DE.UTF-8 | de_DE.UTF-8 | postgres | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | template0 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | postgres=CTc/postgres+ | | | | | =c/postgres (5 rows) 2. Besides the error reporting, the main interest is to get bareos running again asap. For this a backup of the old database (with '/usr/lib/postgresql/11/bin/pg_dumpall --clean --if-exists ') is available. A new bareos database ("bareos2") has already been generated according to the manual by # su postgres -c /usr/lib/bareos/scripts/create_bareos2_database # su postgres -c /usr/lib/bareos/scripts/make_bareos2_tables # su postgres -c /usr/lib/bareos/scripts/grant_bareos2_privileges (copies of the files with an altered database name) How can I use the pg_dumpall file (db scheme of bareos 16.2) to fill the new database bareos2 (db scheme of bareos 20) correctly? Thanks in advance! |
|
I'm not sure if I understood correctly which packages from which source were installed and upgraded did both 16 and 20 came from bareos.org ? Your database bareos2 is not completely setup as previous one (see collate) which is unfortunately an open issue actually (PG support stop at 12) missing 13 and 14 check in /usr/lib/bareos/scripts/create_bareos_database case ${PSQLVERSION} in 9.*|10.*|11.*|12.*) ENCODING="ENCODING 'SQL_ASCII' LC_COLLATE 'C' LC_CTYPE 'C'" ;; you should edit and add |13.*|14.* after the 12. do the same to the other script to be sure. I would not use pg_dumpall (as it contain all other database) if your cluster 13 is up and running you just have to create a postgresql bareos user. make it work with psql create db table grant use pg_dump (version 13) to dump previous bareos db, and then use pg_restore to the new created db. |
|
Thanks for the quick reply! Initial setup of bareos was performed via the Debian package (stretch). Upgrade to bareos 20 package was performed according to the manual: generate a "bareos.list" file in /etc/apt/source.list.d/ with the content: deb https://download.bareos.org/bareos/release/20/Debian_10 / Next step is to edit the scripts to include PostgreSQL 13 and 14 and to re-create the bareos2 database. In order to perform a pg_dump (v13) of the prevoius database I might have to restart the v11 cluster (trying to dpkg-reconfigure bareos-database-common has emptied the converted bareos databse). You mentioned that a "postgresql bareos user" is necessary. Why is this step missing in the manual? (v. above: only "su postgres -c /usr/lib/bareos/scripts/...", no "su bareos ...") Or did I miss this issue? Thanks again for the quick help! |
|
Sorry if not clear I mean having a user "bareos" inside postgresql. su postgres psql -c "\du" should show a bareos role. that role should be able to connect to bareos database with the configured password coming from catalog configuration. |
|
Thanks for the clarification. The bareos role exists with PostgreSQL v13: postgres$ psql -c "\du" Liste der Rollen Rollenname | Attribute | Mitglied von ------------+-----------------------------------------------------------------+-------------- bareos | Superuser, Rolle erzeugen, DB erzeugen | {} postgres | Superuser, Rolle erzeugen, DB erzeugen, Replikation, Bypass RLS | {} The procedure to create a new backup of the old database was as follows: - stopping cluster v13: root:~# systemctl stop postgresql@13-main.service - starting cluster v11: root:~# systemctl start postgresql@11-main.service - using the new version to perform the backup: postgres:~$ /usr/lib/postgresql/13/bin/pg_dump --file=bareos11_dump13_2021-11-10.sql bareos - stopping cluster v11: root:~# systemctl stop postgresql@11-main.service - starting cluster v13: root:~# systemctl start postgresql@13-main.service - : postgres:~$ psql <bareos11_dump13_2021-11-10.sql This created the database as owner postgres, which was correted by loggin into the database: bareos=# ALTER DATABASE bareos OWNER TO bareos ; bareos=# ALTER TABLE public.basefiles OWNER TO bareos ; ... bareos=# ALTER TABLE public.version OWNER TO bareos ; This still leaves the error while logging in from the prompt: postgres:~$ psql -U bareos bareos -W Passwort: psql: Fehler: FATAL: Peer-Authentifizierung für Benutzer »bareos« fehlgeschlagen But there is good news: Now bareos seem to be able to access the database: root:~# bconsole Connecting to Director backup02-20:9101 ... A status check of the director yields: *status director ... Terminated Jobs: JobId Level Files Bytes Status Finished Name ==================================================================== ... 18979 Full 0 0 Error 09-Nov-21 21:02 backup-bareos-fd 18980 Full 0 0 Error 09-Nov-21 21:10 BackupCatalog ... BUT the bad news is that all information about the jobs seems to be gone: *rerun jobid=18979 Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" rerunning jobid 18979 You have messages. *messages 11-Nov 09:13 backup02-20-dir JobId 0: Warning: Error getting Job record for Job rerun: ERR=cats/sql_get.cc:273 No Job found for JobId 18979 Any ideas how to fix this? P.S.: Bareos connects to the database regardless if catalog/MyCatalog.conf has an "ddbpassword" set or not. |
|
Update: Good news: 1) The initial error seems to be solved: Bareos seems to get access to the database (bconsole logs in without error, gets status reports fom director and clients) 2) The (confusing) error reported in note 0004329: root: # psql -U bareos bareos -W psql: Fehler: FATAL: Peer-Authentifizierung für Benutzer »bareos« fehlgeschlagen can be solved by adding "localhost" to the command line: root: #psql -U bareos -h localhost bareos -W psql (13.5 (Debian 13.5-0+deb11u1)) SSL-Verbindung (Protokoll: TLSv1.3, Verschlüsselungsmethode: TLS_AES_256_GCM_SHA384, Bits: 256, Komprimierung: aus) ... Bad news: The database (still) seems to hold no information about previous jobs (v. note 0004335): *rerun jobid=18971 Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" rerunning jobid 18971 You have messages. *messages 12-Nov 11:26 backup02-20-dir JobId 0: Warning: Error getting Job record for Job rerun: ERR=cats/sql_get.cc:273 No Job found for JobId 18971 So the database is accessible, but the information formerly stored in it is lost. How can I restore this information, if only a "pg_dumpall" of the old configuration "PostgrSQL 11, Bareos-Scheme 16.2" is available? Any help is welcome! |
|
Hello, as you certainly know, pg_dumpall is a dump in plain text format. I'm not sure what else you have into that dump from you previous cluster (roles, other databases etc) You should normally be able to just open it into a text editor (like vim or similar) and just keep interesting part from the \connect bareos to the next \connect. Keep just those, and you will then have a bareos text dump of the database. which can be restored with the psql < dump.sql like syntax. Otherwise, you should also normally have a catalog backup into your installation, which is a dump of the bareos database. take the last one and restore it. See into the documentation https://docs.bareos.org/bareos-20/TasksAndConcepts/CatalogMaintenance.html and in certain case https://docs.bareos.org/bareos-20/Appendix/Troubleshooting.html#section-restorecatalog |
|
Any news here ? | |
closing without news | |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-11-08 17:48 | amodia | New Issue | |
2021-11-08 17:48 | amodia | Tag Attached: debian 10 | |
2021-11-10 09:52 | bruno-at-bareos | Note Added: 0004321 | |
2021-11-10 12:11 | amodia | Note Added: 0004329 | |
2021-11-10 13:21 | bruno-at-bareos | Note Added: 0004330 | |
2021-11-10 13:44 | amodia | Note Added: 0004331 | |
2021-11-10 13:58 | bruno-at-bareos | Note Added: 0004332 | |
2021-11-11 10:03 | amodia | Note Added: 0004335 | |
2021-11-12 13:36 | amodia | Note Added: 0004336 | |
2021-11-15 12:05 | bruno-at-bareos | Note Added: 0004337 | |
2021-12-22 16:36 | bruno-at-bareos | Note Added: 0004409 | |
2022-01-27 16:25 | bruno-at-bareos | Assigned To | => bruno-at-bareos |
2022-01-27 16:25 | bruno-at-bareos | Status | new => closed |
2022-01-27 16:25 | bruno-at-bareos | Resolution | open => unable to reproduce |
2022-01-27 16:25 | bruno-at-bareos | Note Added: 0004491 |