Fileset Examples
EnterpriseBacula Enterprise Only
This solution is only available for Bacula Enterprise. For subscription inquiries, please reach out to sales@baculasystems.com.
This section provides practical Fileset examples for common and advanced MongoDB deployments.
Getting Started with Filesets
Use this table to choose the best example as a starting point.
If your environment is… |
Start from this section |
Why |
|---|---|---|
Single MongoDB node, simple setup |
|
Fastest baseline configuration. |
Single MongoDB node, password/TLS handled outside URI |
|
Cleaner credential and TLS file handling. |
Replica set with normal primary discovery |
|
Driver can route to writable primary automatically. |
Replica set in controlled lab with one fixed node |
|
Explicit single-node targeting. |
Sharded cluster through mongos |
|
Uses mongos entrypoint instead of direct shard members. |
Lower-privilege data-only backup |
|
Disables users/roles capture with |
Isolated disaster-recovery artifact |
|
Includes |
Scope tuning (db/collection include-exclude) |
|
Shows realistic include/exclude combinations. |
Operational diagnostics and performance investigations |
|
Uses |
Centralized reusable configuration |
|
Keeps long parameter sets in |
Connection Examples
Standalone with URI
FileSet {
Name = "FS-MongoDB-Standalone-URI"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb"
}
}
Standalone with Structured Parameters
FileSet {
Name = "FS-MongoDB-Standalone-Structured"
Include {
Options { signature = MD5 }
Plugin = "mongodb: host=mongo1.example.com:27017 username=backup password_env=MONGODB_BACKUP_PASSWORD authentication_database=admin database=appdb"
}
}
Replica Set with URI Seed List
FileSet {
Name = "FS-MongoDB-RS-URI"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://mongo1.example.com:27017,mongo2.example.com:27017,mongo3.example.com:27017/admin?replicaSet=rs0&authSource=admin database=appdb"
}
}
Replica Set with Structured Parameters and TLS
FileSet {
Name = "FS-MongoDB-RS-TLS"
Include {
Options { signature = MD5 }
Plugin = "mongodb: host=mongo1.example.com:27017 host=mongo2.example.com:27017 host=mongo3.example.com:27017 replica_set=rs0 username=backup password_file=/opt/bacula/etc/mongodb.pass authentication_database=admin authentication_mechanism=SCRAM-SHA-256 tls=yes tls_ca_file=/opt/bacula/etc/mongodb-ca.pem database=appdb"
}
}
Replica Set Direct Connection (Lab / Controlled Cases)
FileSet {
Name = "FS-MongoDB-RS-Direct"
Include {
Options { signature = MD5 }
Plugin = "mongodb: host=mongo-primary.example.com:27017 replica_set=rs0 direct_connection=yes username=backup password_file=/opt/bacula/etc/mongodb.pass authentication_database=admin database=appdb"
}
}
Use direct_connection=yes only when you intentionally want a single target
node. Normal production jobs should prefer seed-list discovery.
TLS with MONGODB-X509
FileSet {
Name = "FS-MongoDB-X509"
Include {
Options { signature = MD5 }
Plugin = "mongodb: host=mongo1.example.com:27017 username=\"O=Bacula,OU=Backup,CN=bacula-mongodb-client\" authentication_database=$external authentication_mechanism=MONGODB-X509 tls=yes tls_ca_file=/opt/bacula/etc/mongodb-ca.pem tls_certificate_key_file=/opt/bacula/etc/bacula-mongodb-client.pem database=appdb"
}
}
The escaped quotes around username keep the X.509 subject together as a
single plugin option value inside the Bacula FileSet string.
Backup Selection Examples
Multiple Included Databases
FileSet {
Name = "FS-MongoDB-Select-MultiDB"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb database=analytics"
}
}
Include then Exclude Databases
FileSet {
Name = "FS-MongoDB-Select-DBExclude"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb database=analytics database_exclude=analytics_tmp"
}
}
Collection Subset across Selected Databases
FileSet {
Name = "FS-MongoDB-Select-Collections"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb collection=widgets collection=orders"
}
}
Include then Exclude Collections
FileSet {
Name = "FS-MongoDB-Select-CollectionExclude"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb collection=widgets collection=audits collection_exclude=audits_tmp collection_exclude=widgets_staging"
}
}
Data-Only Lower-Privilege Backup
FileSet {
Name = "FS-MongoDB-DataOnly"
Include {
Options { signature = MD5 }
Plugin = "mongodb: host=mongo1.example.com:27017 username=appbackup password_file=/opt/bacula/etc/appbackup.pass authentication_database=appdb database=appdb skip_security=yes"
}
}
Isolated Disaster-Recovery Artifact
FileSet {
Name = "FS-MongoDB-Isolated-DR"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin include_admin=yes"
}
}
Use this Fileset only for dedicated disaster-recovery planning. Restoring
admin content into a live production target can overwrite administrative
state.
Dry-Run Planning in JSON
FileSet {
Name = "FS-MongoDB-DryRun"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb dry_run=yes report_format=json"
}
}
Common and Tuning Examples
Operational Debug and Telemetry
FileSet {
Name = "FS-MongoDB-Tuning-Debug"
Include {
Options { signature = MD5 }
Plugin = "mongodb: uri=mongodb://backup:secret@mongo1.example.com:27017/admin?authSource=admin database=appdb path=/opt/bacula/working log=/var/log/bacula/mongodb-plugin.log debug=2 stream_telemetry=yes abort_on_error=yes"
}
}
Configuration File as Primary Source
FileSet {
Name = "FS-MongoDB-ConfigFile"
Include {
Options { signature = MD5 }
Plugin = "mongodb: config_file=/opt/bacula/etc/mongodb.settings"
}
}
host=mongo1.example.com:27017
host=mongo2.example.com:27017
host=mongo3.example.com:27017
replica_set=rs0
username=backup
password_file=/opt/bacula/etc/mongodb.pass
authentication_database=admin
authentication_mechanism=SCRAM-SHA-256
tls=yes
tls_ca_file=/opt/bacula/etc/mongodb-ca.pem
database=appdb
database=analytics
collection_exclude=analytics_tmp
skip_security=no
debug=0
stream_telemetry=no
Configuration File plus Inline Overrides
FileSet {
Name = "FS-MongoDB-ConfigFile-Override"
Include {
Options { signature = MD5 }
Plugin = "mongodb: config_file=/opt/bacula/etc/mongodb.settings database=appdb collection=widgets dry_run=yes report_format=json"
}
}
The config_file content can include any MongoDB plugin parameter, including
connection, backup selection, restore, common, and tuning options.
See also
Previous articles:
Go back to: Plugin Configuration.