技巧四 数据库扩容

随着系统使用时间的拉长,我们的最先预估的磁盘很可能会遭遇到容量瓶颈,像笔者所在的公司,最开始以为云服务自带的40G硬盘应该足够支撑一段时间了,可是没想到短短一年时间,数据库的已经增长到20G了,很快磁盘就开始报警了。

磁盘扩容

删除一些不需要的日志数据,辗转腾挪出部分空间来,终究也只是缓兵之计,根本的途径还是要扩容磁盘。由于现在基本都是云服务器,因此可以进行不停机扩容。这里假设读者已经通过云服务器后台,在线扩容了磁盘。

云服务后台虽然可以不停机在线扩容,但是磁盘的格式化还是需要我们自己进行的。首先,我们使用fdisk工具,先将我们新增的空间进行格式化。

fdisk -l

查看磁盘列表:

Disk /dev/vda: 160 GiB, 171798691840 bytes, 335544320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6c740fc2

Device     Boot     Start       End   Sectors  Size Id Type
/dev/vda1  *         2048  83886046  83883999   40G 83 Linux
/dev/vda2        83886080 125829119  41943040   20G  5 Extended

新增的空间由于还没有格式化,不会列表中显示出来,但是我们可以从总的大小中看出磁盘已经扩容。接下来,我们使用n命令新划分分区:

root@iZp0w6djg8vh9367ij45ciZ:~# fdisk /dev/vda

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

输入n,开始创建一个新分区,如果有需求可以更改其中的参数。使用默认参数可以将整个新增的空间格式化。

最后使用w命令将变更应用到磁盘中,这样就完成了新空间的划分,新分区的名字叫 /dev/vda3

创建文件系统

创建完新分区之后,我们要在其上面建立好文件系统才可以被系统使用。现在最新的Linux的文件系统格式是ext4,这里我们就使用ext4:

mkfs.ext4 /dev/vda3

这样就完成了文件系统的建立。

挂载新分区

新分区创建完成以后,我们需要将其挂载到某个文件夹后才可以使用。这里我们选择/data文件夹。

mount /dev/vda3 /data

使用df -h命令,可以看到/dev/vda3的话 说明挂载成功。

迁移Postgresql数据库

首先,我们先停止odoo服务和postgresql服务,以防止新数据产生。

service odoo stop
service postgresql stop

然后,我们使用cp命令,将postgresql的主数据文件夹拷贝到新磁盘上:

cp -rf /var/lib/postgresql /data/postgresql

等待拷贝完成,更改其权限为postgres用户:

chown postgres:postgres -R /data/postgres

然后,删除原有的数据文件夹,并创建一个软连接:

rm -rf /var/lib/postgresql
ln -s /data/postgresql /var/lib/postgresql

最后,开启postgresql和odoo服务:

service odoo start
service postgresql start

results matching ""

    No results matching ""