Search Engine: Elastic

Article ID: 128057, created on Jan 14, 2016, last review on Jan 14, 2016

  • Applies to:
  • Operations Automation 5.5


We have an upcoming requirement to relocate the server "".

We intend on moving it to an entirely different network, where it will have a new backnet and frontnet IP address and will essentially be a new server.

Can you please provide a rough guideline as to how we could do this?


Basic procedure is the following:

  1. Add new nameserver in another location

    Appropriate documentation page can be used as a reference. "Deploying Linux-based DNS Servers" chapter

  2. Use attached script to synchronize all DNS zones to a new server
  3. Decomission old server, make sure that all appropriate tasks completed successfully

This procedure will allow to keep server redudancy. But, if you need to re-use the same server and there so no chance to add a new one (step 1), then the procedure will be changed:

  1. Decomission old server, make sure that all appropriate tasks completed successfully
  2. Add the same server in a new location (with new network parameters)
  3. Use attached script to synchronize all DNS zones to a new server

Please be advised that there are several possible aftermathes:

  1. If you have 2 nameservers in OSA configuration and the second one shall fail during relocation hosting infrastructure shall stay without DNS service
  2. Some domain registrars have a requirement to have at least 2 nameserver to register a domain. If you decomission 1 server and only 1 left - domain registration will be impossible
  3. In case of significant nuber of domains (several thousands) the synchronization procedure can be extremely long: divide domains in portions to avoid system overload

Several additional recommendations

  1. By default when you add a new DNS server in OSA configuration only newly created domains shall be propagated on a new server. If you need to propagate old domains too - please use 'pem.syncNameServers' API method to sync. Another way is to do it manually - choose a domain in "Domains" tab, switch zone to external and then back to internal hosting.

  2. In case of significant number of domains it is strongly recommended to divide list of domains in several smaller portions. Script below can be used as a reference.


psql -Uplesk -h`hostname` plesk -c "SELECT FROM domains d JOIN accounts a ON (a.account_id = d.owner_id) JOIN dns_zones z ON (z.zone_id = d.zone_id) JOIN domains dp ON (dp.zone_id = z.zone_id AND dp.dns_path = AND dp.deleted != 'y')  WHERE ((a.path >= (SELECT ap.path||'x' FROM accounts ap WHERE ap.account_id = 1) AND a.path < (SELECT ap.path||'y' FROM accounts ap WHERE ap.account_id = 1)) OR a.account_id = 1) AND d.deleted != 'y'  AND (d.is_locked = 0 )  ORDER BY d.domain_id" > domains.txt
sed '1,2 d;' domains.txt > domains2.txt
sed -e 's/^.\{1\}//' domains2.txt > domains.txt
sed 'N;$!P;$!D;$d' domains.txt  > domains_final.txt
rm -f domains2.txt
rm -f domains.txt
while read i
echo "<?xml version=\"1.0\"?><methodCall><methodName>pem.syncNameServers</methodName><params><param><value><struct><member><name>domain_name</name><value><string>$i</string></value></member></struct></value></param></params></methodCall>" | curl -k -d@-
sleep 10
done < /root/domains_final.txt

5356b422f65bdad1c3e9edca5d74a1ae caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07 5b048d9bddf8048a00aba7e0bdadef37 2554725ed606193dd9bbce21365bed4e

Email subscription for changes to this article
Save as PDF