如何对阿里云ecs服务器数据盘进行缩容
ecs不支持直接缩容,需要另购一块数据盘,挂载后把数据拷贝过去
1.临时挂载新的数据盘,购买一块合适大小的数据盘,直接通过阿里云控制台挂载到ECS服务器
2.备份文件
cp -r 原文件夹 目标文件夹
3.删除原数据盘上的swap虚拟内存
[root@iZ8vbgkra5t3d356no16srZ app2]# swapon -s ##查看当前的swap分区信息
Filename Type Size Used Priority
/app/swap file 10239996 0 -2
[root@iZ8vbgkra5t3d356no16srZ app2]# swapoff -a ## 禁用所有的swap分区
sudo swapoff -v /path/to/swap/file_or_partition ## 禁用指定的swap分区
[root@iZ8vbgkra5t3d356no16srZ app2]# swapon -s
[root@iZ8vbgkra5t3d356no16srZ app2]# vim /etc/fstab
[root@iZ8vbgkra5t3d356no16srZ app2]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 11 02:52:01 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1114fe9e-2309-4580-b183-d778e6d97397 / ext4 defaults 1 1
UUID=418f18ac-af41-4b3e-ac57-dab81da77014 /app ext4 defaults 0 0
# /app/swap swap swap defaults 0 0
## 从/etc/fstab文件中移除swap分区的条目
sudo rm /path/to/swap/file
## 删除swap文件
4.卸载原数据盘
[root@iZ8vbgkra5t3d356no16srZ app2]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 752K 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/vda1 40G 34G 4.0G 90% /
/dev/vdb 493G 22G 446G 5% /app
tmpfs 768M 0 768M 0% /run/user/0
/dev/vdc1 40G 24G 14G 64% /app2
[root@iZ8vbgkra5t3d356no16srZ app2]# umount /dev/vdb
umount: /app: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
## 卸载时遇到用户还在使用该分区,可使用lsof或fuser命令来查找正在使用该挂载点的进程
[root@iZ8vbgkra5t3d356no16srZ app2]# lsof /app
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1601 root cwd DIR 253,16 4096 20709377 /app/sqlbak
[root@iZ8vbgkra5t3d356no16srZ app2]# fuser -muv /app
USER PID ACCESS COMMAND
/app: root kernel mount (root)/app
root 1601 ..c.. (root)bash
## 如果杀不掉,就重启系统,再执行umount
5.重启系统后,查看新数据盘分区的UUID信息,写入/etc/fstab中
注意:因为新数据盘要使用原数据盘的路径,所以拷贝完数据,还得先卸载新盘,再重新挂载
[root@iZ8vbgkra5t3d356no16srZ ~]# blkid
/dev/vda1: UUID="1114fe9e-2309-4580-b183-d778e6d97397" TYPE="ext4"
/dev/vdb: UUID="418f18ac-af41-4b3e-ac57-dab81da77014" TYPE="ext4"
/dev/vdc1: UUID="94ce117a-922a-4e69-97c3-ad8f2e77405e" TYPE="ext4" PARTLABEL="Linux" PARTUUID="e4789975-40b3-4052-9942-b8f82149427d"
[root@iZ8vbgkra5t3d356no16srZ /]# vim /etc/fstab
[root@iZ8vbgkra5t3d356no16srZ /]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 11 02:52:01 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1114fe9e-2309-4580-b183-d778e6d97397 / ext4 defaults 1 1
#UUID=418f18ac-af41-4b3e-ac57-dab81da77014 /app ext4 defaults 0 0
## 写入新的UUID
UUID=94ce117a-922a-4e69-97c3-ad8f2e77405e /app ext4 defaults 0 0
# /app/swap swap swap defaults 0 0
[root@iZ8vbgkra5t3d356no16srZ /]#
6.恢复swap虚拟内存
## 使用dd命令创建一个指定大小的文件。
dd if=/dev/zero of=/app/swap bs=1G count=8
[root@iZ8vbgkra5t3d356no16srZ /]# dd if=/dev/zero of=/app/swap bs=1G count=8
8+0 records in
8+0 records out
8589934592 bytes (8.6 GB) copied, 64.0275 s, 134 MB/s
[root@iZ8vbgkra5t3d356no16srZ /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 620K 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/vda1 40G 34G 3.9G 90% /
/dev/vdc1 40G 32G 5.6G 86% /app
tmpfs 768M 0 768M 0% /run/user/0
[root@iZ8vbgkra5t3d356no16srZ /]# cd /app
[root@iZ8vbgkra5t3d356no16srZ app]# ls
fastdfs lost+found oracle oradata soft sqlbak swap
[root@iZ8vbgkra5t3d356no16srZ app]# ll
total 8388648
drwxr-xr-x 4 root root 4096 Nov 4 15:04 fastdfs
drwx------ 2 root root 16384 Nov 4 15:00 lost+found
drwxr-xr-x 5 oracle oinstall 4096 Nov 4 15:17 oracle
drwxr-xr-x 2 oracle oinstall 4096 Nov 4 15:19 oradata
drwxr-xr-x 6 root root 4096 Nov 4 15:36 soft
drwxr-xr-x 2 oracle dba 4096 Nov 4 15:37 sqlbak
-rw-r--r-- 1 root root 8589934592 Nov 4 16:33 swap
[root@iZ8vbgkra5t3d356no16srZ app]# ll -h
total 8.1G
drwxr-xr-x 4 root root 4.0K Nov 4 15:04 fastdfs
drwx------ 2 root root 16K Nov 4 15:00 lost+found
drwxr-xr-x 5 oracle oinstall 4.0K Nov 4 15:17 oracle
drwxr-xr-x 2 oracle oinstall 4.0K Nov 4 15:19 oradata
drwxr-xr-x 6 root root 4.0K Nov 4 15:36 soft
drwxr-xr-x 2 oracle dba 4.0K Nov 4 15:37 sqlbak
-rw-r--r-- 1 root root 8.0G Nov 4 16:33 swap
## 将swap文件的权限设置为600
chmod 600 /app/swap
[root@iZ8vbgkra5t3d356no16srZ app]# chmod 600 /app/swap
[root@iZ8vbgkra5t3d356no16srZ app]# ll -h
total 8.1G
drwxr-xr-x 4 root root 4.0K Nov 4 15:04 fastdfs
drwx------ 2 root root 16K Nov 4 15:00 lost+found
drwxr-xr-x 5 oracle oinstall 4.0K Nov 4 15:17 oracle
drwxr-xr-x 2 oracle oinstall 4.0K Nov 4 15:19 oradata
drwxr-xr-x 6 root root 4.0K Nov 4 15:36 soft
drwxr-xr-x 2 oracle dba 4.0K Nov 4 15:37 sqlbak
-rw------- 1 root root 8.0G Nov 4 16:33 swap
## 格式化为swap文件
mkswap /app/swap
[root@iZ8vbgkra5t3d356no16srZ app]# mkswap /app/swap
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=83b6bfc9-21f0-4726-88f7-b664003ebc4c
## 启用swap文件
swapon /app/swap
[root@iZ8vbgkra5t3d356no16srZ app]# free
total used free shared buff/cache available
Mem: 7862320 402968 1189556 620 6269796 7150392
Swap: 0 0 0
[root@iZ8vbgkra5t3d356no16srZ app]# swapon /app/swap
[root@iZ8vbgkra5t3d356no16srZ app]# free
total used free shared buff/cache available
Mem: 7862320 409260 1183052 620 6270008 7144100
Swap: 8388604 0 8388604
[root@iZ8vbgkra5t3d356no16srZ app]# swapon --show
NAME TYPE SIZE USED PRIO
/app/swap file 8G 0B -2
## 写入/etc/fstab,永久挂载swap文件
[root@iZ8vbgkra5t3d356no16srZ /]# vim /etc/fstab
[root@iZ8vbgkra5t3d356no16srZ /]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 11 02:52:01 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1114fe9e-2309-4580-b183-d778e6d97397 / ext4 defaults 1 1
#UUID=418f18ac-af41-4b3e-ac57-dab81da77014 /app ext4 defaults 0 0
UUID=94ce117a-922a-4e69-97c3-ad8f2e77405e /app ext4 defaults 0 0
/app/swap swap swap defaults 0 0
7.通过命令挂载磁盘,或者重启系统通过/etc/fstab自动挂载磁盘
mount /dev/vdb /mnt/data
8.遇到的问题
因为拷贝文件时用的root用户,oradata文件属组变了,导致下列问题,可通过chown -R命令恢复
[oracle@iZ8vbgkra5t3d356no16srZ ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 4 16:41:20 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 3156725760 bytes
Fixed Size 2217504 bytes
Variable Size 2382367200 bytes
Database Buffers 754974720 bytes
Redo Buffers 17166336 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/app/oradata/jlrcwebdata.dbf'
SQL> quit
[root@iZ8vbgkra5t3d356no16srZ app]# ll
total 8388648
drwxr-xr-x 4 root root 4096 Nov 4 15:04 fastdfs
drwx------ 2 root root 16384 Nov 4 15:00 lost+found
drwxr-xr-x 5 oracle oinstall 4096 Nov 4 15:17 oracle
drwxr-xr-x 2 oracle oinstall 4096 Nov 4 15:19 oradata
drwxr-xr-x 6 root root 4096 Nov 4 15:36 soft
drwxr-xr-x 2 oracle dba 4096 Nov 4 15:37 sqlbak
-rw------- 1 root root 8589934592 Nov 4 16:37 swap
[root@iZ8vbgkra5t3d356no16srZ app]# pwd
/app
[root@iZ8vbgkra5t3d356no16srZ app]# ls
fastdfs lost+found oracle oradata soft sqlbak swap
[root@iZ8vbgkra5t3d356no16srZ app]# chown -R oracle oinstall oracle
chown: cannot access ‘oinstall’: No such file or directory
[root@iZ8vbgkra5t3d356no16srZ app]# chown -R oracle:oinstall oracle
[root@iZ8vbgkra5t3d356no16srZ app]# chown -R oracle:oinstall oradata
[root@iZ8vbgkra5t3d356no16srZ app]# ls
fastdfs lost+found oracle oradata soft sqlbak swap
[root@iZ8vbgkra5t3d356no16srZ app]# ll
total 8388648
drwxr-xr-x 4 root root 4096 Nov 4 15:04 fastdfs
drwx------ 2 root root 16384 Nov 4 15:00 lost+found
drwxr-xr-x 5 oracle oinstall 4096 Nov 4 15:17 oracle
drwxr-xr-x 2 oracle oinstall 4096 Nov 4 15:19 oradata
drwxr-xr-x 6 root root 4096 Nov 4 15:36 soft
drwxr-xr-x 2 oracle dba 4096 Nov 4 15:37 sqlbak
-rw------- 1 root root 8589934592 Nov 4 16:37 swap
[oracle@iZ8vbgkra5t3d356no16srZ ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 4 16:51:08 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> startup
ORACLE instance started.
Total System Global Area 3156725760 bytes
Fixed Size 2217504 bytes
Variable Size 2382367200 bytes
Database Buffers 754974720 bytes
Redo Buffers 17166336 bytes
Database mounted.
Database opened.