浏览代码

Bug 633168 - Share backend dbEnv with the replication changelog

https://bugzilla.redhat.com/show_bug.cgi?id=633168

Description: previous commit was missing the upgrade script 81changelog.pl
Noriko Hosoi 15 年之前
父节点
当前提交
16462b2346
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29 0
      ldap/admin/src/scripts/81changelog.pl

+ 29 - 0
ldap/admin/src/scripts/81changelog.pl

@@ -0,0 +1,29 @@
+use Mozilla::LDAP::Conn;
+
+# Cleanup local changelog db
+# If changelog db exists, run db_checkpoint to flush the transaction logs.
+# Then, remove the local region files and transaction logs.
+sub runinst {
+    my ($inf, $inst, $dseldif, $conn) = @_;
+
+    my @errs;
+
+    my $config = "cn=changelog5,cn=config";
+    my $config_entry = $conn->search($config, "base", "(cn=*)");
+    if (!$config_entry) {
+        # cn=changelog5 does not exist; not a master.
+        return ();
+    }
+    # First, check if the server is up or down.
+    my $changelogdir = $config_entry->getValues('nsslapd-changelogdir');
+
+    # Run db_checkpoint
+    system("/usr/bin/db_checkpoint -h $changelogdir -1");
+
+    # Remove old db region files and transaction logs
+    system("rm $changelogdir/__db.*");
+    system("rm $changelogdir/log.*");
+    system("rm $changelogdir/guardian");
+
+    return ();
+}