[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