In our project we are using MySQL 5.0.90(InnoDB engine) server with an external storage. We store MySQL data files in an external storage. When the external storage down for a reason we have unstable behaviours. So we made some tests.
In Windows Server 2008
We closed external storage physically. MySQL service stoped and we could not reach the server. Then we opened the storage unit and we could start service
Logs
- 120618 14:49:30 InnoDB: Operating system error number 21 in a file operation.
- InnoDB: Some operating system error numbers are described at
- InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html
- InnoDB: File name E:\Data\ibdata1
- InnoDB: File operation call: 'aio write'.
- InnoDB: Cannot continue operation.
We made storage unit offline from operating system. After 3-4 minutes and some insert trials(some insert trials succeded) MySQL service stoped and we could not reach the server.
Logs
- 120618 14:27:21 InnoDB: Operating system error number 21 in a file operation.
- InnoDB: Some operating system error numbers are described at
- InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html
- InnoDB: File name E:\Data\ibdata1
- InnoDB: File operation call: 'aio read'.
- InnoDB: Cannot continue operation.
Then we made storage unit online and tried to start the service
Logs
- InnoDB: The first specified data file E:\ibdata1 did not exist:
- InnoDB: a new database to be created!
- 120618 14:29:00 InnoDB: Setting file E:\ibdata1 size to 10 MB
- InnoDB: Database physically writes the file full: wait...
- InnoDB: Error: all log files must be created at the same time.
- InnoDB: All log files must be created also in database creation.
- InnoDB: If you want bigger or smaller log files, shut down the
- InnoDB: database and make sure there were no errors in shutdown.
- InnoDB: Then delete the existing log files. Edit the .cnf file
- InnoDB: and start the database again.
- 120618 14:29:00 [ERROR] Default storage engine (InnoDB) is not available
- 120618 14:29:00 [ERROR] Aborting
Then we tried to reconfigure MySQL
Logs
- InnoDB: End of page dump
- 120618 14:34:02 InnoDB: Page checksum 1575996416, prior-to-4.0.14-form checksum 1371122432
- InnoDB: stored checksum 0, prior-to-4.0.14-form stored checksum 0
- InnoDB: Page lsn 0 0, low 4 bytes of lsn at page end 0
- InnoDB: Page number (if stored to page already) 0,
- InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
- 120618 14:34:02 - mysqld got exception 0xc0000005 ;
This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will try our best to scrape up some info that will hopefully help diagnose the problem, but since we have already crashed, something is definitely wrong and this may fail.
key_buffer_size=0
- read_buffer_size=65536
- max_used_connections=0
- max_connections=100
- threads_connected=0
It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 32000 K bytes of memory Hope that's ok; if not, decrease some variables in the equation.
thd=00000000
- Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong...
- 006D2DB6 mysqld-nt.exe!page_cur_search_with_match()[page0cur.c:347]
- 0067A777 mysqld-nt.exe!btr_cur_search_to_nth_level()[btr0cur.c:500]
- 006B2E0E mysqld-nt.exe!btr_pcur_open_on_user_rec()[btr0pcur.c:549]
- 006A5615 mysqld-nt.exe!dict_load_indexes()[dict0load.c:604]
- 006A6424 mysqld-nt.exe!dict_load_sys_table()[dict0load.c:1023]
- 006BBB20 mysqld-nt.exe!dict_boot()[dict0boot.c:378]
- 00668A79 mysqld-nt.exe!innobase_start_or_create_for_mysql()[srv0start.c:1462]
- 00444462 mysqld-nt.exe!innobase_init()[ha_innodb.cc:1427]
- 0044B30D mysqld-nt.exe!ha_init()[handler.cc:483]
- 004B923E mysqld-nt.exe!init_server_components()[mysqld.cc:3431]
- 004BD070 mysqld-nt.exe!win_main()[mysqld.cc:3806]
- c004BD43B mysqld-nt.exe!mysql_service()[mysqld.cc:3967]
- 006E28EF mysqld-nt.exe!_threadstart()[thread.c:196]
- 75583677 kernel32.dll!BaseThreadInitThunk()
- 77359D72 ntdll.dll!RtlInitializeExceptionChain()
- 77359D45 ntdll.dll!RtlInitializeExceptionChain()
- The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains information that should help you find out what is causing the crash. 120618 14:29:00 [Note] C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete
In Windows Server 2003
We made storage unit offline. After 3-4 minutes and some insert trials(some insert trials succeded) MySQL service stoped and we could not reach the server.
Logs
- InnoDB: Log scan progressed past the checkpoint lsn 0 9834427 120618 14:09:59 InnoDB: Database was not shut down normally!
- InnoDB: Starting crash recovery.
- InnoDB: Reading tablespace information from the .ibd files...
- InnoDB: Restoring possible half-written data pages from the doublewrite
- InnoDB: buffer...
- InnoDB: Doing recovery: scanned up to log sequence number 0 9834574
- 120618 14:09:59 InnoDB: Starting an apply batch of log records to the database...
- InnoDB: Progress in percents: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 . 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
- InnoDB: Apply batch completed
- 120618 14:10:00 InnoDB: Started; log sequence number 0 9834574
- 120618 14:10:00 [Note] C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
- Version: '5.0.90-community-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
- 120618 14:12:36 InnoDB: Operating system error number 21 in a file operation.
- InnoDB: Some operating system error numbers are described at
- InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html
- InnoDB: File name E:\Data\ibdata1
- InnoDB: File operation call: 'aio read'.
- InnoDB: Cannot continue operation.
Then we made storage unit online we could not start the service until we reinstalled MySQL. Before reinstall we tried to reconfigure but it did not work.
Logs
- 120618 14:16:53 InnoDB: Operating system error number 3 in a file operation.
- InnoDB: The error means the system cannot find the path specified.
- InnoDB: If you are installing InnoDB, remember that you must create
- InnoDB: directories yourself, InnoDB does not create them.
- InnoDB: File name E:\Data\ibdata1
- InnoDB: File operation call: 'create'.
- InnoDB: Cannot continue operation.
Could not start the MySQL service on Local Computer. Error 1067: The process terminated unexpectedly.(ERROR MESSAGE)
We closed external storage physically. MySQL service stoped and we could not reach the server. After that we opened the storage unit and we could start service(not automatically)
Logs
- 120618 14:01:26 InnoDB: Operating system error number 21 in a file operation.
- InnoDB: Some operating system error numbers are described at
- InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html
- InnoDB: File name E:\Data\ibdata1
- InnoDB: File operation call: 'aio write'.
- InnoDB: Cannot continue operation.
We expect service to autostart after storage unit is online/open. But these tests show unstable behaviors. Is there any solutions to this.