²©¿ÍÊ×Ò³ ×¢²á ½¨ÒéÓë½»Á÷ ÅÅÐаñ ¼ÓÈëÓÑÇéÁ´½Ó
ÍÆ¼ö ͶËß ËÑË÷£º °ïÖú

Unix°®ºÃÕß¼ÒÔ°

ŬÁ¦Î´±Ø³É¹¦,·ÅÆúÒ»¶¨Ê§°Ü!
sdccf.cublog.cn


MySQL 5.1²Î¿¼ÊÖ²á :: 15. ´æ´¢ÒýÇæºÍ±íÀàÐÍ(3)

15.2.6.6. Ê¹ÓÃPer-Table±í¿Õ¼ä

Äã¿ÉÒԴ洢ÿ¸öInnoDB±íºÍËüµÄË÷ÒýÔÚËü×Ô¼ºµÄÎļþÔÚÖУ¬Õâ¸öÌØÕ÷±»³ÆÎª¡°¶à±í¿Õ¼ä¡± £¬ÒòΪʵ¼ÊÉÏÿ¸ö±íÓÐËü×Ô¼ºµÄ±í¿Õ¼ä¡£

¶ÔÄÇЩÏë°ÑÌØ¶¨±í¸ñÒÆµ½·ÖÀëÎïÀí´ÅÅ̵ÄÓû§£¬»òÕßÄÇЩϣÍû¿ìËÙ»Ö¸´µ¥¸ö±íµÄ±¸·Ý¶øÎÞÐë´ò¶ÏÆäÓàInnoDB±íµÄʹÓõÄÓû§£¬Ê¹Óöà±í¿Õ¼ä»áÊÇÓÐÒæµÄ¡£

Äã¿ÉÒÔÍùmy.cnfµÄ[mysqld]½ÚÌí¼ÓÏÂÃæÐÐÀ´ÔÊÐí¶à±í¿Õ¼ä£º

[mysqld]
innodb_file_per_table

ÖØÆô·þÎñÆ÷Ö®ºó£¬InnoDB´æ´¢Ã¿¸öд´½¨µÄ±íµ½±í¸ñËùÊôÓÚµÄÊý¾Ý¿âĿ¼ÏÂËü×Ô¼ºµÄÎļþtbl_name.ibdÀï¡£ÕâÀàËÆÓÚMyISAM´æ´¢ÒýÇæËù×öµÄ£¬µ«MyISAM °Ñ±í·Ö³ÉÊý¾ÝÎļþtbl_name.MYDºÍË÷ÒýÎļþtbl_name.MYI¡£¶ÔÓÚInnoDB£¬Êý¾ÝºÍËùÒÔ±»Ò»Æð´æµ½.ibdÎļþ¡£tbl_name.frmÎļþÕÕ¾ÉÒÀÈ»±»´´½¨¡£

Èç¹ûÄã´Ómy.cnfÎļþɾ³ýinnodb_file_per_tableÐУ¬²¢ÖØÆô·þÎñÆ÷£¬InnoDBÔÚ¹²ÏíµÄ±í¿Õ¼äÎļþÀïÔٴδ´½¨±í¡£

innodb_file_per_tableÖ»Ó°Ïì±íµÄ´´½¨¡£Èç¹ûÄãÓÃÕâ¸öÑ¡ÏîÆô¶¯·þÎñÆ÷£¬ÐÂ±í±»ÓÃ.ibdÎļþÀ´´´½¨£¬µ«ÊÇÄãÈÔ¾ÉÄÜ·ÃÎÊÔÚ¹²Ïí±í¿Õ¼äÀïµÄ±í¡£Èç¹ûÄãɾµôÕâ¸öÑ¡ÏбíÔÚ¹²Ïí±í¿Õ¼äÄÚ´´½¨£¬µ«ÄãÈԾɿÉÒÔ·ÃÎÊÈκÎÓöà±í¿Õ¼ä´´½¨µÄ±í¡£

InnoDB×ÜÊÇÐèÒª¹²Ïí±ê¿Õ¼ä¡£.ibdÎļþ¶ÔInnoDB²»×ãÒÔÈ¥ÔËÐУ¬¹²Ïí±í¿Õ¼ä°üº¬ÊìϤµÄibdataÎļþ£¬InnoDB°ÑÄÚ²¿Êý¾Ý´ÊµäºÍδ×÷ÈÕÖ¾·ÅÔÚÕâ¸öÎļþÖС£

×¢ÊÍ£ºÄã²»ÄÜÏñ¶ÔMyISAMÒ»Ñù£¬ÔÚÊý¾ÝĿ¼֮¼äËæÒâµØÒÆ¶¯.ibdÎļþ¡£ÕâÊÇÒòΪ±í¶¨Òå±»´æÔÚInnoDB¹²Ïí±í¿Õ¼äÄÚ£¬¶øÇÒInnoDB±ØÐë±£³ÖÊÂÎñIDºÍÈÕ־˳ÐòºÅµÄÒ»ÖÂÐÔ¡£

ÔÚÒ»¸ö¸ø¶¨µÄMySQL°²×°ÀÄã¿ÉÒÔÓÃRENAME TABLEÓï¾ä°Ñ.ibdÎļþºÍ¹ØÁªµÄ±í´ÓÒ»¸öÊý¾Ý¿âÒÆµ½ÁíÒ»¸öÊý¾Ý¿â£º

RENAME TABLE old_db_name.tbl_name TO new_db_name.tbl_name;

Èç¹ûÄãÓÐ.ibdÎļþµÄÒ»¸ö¸É¾»µÄ±¸·Ý£¬Äã¿ÉÒÔ°´ÈçϲÙ×÷´Ó±»ÆðÔ´µÄµØ·½»Ö¸´Ëüµ½MySQL°²×°ÖУº

1.    ·¢³öÕâ¸öALTER TABLEÓï¾ä£º

2.      ALTER TABLE tbl_name DISCARD TABLESPACE;

¾¯¸æ£ºÕâ¸öÓï¾äɾ³ýµ±Ç°.ibdÎļþ¡£

3.    °Ñ±¸·ÝµÄ.ibdÎļþ·Å»Øµ½Ç¡µ±µÄÊý¾Ý¿âĿ¼¡£

4.   ·¢³öÕâ¸öALTER TABLEÓï¾ä:

5.      ALTER TABLE tbl_name IMPORT TABLESPACE;

ÔÚÉÏÏÂÎÄÖУ¬Ò»¸ö.ibdÎļþ¸É¾»µÄ±¸·ÝÒâΪ£º

¡¤         .ibdÎļþÀïûÓÐÉÐδÌá½»µÄÊÂÎñ×öµÄÐ޸ġ£

¡¤         .ibdÎļþÀïÎÞδºÏ²¢µÄ²åÈë»ì³äÌõÄ¿¡£

¡¤         ¾»»¯ÒѾ­´Ó.ibdÎļþÒÆ³ýËùÓÐÒѱêעɾ³ýµÄË÷Òý¼Ç¼¡£

¡¤         mysqldÒѾ­°Ñ.ibdÎļþµÄËùÓÐÒÑÐÞ¸ÄÒ³Ãæ´Ó»º³å³ØË¢Ðµ½Îļþ¡£

Äã¿ÉÒÔÓÃÏÂÁз½·¨Éú³ÉÒ»¸ö.ibdÎļþµÄ¸É¾»±¸·Ý£º

1.    Í£Ö¹ËùÓÐÀ´×Ômysqld·þÎñÆ÷µÄ»î¶¯£¬²¢Ìá½»ËùÓÐÊÂÎñ¡£

2.    µÈ´ýÖ±ÖÁSHOW INNODB STATUSÏÔʾÔÚÊý¾Ý¿â±»ÒѾ­Ã»Ó줻îµÄÊÂÎñ£¬²¢ÇÒInnoDBÖ÷Ï̵߳Ä״̬ÊÇWaiting for server activity¡£È»ºóÄã¾Í¿ÉÒÔ¸´ÖÆ.ibdÎļþÁË¡£

Éú³ÉÒ»¸ö.ibdÎļþµÄ¸É¾»¸´ÖƵÄÁíÒ»¸ö·½·¨ÊÇʹÓÃÉÌÒµµÄInnoDBÈȱ¸·Ý¹¤¾ß£º

1.    ʹÓÃInnoDBÈȱ¸·Ý¹¤¾ß±¸·ÝInnoDB°²×°¡£

2.    ÔÚ±¸·ÝÉÏÆô¶¯µÚ¶þ¸ömysqld·þÎñÆ÷£¬ÈÃËüÇå½à±¸·ÝÀïµÄ.ibdÎļþ¡£

15.2.7. Ìí¼ÓºÍɾ³ýInnoDBÊý¾ÝºÍÈÕÖ¾Îļþ

ÕâÒ»½ÚÃèÊöÔÚInnoDB±í¿Õ¼äºÄ¾¡¿Õ¼ä֮ʱ£¬»òÕßÄãÏëÒª¸Ä±äÈÕÖ¾Îļþ´óС֮ʱ£¬Äã¿ÉÒÔ×öµÄһЩÊÂÇé¡£

×î¼òµ¥µÄ£¬Ôö¼ÓInnoDB±í¿Õ¼ä´óСµÄ·½·¨ÊÇ´Ó¿ªÊ¼ÅäÖÃËüΪ×Ô¶¯À©Õ¹µÄ¡£Îª±í¿Õ¼ä¶¨ÒåÀïµÄ×îºóÒ»¸öÊý¾ÝÎļþÖ¸¶¨autoextendÊôÐÔ¡£È»ºóÔÚÎļþºÄ¾¡¿Õ¼ä֮ʱ£¬InnoDBÒÔ8MBΪÔöÁ¿×Ô¶¯Ôö¼Ó¸ÃÎļþµÄ´óС¡£Ôö¼ÓµÄ´óС¿ÉÒÔͨ¹ýÉèÖÃinnodb_autoextend_incrementÖµÀ´ÅäÖÃ,Õâ¸öÖµÒÔMBΪµ¥Î»£¬Ä¬ÈϵÄÊÇ8¡£

×÷ÎªÌæ´ú£¬Äã¿ÉÒÔͨ¹ýÌí¼ÓÁíÒ»¸öÊý¾ÝÎļþÀ´Ôö¼Ó±í¿Õ¼äµÄ³ß´ç¡£ÒªÕâô×öµÄ»°£¬Äã±ØÐëÍ£Ö¹MySQL·þÎñÆ÷£¬±à¼­my.cnfÎļþ£¬Ìí¼ÓÒ»¸öÐÂÊý¾ÝÎļþµ½innodb_data_file_pathµÄĩβ£¬È»ºóÔÙ´ÎÆô¶¯·þÎñÆ÷¡£

Èç¹û×îºóÒ»¸öÊý¾ÝÎļþÊÇÓùؼü×Öautoextend¶¨ÒåµÄ£¬±à¼­my.cnfÎļþµÄ²½Öè±ØÐ뿼ÂÇ×îºóÒ»¸öÊý¾ÝÎļþÒѾ­Ôö³¤µ½¶à´ó¡£»ñÈ¡Êý¾ÝÎļþµÄ³ß´ç£¬°ÑËüËÄÉáÎåÈëµ½×î½Ó½ü³Ë»ý1024 ¡Á 1024bytes (= 1MB)£¬È»ºóÔÚinnodb_data_file_pathÖÐÃ÷È·Ö¸¶¨´óÖµijߴ硣ȻºóÄã¿ÉÒÔÌí¼ÓÁíÒ»¸öÊý¾ÝÎļþ¡£¼ÇµÃÖ»ÓÐinnodb_data_file_pathÀï×îºóÒ»¸öÊý¾Ý¿ÉÒÔ±»Ö¸¶¨Îª×Ô¶¯À©Õ¹¡£

×÷Ϊһ¸öÀý×Ó¡£¼ÙÉè±í¿Õ¼äÕýºÃÓÐÒ»¸ö×Ô¶¯À©Õ¹Îļþibdata1£º

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

¼ÙÉèÕâ¸öÊý¾ÝÎļþ¹ýÒ»¶Îʱ¼äÒѾ­³¤µ½988MB¡£ÏÂÃæÊÇÌí¼ÓÁíÒ»¸ö×ÜÀ©Õ¹Êý¾ÝÎļþÖ®ºóµÄÅäÖÃÐУº

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

µ±ÄãÌí¼ÓÒ»¸öÐÂÎļþµ½±í¿Õ¼äµÄÖ®ºó£¬ÇëÈ·ÐÅËü²¢²»´æÔÚ¡£µ±ÄãÖØÆô·þÎñÆ÷֮ʱ£¬InnoDB´´½¨²¢³õʼ»¯Õâ¸öÎļþ¡£

µ±Ç°£¬Äã²»ÄÜ´Ó±í¿Õ¼äɾ³ýÒ»¸öÊý¾ÝÎļþ¡£ÒªÔö¼Ó±í¿Õ¼äµÄ´óС£¬Ê¹ÓÃÈçϲ½Ö裺

1.    ʹÓÃmysqldumpת´¢ËùÓÐInnoDB±í¡£

2.    Í£Ö¹·þÎñÆ÷¡£

3.    ɾ³ýËùÓÐÒÑ´æÔڵıí¿Õ¼äÎļþ¡£

4.    ÅäÖÃбí¿Õ¼ä¡£

5.    ÖØÆô·þÎñÆ÷¡£

6.    µ¼Èëת´¢Îļþ¡£

Èç¹ûÄãÏëÒª¸Ä±äÄãµÄInnoDBÈÕÖ¾ÎļþµÄÊýÁ¿ºÍ´óС£¬Äã±ØÐëҪֹͣMySQL·þÎñÆ÷£¬²¢È·ÐÅËü±»ÎÞ´íÎóµØ¹Ø±Õ¡£Ëæºó¸´ÖƾÉÈÕÖ¾Îļþµ½Ò»¸ö°²È«µÄµØ·½ÒÔ·ÀÍòһijÑù¶«Î÷ÔڹرÕʱ³ö´í¶øÄãÐèÒªÓÃËüÃÇÀ´»Ö¸´±í¿Õ¼ä¡£´ÓÈÕÖ¾ÎļþĿ¼ɾ³ýËùÓоÉÈÕÖ¾Îļþ£¬±à¼­my.cnfÀ´¸Ä±äÈÕÖ¾ÎļþÅäÖ㬲¢ÔÙ´ÎÆô¶¯MySQL·þÎñÆ÷¡£mysqldÔÚÆô¶¯Ö®Ê±·¢ÏÖûÓÐÈÕÖ¾Îļþ£¬È»ºó¸æËßÄãËüÕýÔÚ´´½¨Ò»¸öеÄÈÕÖ¾Îļþ¡£

15.2.8±¸·ÝºÍ»Ö¸´InnoDBÊý¾Ý¿â

°²È«Êý¾Ý¿â¹ÜÀíµÄ¹Ø¼üÊǶ¨ÆÚ×ö±¸·Ý¡£

InnoDBÈȱ¸·Ý¹¤¾ßÊÇÒ»¸öÔÚÏß±¸·Ý¹¤¾ß£¬Äã¿ÉÒÔÓÃËüÀ´ÔÚInnoDBÊý¾Ý¿âÔËÐÐ֮ʱ±¸·ÝÄãµÄInnoDBÊý¾Ý¿â¡£InnoDBÈȱ¸·Ý¹¤¾ß²»ÒªÇóÄã¹Ø±ÕÊý¾Ý¿â£¬²¢ÇÒËü²»ÉèÖÃÈκÎËø¶¨»ò¸ÉÈÅÄãÕý³£µÄÊý¾Ý¿â´¦Àí¡£InnoDBÈȱ¸·Ý¹¤¾ßÊÇ·ÇÃâ·Ñ£¨ÉÌÒµµÄ£©¸½¼ÓÈí¼þ£¬ËüÿÄêµÄÖ¤Êé·ÑÓÃÊÇÿ̨MySQL·þÎñÆ÷ÔËÐеļÆËã»ú€390¡£Çë²ÎÔÄInnoDBÈȱ¸·ÝÖ÷Ò³ÒÔ»ñµÃ¸üÏêϸµÄÐÅÏ¢ÒÔ¼°ÆÁÄ»½ØÍ¼¡£

Èç¹ûÄã¿ÉÒԹرÕÄãµÄMySQL·þÎñÆ÷£¬Äã¿ÉÒÔÉú³ÉÒ»¸ö°üº¬InnoDBÓÃÀ´¹ÜÀíËüµÄ±íµÄËùÓÐÎļþµÄ¶þ½øÖƱ¸·Ý¡£Ê¹ÓÃÈçϲ½Ö裺

1.    ¹Ø±ÕMySQL·þÎñÆ÷£¬È·ÐÅËüÊÇÎÞ´íÎ󹨱ա£

2.  ¸´ÖÆÄãËùÓÐÊý¾ÝÎļþ£¨ibdataÎļþºÍ.ibdÎļþ£©µ½Ò»¸ö°²È«µÄµØ·½¡£ 

3.   ¸´ÖÆÄãËùÓÐib_logfileÎļþµ½Ò»¸ö°²È«µÄµØ·½¡£

4.    ¸´ÖÆmy.cnfÅäÖÃÎļþ»òÎļþµ½Ò»¸ö°²È«µÄµØ·½¡£

5.    ΪÄãInnoDB±í¸´ÖÆ.frmÎļþµ½Ò»¸ö°²È«µÄµØ·½¡£

¸´ÖƶÔInnoDB±íÆð×÷Óã¬ËùÒÔÄã¿ÉÒÔʹÓÃMySQL¸´ÖÆÄÜÁ¦À´ÔÚÐèÒª¸ß¿ÉÓÃÐÔµÄÊý¾Ý¿âÕ¾µã±£ÓÐÒ»·ÝÊý¾Ý¿âµÄ¸´ÖÆ¡£

³ýÁ˸ղÅÃèÊöµÄ¶þ½øÖƱ¸·Ý£¬ÄãÒ²Ó¦¸ÃÖÜÆÚÐÔµØÓÃmysqldumpת´¢ÄãµÄÊý¾Ý¿â¡£Õâô×öµÄÔ­ÒòÊÇ£¬¶þ½øÖÆÎļþ¿ÉÄܱ»ÆÆ»µ¶øÄãûÓÐ×¢Òâµ½¡£×ª´¢µÄÎļþ±»´æ´¢³ÉΪÈ˿ɶÁµÄÎı¾Îļþ£¬ËùÒÔ¶¨µã±íµÄËð»µÐÞ¸´±äµÃ¸üÈÝÒס£ÔÙÕߣ¬ÒòΪÐÎʽ¸ü¼òµ¥£¬ÑÏÖØÊý¾ÝË𻵵Ļú»á¾Í¸üС¡£mysqldump Ò²ÓÐÒ»¸ö--single-transactionÑ¡ÏÄã¿ÉÒÔÓÃËüÀ´×öÒ»¸öÒ»ÖµĿìÕÕ¶ø²»ÓÃ°ÑÆäËü¿Í»§¶ËÅųýÔÚÍâÃæ¡£

ÒªÄܹ»´ÓÉÏÊöµÄ¶þ½øÖƱ¸·Ý»Ö¸´InnoDBÊý¾Ý¿âµ½ÏÖÔÚ£¬Äã±ØÐëÈöþ½øÖÆÈÕÖ¾¹¦ÄÜ´ò¿ªÕýÔÚÔËÐеÄMySQL·þÎñÆ÷¡£È»ºóÄã¿ÉÒÔÓ¦Óöþ½øÖÆÈÕÖ¾µ½±¸·ÝÊý¾Ý¿âÒÔʵÏÖpoint-in-time»Ö¸´£º

mysqlbinlog yourhostname-bin.123 | mysql

Òª´ÓMySQL·þÎñÆ÷µÄ±ÀÀ£»Ö¸´£¬Î¨Ò»ÐèÒªµÄÊÇÖØÐÂÆô¶¯Ëü¡£InnoDB×Ô¶¯¼ì²éÈÕÖ¾²¢Ö´Ðе½ÏÖÔÚµÄÊý¾Ý¿âǰ¹ö¡£InnoDB×Ô¶¯»Ø¹öÔÚ±ÀÀ£Ê±³ÊÏÖµÄδÌá½»µÄÊÂÎñ¡£ÔÚ»Ö¸´¹ý³ÌÖУ¬mysqldÏÔʾÈçÏÂһЩÊä³ö£º

InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 13674004
InnoDB: Doing recovery: scanned up to log sequence number 0 13739520
InnoDB: Doing recovery: scanned up to log sequence number 0 13805056
InnoDB: Doing recovery: scanned up to log sequence number 0 13870592
InnoDB: Doing recovery: scanned up to log sequence number 0 13936128
...
InnoDB: Doing recovery: scanned up to log sequence number 0 20555264
InnoDB: Doing recovery: scanned up to log sequence number 0 20620800
InnoDB: Doing recovery: scanned up to log sequence number 0 20664692
InnoDB: 1 uncommitted transaction(s) which must be rolled back
InnoDB: Starting rollback of uncommitted transactions
InnoDB: Rolling back trx no 16745
InnoDB: Rolling back of trx no 16745 completed
InnoDB: Rollback of uncommitted transactions completed
InnoDB: Starting an apply batch of log records to the database...
InnoDB: Apply batch completed
InnoDB: Started
mysqld: ready for connections

Èç¹ûÊý¾Ý¿â±»Ë𻵻ò´ÅÅ̳ö´í£¬Äã±ØÐë´Ó±¸·Ý×ö»Ö¸´¡£ÔÚË𻵵ÄÇé¿öÏ£¬ÄãÊ×ÏÈÓ¦¸ÃÕÒ³öÒ»¸öûÓб»Ë𻵵ı¸·Ý¡£»Ö¸´Êý¾Ý¿â±¸·ÝÖ®ºó£¬´Ó¶þ½øÖÆÈÕÖ¾Îļþ»Ö¸´¡£

ÔÚһЩÊý¾Ý¿âË𻵵ÄÇé¿öÏ£¬½ö½öת´¢£¬ÒƳý²¢Öؽ¨Ò»¸ö»òÊý¸ö±»ÆÆ»µµÄ±íÊÇ×ã¹»µÄ¡£Äã¿ÉÒÔÓÃCHECK TABLE SQLÓï¾äÀ´¼ì²é±íÊÇ·ñË𻵣¬ËäÈ»CHECK TABLEÕý³£µØ²»¼ì²éÿÖÖ¿ÉÄܵÄË𻵣¬Äã¿ÉÒÔʹÓÃinnodb_tablespace_monitorÀ´¼ì²é±í¿Õ¼äÎļþÄÚÎļþ¿Õ¼ä¹ÜÀíµÄÍêÕûÐÔ¡£

ÔÚһЩÇé¿öÏ£¬Ã÷ÏÔµØÊý¾Ý¿âËð»µÊÇÒòΪ²Ù×÷ϵͳËð»µËü×Ô¼ºµÄÎļþ»º´æ£¬´ÅÅÌÉϵÄÊý¾Ý¿ÉÄÜÍêºÃ£¬×îºÃÊÇÊ×ÏÈÖØÆô¼ÆËã»ú¡£Ëü¿ÉÒÔÏû³ýÄÇЩÏÔµÃÊÇÊý¾Ý¿âÒ³Ë𻵵ĴíÎó¡£

15.2.8.1. Ç¿Öƻָ´

Èç¹ûÊý¾Ý¿âÒ³±»ÆÆ»µ£¬Äã¿ÉÄÜÏëÒªÓÃSELECT INTO OUTFILE´Ó´ÓÊý¾Ý¿âת´¢ÄãµÄ±í£¬Í¨³£ÒÔÕâÖÖ·½·¨»ñÈ¡µÄ´ó¶àÊýÊý¾ÝÊÇÍêºÃµÄ¡£¼´Ê¹ÕâÑù£¬Ë𻵿ÉÄܵ¼ÖÂSELECT * FROM tbl_name»òÕßInnoDBºǫ́²Ù×÷±ÀÀ£»ò¶ÏÑÔ£¬»òÕßÉõÖÁʹµÃInnoDBǰ¹ö»Ö¸´±ÀÀ£¡£ ¾¡¹ÜÈç´Ë£¬Äã¿ÉÒÔÓÃËüÀ´Ç¿ÖÆInnoDB´æ´¢ÒýÇæÆô¶¯Í¬Ê±×èÖ¹ºǫ́²Ù×÷ÔËÐУ¬ÒÔ±ãÄãÄÜת´¢ÄãµÄ±í¡£ÀýÈ磺Äã¿ÉÒÔÔÚÖØÆô·þÎñÆ÷֮ǰ£¬ÔÚÑ¡ÏîÎļþµÄ[mysqld]½ÚÌí¼ÓÈçϵÄÐУº

[mysqld]
innodb_force_recovery = 4

innodb_force_recovery±»ÔÊÐíµÄ·ÇÁãÖµÈçÏ¡£Ò»¸ö¸ü´óµÄÊý×Ö°üº¬ËùÓиüСÊý×ÖµÄÔ¤·À´ëÊ©¡£Èç¹ûÄãÄܹ»ÓÃÒ»¸ö¶àÊýÊÇ4µÄÑ¡ÏîÖµÀ´×ª´¢ÄãµÄ±í£¬ÄÇôÄãÊDZȽϰ²È«µÄ£¬Ö»ÓÐһЩÔÚË𻵵ĵ¥¶ÀÒ³ÃæÉϵÄÊý¾Ý»á¶ªÊ§¡£Ò»¸öΪ6µÄÖµ¸ü¿äÕÅ£¬ÒòΪÊý¾Ý¿âÒ³±»ÁôÔÚÒ»¸ö³Â¾ÉµÄ״̬£¬Õâ¸ö״̬·´¹ýÀ´¿ÉÒÔÒý·¢¶ÔBÊ÷ºÍÆäËüÊý¾Ý¿â½á¹¹µÄ¸ü¶àÆÆ»µ¡£

¡¤         1 (SRV_FORCE_IGNORE_CORRUPT)

¼´Ê¹·þÎñÆ÷¼ì²âµ½Ò»¸öË𻵵ÄÒ³£¬Ò²È÷þÎñÆ÷ÔËÐÐ×Å£»ÊÔ×ÅÈÃSELECT * FROM tbl_name Ìø¹ýË𻵵ÄË÷Òý¼Ç¼ºÍÒ³£¬ÕâÑùÓÐÖúÓÚת´¢±í¡£

¡¤         2 (SRV_FORCE_NO_BACKGROUND)

×èÖ¹Ö÷Ïß³ÌÔËÐУ¬Èç¹û±ÀÀ£¿ÉÄÜÔÚ¾»»¯²Ù×÷¹ý³ÌÖз¢Éú£¬Õ⽫×èÖ¹Ëü¡£

¡¤         3 (SRV_FORCE_NO_TRX_UNDO)

»Ö¸´ºó²»ÔËÐÐÊÂÎñ»Ø¹ö¡£

¡¤         4 (SRV_FORCE_NO_IBUF_MERGE)

Ò²×èÖ¹²åÈ뻺³åºÏ²¢²Ù×÷¡£Èç¹ûÄã¿ÉÄܻᵼÖÂÒ»¸ö±ÀÀ£¡£×îºÃ²»Òª×öÕâЩ²Ù×÷£¬²»Òª¼ÆËã±íͳ¼Æ±í¡£

¡¤         5 (SRV_FORCE_NO_UNDO_LOG_SCAN)

Æô¶¯Êý¾Ý¿â֮ʱ²»²é¿´Î´Íê³ÉÈÕÖ¾£ºInnoDB°ÑδÍê³ÉµÄÊÂÎñÊÓΪÒÑÌá½»µÄ¡£

¡¤         6 (SRV_FORCE_NO_LOG_REDO)

²»ÒªÔÚ»Ö¸´Á¬½ÓÖÐ×öÈÕ־ǰ¹ö¡£

Êý¾Ý¿â²»ÄÜÁíÍâµØ´ø×ÅÕâЩѡÏîÖб»ÔÊÐíµÄÑ¡ÏîÀ´Ê¹Óá£×÷Ϊһ¸ö°²È«´ëÊ©£¬µ±innodb_force_recovery±»ÉèÖÃΪ´óÓÚ0µÄֵʱ£¬InnoDB×èÖ¹Óû§Ö´ÐÐINSERT, UPDATE»òDELETE²Ù×÷.

¼´Ê¹Ç¿Öƻָ´±»Ê¹Óã¬ÄãÒ²¿ÉÒÔDROP»òCREATE±í¡£Èç¹ûÄãÖªµÀÒ»¸ö¸ø¶¨µÄ±íÕýÔÚµ¼Ö»عö±ÀÀ££¬Äã¿ÉÒÔÒÆ³ýËü¡£ÄãÒ²¿ÉÒÔÓÃÕâ¸öÀ´Í£Ö¹ÓÉʧ°ÜµÄ´ó×Úµ¼Èë»òʧ°ÜµÄALTER TABLEµ¼ÖµÄʧ¿Ø»Ø¹ö¡£Äã¿ÉÒÔɱµômysqld½ø³Ì£¬È»ºóÉèÖÃinnodb_force_recoveryΪ3£¬Ê¹µÃÊý¾Ý¿â±»¹ÒÆð¶ø²»ÐèÒª»Ø¹ö£¬È»ºóÉáÆúµ¼ÖÂʧ¿Ø»Ø¹öµÄ±í¡£

15.2.8.2. ¼ì²éµã

InnoDBʵÏÖÒ»ÖÖ±»ÈÏʶΪ¡°Ä£ºý¡±¼ì²éµãÉèÖõļì²éµã»úÖÆ¡£InnoDBÒÔСÅúÁ¿´Ó»º³å³ØË¢ÐÂÒÑÐ޸ĵÄÊý¾Ý¿âÒ³¡£Ã»±ØÒªÒÔµ¥¸öÅú´Îˢлº³å³Ø£¬µ¥Åú´ÎË¢ÐÂʵ¼Ê²Ù×÷ÖпÉÄÜ»áÔÚ¼ì²éµãÉèÖýø³ÌÖÐÍ£Ö¹Óû§SQLÓï¾äµÄ´¦Àí¡£

ÔÚ±ÀÀ£»Ö¸´ÖУ¬InnoDBÕÒѰ±»Ð´½øÈÕÖ¾µÄ¼ì²éµã±êÇ©¡£ËüÖªµÀËùÓÐÔڸñêǩ֮ǰ¶ÔÊý¾Ý¿âµÄÐ޸ı»³ÊÏÖÔÚÊý¾Ý¿âµÄ´ÅÅÌÓ³ÏñÖС£È»ºóInnoDB´Ó¼ì²éµãÍùǰɨÃèÈÕÖ¾Îļþ£¬¶ÔÊý¾Ý¿âÓ¦ÓÃÒÑдÈëÈÕÖ¾µÄÐ޸ġ£

InnoDBÒÔÑ­»··½Ê½Ð´ÈÕÖ¾Îļþ¡£ËùÓÐʹµÃ»º³å³ØÀïµÄÊý¾Ý¿âÒ³Óë´ÅÅÌÉϵÄÓ³Ïñ²»Í¬µÄÒÑÌá½»Ð޸ıØÐë³öÏÖÔÚÈÕÖ¾ÎļþÖУ¬ÒÔ±¸ÍòÒ»InnoDBÐèÒª×öÒ»¸ö»Ö¸´¡£ÕâÒâζ×Å£¬µ±InnoDB¿ªÊ¼ÖØÐÂʹÓÃÒ»¸öÈÕÖ¾Îļþ£¬ËüÐèҪȷÈÏÔÚ´ÅÅÌÉϵÄÊý¾Ý¿âÒ³Ó³Ïñ°üº¬ÒÑд½øInnoDB×¼±¸ÖØÐÂʹÓõÄÈÕÖ¾ÎļþÀïµÄÐ޸ġ£»»¾ä»°Ëµ£¬InnoDB±ØÐë´´½¨Ò»¸ö¼ì²éµã£¬Õâ¾­³£Éæ¼°ÒÑÐÞ¸ÄÊý¾Ý¿âÒ³µ½´ÅÅ̵ÄˢС£

Ç°ÃæµÄÐðÊö½âÊÍÁËΪʲôʹÄãµÄÈÕÖ¾Îļþ·Ç³£´ó»áÔÚÉèÖüì²éµãÖнÚÔ¼´ÅÅÌI/O¡£ÉèÖÃÈÕÖ¾Îļþ×ܵĴóСºÍ»º³å³ØÒ»Ñù´ó»òÕßÉõÖÁ±È»º³å³Ø´óͨ³£ÊÇÓÐÒâÒåµÄ¡£´óÈÕÖ¾ÎļþµÄȱµãÊDZÀÀ£»Ö¸´Òª»¨¸ü³¤µÄʱ¼ä£¬ÒòΪÓиü¶àдÈëÈÕÖ¾µÄÐÅÏ¢ÒªÓ¦Óõ½Êý¾Ý¿âÉÏ¡£

15.2.9. °ÑÒ»¸öInnoDBÊý¾Ý¿âÒÆµ½Áíһ̨»úÆ÷

ÔÚWindowsÉÏ£¬ InnoDB ×ÜÊÇÔÚÄÚ²¿ÒÔСдÃû×ֵķ½Ê½´æ´¢Êý¾Ý¿âºÍ±í¡£Òª´ÓUnix°Ñ¶þ½øÖƸñʽµÄÊý¾Ý¿âÒÆµ½Windows£¬»òÕß´ÓWindowsÒÆµ½Unix£¬ÄãÓ¦¸ÃÈÃËùÓбíºÍÊý¾Ý¿âµÄÃû×ÖСд¡£ÒªÊµÏÖÕâ¸ö£¬Ò»¸ö·½±ãµÄ·½Ê½ÊÇÔÚ´´½¨ÈκÎÊý¾Ý¿âºÍ±í֮ǰ£¬ÔÚÄãµÄmy.cnf»òmy.iniÎļþµÄ[mysqld]½ÚÄÚÌí¼ÓÈçÏÂÐУº

[mysqld]
lower_case_table_names=1

ÀàËÆÓÚMyISAMÊý¾ÝÎļþ£¬InnoDBÊý¾ÝºÍÈÕÖ¾ÎļþÔÚËùÓÐÓÐÏàͬ¸¡µãÊý¸ñʽµÄƽ̨ÉÏÊǶþ½øÖƼæÈݵġ£Äã¿ÉÒÔ¿½±´ËùÓÐÁÐÔÚ15.2.8½Ú£¬¡°InnoDBÊý¾Ý¿âµÄ±¸·ÝºÍ»Ö¸´¡±ÀïµÄÏà¹ØÎļþÀ´¼òµ¥µØÒƶ¯Ò»¸öInnoDBÊý¾Ý¿â¡£Èç¹û¸¡µã¸ñʽ²»Í¬£¬µ«ÄãûÓÐÔÚ±íÖÐʹÓÃFLOAT»òDOUBLEÊý¾ÝÀàÐÍ£¬Ôò¹ý³ÌÊÇÒ»Ñù£º¼òµ¥µØ¿½±´Ïà¹ØÎļþ¡£Èç¹û¸ñʽ²»ÈÝ£¬ÇÒÄãµÄ±í°üº¬¸¡µãÊý¾Ý£¬Äã±ØÐëʹÓÃmysqldumpÔÚһ̨»úÆ÷ת´¢ÄãµÄ±í£¬È»ºóÔÚÁíһ̨»úÆ÷µ¼Èëת´¢Îļþ¡£

¼ÙÉè±í¿Õ¼äÓÐ×ã¹»µÄ¿Õ¼ä¹©µ¼ÈëÊÂÎñ²úÉúµÄ´óÐͻعöƬ¶ÏʹÓã¬ÔòÌá¸ßÐÔÄܵÄÒ»¸ö·½·¨ÊÇÔÚµ¼ÈëÊý¾Ýʱ¹Øµôautocommitģʽ¡£½öÔÚµ¼ÈëÕû¸ö±í»ò±íµÄÒ»¸öƬ¶ÏÖ®ºóÌá½»¡£

·¢±íÓÚ£º 2008-05-11 £¬ÐÞ¸ÄÓÚ£º 2008-05-11 22:18£¬ÒÑä¯ÀÀ30´Î£¬ÓÐÆÀÂÛ0Ìõ ÍÆ¼ö ͶËß


ÍøÓÑÆÀÂÛ

·¢±íÆÀÂÛ