Secondary DNS is a term used to portrait a backup DNS server holding copies of the DNS zones for the master DNS server. At least, this was a practice some time ago. It was a necessary infrastructure detail to have a secondary DNS. When master DNS is undergoing maintenance or different case of unavailability the secondary DNS will hold the DNS zones. Later on, with more robust infrastructure the secondary DNS started getting a different role.
Aside from being a backup DNS it is now also used as master or primary DNS as well. The idea is to have more DNS servers for people to use and thus, provide larger coverage. Given that most of the DNS servers are exchanging information, the secondary DNS is not always a crucial piece of DNS infrastructure. BlueGrid.io is using BIND9 for internal DNS purposes. Make sure to check it out! To understand how secondary DNS is used let's paint it through the diagram below:
This is more obsolete setup but, in some cases (lots of cases) still used. We have, previously mentioned infrastructure with slave DNS (Secondary) being simply a backup for master DNS (Primary DNS). What we see on this diagram is the Primary DNS responding to DNS queries and Secondary holds a copy of the DNS zone. It is also not available for public queries. It literally just holds the backup of the DNS zones.
Here is how most modern DNs infrastructure looks like:
In today's DNS infrastructure secondary DNS servers are often used as primary ones. This is a good way to use up the maximum of available resources for the maximum of the DNS queries. We are keeping the sync between master and slave DNS servers but still keeping the slave DNS open to the public.
Why use the secondary as primary DNS aside from more servers being available for people/devices to query? Well, one very important reason is that we can utilize this setup for high availability and still manage only primary DNS. Slave DNS servers would just pick up the configuration (DNS zones) and apply it locally. Pretty smart actually.