Hi,
So... I tested the whole process of migrating MariaDB
database to PostgreSQL. But psql seems a different
beast. What is confusing for me:
After several runs of {drop|make|grant}_bacula_tables
scripts for the sake of cleaning up and starting from
scratch while testing the process, I notice that even
after a drop of tables, psql data keeps piling up:
$ whoami
postgres
$ /opt/bacula/scripts/drop_bacula_tables
$ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+-----------+---------+-------------+-----------------------
bacula | bacula | SQL_ASCII | C | C |
postgres | postgres | UTF8 | C | en_US.UTF-8 |
template0 | postgres | UTF8 | C | en_US.UTF-8 | =c/postgres
+
| | | | |
postgres=CTc/postgres
template1 | postgres | UTF8 | C | en_US.UTF-8 | =c/postgres
+
| | | | |
postgres=CTc/postgres
(4 rows)
$ du -hs /var/lib/pgsql/
928M /var/lib/pgsql/
$ du -hs /var/lib/pgsql/data/
802M /var/lib/pgsql/data/
$ du -hs /var/lib/pgsql/data/pg_wal/
769M /var/lib/pgsql/data/pg_wal/
For comparison, the actual data (which was imported
and then dropped a few times):
# du -hs /var/lib/mysql/bacula/
84M /var/lib/mysql/bacula/
# du -hs bacula-backup.sql
63M bacula-backup.sql
Since the majority of the data is in pg_wall after
searching the web I read about WAL - something which I
haven't "met" in MariaDB. Unfortunately even after
reading the documentation and various articles all I
got is a head ache, so it is still not clear to me how
to manage this data which piles up more and more, even
without the actual data being re-imported as a final
step. I am worried that my /var may easily fill up
after I switch Bacula production to psql.
I also notice that psql keeps logs
in /var/lib/pgsql/data/log and a new log is created on
each restart of the service. Searching for how to
manage that I found this info:
https://serverfault.com/a/327913
But for openSUSE "There is no need to run a syslog
based service anymore, as all system events are
written in the journal.":
https://doc.opensuse.org/documentation/leap/reference/html/book.opensuse.reference/cha.journalctl.html
So what I did was to set in postgresql.conf:
log_destination = 'stderr' # it was that way
log_truncate_on_rotation = on
log_rotation_age = 1d
output log_rotation_size = 0
My questions are:
1. Am I doing everything correctly?
2. How to manage WAL and logs so that old unnecessary
data doesn't fill up disk (and backup tape) space?
3. Should I backup WAL, logs or the
whole /var/lib/pgsql? Or should I rather look for a
script which backs up each DB in a separate file
(currently I have use such script for mysql).
Any additional clarifications are very welcome.
--
George
P. S. I understand this is not 100% Bacula question but
rather a mix of Bacula+PostgreSQL but as it is quite
specific and related to a migration, I hope it is OK
to ask here.
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users