作为系统管理员的我们,经常遇到要增加或缩小某文件系统的需求。对于Unix上的主流OS以及linux来说,动态逻辑卷管理(LVM)能够很好的帮我们完成这个工作。但是对于不支持LVM的Solaris系统,只能用笨办法实现了。
假设一个工作场景,我需要在服务器硬盘上新增一个独立的文件系统,但是硬盘上已经没有可分配的自由空间。可选择的一种解决办法就是缩小已存在的某个文件系统,挤出一些自由空间。
硬盘现在已有三个文件系统(“/”,“/usr”,“/export/home”):
# df -h
Filesystem size used avail capacity Mounted on
/dev/dsk/c0d0s0 5.8G 3.8G 2.0G 66% /
/dev/dsk/c0d0s3 6G 4G 2.0G 66% /usr
/dev/dsk/c0d0s7 12G 12M 11G 1% /export/home
其中“/export/home”的容量最大,但已使用空间最少,选择缩小该文件系统以挤出自由空间。
以下是缩小文件系统步骤:
1、备份文件系统内容
# tar cvf /home.tar /export/home
2、卸载文件系统
# umount /export/home
3、修改/etc/vfstab,注释该文件系统项
# vi /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
#/dev/dsk/c0d0s7 /dev/rdsk/c0d0s7 /export/home ufs 2 yes -
4、用format缩小文件系统大小
# format
此处略去300字......
过程是将文件系统S7的容量设的小一些,可参考其他format命令文档设置。
5、用newfs重新格式化文件系统
# newfs c0d0s7
newfs: construct a new file system /dev/rdsk/c0d0s7: (y/n)? y
Warning: 240 sector(s) in last cylinder unallocated
/dev/rdsk/c0d0s7: 12594960 sectors in 2050 cylinders of 48 tracks, 128 sectors
6149.9MB in 129 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
缩小后的文件系统是6G,释放了大约6G的自由空间。
6、恢复/etc/vfstab文件系统项
# vi /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
/dev/dsk/c0d0s7 /dev/rdsk/c0d0s7 /export/home ufs 2 yes -
将文件系统前的“#”注释符去掉
7、重新挂载文件系统
# mount /export/home
8、将备份恢复到文件系统下
# tar xvf /home.tar
9、既然有了6G的自由空间,剩下的事情就好办了,我就不赘述了。
增加文件系统大小的过程跟缩小基本相同,都遵循这个基本思路:
备份文件系统内容 --> 卸载文件系统 --> 更改文件系统大小 --> 重新格式化文件系统 --> 重新挂载 --> 恢复原来的备份到文件系统。
oracle视频教程请关注:http://down.51cto.com/4202939/up