objectIdentifier
objectidentifier
deallocators
-mirrormode
-MirrorMode
+multiprovider
+MultiProvider
loopDetect
SIGHUP
authMethodNotSupported
matcheduid
Locator
ldapmaster
-olcMirrorMode
+olcMultiProvider
libldap
refreshDeletes
aliasProblem
a connection needs be created.
This feature can be used to provide a form of load balancing when using
-{{SECT: MirrorMode replication}}.
+{{SECT: Mirror mode replication}}.
H3: Further Information
single {{slapd}} installation just doesn't provide the necessary availability
or reliability. For extremely demanding environments where a
single point of failure is not acceptable, {{multi-provider}} replication
-is also available. {{slapd}} includes support for {{LDAP Sync}}-based
+is also available. With {{multi-provider}} replication two or more nodes can
+accept write operations allowing for redundancy at the provider level.
+
+{{slapd}} includes support for {{LDAP Sync}}-based
replication.
{{B:Proxy Cache}}: {{slapd}} can be configured as a caching
.{{S: }}
+{{B: Start the server}}
-Obviously this doesn't cater for any complicated deployments like {{SECT: MirrorMode}} or {{SECT: N-Way Multi-Provider}},
+Obviously this doesn't cater for any complicated deployments like {{SECT: Mirror mode}} or {{SECT: N-Way Multi-Provider}},
but following the above sections and using either commercial support or community support should help. Also check the
{{SECT: Troubleshooting}} section.
accepted directory updates from other clients, and a slave only
accepted updates from a (single) master. The replication structure
was rigidly defined and any particular database could only fulfill
-a single role, either master or slave.
+a single role, either master or slave. Another historic term introduced
+with OpenLDAP 2.4 was multimaster.
As OpenLDAP now supports a wide variety of replication topologies, these
-terms have been deprecated in favor of {{provider}} and
-{{consumer}}: A provider replicates directory updates to consumers;
-consumers receive replication updates from providers. Unlike the
-rigidly defined master/slave relationships, provider/consumer roles
-are quite fluid: replication updates received in a consumer can be
-further propagated by that consumer to other servers, so a consumer
-can also act simultaneously as a provider. Also, a consumer need not
+terms have been deprecated in favor of {{provider}}/{{multi-provider}} and
+{{consumer}}: A provider can accept external write operations and make them
+available for retrieval by consumers; consumers request replication updates from
+providers. Unlike the rigidly defined master/slave relationships,
+provider/consumer roles are quite fluid: replication updates received in a
+consumer can be further propagated by that consumer to other servers, so a
+consumer can also act simultaneously as a provider. Also, a consumer need not
be an actual LDAP server; it may be just an LDAP client.
The following sections will describe the replication technology and
For configuration, please see the {{SECT:N-Way Multi-Provider}} section below
-H3: MirrorMode replication
+H3: Mirror mode replication
-MirrorMode is a hybrid configuration that provides all of the consistency
+Mirror mode is a hybrid configuration that provides all of the consistency
guarantees of single-provider replication, while also providing the high
-availability of multi-provider. In MirrorMode two providers are set up to
+availability of multi-provider. In Mirror mode two providers are set up to
replicate from each other (as a multi-provider configuration), but an
external frontend is employed to direct all writes to only one of
the two servers. The second provider will only be used for writes if
repaired and restarted it will automatically catch up to any changes
on the running provider and resync.
-H4: Arguments for MirrorMode
+H4: Arguments for Mirror mode
* Provides a high-availability (HA) solution for directory writes (replicas handle reads)
* As long as one provider is operational, writes can safely be accepted
* Syncrepl also allows the provider nodes to re-synchronize after any downtime
-H4: Arguments against MirrorMode
+H4: Arguments against Mirror mode
-* MirrorMode is not what is termed as a Multi-Provider solution. This is because
+* Mirror mode is not what is termed as a Multi-Provider solution. This is because
writes have to go to just one of the mirror nodes at a time
-* MirrorMode can be termed as Active-Active Hot-Standby, therefore an external
+* Mirror mode can be termed as Active-Active Hot-Standby, therefore an external
server (slapd in proxy mode) or device (hardware load balancer)
is needed to manage which provider is currently active
* Backups are managed slightly differently
-For configuration, please see the {{SECT:MirrorMode}} section below
+For configuration, please see the {{SECT:Mirror mode}} section below
H3: Syncrepl Proxy Mode
the push mode (refreshAndPersist) must still be initiated from the consumer
before the provider can begin pushing changes. In some network configurations,
particularly where firewalls restrict the direction in which connections
-can be made, a provider-initiated push mode may be needed.
+can be made, a provider-initiated push mode may be needed.
This mode can be configured with the aid of the LDAP Backend
({{SECT: Backends}} and {{slapd-ldap(8)}}). Instead of running the
> credentials=secret searchbase="cn=config" type=refreshAndPersist
> retry="5 5 300 5" timeout=1
> -
-> add: olcMirrorMode
-> olcMirrorMode: TRUE
+> add: olcMultiProvider
+> olcMultiProvider: TRUE
Now start up the provider and a consumer/s, also add the above LDIF to the first consumer, second consumer etc. It will then replicate {{B:cn=config}}. You now have N-Way Multi-Provider on the config database.
> olcSyncRepl: rid=006 provider=$URI3 binddn="$MANAGERDN" bindmethod=simple
> credentials=$PASSWD searchbase="$BASEDN" type=refreshOnly
> interval=00:00:00:10 retry="5 5 300 5" timeout=1
-> olcMirrorMode: TRUE
+> olcMultiProvider: TRUE
>
> dn: olcOverlay=syncprov,olcDatabase={1}${BACKEND},cn=config
> changetype: add
must exactly match the URLs {{slapd}} listens on ({{-h}} in {{SECT:Command-Line Options}}).
Otherwise slapd may attempt to replicate from itself, causing a loop.
-H3: MirrorMode
+H3: Mirror mode
-MirrorMode configuration is actually very easy. If you have ever setup a normal
+Mirror mode configuration is actually very easy. If you have ever setup a normal
slapd syncrepl provider, then the only change is the following two directives:
-> mirrormode on
+> multiprovider on
> serverID 1
-Note: You need to make sure that the {{serverID}} of each mirror node is
+Note: You need to make sure that the {{serverID}} of each provider node is
different and add it as a global configuration option.
H4: Mirror Node Configuration
Here's a specific cut down example using {{SECT:LDAP Sync Replication}} in
{{refreshAndPersist}} mode:
-MirrorMode node 1:
+Mirror mode node 1:
> # Global section
> serverID 1
> # database section
>
-> # syncrepl directive \r
-> syncrepl rid=001\r
-> provider=ldap://ldap-sid2.example.com\r
-> bindmethod=simple\r
-> binddn="cn=mirrormode,dc=example,dc=com"\r
-> credentials=mirrormode\r
-> searchbase="dc=example,dc=com"\r
-> schemachecking=on\r
-> type=refreshAndPersist\r
-> retry="60 +"\r
+> # syncrepl directive
+> syncrepl rid=001
+> provider=ldap://ldap-sid2.example.com
+> bindmethod=simple
+> binddn="cn=mirrormode,dc=example,dc=com"
+> credentials=mirrormode
+> searchbase="dc=example,dc=com"
+> schemachecking=on
+> type=refreshAndPersist
+> retry="60 +"
>
-> mirrormode on
+> multiprovider on
-MirrorMode node 2:
+Mirror mode node 2:
> # Global section
> serverID 2
> # database section
>
-> # syncrepl directive\r
-> syncrepl rid=001\r
-> provider=ldap://ldap-sid1.example.com\r
-> bindmethod=simple\r
-> binddn="cn=mirrormode,dc=example,dc=com"\r
-> credentials=mirrormode\r
-> searchbase="dc=example,dc=com"\r
-> schemachecking=on\r
-> type=refreshAndPersist\r
-> retry="60 +"\r
-> \r
-> mirrormode on
-
-It's simple really; each MirrorMode node is setup {{B:exactly}} the same, except
+> # syncrepl directive
+> syncrepl rid=001
+> provider=ldap://ldap-sid1.example.com
+> bindmethod=simple
+> binddn="cn=mirrormode,dc=example,dc=com"
+> credentials=mirrormode
+> searchbase="dc=example,dc=com"
+> schemachecking=on
+> type=refreshAndPersist
+> retry="60 +"
+>
+> multiprovider on
+
+It's simple really; each Mirror mode node is setup {{B:exactly}} the same, except
that the {{serverID}} is unique, and each consumer is pointed to
the other server.
A typical enterprise example might be:
-!import "dual_dc.png"; align="center"; title="MirrorMode Enterprise Configuration"
-FT[align="Center"] Figure X.Y: MirrorMode in a Dual Data Center Configuration
+!import "dual_dc.png"; align="center"; title="Mirror mode Enterprise Configuration"
+FT[align="Center"] Figure X.Y: Mirror mode in a Dual Data Center Configuration
H5: Normal Consumer Configuration
can either setup in normal {{SECT:syncrepl replication}} mode, or in
{{SECT:delta-syncrepl replication}} mode.
-H4: MirrorMode Summary
+H4: Mirror mode Summary
You will now have a directory architecture that provides all of the
consistency guarantees of single-provider replication, while also providing the
x="96.974648"
y="113.75929"
style="font-family:Arial;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:18px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%" /></flowRegion><flowPara
- id="flowPara27617">MirrorMode 1</flowPara></flowRoot> <flowRoot
+ id="flowPara27617">Mirror mode 1</flowPara></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot27619"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:Arial"
x="96.974648"
y="113.75929"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:Arial" /></flowRegion><flowPara
- id="flowPara27627">MirrorMode 2</flowPara></flowRoot> <path
+ id="flowPara27627">Mirror mode 2</flowPara></flowRoot> <path
d="M 103.99577,648.52356 C 103.99577,648.52356 103.75488,628.78956 123.98963,634.70975 C 144.22438,640.62995 140.61103,650.49696 140.85192,650.49696 C 141.09281,650.49696 137.23858,638.37464 152.65553,636.11932 C 166.62714,637.52889 173.13117,640.62995 172.4085,651.06079 C 171.68583,661.49163 164.94091,664.02886 164.94091,664.02886 C 164.94091,664.02886 177.2263,665.43843 173.85384,686.58202 C 168.55426,701.24157 168.55426,699.832 156.26888,701.52349 C 150.72841,698.98626 150.48752,696.73094 150.48752,696.73094 C 150.48752,696.73094 160.60489,707.72561 145.42883,714.77347 C 128.32565,720.12985 126.15764,715.3373 118.93094,712.80007 C 111.94514,707.72561 113.39048,701.52349 113.39048,701.52349 C 113.39048,701.52349 117.7265,711.95432 103.03221,713.92773 C 88.337924,715.90113 82.797457,711.95432 80.147668,695.8852 C 79.424999,683.76287 92.433052,682.63522 92.433052,682.63522 C 92.433052,682.63522 84.483686,682.91713 82.315677,676.71501 C 80.147668,670.51289 78.702329,662.33737 85.206355,651.3427 C 97.25085,638.09272 105.44111,646.83207 103.99577,648.52356 z "
id="path1503"
sodipodi:nodetypes="cccccccccccccccccc"
y="279.42432"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Arial" /></flowRegion><flowPara
id="flowPara3132">Each LB points to</flowPara><flowPara
- id="flowPara3134">the same MirrorMode</flowPara><flowPara
+ id="flowPara3134">the same Mirror mode</flowPara><flowPara
id="flowPara3136">Node at any time.</flowPara></flowRoot> </g>
</svg>
Specifies the maximum number of aliases to dereference when trying to
resolve an entry, used to avoid infinite alias loops. The default is 15.
.TP
-.B olcMirrorMode: TRUE | FALSE
-This option puts a consumer database into "mirror" mode. Update
+.B olcMultiProvider: TRUE | FALSE
+This option puts a consumer database into Multi-Provider mode. Update
operations will be accepted from any user, not just the updatedn. The
database must already be configured as syncrepl consumer
before this keyword may be set. This mode also requires a
Specifies the maximum number of aliases to dereference when trying to
resolve an entry, used to avoid infinite alias loops. The default is 15.
.TP
-.B mirrormode on | off
-This option puts a consumer database into "mirror" mode. Update
+.B multiprovider on | off
+This option puts a consumer database into Multi-Provider mode. Update
operations will be accepted from any user, not just the updatedn. The
database must already be configured as a syncrepl consumer
before this keyword may be set. This mode also requires a
.B serverID
(see above) to be configured.
-By default, mirrormode is off.
+By default, multiprovider is off.
.TP
.B monitoring on | off
This option enables database-specific monitoring in the entry related
CFG_SSTR_IF_MAX,
CFG_SSTR_IF_MIN,
CFG_TTHREADS,
- CFG_MIRRORMODE,
+ CFG_MULTIPROVIDER,
CFG_HIDDEN,
CFG_MONITORING,
CFG_SERVERID,
&config_generic, "( OLcfgDbAt:0.6 NAME 'olcMaxDerefDepth' "
"EQUALITY integerMatch "
"SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL },
- { "mirrormode", "on|off", 2, 2, 0, ARG_DB|ARG_ON_OFF|ARG_MAGIC|CFG_MIRRORMODE,
- &config_generic, "( OLcfgDbAt:0.16 NAME 'olcMirrorMode' "
+ { "multiprovider", "on|off", 2, 2, 0, ARG_DB|ARG_ON_OFF|ARG_MAGIC|CFG_MULTIPROVIDER,
+ &config_generic, "( OLcfgDbAt:0.16 NAME ( 'olcMultiProvider' 'olcMirrorMode' ) "
"EQUALITY booleanMatch "
"SYNTAX OMsBoolean SINGLE-VALUE )", NULL, NULL },
{ "moduleload", "file", 2, 0, 0,
&global_writetimeout, "( OLcfgGlAt:88 NAME 'olcWriteTimeout' "
"EQUALITY integerMatch "
"SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL },
+ /* Legacy keywords */
+ { "mirrormode", "on|off", 2, 2, 0, ARG_DB|ARG_ON_OFF|ARG_MAGIC|CFG_MULTIPROVIDER,
+ &config_generic, NULL, NULL, NULL },
{ NULL, NULL, 0, 0, 0, ARG_IGNORED,
NULL, NULL, NULL, NULL }
};
"olcReplicaArgsFile $ olcReplicaPidFile $ olcReplicationInterval $ "
"olcReplogFile $ olcRequires $ olcRestrict $ olcRootDN $ olcRootPW $ "
"olcSchemaDN $ olcSecurity $ olcSizeLimit $ olcSyncUseSubentry $ olcSyncrepl $ "
- "olcTimeLimit $ olcUpdateDN $ olcUpdateRef $ olcMirrorMode $ "
+ "olcTimeLimit $ olcUpdateDN $ olcUpdateRef $ olcMultiProvider $ "
"olcMonitoring $ olcExtraAttrs ) )",
Cft_Database, NULL, cfAddDatabase },
{ "( OLcfgGlOc:5 "
case CFG_SYNC_SUBENTRY:
c->value_int = (SLAP_SYNC_SUBENTRY(c->be) != 0);
break;
- case CFG_MIRRORMODE:
+ case CFG_MULTIPROVIDER:
if ( SLAP_SHADOW(c->be))
c->value_int = (SLAP_MULTIPROVIDER(c->be) != 0);
else
snprintf(c->log, sizeof( c->log ), "change requires slapd restart");
break;
- case CFG_MIRRORMODE:
+ case CFG_MULTIPROVIDER:
SLAP_DBFLAGS(c->be) &= ~SLAP_DBFLAG_MULTI_SHADOW;
if(SLAP_SHADOW(c->be))
SLAP_DBFLAGS(c->be) |= SLAP_DBFLAG_SINGLE_SHADOW;
SLAP_DBFLAGS(c->be) &= ~SLAP_DBFLAG_LASTBIND;
break;
- case CFG_MIRRORMODE:
+ case CFG_MULTIPROVIDER:
if(c->value_int && !SLAP_SHADOW(c->be)) {
snprintf( c->cr_msg, sizeof( c->cr_msg ), "<%s> database is not a shadow",
c->argv[0] );
rc = -1;
}
} else {
- /* mirrormode still needs to see this flag in tool mode */
+ /* multiprovider still needs to see this flag in tool mode */
rc = config_sync_shadow( c ) ? -1 : 0;
}
ldap_free_urldesc( lud );
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI1@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
sizeLimit=unlimited
timelimit=unlimited
-mirrormode TRUE
+multiprovider TRUE
overlay syncprov
syncprov-sessionlog 100
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI1@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
olcRootPW: secret
olcSizeLimit: unlimited
olcTimeLimit: unlimited
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
n=`expr $n + 1`
done
echo "-" >> $TMP
-echo "add: olcMirrorMode" >> $TMP
-echo "olcMirrorMode: TRUE" >> $TMP
+echo "add: olcMultiProvider" >> $TMP
+echo "olcMultiProvider: TRUE" >> $TMP
$LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF < $TMP >> $TESTOUT 2>&1
RC=$?
if test $RC != 0 ; then
done
cat <<EOF >> $TMP
-
-add: olcMirrorMode
-olcMirrorMode: TRUE
+add: olcMultiProvider
+olcMultiProvider: TRUE
EOF
$LDAPMODIFY -D cn=config -H $URI -y $CONFIGPWF < $TMP >>$TESTOUT 2>&1
n=`expr $n + 1`
done
cat <<EOF >> $TMP
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
dn: olcOverlay=syncprov,olcDatabase={1}${BACKEND},cn=config
objectClass: olcOverlayConfig
# Instead, they will use an alternate DB so that they may be
# configured differently from the provider. This alternate DB
# will also be a consumer for the real cn=schema,cn=config tree.
-# It has MirrorMode enabled so that it can be written directly
+# It has multi-provider enabled so that it can be written directly
# while being a consumer of the main schema.
echo "Configuring consumer config DB on provider..."
$LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
$SYNCTYPE retry="3 5 300 5" timeout=3
suffixmassage="cn=schema,cn=config,cn=consumer"
-
-add: olcMirrorMode
-olcMirrorMode: TRUE
+add: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?
retry="3 +" timeout=3 logbase="cn=log"
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
$INDEX2
dn: olcOverlay=syncprov,olcDatabase={2}$BACKEND,cn=config
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog
-
-replace: olcMirrorMode
-olcMirrorMode: TRUE
+replace: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog
-
-replace: olcMirrorMode
-olcMirrorMode: TRUE
+replace: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
starttls=critical
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
$INDEX2
dn: olcOverlay=syncprov,olcDatabase={2}$BACKEND,cn=config
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
starttls=critical
-
-replace: olcMirrorMode
-olcMirrorMode: TRUE
+replace: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
starttls=critical
-
-replace: olcMirrorMode
-olcMirrorMode: TRUE
+replace: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?
retry="3 +" timeout=3 logbase="cn=log"
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
-olcMirrorMode: TRUE
+olcMultiProvider: TRUE
$INDEX2
dn: olcOverlay=syncprov,olcDatabase={2}$BACKEND,cn=config
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
-
-replace: olcMirrorMode
-olcMirrorMode: TRUE
+replace: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
-
-replace: olcMirrorMode
-olcMirrorMode: TRUE
+replace: olcMultiProvider
+olcMultiProvider: TRUE
EOF
RC=$?