[Opendnssec-user] upgrade debian Jessie to Stretch: database trouble
Dennis Baaten
dennis at baaten.com
Thu Nov 2 15:00:24 UTC 2017
Thanks for the info! This is helpful. Still getting the error when trying to
load the new DB scheme (step 3). This probably is related to the fact that
I'm having trouble to explicitly create a database using Barracuda with
ROW_FORMAT=DYNAMIC.
--
Dennis
-----Oorspronkelijk bericht-----
Van: Casper Gielen [mailto:C.Gielen at uvt.nl]
Verzonden: donderdag 2 november 2017 14:05
Aan: opendnssec-user at lists.opendnssec.org
CC: Dennis Baaten <dennis at baaten.com>
Onderwerp: Re: [Opendnssec-user] upgrade debian Jessie to Stretch: database
trouble
Op 02-11-17 om 10:42 schreef Dennis Baaten:
> Hi,
>
> The next step (migrating to 2.0 db) involves running of convert_mysql
> in Bash. Initially this results in "error 1071 specified key was too
> long max key length is 767 bytes". I tried to resolve this by setting
> the InnoDB variable innodb_file_format to 'Barracuda' and enabling
> innodb_large_prefix. This resulted in a new but similar error: "error
> 1709 index column size too large. The maximum column size is 767
> bytes.". And I've not been able to resolve this, which basically means
> that I'm stuck in the migration process towards OpenDNSSEC 2.0 and
> cannot start the relevant services on my server.
I encountered the same problem, use Barracuda with ROW_FORMAT=DYNAMIC .
Some notes from my upgrade documentation, slightly edited and translated
from Dutch.
Sorry for poor language.
# step 0 - halt operation
root at metagross:~# opendnssec-enforcer stop
root at metagross:~# opendnssec-signer stop
# step 1 - DB upgrade
# First upgraden from 1.4.6 to 1.4.8 (from database v3 to v4)
root at metagross:~# mysql --defaults-file=/etc/mysql/debian.cnf opendnssec <
/usr/share/opendnssec/migrate_1_4_8.mysql
# step 2 - DB upgrade
# Search zones in state "waiting voor ds-seen"; those are not backwards
compatible and should be avoided.
# I just checked that I hd no such zones:
MariaDB [opendnssec]> SELECT zones.name
-> FROM dnsseckeys
-> JOIN zones on zones.id = dnsseckeys.zone_id
-> WHERE dnsseckeys.keytype = 257
-> AND dnsseckeys.active IS NULL
-> AND dnsseckeys.zone_id NOT IN
-> (SELECT dnsseckeys.zone_id
-> FROM dnsseckeys
-> WHERE dnsseckeys.keytype = 257
-> AND dnsseckeys.state = 4)
-> ;
# Inplace upgrade of DB not possible. Create a new one and fill it.
# step 3 - create new DB aanmaken
# First make sure that new databaes are of type Barracuda with
ROW_FORMAT=DYNAMIC
root at metagross:~# mysqladmin --defaults-file=/etc/mysql/debian.cnf create
odsnew
# load new DB scheme
root at metagross:~# wget
https://github.com/opendnssec/opendnssec/raw/2.0.4/enforcer/src/db/schema.my
sql
root at metagross:~# mysql --defaults-file=/etc/mysql/debian.cnf odsnew <
schema-2.0.mysql
# step 4 - convert data
# prepare script
root at metagross:~# wget
https://github.com/opendnssec/opendnssec/raw/2.0.4/enforcer/utils/1.4-2.0_db
_convert/mysql_convert.sql
root at metagross:~# sed -i "s/REMOTE/opendnssec/g"
mysql_convert_1.4.8-2.0.sql
# Manually replace calls to strftime with UNIX_TIMESTAMP()
# I've been told this has been fixed in the scripts for ODS 2.1, you might
want to try that version first.
root at metagross:~# mysql --defaults-file=/etc/mysql/debian.cnf odsnew <
mysql_convert_1.4.8-2.0.sql
# step 5 - rename database
root at metagross:~# mysqladmin --defaults-file=/etc/mysql/debian.cnf drop
opendnssec
root at metagross:~# mysqladmin --defaults-file=/etc/mysql/debian.cnf create
opendnssec
root at metagross:~# mysqldump --defaults-file=/etc/mysql/debian.cnf odsnew
| mysql --defaults-file=/etc/mysql/debian.cnf opendnssec
root at metagross:~# mysqladmin --defaults-file=/etc/mysql/debian.cnf drop
odsnew
# step 6 - upgrade SoftHSM
# create new HSM
root at metagross:~# mkdir /var/lib/opendnssec/tokens/
root at metagross:~# softhsm2-util --init-token --slot 0 --label OpenDNSSEC
root at metagross:~# softhsm2-migrate --db /var/lib/softhsm/slot0.db --token
OpenDNSSEC
# Migrate OpenDNSSEC
# First update your conf.xml. (hint: "port" in the MySQL section has
become case sensitive)
root at metagross:~# ods-migrate
root at metagross:~# opendnssec-enforcer start
root at metagross:~# opendnssec-signer start
--
Casper Gielen <cgielen at uvt.nl> | LIS UNIX PGP fingerprint = 16BD 2C9F 8156
C242 F981 63B8 2214 083C F80E 4AF7
Universiteit van Tilburg | Postbus 90153, 5000 LE Warandelaan 2 | Telefoon
013 466 4100 | G 236 | http://www.uvt.nl
More information about the Opendnssec-user
mailing list