---
name: "dbbalancerd"
section: "1"
platform: "linux"
package: "dbbalancer"
version: "0.4.4-7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/dbbalancerd"
---

# dbbalancerd(1)

program to provide database pooling, load sharing and write replication for databases

## NAME

dbbalancerd — program to provide database pooling, load sharing and  write replication for databases

## SYNOPSIS

**dbbalancerd** \[**-r** \]  \[**-w** \]  \[**-d** \]  \[**-f** *config\_file\]  \[***-p** *pidfile\_directory\]*

## DESCRIPTION

*This manual page documents briefly the*  **dbbalancerd** command.

This manual page was written for the **Debian GNU/Linux** distribution  because the original program does not have a manual page.  Instead, it has documentation in HTML format located in  the /usr/share/doc/dbbalancerd/manual.

**dbbalancerd** is a program that would sit in  between database clients, like C, C++, TCL, Java JDBC, Perl DBI, etc  programs and a database server. Currently the only server supported  is PostgreSQL, but the architecture is open to embrace more servers  in a future.

### Connection Pooling

In this mode **dbbalancerd** will provide a  pool of connections to your database.  Clients need not be changed,  and will make connections to the **dbbalancerd** daemon,  which will re-use existing connections in a pool, or queue  the request until the next pooled connection becomes available.

### Load Balancing

When operating as a load balancer, **dbbalancerd** will  maintain a pool of connections to multiple backend servers.  Operation is otherwise similar to connection pooling.

To use multiple backend database servers, however, a method of  replicating database changes is usually needed, which is why the  write-replication mode is provided.  Other methods of replication are  of course equally valid in such an architecture.

### Write Replication

This mode requires some changes to your application to use  separate \`writer' connections to **dbbalancerd** when  writes are needed.  These writes are then applied to all of the  back end databases in parallel.

## OPTIONS

These programs follow traditional Unix command-line syntax  preceding each option with a dash (\`-').  For a complete description  see the **HTML** documentation.

- **-r**

  Run as a 'reader'.

- **-w**

  Run as a 'writer', for \`replicate on write' mode.

- **-d**

  Run in debugging mode

- **-f** *config\_file*

  Specify a non-default config file.  The config file defaults to  conf/DBBalancerConfig.conf.

-

  In the Debian GNU/Linux installation of DBBalancer the init  script will start a dbbalancerd daemon process for each configuration  file found in /etc/dbbalancer/conf.d

- **-k** *socket\_directory*

  Specify a non-default directory for the unix sockets for PostgreSQL  connections.  The default is to use /tmp.  On Debian the init script will  start the daemons using /var/run/postgresql, which is the directory used  by the Debian PostgreSQL package.

- **-p** *pidfile\_directory*

  Specify a non-default directory for saving PID files.  The default  directory is /var/run.  The Debian distribution overrides this on the  command line and these files go in /var/run/dbbalancer.

-

  In the Debian GNU/Linux installation of DBBalancer the init  script will start a dbbalancerd daemon process for each configuration  file found in /etc/dbbalancer/conf.d.  Filenames which end with \`-w'  will result in a writer process, otherwise it is a reader or reader/writer.

- **-h**

  Show summary of options.

## SEE ALSO

dbbalancer.conf (5).

The programs are documented fully by the HTML manual available  in /usr/share/doc/dbbalancerd/manual

## KNOWN BUGS

This version of dbbalancerd cannot handle SSL connections either  inward or outward.  If presented with an inward SSL connection request  this will refuse, and the connection should normally fall back to  plain text authentication.

The unix socket (if used) is created with the current default  permissions.  You may need to run 'umask 0' prior to starting the  dbbalancerd daemon so that all users can communicate with it.

## AUTHOR

This manual page was written by Andrew McMillan \<debian@mcmillan.net.nz\> for  the **Debian GNU/Linux** system (but may be used by others).  Permission is  granted to copy, distribute and/or modify this document under  the terms of the GNU Free Documentation  License, Version 1.1 or any later version published by the Free  Software Foundation; with no Invariant Sections, no Front-Cover  Texts and no Back-Cover Texts.
