14.5.3 BDB Startup Options

The following options to mysqld can be used to change the behavior of the BDB storage engine. For more information, see Section 5.1.3, “Server Command Options”.

Table 14.3 BDB Option/Variable Reference

NameCmd-LineOption FileSystem VarStatus VarVar ScopeDynamic
bdb_cache_size Yes GlobalNo
bdb-homeYesYes GlobalNo
- Variable: bdb_home Yes GlobalNo
bdb-lock-detectYesYesYes GlobalNo
bdb_log_buffer_size Yes GlobalNo
bdb-logdirYesYes GlobalNo
- Variable: bdb_logdir Yes GlobalNo
bdb_max_lock Yes GlobalNo
bdb-shared-dataYesYes GlobalNo
- Variable: bdb_shared_data Yes GlobalNo
bdb-tmpdirYesYes GlobalNo
- Variable: bdb_tmpdir Yes GlobalNo
have_bdb Yes GlobalNo
skip-sync-bdb-logsYesYesYes GlobalNo
sync-bdb-logsYesYesYes GlobalNo

If you use the --skip-bdb option, MySQL does not initialize the Berkeley DB library and this saves a lot of memory. However, if you use this option, you cannot use BDB tables. If you try to create a BDB table, MySQL uses the default storage engine instead.

Normally, you should start mysqld without the --bdb-no-recover option if you intend to use BDB tables. However, this may cause problems when you try to start mysqld if the BDB log files are corrupted. See Section, “Troubleshooting Problems Starting the MySQL Server”.

With the bdb_max_lock variable, you can specify the maximum number of locks that can be active on a BDB table. The default is 10,000. You should increase this if errors such as the following occur when you perform long transactions or when mysqld has to examine many rows to execute a query:

bdb: Lock table is out of available locks
Got error 12 from ...

You may also want to change the binlog_cache_size and max_binlog_cache_size variables if you are using large multiple-statement transactions. See Section 5.2.3, “The Binary Log”.

See also Section 5.1.4, “Server System Variables”.

User Comments
Sign Up Login You must be logged in to post a comment.