Browse Source

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 years ago
parent
commit
16462b2346
1 changed files with 29 additions and 0 deletions
  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 ();
+}