Issue with one domain not resolving when you are running BIND server.
Suspend and quickly un-suspend the domain works around 20% of situations and if that also fails, we may need to work in the Plesk PSA database.
NOTE: Before you work on this, please make sure that the plesk psa database is backed up.
cd %plesk_bin% cd ..\..\MySQL\bin mysql -u admin -pPASSWORD -P 8306
In most cases, Plesk MySQL server’s admin PASSWORD will be the Plesk password itself. If it isn’t reset the plesk password again, but with “%plesk_bin%\plesksrvclient.exe” -set NEW_PASSWORD_HERE true (true parameter will reset the MySQL admin password as well)
Assuming you are now in the plesk mysql server prompt, follow the below steps in mysql prompt.
mysql> use psa; mysql> select * from dns_zone where name like 'domain_name.com';
In the output shown similar to below, check the status of the zone. I have seen only the values 0 and 2. Not sure whether there is a status value of 1 even.
If DNS for some domain is managed in Plesk Control Panel, the status for this domain in dns_zone table is temporary setting to value 2 (to lock it for any changes) and sets it to 0 value when the transaction is over. If for some reason the transaction is interrupted during DNS managing (Plesk restarts for example) the status field value is not changed to 0 and stays as 2. Domains with that status value are not recorded in named.conf file during any DNS management.
Now check to see whether there is only one such record for the ID shown for the above sql query. Chances are there could be two and if there are two, you should delete the record which is orphan or has no reference back to dns_zone.
mysql> select * from dns_recs where dns_zone_id=`the_id_you_got_from_the_above_mysql_query`;
The results you get should be matching with the DNS_Zone_ID and the domainname in question. If you see anything else, i.e orphans or else if you don’t see any entries in dns_recs corresponding to the dns_zone_id, delete it.
mysql> delete from dns_zone where id=[wrong_record_id];
And finally update the status from 2 to 0;
mysql> update dns_zone set status=0 where id=[the_dns_zone_id_you_got]
When it’s done update DNS records using dnsmng.exe utility:
cd %plesk_bin% dnsmng.exe update domain.com
Finally there could be a few situations where the entire DNS service is down. Usually the monitoring should detect such situations. However I usually noticed that this happens only when it is the BIND server which is being used as the DNS server software. A switch of the DNS server to Microsoft DNS should fix the issue. You may need to check the versions supported at the release notes available at http://www.parallels.com/products/plesk/docs/ . On my investigation disabling the zone of an internationalized domain name solved the issue with one server though and let us continue using BIND server.
References : http://kb.parallels.com/en/5242