Lately I have been pretty busy with large DNS migration projects, and fortunately PowerDNS has created a very handy tool: zone2sql
Assume you can do an AXFR transfer (dig AXFR @<ip from old server> example.com), the output you get here you can convert to a MySQL query for example.
With this generated MySQL query you can import the whole zone without any trouble into the new database backend of the new server.
Prerequisites:
1. A working PowerDNS authoritative server
2. A MySQL/MariaDB backend
3. AXFR tranfer possibility
Steps:
1. Get the zone information: (in my test case the old nsauth server is 10.0.0.1)
dig AXFR @10.0.0.1 example.com > example.com.txt
2. Examine the output:
cat example.com.txt ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> AXFR @10.0.0.1 example.com ; (1 server found) ;; global options: +cmd example.com. 3600 IN SOA nsauth1.example.com. postmaster.example.com. 2015041601 43200 3600 3600000 86400 example.com. 3600 IN NS nsauth1.example.com. example.com. 3600 IN MX 10 mx1.example.com. www.example.com. 86400 IN A 10.0.0.100 example.com. 3600 IN NS nsauth2.example.com. example.com. 3600 IN SOA nsauth1.example.com. postmaster.example.com. 2015041601 43200 3600 3600000 86400 ;; Query time: 3 msec ;; SERVER: 10.0.0.1#53(10.0.0.1) ;; WHEN: ma jun 22 16:23:51 CEST 2015 ;; XFR size: 6 records (messages 3, bytes 315)
3. With the zone2sql tool, convert the above information to a MySQL query:
zone2sql --gmysql --zone-name=example.com --zone=example.com.txt > example.com.sql
The output written to example.com.sql is like this:
insert into domains (name,type) values (example.com','NATIVE'); insert into records (domain_id, name, type,content,ttl,prio,disabled) select id ,'example.com', 'NS', 'nsauth1.example.com', 3600, 0, 0 from domains where name='example.com'; etc
4. Now import the generated .sql file in the MySQL/MariaDB backend server from commandline (assume the backend is running locally):
mysql -u root -p pdns < example.com.sql
After this is completed the new zone including all records is now available in the new authortitative server.
The PowerAdmin tool is very helpful (http://www.poweradmin.org/) and recently I managed to enable the LDAP user function which is very handy.