Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > b24f4357c8479344be16703c233650c5 > files > 51

pdns-2.9.22-9.mga1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Oracle backend</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PowerDNS manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Backends in detail"
HREF="backends-detail.html"><LINK
REL="PREVIOUS"
TITLE="Generic MySQL and PgSQL backends"
HREF="generic-mypgsql-backends.html"><LINK
REL="NEXT"
TITLE="Generic SQLite backend (2 and 3)"
HREF="gsqlite.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PowerDNS manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="generic-mypgsql-backends.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix A. Backends in detail</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="gsqlite.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="ORACLE"
>A.6. Oracle backend</A
></H1
><P
>	<DIV
CLASS="TABLE"
><A
NAME="AEN5033"
></A
><P
><B
>Table A-6. Oracle backend capabilities</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><TBODY
><TR
><TD
>Native</TD
><TD
>Yes</TD
></TR
><TR
><TD
>Master</TD
><TD
>No</TD
></TR
><TR
><TD
>Slave</TD
><TD
>No</TD
></TR
><TR
><TD
>Superslave</TD
><TD
>No</TD
></TR
><TR
><TD
>Autoserial</TD
><TD
>Yes</TD
></TR
><TR
><TD
>Module name</TD
><TD
>oracle</TD
></TR
><TR
><TD
>Launch name</TD
><TD
>oracle</TD
></TR
></TBODY
></TABLE
></DIV
>
      </P
><P
>	Oracle backend with easily configurable SQL statements, allowing you to graft PDNS on any Oracle database of your choosing.
      </P
><P
>	PowerDNS is currently ascertaining if this backend can be distributed in binary form without violating Oracle licensing. In the meantime, 
	the source code to the Oracle backend is available in the pdns distribution.
      </P
><P
>	The following configuration settings are available:
      </P
><P
>	<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>oracle-debug-queries</DT
><DD
><P
>		Output all queries to disk for debugging purposes.
	      </P
></DD
><DT
>oracle-time-queries</DT
><DD
><P
>		Output all queries to disk for timing purposes.
	      </P
></DD
><DT
>oracle-uppercase-database</DT
><DD
><P
>		Change all domain names to uppercase before querying database.
	      </P
></DD
><DT
>oracle-database</DT
><DD
><P
>		Oracle database name to connect to.
	      </P
></DD
><DT
>oracle-home</DT
><DD
><P
>		PDNS can set the ORACLE_HOME environment variable from within the executable, allowing execution of
		the daemon from init.d scripts where ORACLE_HOME may not yet be set.
	      </P
></DD
><DT
>oracle-sid</DT
><DD
><P
>		PDNS can set the ORACLE_SID environment variable from within the executable, allowing execution of
		the daemon from init.d scripts where ORACLE_SID may not yet be set.
	      </P
></DD
><DT
>oracle-username</DT
><DD
><P
>		Oracle username to connect as.
	      </P
></DD
><DT
>oracle-password</DT
><DD
><P
>		Oracle password to connect with.
	      </P
></DD
></DL
></DIV
>
      </P
><P
>	The generic Oracle backend can be configured to use user-specified queries. The following are the default queries
	and their names:
      </P
><P
>	<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>oracle-forward-query</DT
><DD
><P
>		select content, TimeToLive, Priority, type, ZoneId, nvl(ChangeDate,0) from Records where name = :name and type = :type
	      </P
></DD
><DT
>oracle-forward-query-by-zone</DT
><DD
><P
>		select content, TimeToLive, Priority, type, ZoneId, nvl(ChangeDate,0) from records where name = :name and type = :type and ZoneId = :id
	      </P
></DD
><DT
>oracle-forward-any-query</DT
><DD
><P
>		select content, TimeToLive, Priority, type, ZoneId, nvl(ChangeDate,0) from records where name = :name
	      </P
></DD
><DT
>oracle-list-query</DT
><DD
><P
>		select content, TimeToLive, Priority, type, ZoneId, nvl(ChangeDate, 0), name from records where ZoneId = :id
	      </P
></DD
></DL
></DIV
>
      </P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN5114"
>A.6.1. Setting up Oracle for use with PowerDNS</A
></H2
><P
>	  To setup a database that corresponds to these default queries, issue the following as Oracle user sys:
	  <PRE
CLASS="SCREEN"
>	    create user powerdns identified by YOURPASSWORD;
	    grant connect to powerdns;
	    
	    create tablespace powerdns datafile '/opt/oracle/oradata/oracle/powerdns.dbf'
	      size 256M extent management local autoallocate;
	    
	    alter user powerdns quota unlimited on powerdns; 
	  </PRE
>
	</P
><P
>	  As user 'powerdns' continue with:
	  <PRE
CLASS="SCREEN"
>create table Domains (
 ID		 number(11) NOT NULL,
 NAME		 VARCHAR(255) NOT NULL,
 MASTER		 VARCHAR(128) DEFAULT NULL,
 LAST_CHECK	 INT DEFAULT NULL,
 TYPE		 VARCHAR(6) NOT NULL,
 NOTIFIED_SERIAL INT DEFAULT NULL,
 ACCOUNT	 VARCHAR(40) DEFAULT NULL,
 primary key (ID)
)tablespace POWERDNS;

create index DOMAINS$NAME on Domains (NAME) tablespace POWERDNS;
create sequence DOMAINS_ID_SEQUENCE;

create table Records
(
  ID                number(11) NOT NULL,
  ZoneID            number(11) default NULL REFERENCES Domains(ID) ON DELETE CASCADE,
  NAME              varchar2(255) default NULL,
  TYPE              varchar2(6) default NULL,  
  CONTENT           varchar2(255) default NULL,
  TimeToLive        number(11) default NULL,   
  Priority          number(11) default NULL,
  CreateDate        number(11) default NULL,
  ChangeDate        number(11) default NULL,
  primary key (ID)
)tablespace POWERDNS;

create index RECORDS$NAME on RECORDS (NAME) tablespace POWERDNS;
create sequence RECORDS_ID_SEQUENCE;
	  </PRE
>
	</P
><P
>	  To insert records, either use <B
CLASS="COMMAND"
>zone2sql</B
> with the <B
CLASS="COMMAND"
>--oracle</B
> setting, or execute sql
	  along the lines of:
	  <PRE
CLASS="SCREEN"
>insert into domains (id,name,type) values (domains_id_sequence.nextval,'netherlabs.nl','NATIVE');
insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,'netherlabs.nl', 'SOA', 'ahu.casema.net. hostmaster.ds9a.nl. 2000081401 28800 7200 604800 86400', 3600, 0 from Domains where name='netherlabs.nl';
insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,'netherlabs.nl', 'NS', 'ahu.casema.net', 3600, 0 from Domains where name='netherlabs.nl';
insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,'netherlabs.nl', 'NS', 'ns1.pine.nl', 3600, 0 from Domains where name='netherlabs.nl';
insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,'netherlabs.nl', 'NS', 'ns2.pine.nl', 3600, 0 from Domains where name='netherlabs.nl';
insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,'netherlabs.nl', 'A', '213.244.168.210', 3600, 0 from Domains where name='netherlabs.nl';
insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,'netherlabs.nl', 'MX', 'outpost.ds9a.nl', 3600, 10 from Domains where name='netherlabs.nl';

	  </PRE
>
	</P
><P
>	  For performance reasons it is best to specify <B
CLASS="COMMAND"
>--transactions</B
> too!
	</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="generic-mypgsql-backends.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="gsqlite.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Generic MySQL and PgSQL backends</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="backends-detail.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Generic SQLite backend (2 and 3)</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>