This is just for test purpose. I'm taking backup (INNODB DB) with --single-transaction and from another terminal I'm running alter table on one of the table of same DB on which dump command is running.Altered table is getting dumped with altered structure but DATA is missing.I repeated this test 3 times and same result is there. Just wanted to know this is the way it works? Please give some explanation. Thanks in advance.
When you use mysqldump --single-transaction, you are not supposed to break the transaction.
I wrote a post 1.5 years ago discussing the SQL that can break transaction : Transactional DDL workflow for MySQL
In the future, never run DDL during a mysqldump because it triggers an implicit commit.