[OPEN-ILS-DEV] Problem with backup and restore of evergreen database
Dale Arntson
arnt at uchicago.edu
Fri Jun 27 15:18:58 EDT 2008
Hi All,
I decided to test backup and restore of our evergreen database. I am
running postgresql 8.1.13 and Evergreen 1.2.2.0 on Redhat 5. For the
backup/restore, I followed the instructions from
http://open-ils.org/dokuwiki/doku.php?id=evergreen-admin:maintenance:backups&s=backups
which are as follows:
# pg_dump -U <username> -h <hostname> -f <output-file> <database-name>
pg_dump -U evergreen -h localhost -f evergreen_db.backup.2008-06-15
evergreen
createdb -U evergreen -h localhost new_evergreen
psql -U evergreen -h localhost -f evergreen_db.backup.2008-06-15
new_evergreen
After I completed the restore, and restarted everything, I tried to
search the restored database in the evergreen client, and got a JSON
parsing error. I then checked and found the following error in the
osrfsys.log:
DBD::Pg::db selectall_arrayref failed: ERROR: no tsearch config
I then looked for messages from the restore procedure in the postgres
log, and found what look like what look like tsearch-related errors:
ERROR: relation "pg_ts_cfg" already exists
ERROR: relation "pg_ts_cfgmap" already exists
ERROR: relation "pg_ts_dict" already exists
ERROR: relation "pg_ts_parser" already exists
ERROR: duplicate key violates unique constraint "pg_ts_cfg_pkey"
CONTEXT: COPY pg_ts_cfg, line 1: "default default C"
ERROR: duplicate key violates unique constraint "pg_ts_cfgmap_pkey"
CONTEXT: COPY pg_ts_cfgmap, line 1: "default lword {en_stem}"
ERROR: duplicate key violates unique constraint "pg_ts_dict_pkey"
CONTEXT: COPY pg_ts_dict, line 1: "simple dex_init(internal) \N
dex_lexize(internal,internal,integer) Simple example of dictionary."
ERROR: duplicate key violates unique constraint "pg_ts_parser_pkey"
Now, when I installed evergreen for the first time, I followed the
instructions in the Ubuntu guide about how to create the evergreen
database. Here are the relevant commands from that guide:
sudo -u postgres createuser -U postgres -s -P evergreen
sudo -u postgres psql template1 <
/usr/share/postgresql/8.2/contrib/tsearch2.sql
sudo -u postgres psql template1 <
/usr/share/postgresql/8.2/contrib/tablefunc.sql
sudo -u postgres createlang plpgsql -d template1
sudo createdb -W -U evergreen -E UTF8 evergreen
sudo -u postgres createlang plperl -d evergreen
sudo -u postgres createlang plperlu -d evergreen
Since I added the tsearch2.sql to the template1 database, it is getting
copied into the newly created evergreen database. But the restore is
also trying to copy the tsearch2.sql back into the database. Is this
duplicate sql invalidating the tsearch configuration in some way? If so,
how do I fix it?
Also, in contrast to the backup/restore instructions above, the ubuntu
install creates the evergreen database using the -E UTF8 encoding
option, and adds the plperl and plperlu languages to the evergreen
database after it has been created. Do I need to do these for a restore
as well?
Any and all advice will be greatly appreciated.
Regards,
-dale
More information about the Open-ils-dev
mailing list