diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2010-11-18 16:22:59 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2010-11-18 16:22:59 +0000 |
commit | e7a7de3479960cc68f8549a7d517203d6f46f5d4 (patch) | |
tree | 6c281feef11feec8a89e193a264ec78df88120ca | |
parent | 09a05a6c8a202ba81b26678d8477e2fb6aac9e6c (diff) | |
download | rabbitmq-server-e7a7de3479960cc68f8549a7d517203d6f46f5d4.tar.gz |
Stop mnesia while taking the backup
-rw-r--r-- | src/rabbit_mnesia.erl | 3 | ||||
-rw-r--r-- | src/rabbit_upgrade.erl | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index da81f884..e8547041 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -34,7 +34,7 @@ -export([ensure_mnesia_dir/0, dir/0, status/0, init/0, is_db_empty/0, cluster/1, force_cluster/1, reset/0, force_reset/0, - is_clustered/0, empty_ram_only_tables/0]). + is_clustered/0, empty_ram_only_tables/0, wait_for_tables/0]). -export([table_names/0]). @@ -65,6 +65,7 @@ -spec(is_clustered/0 :: () -> boolean()). -spec(empty_ram_only_tables/0 :: () -> 'ok'). -spec(create_tables/0 :: () -> 'ok'). +-spec(wait_for_tables/0 :: () -> 'ok'). -endif. diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index 4b7b4342..83ab2595 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -126,6 +126,7 @@ apply_upgrades(Upgrades) -> ok = file:close(Lock), BackupDir = dir() ++ "-upgrade-backup", info("Upgrades: ~w to apply~n", [length(Upgrades)]), + mnesia:stop(), case rabbit_misc:recursive_copy(dir(), BackupDir) of ok -> %% We need to make the backup after creating the lock file @@ -141,6 +142,8 @@ apply_upgrades(Upgrades) -> ok = file:delete(LockFile), exit({could_not_back_up_mnesia_dir, E}) end, + rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia), + rabbit_mnesia:wait_for_tables(), info("Upgrades: Mnesia dir backed up to ~p~n", [BackupDir]), [apply_upgrade(Upgrade) || Upgrade <- Upgrades], info("Upgrades: All upgrades applied successfully~n", []), |