日期:2011-1-22,今天翻箱底翻到的,原来我写过这么详细的文章,大公司可能用不到,小公司应该用的上。方法有点土,别见笑。

【系统环境】Centos 5.4 X64;mysql InnoDB引擎;raid1。

【扩容原因】

数据库磁盘空间不足(原磁盘容量太小,146G,不是早期规划的不好,而是成本,你懂的),还处于上升趋势,因此需要扩容,并将数据库数据文件进行迁移新磁盘上。

【主要更改】
1、新增加500G HP硬盘2个。
2、对新增磁盘做Raid1。
3、对新增磁盘进行分区并挂载到/data2目录。
4、格式化/data2为xfs文件系统。
5、复制数据库数据文件到/data2/mysql/3306/data。
6、修改数据库配置文件数据库目录及日志目录,并将默认表引擎改为InnoDB。
【测试论证】
通过在本地服务器上测试,数据库目录移动后,数据库能正常启动。不受影响。
【过程记录】
1、利用数据库备份工具,备份数据库数据文件到备份服务器。
2、关闭数据库。注释掉/etc/rc.local文件中mysql随系统自动启动命名行。
  1. #/usr/local/mysql/bin/mysqladmin -uroot -p shutdown

  2. # vi /etc/rc.local

  3. #/usr/local/mysql/bin/mysqld_safe --defaults- file=/data/mysql/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data --user=mysql &

3、开启kudzu服务。
  1. #setup ##勾选kudzu

4、关机。
  1. #init 0

5、装入磁盘。
6、启动系统。
7、根据提示按F8进入Raid阵列,并将新磁盘添加为Raid1。
8、保存并重启。查看阵列是否启动成功。
9、为新磁盘创建分区。
  1. #fdisk /dev/cciss/c0d1

10、安装xfs文件系统。(参考:《xfs文件系统安装》)
12、修改/etc/fstab文件,并重启。
  1. #reboot

13、检查分区是否正常挂载。
  1. #df –Th

14、复制数据库文件到新分区/data2中。
  1. #cd /data

  2. #cp –R /mysql/ /data2

15、修改目录属主为mysql。
  1. #chown –R mysql:mysql /data2/mysql/3306/

16、修改/data2/mysql/3306/目录下数据库配置文件。
  1. #vi /data2/mysql/3306/my.cnf

  2. 改前 :datadir = /data/mysql/3306/data

  3. 改后:datadir = /data2/mysql/3306/data

  4. 改前:log-bin = /data/mysql/3306/binlog

  5. 改后:log-bin = /data2/mysql/3306/binlog

17、启动数据库。
  1. #/usr/local/mysql/bin/mysqld_safe --defaults-file=/data2/mysql/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data2/mysql/3306/data/ --user=mysql &

18、检查数据库启动日志。
19、修改数据库开机启动文件中的数据库文件路径为新路径。
  1. #vi /etc/rc.local

  2. /usr/local/mysql/bin/mysqld_safe --defaults-file=/data2/mysql/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data2/mysql/3306/data/ --user=mysql &

20、关闭数据库。
  1. #/usr/local/mysql/bin/mysqladmin -uroot -p shutdown

21、重启系统。
22、检查分区是否正常挂载,数据库是否正常启动。数据库是否可以正常登陆。
23、远程综合测试。
【操作节点日志】
[21:40]开始数据备份。
[22:30]数据备份完成。
[23:30]关闭数据库
[00:50]开始数据库文件拷贝。
[01:14]数据库文件拷贝完成。
[01:35]各项配置完成。
[02:00]各项数据正常,大功搞成。