wangsisi 发表于 2011-5-3 09:43:27

分割大容量MediaWiki数据库

当新增加的数据量超过以往的很多倍,数据量从万、十万数量级上升到百万、千万,MySQL数据库占用的磁盘空间也在不断增长,服务器硬盘就会不够用,可以想扩容办法。
  如果采用InnoDB方式存储不方便,可以考虑改用MyISAM,不过mingluji等新设立的多子域名网站采取的同一个库、不同前缀的表名称方式来设置MediaWiki中的数据库,虽然备份等时候方便一些,但也有着数据库过大,速度上互相影响,备份时整个库Lock等问题,可以改为单独的库。
  过程如下:
新建数据库,例如:mingluji-aomen_,名字这样取是为了照顾不更改sitemaps
将数据库目录移动到扩展的磁盘上,例如:mv /usr/local/var/mingluji-aomen_ /mnt/usb/mysql
使用软链接方式来让数据库可以映射到扩展的磁盘上,例如:ln -s /mnt/usb/mysql/mingluji-aomen_ /usr/local/var/mingluji-aomen_
避免备份、恢复中数据被更改,修改LocalSettings.php为readonly
运行从老库中逐个表备份、恢复到新库中的脚本
修改新库中的表名称,例如:alter table aomen_users rename to users
修改LocalSettings.php,链接新库,去掉readonly
测试访问、修改
删除老库中的表,例如:drop mingluji 中的aomen_开头表
  这样就可以将以前的一个有数千个表的大库分为几十个每个有几十个表的独立的库。

wangsisi 发表于 2011-5-3 10:00:43

好像是这样的了
页: [1]
查看完整版本: 分割大容量MediaWiki数据库

美国HostEase虚拟主机一年198元