<h2class="title"style="clear: both"><aid="rep_init"></a>Initializing a new site</h2>
</div>
</div>
</div>
<p>By default, adding a new site to a replication group only requires the
client to join. Berkeley DB will automatically perform internal
initialization from the master to the client, bringing the client into
sync with the master.</p>
<p>
However, depending on the network and infrastructure, it can be
advantageous in a few instances to use a "hot backup" to initialize a
client into a replication group. Clients not wanting to automatically
perform internal initialization should call the <ahref="../api_reference/C/repconfig.html"class="olink">DB_ENV->rep_set_config()</a> method to
turn off the <ahref="../api_reference/C/repconfig.html#config_DB_REP_CONF_AUTOINIT"class="olink">DB_REP_CONF_AUTOINIT</a> flag. Turning off this
configuration flag causes Berkeley DB to
return <ahref="../api_reference/C/repmessage.html#repmsg_DB_REP_JOIN_FAILURE"class="olink">DB_REP_JOIN_FAILURE</a> to the application's <ahref="../api_reference/C/repmessage.html"class="olink">DB_ENV->rep_process_message()</a> method instead of
performing internal initialization.
</p>
<p>To use a hot backup to initialize a client into a replication group,
perform the following steps:</p>
<divclass="orderedlist">
<oltype="1">
<li>Do an archival backup of the master's environment, as described in
<aclass="xref"href="transapp_archival.html"title="Database and log file archival">Database and log file archival</a>. The backup can either be a conventional backup or a hot
backup.</li>
<li>Copy the archival backup into a clean environment directory on the
client.</li>
<li>Run catastrophic recovery on the client's new environment, as described
in <aclass="xref"href="transapp_recovery.html"title="Recovery procedures">Recovery procedures</a>.</li>
<li>Reconfigure and reopen the environment as a client member of the
replication group.</li>
</ol>
</div>
<p>If copying the backup to the client takes a long time relative to the
frequency with which log files are reclaimed using the
<ahref="../api_reference/C/db_archive.html"class="olink">db_archive</a> utility or the <ahref="../api_reference/C/logarchive.html"class="olink">DB_ENV->log_archive()</a> method, it may be
necessary to suppress log reclamation until the newly restarted client
has "caught up" and applied all log records generated during its
downtime.</p>
<p>As with any Berkeley DB application, the database environment must be in a
consistent state at application startup. This is most easily assured
by running recovery at startup time in one thread or process; it is
harmless to do this on both clients and masters even when not strictly