2736 Rafal Somla 2008-11-28
BUG#40307 - Backup: The list of databases processed by BACKUP/RESTORE not
logged.
After this patch, the trace from BACKUP/RESTOE commands left in server's error
log (master.err) will look as follows:
[Note] Backup: Starting backup process
[Note] Backup: Backing up NN database(s) <list of databases>
[Note] Backup: Backup completed
[Note] Restore: Starting restore process
[Note] Restore: Restoring NN database(s) <list of databases>
[Note] Restore: Restore completed
This way DBA can find out which databases are affected by the operation.
Database list is reported in Logger::report_stats_pre() which is called after
initializing backup/restore catalogue and before performing backup of table
data.
modified:
sql/backup/kernel.cc
sql/backup/logger.cc
sql/share/errmsg.txt
2735 Rafal Somla 2008-11-26 [merge]
Merging changes in the team tree (6.0-backup) into the bug tree.
removed:
mysql-test/suite/backup/r/backup_commit_blocker.result
mysql-test/suite/backup/t/backup_commit_blocker.test
mysql-test/suite/falcon/r/falcon_bug_28095_II.result
mysql-test/suite/falcon/t/falcon_bug_28095_II-master.opt
mysql-test/suite/falcon/t/falcon_bug_28095_II.test
mysql-test/suite/rpl/r/rpl_row_stop_middle.result
mysql-test/suite/rpl/t/rpl_row_stop_middle.test
unittest/mysys/CMakeLists.txt
added:
mysql-test/include/restart_mysqld.inc
mysql-test/include/wait_until_disconnected.inc
mysql-test/r/partition_innodb_stmt.result
mysql-test/r/query_cache_disabled.result
mysql-test/suite/backup/r/backup_vp_nontx.result
mysql-test/suite/backup/r/backup_vp_tx.result
mysql-test/suite/backup/t/backup_nodata_driver-master.opt
mysql-test/suite/backup/t/backup_vp_nontx.test
mysql-test/suite/backup/t/backup_vp_tx.test
mysql-test/suite/backup_engines/t/disabled.def
mysql-test/suite/falcon/r/falcon_bug_30124-big.result
mysql-test/suite/falcon/r/falcon_bug_38186.result
mysql-test/suite/falcon/r/falcon_bug_39708.result
mysql-test/suite/falcon/r/falcon_bug_40130.result
mysql-test/suite/falcon/r/falcon_bug_40158.result
mysql-test/suite/falcon/t/falcon_bug_30124-big.test
mysql-test/suite/falcon/t/falcon_bug_38186.test
mysql-test/suite/falcon/t/falcon_bug_39708-master.opt
mysql-test/suite/falcon/t/falcon_bug_39708.test
mysql-test/suite/falcon/t/falcon_bug_40130.test
mysql-test/suite/falcon/t/falcon_bug_40158.test
mysql-test/t/partition_innodb_stmt.test
mysql-test/t/query_cache_disabled-master.opt
mysql-test/t/query_cache_disabled.test
sql/MSG00001.bin
sql/message.h
sql/message.rc
unittest/mysys/CMakeLists.txt
renamed:
mysql-test/suite/falcon/r/falcon_bug_28095_I.result => mysql-test/suite/falcon/r/falcon_bug_28095.result
mysql-test/suite/falcon/t/falcon_bug_28095_I.test => mysql-test/suite/falcon/t/falcon_bug_28095.test
modified:
BUILD/SETUP.sh
client/mysqltest.c
configure.in
include/Makefile.am
include/config-netware.h
include/my_pthread.h
include/mysql_com.h
mysql-test/extra/rpl_tests/rpl_insert_id.test
mysql-test/extra/rpl_tests/rpl_row_basic.test
mysql-test/include/wait_until_connected_again.inc
mysql-test/lib/mtr_report.pl
mysql-test/r/alter_table.result
mysql-test/r/ctype_cp1251.result
mysql-test/r/ctype_ldml.result
mysql-test/r/debug_sync.result
mysql-test/r/events_bugs.result
mysql-test/r/explain.result
mysql-test/r/group_by.result
mysql-test/r/implicit_commit.result
mysql-test/r/information_schema.result
mysql-test/r/information_schema_parameters.result
mysql-test/r/information_schema_part.result
mysql-test/r/information_schema_routines.result
mysql-test/r/innodb_data_home_dir_basic.result
mysql-test/r/innodb_flush_method_basic.result
mysql-test/r/innodb_mysql.result
mysql-test/r/limit.result
mysql-test/r/locktrans_innodb.result
mysql-test/r/locktrans_myisam.result
mysql-test/r/log_tables.result
mysql-test/r/merge.result
mysql-test/r/metadata.result
mysql-test/r/order_by.result
mysql-test/r/partition.result
mysql-test/r/partition_archive.result
mysql-test/r/partition_datatype.result
mysql-test/r/partition_innodb.result
mysql-test/r/partition_mgm.result
mysql-test/r/partition_mgm_err.result
mysql-test/r/partition_not_windows.result
mysql-test/r/partition_range.result
mysql-test/r/partition_symlink.result
mysql-test/r/partition_windows.result
mysql-test/r/ps_11bugs.result
mysql-test/r/show_check.result
mysql-test/r/sp.result
mysql-test/r/ssl_capath_basic.result
mysql-test/r/ssl_cipher_basic.result
mysql-test/r/subselect3.result
mysql-test/r/subselect_sj.result
mysql-test/r/symlink.result
mysql-test/r/thread_cache_size_func.result
mysql-test/r/variables.result
mysql-test/r/view.result
mysql-test/r/windows.result
mysql-test/r/xa.result
mysql-test/std_data/Index.xml
mysql-test/suite/backup/r/backup.result
mysql-test/suite/backup/r/backup_backupdir.result
mysql-test/suite/backup/r/backup_commit_backup.result
mysql-test/suite/backup/r/backup_commit_restore.result
mysql-test/suite/backup/r/backup_compression.result
mysql-test/suite/backup/r/backup_concurrent.result
mysql-test/suite/backup/r/backup_db_grants.result
mysql-test/suite/backup/r/backup_ddl_blocker.result
mysql-test/suite/backup/r/backup_errors.result
mysql-test/suite/backup/r/backup_fkey.result
mysql-test/suite/backup/r/backup_lock_myisam.result
mysql-test/suite/backup/r/backup_logs.result
mysql-test/suite/backup/r/backup_logs_output.result
mysql-test/suite/backup/r/backup_logs_purge.result
mysql-test/suite/backup/r/backup_no_be.result
mysql-test/suite/backup/r/backup_no_data.result
mysql-test/suite/backup/r/backup_nodata_driver.result
mysql-test/suite/backup/r/backup_security.result
mysql-test/suite/backup/r/backup_snapshot.result
mysql-test/suite/backup/r/backup_timeout.result
mysql-test/suite/backup/r/backup_views.result
mysql-test/suite/backup/t/backup.test
mysql-test/suite/backup/t/backup_backupdir.test
mysql-test/suite/backup/t/backup_commit_backup.test
mysql-test/suite/backup/t/backup_commit_restore.test
mysql-test/suite/backup/t/backup_compression.test
mysql-test/suite/backup/t/backup_concurrent.test
mysql-test/suite/backup/t/backup_db_grants.test
mysql-test/suite/backup/t/backup_ddl_blocker.test
mysql-test/suite/backup/t/backup_errors.test
mysql-test/suite/backup/t/backup_fkey.test
mysql-test/suite/backup/t/backup_lock_myisam.test
mysql-test/suite/backup/t/backup_logs.test
mysql-test/suite/backup/t/backup_logs_output-master.opt
mysql-test/suite/backup/t/backup_logs_purge.test
mysql-test/suite/backup/t/backup_myisam1.test
mysql-test/suite/backup/t/backup_no_be.test
mysql-test/suite/backup/t/backup_no_data.test
mysql-test/suite/backup/t/backup_nodata_driver.test
mysql-test/suite/backup/t/backup_security.test
mysql-test/suite/backup/t/backup_snapshot.test
mysql-test/suite/backup/t/backup_timeout.test
mysql-test/suite/backup/t/backup_views.test
mysql-test/suite/backup/t/disabled.def
mysql-test/suite/backup_engines/include/backup_ptr_commit.inc
mysql-test/suite/backup_engines/r/backup_online_testing.result
mysql-test/suite/backup_engines/r/backup_ptr_commit_mixed.result
mysql-test/suite/backup_engines/r/backup_ptr_commit_row.result
mysql-test/suite/backup_engines/r/backup_ptr_commit_stmt.result
mysql-test/suite/backup_engines/r/backup_tmp_tables.result
mysql-test/suite/backup_engines/t/backup_online_testing.test
mysql-test/suite/backup_engines/t/backup_tmp_tables.test
mysql-test/suite/falcon/r/falcon_bug_30124.result
mysql-test/suite/falcon/r/falcon_bug_33404.result
mysql-test/suite/falcon/t/disabled.def
mysql-test/suite/falcon/t/falcon_bug_30124.test
mysql-test/suite/funcs_1/r/is_columns_is.result
mysql-test/suite/funcs_1/r/is_events.result
mysql-test/suite/funcs_1/r/is_routines.result
mysql-test/suite/funcs_1/r/is_triggers.result
mysql-test/suite/ndb/r/ndb_partition_key.result
mysql-test/suite/ndb/r/ndb_partition_range.result
mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result
mysql-test/suite/parts/inc/partition_auto_increment.inc
mysql-test/suite/parts/inc/partition_directory.inc
mysql-test/suite/parts/inc/partition_mgm.inc
mysql-test/suite/parts/r/ndb_dd_backuprestore.result
mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
mysql-test/suite/parts/r/part_supported_sql_func_ndb.result
mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result
mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
mysql-test/suite/parts/r/partition_alter1_1_innodb.result
mysql-test/suite/parts/r/partition_alter1_1_myisam.result
mysql-test/suite/parts/r/partition_alter1_2_innodb.result
mysql-test/suite/parts/r/partition_alter1_2_myisam.result
mysql-test/suite/parts/r/partition_alter2_1_innodb.result
mysql-test/suite/parts/r/partition_alter2_1_myisam.result
mysql-test/suite/parts/r/partition_alter2_2_innodb.result
mysql-test/suite/parts/r/partition_alter2_2_myisam.result
mysql-test/suite/parts/r/partition_alter3_innodb.result
mysql-test/suite/parts/r/partition_alter3_myisam.result
mysql-test/suite/parts/r/partition_alter4_innodb.result
mysql-test/suite/parts/r/partition_alter4_myisam.result
mysql-test/suite/parts/r/partition_auto_increment_archive.result
mysql-test/suite/parts/r/partition_auto_increment_blackhole.result
mysql-test/suite/parts/r/partition_auto_increment_falcon.result
mysql-test/suite/parts/r/partition_auto_increment_innodb.result
mysql-test/suite/parts/r/partition_auto_increment_memory.result
mysql-test/suite/parts/r/partition_auto_increment_myisam.result
mysql-test/suite/parts/r/partition_auto_increment_ndb.result
mysql-test/suite/parts/r/partition_basic_innodb.result
mysql-test/suite/parts/r/partition_basic_myisam.result
mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
mysql-test/suite/parts/r/partition_bit_innodb.result
mysql-test/suite/parts/r/partition_bit_myisam.result
mysql-test/suite/parts/r/partition_bit_ndb.result
mysql-test/suite/parts/r/partition_char_innodb.result
mysql-test/suite/parts/r/partition_char_myisam.result
mysql-test/suite/parts/r/partition_datetime_innodb.result
mysql-test/suite/parts/r/partition_datetime_myisam.result
mysql-test/suite/parts/r/partition_decimal_innodb.result
mysql-test/suite/parts/r/partition_decimal_myisam.result
mysql-test/suite/parts/r/partition_engine_innodb.result
mysql-test/suite/parts/r/partition_engine_myisam.result
mysql-test/suite/parts/r/partition_engine_ndb.result
mysql-test/suite/parts/r/partition_float_innodb.result
mysql-test/suite/parts/r/partition_float_myisam.result
mysql-test/suite/parts/r/partition_int_innodb.result
mysql-test/suite/parts/r/partition_int_myisam.result
mysql-test/suite/parts/r/partition_int_ndb.result
mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
mysql-test/suite/parts/r/partition_special_innodb.result
mysql-test/suite/parts/r/partition_special_myisam.result
mysql-test/suite/parts/r/partition_syntax_innodb.result
mysql-test/suite/parts/r/partition_syntax_myisam.result
mysql-test/suite/parts/r/rpl_partition.result
mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
mysql-test/suite/rpl/r/rpl_backup.result
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
mysql-test/suite/rpl/r/rpl_insert_id.result
mysql-test/suite/rpl/r/rpl_locktrans_myisam.result
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
mysql-test/suite/rpl/r/rpl_row_basic_8partition.result
mysql-test/suite/rpl/t/disabled.def
mysql-test/suite/rpl/t/rpl_backup.test
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_2innodb.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_2myisam.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_dd_partitions.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_myisam2ndb.result
mysql-test/suite/rpl_ndb_big/r/rpl_row_basic_7ndb.result
mysql-test/t/alter_table.test
mysql-test/t/ctype_cp1251.test
mysql-test/t/ctype_ldml.test
mysql-test/t/disabled.def
mysql-test/t/events_bugs.test
mysql-test/t/explain.test
mysql-test/t/group_by.test
mysql-test/t/implicit_commit.test
mysql-test/t/information_schema.test
mysql-test/t/innodb_mysql.test
mysql-test/t/limit.test
mysql-test/t/log_tables.test
mysql-test/t/merge.test
mysql-test/t/metadata.test
mysql-test/t/order_by.test
mysql-test/t/partition.test
mysql-test/t/partition_innodb.test
mysql-test/t/partition_mgm.test
mysql-test/t/partition_mgm_err.test
mysql-test/t/partition_not_windows.test
mysql-test/t/ps_11bugs.test
mysql-test/t/query_cache_limit_func.test
mysql-test/t/query_cache_type_basic.test
mysql-test/t/query_cache_type_func.test
mysql-test/t/query_cache_wlock_invalidate_basic.test
mysql-test/t/query_cache_wlock_invalidate_func.test
mysql-test/t/sp.test
mysql-test/t/subselect3.test
mysql-test/t/subselect_sj.test
mysql-test/t/thread_cache_size_func.test
mysql-test/t/view.test
mysql-test/t/windows.test*
mysql-test/t/xa.test
mysql-test/valgrind.supp
mysys/my_init.c
mysys/my_pthread.c
mysys/my_symlink.c
mysys/my_wincond.c
mysys/my_winthread.c
mysys/thr_alarm.c
mysys/thr_mutex.c
scripts/mysqldumpslow.sh
sql/CMakeLists.txt
sql/Makefile.am
sql/backup/backup_info.cc
sql/backup/backup_info.h
sql/backup/backup_kernel.h
sql/backup/data_backup.cc
sql/backup/image_info.cc
sql/backup/image_info.h
sql/backup/kernel.cc
sql/backup/logger.cc
sql/backup/logger.h
sql/backup/restore_info.h
sql/event_scheduler.cc
sql/field.cc
sql/field.h
sql/ha_partition.cc
sql/ha_partition.h
sql/handler.cc
sql/handler.h
sql/item.cc
sql/item.h
sql/item_cmpfunc.cc
sql/item_func.cc
sql/item_func.h
sql/item_sum.cc
sql/item_sum.h
sql/key.cc
sql/lex.h
sql/log_event.cc
sql/log_event_old.cc
sql/message.mc
sql/mysql_priv.h
sql/mysqld.cc
sql/opt_range.cc
sql/opt_sum.cc
sql/partition_info.cc
sql/set_var.cc
sql/set_var.h
sql/share/errmsg.txt
sql/slave.cc
sql/slave.h
sql/sql_base.cc
sql/sql_cache.cc
sql/sql_cache.h
sql/sql_class.cc
sql/sql_class.h
sql/sql_delete.cc
sql/sql_error.cc
sql/sql_insert.cc
sql/sql_lex.cc
sql/sql_lex.h
sql/sql_parse.cc
sql/sql_partition.cc
sql/sql_plugin.cc
sql/sql_prepare.cc
sql/sql_select.cc
sql/sql_show.cc
sql/sql_table.cc
sql/sql_view.cc
sql/sql_yacc.yy
sql/transaction.cc
sql/unireg.cc
sql/unireg.h
storage/archive/ha_archive.cc
storage/falcon/BlobReference.cpp
storage/falcon/Cache.cpp
storage/falcon/Cache.h
storage/falcon/CollationCaseless.cpp
storage/falcon/Database.cpp
storage/falcon/DateTime.cpp
storage/falcon/Dbb.cpp
storage/falcon/Dbb.h
storage/falcon/DeferredIndex.cpp
storage/falcon/DeferredIndexWalker.cpp
storage/falcon/EditString.cpp
storage/falcon/EncodedDataStream.cpp
storage/falcon/Filter.cpp
storage/falcon/FilterSet.cpp
storage/falcon/FsbSort.cpp
storage/falcon/IO.cpp
storage/falcon/Index.cpp
storage/falcon/IndexRootPage.cpp
storage/falcon/Log.h
storage/falcon/MemMgr.cpp
storage/falcon/MemMgr.h
storage/falcon/MemoryManager.h
storage/falcon/Record.cpp
storage/falcon/Record.h
storage/falcon/RecordScavenge.cpp
storage/falcon/RecordVersion.cpp
storage/falcon/RecordVersion.h
storage/falcon/RecoveryObjects.cpp
storage/falcon/RecoveryObjects.h
storage/falcon/SRLUpdateIndex.cpp
storage/falcon/SRLUpdateRecords.cpp
storage/falcon/SerialLog.cpp
storage/falcon/SerialLog.h
storage/falcon/SerialLogControl.cpp
storage/falcon/SerialLogFile.cpp
storage/falcon/SerialLogRecord.cpp
storage/falcon/SerialLogRecord.h
storage/falcon/Serialize.cpp
storage/falcon/StorageHandler.cpp
storage/falcon/StorageTableShare.cpp
storage/falcon/StorageTableShare.h
storage/falcon/StorageVersion.h
storage/falcon/TableSpaceManager.cpp
storage/falcon/TableSpaceManager.h
storage/falcon/Transaction.cpp
storage/falcon/ha_falcon.cpp
storage/falcon/ha_falcon.h
storage/falcon/plug.in
storage/innobase/handler/ha_innodb.cc
storage/innobase/include/srv0srv.h
storage/innobase/os/os0thread.c
storage/innobase/srv/srv0srv.c
strings/ctype-uca.c
strings/ctype.c
support-files/mysql.spec.sh
tests/mysql_client_test.c
mysql-test/suite/falcon/r/falcon_bug_28095.result
mysql-test/suite/falcon/t/falcon_bug_28095.test
=== modified file 'sql/backup/kernel.cc'
--- a/sql/backup/kernel.cc 2008-11-25 17:44:19 +0000
+++ b/sql/backup/kernel.cc 2008-11-28 10:10:39 +0000
@@ -177,15 +177,9 @@ execute_backup_command(THD *thd, LEX *le
// select objects to backup
if (lex->db_list.is_empty())
- {
- context.write_message(log_level::INFO, "Backing up all databases");
res= info->add_all_dbs(); // backup all databases
- }
else
- {
- context.write_message(log_level::INFO, "Backing up selected databases");
res= info->add_dbs(lex->db_list); // backup databases specified by user
- }
info->close(); // close catalogue after filling it with objects to backup
=== modified file 'sql/backup/logger.cc'
--- a/sql/backup/logger.cc 2008-11-25 17:44:19 +0000
+++ b/sql/backup/logger.cc 2008-11-28 10:10:39 +0000
@@ -155,6 +155,45 @@ void Logger::report_stats_pre(const Imag
{
DBUG_ASSERT(m_state == RUNNING);
backup_log->num_objects(info.table_count());
+ // Compose list of databases.
+
+ Image_info::Db_iterator *it= info.get_dbs();
+ Image_info::Obj *db;
+ Image_info::Obj::describe_buf name_buf;
+ String dbs;
+
+ while((db= (*it)++))
+ {
+ if (!dbs.is_empty())
+ dbs.append(",");
+ const size_t len= strnlen(db->describe(name_buf), sizeof(name_buf));
+ /*
+ If appending next database name would create too long string, append
+ ellipsis instead and break the loop.
+
+ The length limit 220-4 is computed as follows. The placeholder for
+ database list in ER_BACKUP_BACKUP/RESTORE_DBS has maximum width 220 from
+ which we subtract 4 for ",...", which should fit if the loop iterates
+ once more.
+
+ The width 220 for database list placeholder is chosen so that a complete
+ message fits into 256 characters.
+ */
+ if (dbs.length() + len > 220-4)
+ {
+ dbs.append("...");
+ break;
+ }
+ dbs.append(name_buf);
+ }
+
+ delete it;
+
+ // Log the databases.
+
+ report_error(log_level::INFO, m_type == BACKUP ? ER_BACKUP_BACKUP_DBS
+ : ER_BACKUP_RESTORE_DBS,
+ info.db_count(), dbs.c_ptr());
}
/**
=== modified file 'sql/share/errmsg.txt'
--- a/sql/share/errmsg.txt 2008-11-26 10:05:19 +0000
+++ b/sql/share/errmsg.txt 2008-11-28 10:10:39 +0000
@@ -6438,3 +6438,7 @@ ER_QUERY_CACHE_DISABLED
eng "Query cache is disabled; restart the server with query_cache_type=1 to enable it"
ER_BACKUP_UNEXPECTED_DATA
eng "Backup image contains no tables, but table data was found in it"
+ER_BACKUP_BACKUP_DBS
+ eng "Backing up %u database(s) %.220s"
+ER_BACKUP_RESTORE_DBS
+ eng "Restoring %u database(s) %.220s"
| Thread |
|---|
| • bzr push into mysql-6.0-backup branch (Rafal.Somla:2735 to 2736) Bug#40307 | Rafal Somla | 28 Nov |