4. MySQL PowerDNS backend

4.1. Notes

Table A.4. MySQL PowerDNS backend capabilities

NativeYes
MasterNo
SlaveNo
SuperslaveNo
AutoserialYes
CaseInsensitive
DNSSECNo
Module namepdns
Launch namepdns


This is the driver that corresponds to the set of XML-RPC tools available from PowerDNS.

The schema:

CREATE TABLE MailForwards (
  Id int(10) unsigned NOT NULL auto_increment,
  ZoneId int(10) unsigned NOT NULL default '0',
  Name varchar(255) NOT NULL default '',
  Destination varchar(255) NOT NULL default '',
  Flags int(11) NOT NULL default '0',
  ChangeDate timestamp(14) NOT NULL,
  CreateDate timestamp(14) NOT NULL,
  Active tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (Id),
  KEY NameIndex (Name),
  KEY ZoneIdIndex (ZoneId)
);

--
-- Table structure for table 'Mailboxes'
--

CREATE TABLE Mailboxes (
  Id int(10) unsigned NOT NULL auto_increment,
  ZoneId int(10) unsigned NOT NULL default '0',
  Name varchar(255) NOT NULL default '',
  Password varchar(255) NOT NULL default '',
  Quota int(10) unsigned NOT NULL default '0',
  Flags int(11) NOT NULL default '0',
  ChangeDate timestamp(14) NOT NULL,
  CreateDate timestamp(14) NOT NULL,
  Active tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (Id),
  UNIQUE KEY Name (Name),
  KEY ZoneIdIndex (ZoneId),
  KEY NameIndex (Name)
);

--
-- Table structure for table 'Records'
--

CREATE TABLE Records (
  Id int(10) unsigned NOT NULL auto_increment,
  ZoneId int(10) unsigned NOT NULL default '0',
  Name varchar(255) NOT NULL default '',
  Type varchar(8) NOT NULL default '',
  Content varchar(255) NOT NULL default '',
  TimeToLive int(11) NOT NULL default '60',
  Priority int(11) NOT NULL default '0',
  Flags int(11) NOT NULL default '0',
  ChangeDate timestamp(14) NOT NULL,
  CreateDate timestamp(14) NOT NULL,
  Active tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (Id),
  KEY NameIndex (Name)
);

--
-- Table structure for table 'WebForwards'
--

CREATE TABLE WebForwards (
  Id int(10) unsigned NOT NULL auto_increment,
  ZoneId int(10) unsigned NOT NULL default '0',
  Name varchar(255) NOT NULL default '',
  Destination varchar(255) NOT NULL default '',
  Type varchar(7) NOT NULL default 'NORMAL',
  Title varchar(255) NOT NULL default '',
  Description varchar(255) NOT NULL default '',
  Keywords varchar(255) NOT NULL default '',
  FavIcon varchar(255) NOT NULL default '',
  Flags int(11) NOT NULL default '0',
  ChangeDate timestamp(14) NOT NULL,
  CreateDate timestamp(14) NOT NULL,
  Active tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (Id),
  KEY NameIndex (Name),
  KEY ZoneIdIndex (ZoneId)
);

--
-- Table structure for table 'Zones'
--

CREATE TABLE Zones (
  Id int(10) unsigned NOT NULL auto_increment,
  Name varchar(255) NOT NULL default '',
  Hostmaster varchar(255) NOT NULL default '',
  Serial int(10) unsigned NOT NULL default '0',
  AutoSerial tinyint(4) NOT NULL default '0',
  Flags int(11) NOT NULL default '0',
  ChangeDate timestamp(14) NOT NULL,
  CreateDate timestamp(14) NOT NULL,
  Active tinyint(4) NOT NULL default '0',
  TimeToLive int(11) NOT NULL default '0',
  OwnerId varchar(255) NOT NULL default '',
  Master varchar(255) NOT NULL default '',
  PRIMARY KEY  (Id),
  UNIQUE KEY Name (Name),
  KEY NameIndex (Name)
);

	

It takes a number of parameters:

pdns-dbname

Database name to connect to

pdns-host

Database host to connect to

pdns-password

Password to connect with

pdns-socket

MySQL socket to use for connecting

pdns-user

MySQL user to connect as

pdns-soa-refresh

Pdns SOA refresh in seconds

pdns-max-slave-records

Maximal records to transfer

4.1. Notes

It has been observed that InnoDB tables outperform the default MyISAM tables by a large margin. Furthermore, the default number of backends (3) should be raised to 10 or 15 for busy servers.