QUESTION #1
Can I assume that the conversion went as intended?
Never assume a conversion until you test it. Thank you for backing it up in advance.
QUESTION #2
Are there any obvious checks I should perform to ensure that integrity is not compromised?
For any given table mydb.mytable
you converted to InnoDB, please check two things
TABLE COUNT
Take a count of all the rows
SELECT COUNT(1) FROM mydb.mytable;
Run the same count on the MyISAM backup.
CHECKSUM
Run a checksum of the whole table
CHECKSUM TABLE mydb.mytable;
Run the same checksum on the MyISAM backup.
SUMMARY ON QUESTION #2
You should get the same count and checksum values for both the InnoDB and MyISAM tables.
SUGGESTION FOR QUESTION #2
If you would like to manage the InnoDB conversion in stages, try doing this next time
CREATE TABLE mydb.mytable_new LIKE mydb.mytable;
ALTER TABLE mydb.mytable_new ENGINE=InnoDB;
INSERT INTO mydb.mytable_new SELECT * FROM mydb.mytable;
ALTER TABLE mydb.mytable RENAME mydb.mytable_old;
ALTER TABLE mydb.mytable_new RENAME mydb.mytable;
Use the table, test it in staging, kick the tires.
If you are satisfied the table is fine, drop the old table
DROP TABLE mydb.mytable_old;
or retain it as a backup
ALTER TABLE mydb.mytable_old RENAME mydb.mytable_myisam;
QUESTION #3
Should I enforce that the DB is single user before conversion, or is my only worry that response time might be bad while conversion is ongoing + loss of work in case of a restore from the initial backup?
If you want convert a live MyISAM table to InnoDB, see my post Converting live MyISAM table to InnoDB
If you are very skeptical or fearful of data loss, your idea of single user access is fine.
You could just restart mysql like this
service mysql restart --skip-networking
Login to mysql as root@localhost
. Do the conversion, then
service mysql restart
GIVE IT A TRY !!!
Best Answer
I previously addressed this issue in: Cannot open table mysql/innodb_index_stats
These tables are created for you when you install MySQL 5.6. However, upgrading from MySQL 5.5 does not invoke the creation of these tables. Here are the scripts to create them manually:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
ALTERNATIVE
Another workaround would be to create the script from a MySQL 5.6 instance.
Step 01 : Goto a DB Server running MySQL 5.6, or install MySQL 5.6 on a test machine.
Step 02 : mysqldump these 5 tables to a text file
Then, you can run
InnoDB_MySQL_Tables.sql
on any DB Server running MySQL 5.5 before upgrading.