Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > df754e4e6f7f5fc8ab9d6ed8559f3e3d > files > 47

bacula-docs-5.0.3-19.fc16.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with LaTeX2HTML 2008 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Database Tables</TITLE>
<META NAME="description" CONTENT="Database Tables">
<META NAME="keywords" CONTENT="developers">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="developers.css">

<LINK REL="previous" HREF="Sequence_Creation_Records_S.html">
<LINK REL="up" HREF="Catalog_Services.html">
<LINK REL="next" HREF="Storage_Media_Output_Format.html">
</HEAD>

<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1034"
  HREF="Storage_Media_Output_Format.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1028"
  HREF="Catalog_Services.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1024"
  HREF="Sequence_Creation_Records_S.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1030"
  HREF="Contents.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1032"
  HREF="GNU_Free_Documentation_Lice.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1035"
  HREF="Storage_Media_Output_Format.html">Storage Media Output Format</A>
<B> Up:</B> <A NAME="tex2html1029"
  HREF="Catalog_Services.html">Catalog Services</A>
<B> Previous:</B> <A NAME="tex2html1025"
  HREF="Sequence_Creation_Records_S.html">Sequence of Creation of</A>
 &nbsp; <B>  <A NAME="tex2html1031"
  HREF="Contents.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1033"
  HREF="GNU_Free_Documentation_Lice.html">Index</A></B> 
<BR>
<BR>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>

<UL>
<LI><A NAME="tex2html1036"
  HREF="Database_Tables.html#SECTION001031000000000000000">MySQL Table Definition</A>
</UL>
<!--End of Table of Child-Links-->
<HR>

<H1><A NAME="SECTION001030000000000000000">
Database Tables</A>
</H1>
<A NAME="2503"></A>
<A NAME="2504"></A>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Filename  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="LEFT" COLSPAN=1><B>Data Type </B></TD>
<TD ALIGN="LEFT" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">FilenameId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Name</TD>
<TD ALIGN="LEFT">Blob</TD>
<TD ALIGN="LEFT">Filename</TD>
</TR>
</TABLE>

<P>
The <B>Filename</B> table shown above contains the name of each file backed up
with the path removed. If different directories or machines contain the same
filename, only one copy will be saved in this table. 

<P>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Path  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">PathId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Path</TD>
<TD ALIGN="LEFT">Blob</TD>
<TD ALIGN="LEFT">Full Path</TD>
</TR>
</TABLE>

<P>
The <B>Path</B> table contains shown above the path or directory names of all
directories on the system or systems. The filename and any MSDOS disk name are
stripped off. As with the filename, only one copy of each directory name is
kept regardless of how many machines or drives have the same directory. These
path names should be stored in Unix path name format. 

<P>
Some simple testing on a Linux file system indicates that separating the
filename and the path may be more complication than is warranted by the space
savings. For example, this system has a total of 89,097 files, 60,467 of which
have unique filenames, and there are 4,374 unique paths. 

<P>
Finding all those files and doing two stats() per file takes an average wall
clock time of 1 min 35 seconds on a 400MHz machine running RedHat 6.1 Linux. 

<P>
Finding all those files and putting them directly into a MySQL database with
the path and filename defined as TEXT, which is variable length up to 65,535
characters takes 19 mins 31 seconds and creates a 27.6 MByte database. 

<P>
Doing the same thing, but inserting them into Blob fields with the filename
indexed on the first 30 characters and the path name indexed on the 255 (max)
characters takes 5 mins 18 seconds and creates a 5.24 MB database. Rerunning
the job (with the database already created) takes about 2 mins 50 seconds. 

<P>
Running the same as the last one (Path and Filename Blob), but Filename
indexed on the first 30 characters and the Path on the first 50 characters
(linear search done there after) takes 5 mins on the average and creates a 3.4
MB database. Rerunning with the data already in the DB takes 3 mins 35
seconds. 

<P>
Finally, saving only the full path name rather than splitting the path and the
file, and indexing it on the first 50 characters takes 6 mins 43 seconds and
creates a 7.35 MB database. 

<P>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>File  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">FileId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">FileIndex</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">The sequential file number in the Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Link to Job Record</TD>
</TR>
<TR><TD ALIGN="LEFT">PathId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Link to Path Record</TD>
</TR>
<TR><TD ALIGN="LEFT">FilenameId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Link to Filename Record</TD>
</TR>
<TR><TD ALIGN="LEFT">MarkId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Used to mark files during Verify Jobs</TD>
</TR>
<TR><TD ALIGN="LEFT">LStat</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">File attributes in base64 encoding</TD>
</TR>
<TR><TD ALIGN="LEFT">MD5</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">MD5/SHA1 signature in base64 encoding</TD>
</TR>
</TABLE>

<P>
The <B>File</B> table shown above contains one entry for each file backed up by
Bacula. Thus a file that is backed up multiple times (as is normal) will have
multiple entries in the File table. This will probably be the table with the
most number of records. Consequently, it is essential to keep the size of this
record to an absolute minimum. At the same time, this table must contain all
the information (or pointers to the information) about the file and where it
is backed up. Since a file may be backed up many times without having changed,
the path and filename are stored in separate tables. 

<P>
This table contains by far the largest amount of information in the Catalog
database, both from the stand point of number of records, and the stand point
of total database size. As a consequence, the user must take care to
periodically reduce the number of File records using the <B>retention</B>
command in the Console program. 

<P>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Job  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">JobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Job</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Unique Job Name</TD>
</TR>
<TR><TD ALIGN="LEFT">Name</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Name</TD>
</TR>
<TR><TD ALIGN="LEFT">PurgedFiles</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Used by Bacula for purging/retention periods</TD>
</TR>
<TR><TD ALIGN="LEFT">Type</TD>
<TD ALIGN="LEFT">binary(1)</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Type: Backup, Copy, Clone, Archive, Migration</TD>
</TR>
<TR><TD ALIGN="LEFT">Level</TD>
<TD ALIGN="LEFT">binary(1)</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Level</TD>
</TR>
<TR><TD ALIGN="LEFT">ClientId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Client index</TD>
</TR>
<TR><TD ALIGN="LEFT">JobStatus</TD>
<TD ALIGN="LEFT">binary(1)</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Termination Status</TD>
</TR>
<TR><TD ALIGN="LEFT">SchedTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when Job scheduled</TD>
</TR>
<TR><TD ALIGN="LEFT">StartTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when Job started</TD>
</TR>
<TR><TD ALIGN="LEFT">EndTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when Job ended</TD>
</TR>
<TR><TD ALIGN="LEFT">RealEndTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when original Job ended</TD>
</TR>
<TR><TD ALIGN="LEFT">JobTDate</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Start day in Unix format but 64 bits;  used for
Retention period.</TD>
</TR>
<TR><TD ALIGN="LEFT">VolSessionId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Unique Volume Session ID</TD>
</TR>
<TR><TD ALIGN="LEFT">VolSessionTime</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Unique Volume Session Time</TD>
</TR>
<TR><TD ALIGN="LEFT">JobFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of files saved in Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of bytes saved in Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobErrors</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of errors during Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobMissingFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of files not saved (not yet used)</TD>
</TR>
<TR><TD ALIGN="LEFT">PoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to Pool Record</TD>
</TR>
<TR><TD ALIGN="LEFT">FileSetId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to FileSet Record</TD>
</TR>
<TR><TD ALIGN="LEFT">PrioJobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to prior Job Record when migrated</TD>
</TR>
<TR><TD ALIGN="LEFT">PurgedFiles</TD>
<TD ALIGN="LEFT">tiny integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Set when all File records purged</TD>
</TR>
<TR><TD ALIGN="LEFT">HasBase</TD>
<TD ALIGN="LEFT">tiny integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Set when Base Job run</TD>
</TR>
</TABLE>

<P>
The <B>Job</B> table contains one record for each Job run by Bacula. Thus
normally, there will be one per day per machine added to the database. Note,
the JobId is used to index Job records in the database, and it often is shown
to the user in the Console program. However, care must be taken with its use
as it is not unique from database to database. For example, the user may have
a database for Client data saved on machine Rufus and another database for
Client data saved on machine Roxie. In this case, the two database will each
have JobIds that match those in another database. For a unique reference to a
Job, see Job below. 

<P>
The Name field of the Job record corresponds to the Name resource record given
in the Director's configuration file. Thus it is a generic name, and it will
be normal to find many Jobs (or even all Jobs) with the same Name. 

<P>
The Job field contains a combination of the Name and the schedule time of the
Job by the Director. Thus for a given Director, even with multiple Catalog
databases, the Job will contain a unique name that represents the Job. 

<P>
For a given Storage daemon, the VolSessionId and VolSessionTime form a unique
identification of the Job. This will be the case even if multiple Directors
are using the same Storage daemon. 

<P>
The Job Type (or simply Type) can have one of the following values: 

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Value  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Meaning  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">B</TD>
<TD ALIGN="LEFT">Backup Job</TD>
</TR>
<TR><TD ALIGN="LEFT">M</TD>
<TD ALIGN="LEFT">Migrated Job</TD>
</TR>
<TR><TD ALIGN="LEFT">V</TD>
<TD ALIGN="LEFT">Verify Job</TD>
</TR>
<TR><TD ALIGN="LEFT">R</TD>
<TD ALIGN="LEFT">Restore Job</TD>
</TR>
<TR><TD ALIGN="LEFT">C</TD>
<TD ALIGN="LEFT">Console program (not in database)</TD>
</TR>
<TR><TD ALIGN="LEFT">I</TD>
<TD ALIGN="LEFT">Internal or system Job</TD>
</TR>
<TR><TD ALIGN="LEFT">D</TD>
<TD ALIGN="LEFT">Admin Job</TD>
</TR>
<TR><TD ALIGN="LEFT">A</TD>
<TD ALIGN="LEFT">Archive Job (not implemented)</TD>
</TR>
<TR><TD ALIGN="LEFT">C</TD>
<TD ALIGN="LEFT">Copy Job</TD>
</TR>
<TR><TD ALIGN="LEFT">M</TD>
<TD ALIGN="LEFT">Migration Job</TD>
</TR>
</TABLE>
Note, the Job Type values noted above are not kept in an SQL table.

<P>
The JobStatus field specifies how the job terminated, and can be one of the
following: 

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Value  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Meaning  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">C</TD>
<TD ALIGN="LEFT">Created but not yet running</TD>
</TR>
<TR><TD ALIGN="LEFT">R</TD>
<TD ALIGN="LEFT">Running</TD>
</TR>
<TR><TD ALIGN="LEFT">B</TD>
<TD ALIGN="LEFT">Blocked</TD>
</TR>
<TR><TD ALIGN="LEFT">T</TD>
<TD ALIGN="LEFT">Terminated normally</TD>
</TR>
<TR><TD ALIGN="LEFT">W</TD>
<TD ALIGN="LEFT">Terminated normally with warnings</TD>
</TR>
<TR><TD ALIGN="LEFT">E</TD>
<TD ALIGN="LEFT">Terminated in Error</TD>
</TR>
<TR><TD ALIGN="LEFT">e</TD>
<TD ALIGN="LEFT">Non-fatal error</TD>
</TR>
<TR><TD ALIGN="LEFT">f</TD>
<TD ALIGN="LEFT">Fatal error</TD>
</TR>
<TR><TD ALIGN="LEFT">D</TD>
<TD ALIGN="LEFT">Verify Differences</TD>
</TR>
<TR><TD ALIGN="LEFT">A</TD>
<TD ALIGN="LEFT">Canceled by the user</TD>
</TR>
<TR><TD ALIGN="LEFT">I</TD>
<TD ALIGN="LEFT">Incomplete Job</TD>
</TR>
<TR><TD ALIGN="LEFT">F</TD>
<TD ALIGN="LEFT">Waiting on the File daemon</TD>
</TR>
<TR><TD ALIGN="LEFT">S</TD>
<TD ALIGN="LEFT">Waiting on the Storage daemon</TD>
</TR>
<TR><TD ALIGN="LEFT">m</TD>
<TD ALIGN="LEFT">Waiting for a new Volume to be mounted</TD>
</TR>
<TR><TD ALIGN="LEFT">M</TD>
<TD ALIGN="LEFT">Waiting for a Mount</TD>
</TR>
<TR><TD ALIGN="LEFT">s</TD>
<TD ALIGN="LEFT">Waiting for Storage resource</TD>
</TR>
<TR><TD ALIGN="LEFT">j</TD>
<TD ALIGN="LEFT">Waiting for Job resource</TD>
</TR>
<TR><TD ALIGN="LEFT">c</TD>
<TD ALIGN="LEFT">Waiting for Client resource</TD>
</TR>
<TR><TD ALIGN="LEFT">d</TD>
<TD ALIGN="LEFT">Wating for Maximum jobs</TD>
</TR>
<TR><TD ALIGN="LEFT">t</TD>
<TD ALIGN="LEFT">Waiting for Start Time</TD>
</TR>
<TR><TD ALIGN="LEFT">p</TD>
<TD ALIGN="LEFT">Waiting for higher priority job to finish</TD>
</TR>
<TR><TD ALIGN="LEFT">i</TD>
<TD ALIGN="LEFT">Doing batch insert file records</TD>
</TR>
<TR><TD ALIGN="LEFT">a</TD>
<TD ALIGN="LEFT">SD despooling attributes</TD>
</TR>
<TR><TD ALIGN="LEFT">l</TD>
<TD ALIGN="LEFT">Doing data despooling</TD>
</TR>
<TR><TD ALIGN="LEFT">L</TD>
<TD ALIGN="LEFT">Committing data (last despool)</TD>
</TR>
</TABLE>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>FileSet  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type   </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">FileSetId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">FileSet</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">FileSet name</TD>
</TR>
<TR><TD ALIGN="LEFT">MD5</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">MD5 checksum of FileSet</TD>
</TR>
<TR><TD ALIGN="LEFT">CreateTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT">Time and date Fileset created</TD>
</TR>
</TABLE>

<P>
The <B>FileSet</B> table contains one entry for each FileSet that is used. The
MD5 signature is kept to ensure that if the user changes anything inside the
FileSet, it will be detected and the new FileSet will be used. This is
particularly important when doing an incremental update. If the user deletes a
file or adds a file, we need to ensure that a Full backup is done prior to the
next incremental. 

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>JobMedia  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type   </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">JobMediaId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">JobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to Job Record</TD>
</TR>
<TR><TD ALIGN="LEFT">MediaId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to Media Record</TD>
</TR>
<TR><TD ALIGN="LEFT">FirstIndex</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The index (sequence number)  of the first file
written for this Job to the Media</TD>
</TR>
<TR><TD ALIGN="LEFT">LastIndex</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The index  of the last file written for this
Job to the Media</TD>
</TR>
<TR><TD ALIGN="LEFT">StartFile</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The physical media (tape)  file number of the
first block written for this Job</TD>
</TR>
<TR><TD ALIGN="LEFT">EndFile</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The physical media (tape)  file number of the
last block written for this Job</TD>
</TR>
<TR><TD ALIGN="LEFT">StartBlock</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The number of the first  block written for
this Job</TD>
</TR>
<TR><TD ALIGN="LEFT">EndBlock</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The number of the last  block written for this
Job</TD>
</TR>
<TR><TD ALIGN="LEFT">VolIndex</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>The Volume use sequence number  within the Job</TD>
</TR>
</TABLE>

<P>
The <B>JobMedia</B> table contains one entry at the following: start of
the job, start of each new tape file, start of each new tape, end of the
job.  Since by default, a new tape file is written every 2GB, in general,
you will have more than 2 JobMedia records per Job.  The number can be
varied by changing the "Maximum File Size" specified in the Device 
resource.  This record allows Bacula to efficiently position close to
(within 2GB) any given file in a backup.  For restoring a full Job,
these records are not very important, but if you want to retrieve
a single file that was written near the end of a 100GB backup, the   
JobMedia records can speed it up by orders of magnitude by permitting
forward spacing files and blocks rather than reading the whole 100GB
backup.

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Media  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type   </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">MediaId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">VolumeName</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Volume name</TD>
</TR>
<TR><TD ALIGN="LEFT">Slot</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Autochanger Slot number or zero</TD>
</TR>
<TR><TD ALIGN="LEFT">PoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Link to Pool Record</TD>
</TR>
<TR><TD ALIGN="LEFT">MediaType</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>The MediaType supplied by the user</TD>
</TR>
<TR><TD ALIGN="LEFT">MediaTypeId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>The MediaTypeId</TD>
</TR>
<TR><TD ALIGN="LEFT">LabelType</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>The type of label on the Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">FirstWritten</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Time/date when first written</TD>
</TR>
<TR><TD ALIGN="LEFT">LastWritten</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Time/date when last written</TD>
</TR>
<TR><TD ALIGN="LEFT">LabelDate</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Time/date when tape labeled</TD>
</TR>
<TR><TD ALIGN="LEFT">VolJobs</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of jobs written to this media</TD>
</TR>
<TR><TD ALIGN="LEFT">VolFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of files written to this media</TD>
</TR>
<TR><TD ALIGN="LEFT">VolBlocks</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of blocks written to this media</TD>
</TR>
<TR><TD ALIGN="LEFT">VolMounts</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of time media mounted</TD>
</TR>
<TR><TD ALIGN="LEFT">VolBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of bytes saved in Job</TD>
</TR>
<TR><TD ALIGN="LEFT">VolParts</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>The number of parts for a Volume (DVD)</TD>
</TR>
<TR><TD ALIGN="LEFT">VolErrors</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of errors during Job</TD>
</TR>
<TR><TD ALIGN="LEFT">VolWrites</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of writes to media</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVolBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Maximum bytes to put on this media</TD>
</TR>
<TR><TD ALIGN="LEFT">VolCapacityBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Capacity estimate for this volume</TD>
</TR>
<TR><TD ALIGN="LEFT">VolStatus</TD>
<TD ALIGN="LEFT">enum</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Status of media: Full, Archive, Append, Recycle, 
Read-Only, Disabled, Error, Busy</TD>
</TR>
<TR><TD ALIGN="LEFT">Enabled  tinyint</TD>
<TD ALIGN="LEFT">Whether or not Volume can be written</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>&nbsp;</TD>
</TR>
<TR><TD ALIGN="LEFT">Recycle</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Whether or not Bacula can recycle the Volumes:
Yes, No</TD>
</TR>
<TR><TD ALIGN="LEFT">ActionOnPurge</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>What happens to a Volume after purging</TD>
</TR>
<TR><TD ALIGN="LEFT">VolRetention</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>64 bit seconds until expiration</TD>
</TR>
<TR><TD ALIGN="LEFT">VolUseDuration</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>64 bit seconds volume can be used</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVolJobs</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>maximum jobs to put on Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVolFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>maximume EOF marks to put on Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">InChanger</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Whether or not Volume in autochanger</TD>
</TR>
<TR><TD ALIGN="LEFT">StorageId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Storage record ID</TD>
</TR>
<TR><TD ALIGN="LEFT">DeviceId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Device record ID</TD>
</TR>
<TR><TD ALIGN="LEFT">MediaAddressing</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Method of addressing media</TD>
</TR>
<TR><TD ALIGN="LEFT">VolReadTime</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Time Reading Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">VolWriteTime</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Time Writing Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">EndFile</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>End File number of Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">EndBlock</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>End block number of Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">LocationId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Location record ID</TD>
</TR>
<TR><TD ALIGN="LEFT">RecycleCount</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of times recycled</TD>
</TR>
<TR><TD ALIGN="LEFT">InitialWrite</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>When Volume first written</TD>
</TR>
<TR><TD ALIGN="LEFT">ScratchPoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Id of Scratch Pool</TD>
</TR>
<TR><TD ALIGN="LEFT">RecyclePoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Pool ID where to recycle Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">Comment</TD>
<TD ALIGN="LEFT">blob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>User text field</TD>
</TR>
</TABLE>

<P>
The <B>Volume</B> table (internally referred to as the Media table) contains
one entry for each volume, that is each tape, cassette (8mm, DLT, DAT, ...),
or file on which information is or was backed up. There is one Volume record
created for each of the NumVols specified in the Pool resource record. 

<P>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Pool  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">PoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Name</TD>
<TD ALIGN="LEFT">Tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Pool Name</TD>
</TR>
<TR><TD ALIGN="LEFT">NumVols</TD>
<TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Number of Volumes in the Pool</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVols</TD>
<TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Maximum Volumes in the Pool</TD>
</TR>
<TR><TD ALIGN="LEFT">UseOnce</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Use volume once</TD>
</TR>
<TR><TD ALIGN="LEFT">UseCatalog</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Set to use catalog</TD>
</TR>
<TR><TD ALIGN="LEFT">AcceptAnyVolume</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Accept any volume from Pool</TD>
</TR>
<TR><TD ALIGN="LEFT">VolRetention</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>64 bit seconds to retain volume</TD>
</TR>
<TR><TD ALIGN="LEFT">VolUseDuration</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>64 bit seconds volume can be used</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVolJobs</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>max jobs on volume</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVolFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>max EOF marks to put on Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxVolBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>max bytes to write on Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">AutoPrune</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>yes|no for autopruning</TD>
</TR>
<TR><TD ALIGN="LEFT">Recycle</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>yes|no for allowing auto recycling of Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">ActionOnPurge</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Default Volume ActionOnPurge</TD>
</TR>
<TR><TD ALIGN="LEFT">PoolType</TD>
<TD ALIGN="LEFT">enum</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Backup, Copy, Cloned, Archive, Migration</TD>
</TR>
<TR><TD ALIGN="LEFT">LabelType</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Type of label ANSI/Bacula</TD>
</TR>
<TR><TD ALIGN="LEFT">LabelFormat</TD>
<TD ALIGN="LEFT">Tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Label format</TD>
</TR>
<TR><TD ALIGN="LEFT">Enabled  tinyint</TD>
<TD ALIGN="LEFT">Whether or not Volume can be written</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>&nbsp;</TD>
</TR>
<TR><TD ALIGN="LEFT">ScratchPoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Id of Scratch Pool</TD>
</TR>
<TR><TD ALIGN="LEFT">RecyclePoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Pool ID where to recycle Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">NextPoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Pool ID of next Pool</TD>
</TR>
<TR><TD ALIGN="LEFT">MigrationHighBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>High water mark for migration</TD>
</TR>
<TR><TD ALIGN="LEFT">MigrationLowBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Low water mark for migration</TD>
</TR>
<TR><TD ALIGN="LEFT">MigrationTime</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=173>Time before migration</TD>
</TR>
</TABLE>

<P>
The <B>Pool</B> table contains one entry for each media pool controlled by
Bacula in this database. One media record exists for each of the NumVols
contained in the Pool. The PoolType is a Bacula defined keyword. The MediaType
is defined by the administrator, and corresponds to the MediaType specified in
the Director's Storage definition record. The CurrentVol is the sequence
number of the Media record for the current volume. 

<P>

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Client  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">ClientId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Name</TD>
<TD ALIGN="LEFT">TinyBlob</TD>
<TD ALIGN="LEFT">File Services Name</TD>
</TR>
<TR><TD ALIGN="LEFT">UName</TD>
<TD ALIGN="LEFT">TinyBlob</TD>
<TD ALIGN="LEFT">uname -a from Client (not yet used)</TD>
</TR>
<TR><TD ALIGN="LEFT">AutoPrune</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT">yes|no for autopruning</TD>
</TR>
<TR><TD ALIGN="LEFT">FileRetention</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT">64 bit seconds to retain Files</TD>
</TR>
<TR><TD ALIGN="LEFT">JobRetention</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT">64 bit seconds to retain Job</TD>
</TR>
</TABLE>

<P>
The <B>Client</B> table contains one entry for each machine backed up by Bacula
in this database. Normally the Name is a fully qualified domain name. 

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Storage  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">StorageId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Unique Id</TD>
</TR>
<TR><TD ALIGN="LEFT">Name</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">Resource name of Storage device</TD>
</TR>
<TR><TD ALIGN="LEFT">AutoChanger</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT">Set if it is an autochanger</TD>
</TR>
</TABLE>

<P>
The <B>Storage</B> table contains one entry for each Storage used.

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Counter  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">Counter</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">Counter name</TD>
</TR>
<TR><TD ALIGN="LEFT">MinValue</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Start/Min value for counter</TD>
</TR>
<TR><TD ALIGN="LEFT">MaxValue</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Max value for counter</TD>
</TR>
<TR><TD ALIGN="LEFT">CurrentValue</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Current counter value</TD>
</TR>
<TR><TD ALIGN="LEFT">WrapCounter</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">Name of another counter</TD>
</TR>
</TABLE>

<P>
The <B>Counter</B> table contains one entry for each permanent counter defined
by the user. 

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>JobHisto  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name  </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">JobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Job</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Unique Job Name</TD>
</TR>
<TR><TD ALIGN="LEFT">Name</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Name</TD>
</TR>
<TR><TD ALIGN="LEFT">Type</TD>
<TD ALIGN="LEFT">binary(1)</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Type: Backup, Copy, Clone, Archive, Migration</TD>
</TR>
<TR><TD ALIGN="LEFT">Level</TD>
<TD ALIGN="LEFT">binary(1)</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Level</TD>
</TR>
<TR><TD ALIGN="LEFT">ClientId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Client index</TD>
</TR>
<TR><TD ALIGN="LEFT">JobStatus</TD>
<TD ALIGN="LEFT">binary(1)</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Job Termination Status</TD>
</TR>
<TR><TD ALIGN="LEFT">SchedTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when Job scheduled</TD>
</TR>
<TR><TD ALIGN="LEFT">StartTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when Job started</TD>
</TR>
<TR><TD ALIGN="LEFT">EndTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when Job ended</TD>
</TR>
<TR><TD ALIGN="LEFT">RealEndTime</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Time/date when original Job ended</TD>
</TR>
<TR><TD ALIGN="LEFT">JobTDate</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Start day in Unix format but 64 bits;  used for
Retention period.</TD>
</TR>
<TR><TD ALIGN="LEFT">VolSessionId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Unique Volume Session ID</TD>
</TR>
<TR><TD ALIGN="LEFT">VolSessionTime</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Unique Volume Session Time</TD>
</TR>
<TR><TD ALIGN="LEFT">JobFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of files saved in Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobBytes</TD>
<TD ALIGN="LEFT">bigint</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of bytes saved in Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobErrors</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of errors during Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobMissingFiles</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Number of files not saved (not yet used)</TD>
</TR>
<TR><TD ALIGN="LEFT">PoolId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to Pool Record</TD>
</TR>
<TR><TD ALIGN="LEFT">FileSetId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to FileSet Record</TD>
</TR>
<TR><TD ALIGN="LEFT">PrioJobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Link to prior Job Record when migrated</TD>
</TR>
<TR><TD ALIGN="LEFT">PurgedFiles</TD>
<TD ALIGN="LEFT">tiny integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Set when all File records purged</TD>
</TR>
<TR><TD ALIGN="LEFT">HasBase</TD>
<TD ALIGN="LEFT">tiny integer</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=180>Set when Base Job run</TD>
</TR>
</TABLE>

<P>
The bf JobHisto table is the same as the Job table, but it keeps
long term statistics (i.e. it is not pruned with the Job).

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Version  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">LogIdId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">JobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Points to Job record</TD>
</TR>
<TR><TD ALIGN="LEFT">Time</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT">Time/date log record created</TD>
</TR>
<TR><TD ALIGN="LEFT">LogText</TD>
<TD ALIGN="LEFT">blob</TD>
<TD ALIGN="LEFT">Log text</TD>
</TR>
</TABLE>

<P>
The <B>Log</B> table contains a log of all Job output.

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Location  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">LocationId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Location</TD>
<TD ALIGN="LEFT">tinyblob</TD>
<TD ALIGN="LEFT">Text defining location</TD>
</TR>
<TR><TD ALIGN="LEFT">Cost</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Relative cost of obtaining Volume</TD>
</TR>
<TR><TD ALIGN="LEFT">Enabled</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT">Whether or not Volume is enabled</TD>
</TR>
</TABLE>

<P>
The <B>Location</B> table defines where a Volume is physically.

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>LocationLog  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">locLogIdId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">Date</TD>
<TD ALIGN="LEFT">datetime</TD>
<TD ALIGN="LEFT">Time/date log record created</TD>
</TR>
<TR><TD ALIGN="LEFT">MediaId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Points to Media record</TD>
</TR>
<TR><TD ALIGN="LEFT">LocationId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Points to Location record</TD>
</TR>
<TR><TD ALIGN="LEFT">NewVolStatus</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">enum: Full, Archive, Append, Recycle, Purged
  Read-only, Disabled, Error, Busy, Used, Cleaning</TD>
</TR>
<TR><TD ALIGN="LEFT">Enabled</TD>
<TD ALIGN="LEFT">tinyint</TD>
<TD ALIGN="LEFT">Whether or not Volume is enabled</TD>
</TR>
</TABLE>

<P>
The <B>Log</B> table contains a log of all Job output.

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>Version  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">VersionId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
</TABLE>

<P>
The <B>Version</B> table defines the Bacula database version number. Bacula
checks this number before reading the database to ensure that it is compatible
with the Bacula binary file. 

<P>

<TABLE CELLPADDING=3 BORDER="1">
<TR><TD ALIGN="LEFT" COLSPAN=3><B>BaseFiles  </B></TD>
</TR>
<TR><TD ALIGN="CENTER" COLSPAN=1><B>Column Name </B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Data Type 
</B></TD>
<TD ALIGN="CENTER" COLSPAN=1><B>Remark  </B></TD>
</TR>
<TR><TD ALIGN="LEFT">BaseId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Primary Key</TD>
</TR>
<TR><TD ALIGN="LEFT">BaseJobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">JobId of Base Job</TD>
</TR>
<TR><TD ALIGN="LEFT">JobId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Reference to Job</TD>
</TR>
<TR><TD ALIGN="LEFT">FileId</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">Reference to File</TD>
</TR>
<TR><TD ALIGN="LEFT">FileIndex</TD>
<TD ALIGN="LEFT">integer</TD>
<TD ALIGN="LEFT">File Index number</TD>
</TR>
</TABLE>

<P>
The <B>BaseFiles</B> table contains all the File references for a particular
JobId that point to a Base file - i.e. they were previously saved and hence
were not saved in the current JobId but in BaseJobId under FileId. FileIndex
is the index of the file, and is used for optimization of Restore jobs to
prevent the need to read the FileId record when creating the in memory tree.
This record is not yet implemented. 

<P>

<P>

<H2><A NAME="SECTION001031000000000000000">
MySQL Table Definition</A>
</H2>
<A NAME="3449"></A>
<A NAME="3450"></A>

<P>
The commands used to create the MySQL tables are as follows: 

<P>
<PRE>
USE bacula;
CREATE TABLE Filename (
  FilenameId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Name BLOB NOT NULL,
  PRIMARY KEY(FilenameId),
  INDEX (Name(30))
  );
CREATE TABLE Path (
   PathId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   Path BLOB NOT NULL,
   PRIMARY KEY(PathId),
   INDEX (Path(50))
   );
CREATE TABLE File (
   FileId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   FileIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
   PathId INTEGER UNSIGNED NOT NULL REFERENCES Path,
   FilenameId INTEGER UNSIGNED NOT NULL REFERENCES Filename,
   MarkId INTEGER UNSIGNED NOT NULL DEFAULT 0,
   LStat TINYBLOB NOT NULL,
   MD5 TINYBLOB NOT NULL,
   PRIMARY KEY(FileId),
   INDEX (JobId),
   INDEX (PathId),
   INDEX (FilenameId)
   );
CREATE TABLE Job (
   JobId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   Job TINYBLOB NOT NULL,
   Name TINYBLOB NOT NULL,
   Type BINARY(1) NOT NULL,
   Level BINARY(1) NOT NULL,
   ClientId INTEGER NOT NULL REFERENCES Client,
   JobStatus BINARY(1) NOT NULL,
   SchedTime DATETIME NOT NULL,
   StartTime DATETIME NOT NULL,
   EndTime DATETIME NOT NULL,
   JobTDate BIGINT UNSIGNED NOT NULL,
   VolSessionId INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolSessionTime INTEGER UNSIGNED NOT NULL DEFAULT 0,
   JobFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
   JobBytes BIGINT UNSIGNED NOT NULL,
   JobErrors INTEGER UNSIGNED NOT NULL DEFAULT 0,
   JobMissingFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
   PoolId INTEGER UNSIGNED NOT NULL REFERENCES Pool,
   FileSetId INTEGER UNSIGNED NOT NULL REFERENCES FileSet,
   PurgedFiles TINYINT NOT NULL DEFAULT 0,
   HasBase TINYINT NOT NULL DEFAULT 0,
   PRIMARY KEY(JobId),
   INDEX (Name(128))
   );
CREATE TABLE FileSet (
   FileSetId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   FileSet TINYBLOB NOT NULL,
   MD5 TINYBLOB NOT NULL,
   CreateTime DATETIME NOT NULL,
   PRIMARY KEY(FileSetId)
   );
CREATE TABLE JobMedia (
   JobMediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
   MediaId INTEGER UNSIGNED NOT NULL REFERENCES Media,
   FirstIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
   LastIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
   StartFile INTEGER UNSIGNED NOT NULL DEFAULT 0,
   EndFile INTEGER UNSIGNED NOT NULL DEFAULT 0,
   StartBlock INTEGER UNSIGNED NOT NULL DEFAULT 0,
   EndBlock INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY(JobMediaId),
   INDEX (JobId, MediaId)
   );
CREATE TABLE Media (
   MediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   VolumeName TINYBLOB NOT NULL,
   Slot INTEGER NOT NULL DEFAULT 0,
   PoolId INTEGER UNSIGNED NOT NULL REFERENCES Pool,
   MediaType TINYBLOB NOT NULL,
   FirstWritten DATETIME NOT NULL,
   LastWritten DATETIME NOT NULL,
   LabelDate DATETIME NOT NULL,
   VolJobs INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolBlocks INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolMounts INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolBytes BIGINT UNSIGNED NOT NULL DEFAULT 0,
   VolErrors INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolWrites INTEGER UNSIGNED NOT NULL DEFAULT 0,
   VolCapacityBytes BIGINT UNSIGNED NOT NULL,
   VolStatus ENUM('Full', 'Archive', 'Append', 'Recycle', 'Purged',
    'Read-Only', 'Disabled', 'Error', 'Busy', 'Used', 'Cleaning') NOT NULL,
   Recycle TINYINT NOT NULL DEFAULT 0,
   VolRetention BIGINT UNSIGNED NOT NULL DEFAULT 0,
   VolUseDuration BIGINT UNSIGNED NOT NULL DEFAULT 0,
   MaxVolJobs INTEGER UNSIGNED NOT NULL DEFAULT 0,
   MaxVolFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
   MaxVolBytes BIGINT UNSIGNED NOT NULL DEFAULT 0,
   InChanger TINYINT NOT NULL DEFAULT 0,
   MediaAddressing TINYINT NOT NULL DEFAULT 0,
   VolReadTime BIGINT UNSIGNED NOT NULL DEFAULT 0,
   VolWriteTime BIGINT UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY(MediaId),
   INDEX (PoolId)
   );
CREATE TABLE Pool (
   PoolId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   Name TINYBLOB NOT NULL,
   NumVols INTEGER UNSIGNED NOT NULL DEFAULT 0,
   MaxVols INTEGER UNSIGNED NOT NULL DEFAULT 0,
   UseOnce TINYINT NOT NULL,
   UseCatalog TINYINT NOT NULL,
   AcceptAnyVolume TINYINT DEFAULT 0,
   VolRetention BIGINT UNSIGNED NOT NULL,
   VolUseDuration BIGINT UNSIGNED NOT NULL,
   MaxVolJobs INTEGER UNSIGNED NOT NULL DEFAULT 0,
   MaxVolFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
   MaxVolBytes BIGINT UNSIGNED NOT NULL,
   AutoPrune TINYINT DEFAULT 0,
   Recycle TINYINT DEFAULT 0,
   PoolType ENUM('Backup', 'Copy', 'Cloned', 'Archive', 'Migration', 'Scratch') NOT NULL,
   LabelFormat TINYBLOB,
   Enabled TINYINT DEFAULT 1,
   ScratchPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool,
   RecyclePoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool,
   UNIQUE (Name(128)),
   PRIMARY KEY (PoolId)
   );
CREATE TABLE Client (
   ClientId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   Name TINYBLOB NOT NULL,
   Uname TINYBLOB NOT NULL,       /* full uname -a of client */
   AutoPrune TINYINT DEFAULT 0,
   FileRetention BIGINT UNSIGNED NOT NULL,
   JobRetention  BIGINT UNSIGNED NOT NULL,
   UNIQUE (Name(128)),
   PRIMARY KEY(ClientId)
   );
CREATE TABLE BaseFiles (
   BaseId INTEGER UNSIGNED AUTO_INCREMENT,
   BaseJobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
   FileId INTEGER UNSIGNED NOT NULL REFERENCES File,
   FileIndex INTEGER UNSIGNED,
   PRIMARY KEY(BaseId)
   );
CREATE TABLE UnsavedFiles (
   UnsavedId INTEGER UNSIGNED AUTO_INCREMENT,
   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
   PathId INTEGER UNSIGNED NOT NULL REFERENCES Path,
   FilenameId INTEGER UNSIGNED NOT NULL REFERENCES Filename,
   PRIMARY KEY (UnsavedId)
   );
CREATE TABLE Version (
   VersionId INTEGER UNSIGNED NOT NULL
   );
-- Initialize Version
INSERT INTO Version (VersionId) VALUES (7);
CREATE TABLE Counters (
   Counter TINYBLOB NOT NULL,
   MinValue INTEGER,
   MaxValue INTEGER,
   CurrentValue INTEGER,
   WrapCounter TINYBLOB NOT NULL,
   PRIMARY KEY (Counter(128))
   );
</PRE>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1034"
  HREF="Storage_Media_Output_Format.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1028"
  HREF="Catalog_Services.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1024"
  HREF="Sequence_Creation_Records_S.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1030"
  HREF="Contents.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1032"
  HREF="GNU_Free_Documentation_Lice.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1035"
  HREF="Storage_Media_Output_Format.html">Storage Media Output Format</A>
<B> Up:</B> <A NAME="tex2html1029"
  HREF="Catalog_Services.html">Catalog Services</A>
<B> Previous:</B> <A NAME="tex2html1025"
  HREF="Sequence_Creation_Records_S.html">Sequence of Creation of</A>
 &nbsp; <B>  <A NAME="tex2html1031"
  HREF="Contents.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1033"
  HREF="GNU_Free_Documentation_Lice.html">Index</A></B> 
<!--End of Navigation Panel-->
<ADDRESS>

2012-01-24
</ADDRESS>
</BODY>
</HTML>