一些常用的命令

包含sql和lvm等

常用的命令

sql 相关

PosgreSQL 创建数据库、创建用户、并将数据库授权给指定用户。

create DATABASE database_name;
CREATE USER uer_name WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE "database_name" to usr_name;

MySQL 创建数据库、创建用户、并将数据库授权给指定用户。

create DATABASE database_name;
CREATE USER 'usr_name' IDENTIFIED BY 'passwd';
GRANT ALL ON database_name.* TO 'usr_name'

磁盘相关

1、lvm

​ LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。

img

​ lvm常用的命令

功能 PV管理命令 VG管理命令 LV管理命令
scan 扫描 pvscan vgscan lvscan
create 创建 pvcreate vgcreate lvcreate
display 显示 pvdisplay vgdisplay lvdisplay
remove 移除 pvremove vgremove lvremove
extend 扩展 vgextend lvextend
reduce 减少 vgreduce lvreduce

注意:查看命令有scan、display和s(pvs、vgs、lvs)。s是简单查看对应卷信息,display是详细查看对应卷信息。而scan是扫描所有的相关的对应卷。

1)、新加入的磁盘必须创建磁盘分区,使用fdisk 或者 gdisk 进行分区。

使用命令 fdisk - l 查看磁盘情况。再使用 fdisk /dev/sdb 对新加入的磁盘进行分区。fdisk 以及对于 gdisk 的使用在这里不再赘述。

2)、分区好以后,使用 pvcreate命令来创建pv

pvcreate /dev/sdb
pvs #查看 PV 情况

​ PV 创建好以后使用vgcreate创建卷组VG,并且此处可以-s选项指定PE(LE)的大小,(默认PE大小4M)

注意:PE大,读取速度快,但浪费空间。反之,读取速度慢,但节省空间。类似于socket

vgcreate vg1 /dev/sdb
		
vgcreate -s 16M vg2 /dev/sdb
	
vgs #查看 vg

VG 创建好以后创建LV lvcreate -n lvname -L lvsize(M,G)|-l LEnumber vgname

lvcreate -n lv1 -L 64M vg1
		
lvcreate -n lv2 -l 16 vg1
		
#lvcreate -n lvname -L lvsize(M,G)|-l LEnumber vgname
		
lvs

至此 lvm 创建成功,还需要格式化和挂载。

注意:在格式化之前需要知道xfs文件系统只支持增大,不支持减小。ext2、ext3、ext4增大减小都支持。

mkfs.ext4 /dev/vg1/lv1  #将lv1格式化成ext4
mkdir /lv1
mount /dev/vg1/lv1 /lv1  #挂载到/lv1下
echo "/dev/vg1/lv1 /lv1 ext4 defaults 0 0" >> /etc/fstab    #追加到开机挂载

​ 这里的/dev/vg1/lv1实际是一个软链接,实际地址ll /dev/vg1/lv1查看。

3)、逻辑卷LV扩容(动态扩容)

​ 在不停机的情况下,为 Linux 添加一块硬盘,来对 LV 进行动态扩容。

​ 首先需要对总线进行扫描,使得系统获取到新添加的硬盘。

ls /sys/class/fc_host   #(会看到host1,host2...hostN,对每个host进行如下操作)
echo "- - -" > /sys/class/scsi_host/host1/scan  #(中间是有空格的)!!
echo "- - -" > /sys/class/scsi_host/host2/scan
...
echo "- - -" > /sys/class/scsi_host/hostN/scan
		

​ 扫描总线之后再使用 fdisk -l 查看磁盘。之后使用 fdisk 或者 gdisk 分区。分区之后依然需要创建 PV。

首先需要确认是否有可用的扩容空间,逻辑卷LV是从卷组VG中创建的,所有在逻辑卷LV扩容前需要查看卷组VG的空间使用情况。

vgs   #查看 vg 剩余空间

​ 然后对VG 进行扩容,使用如下命令。

vgextend vg1 /dev/sdc  #sdc pv 添加到 vg1
lvextend -L +100M /dev/vg1/lv1    #给 lv1添加 100M 空间
lvextend -L 100M /dev/vg1/lv2    #直接使用100M是增加到100M
lvs  #查看

文件系统也需要扩容。ext4文件系统扩容使用"resize2fs [逻辑卷名称]",xfs文件系统扩容使用"xfs_growfs 挂载点"

resize2fs /dev/vg1/lv1  #ext4文件系统扩容 
xfs_growfs /dev/mapper/vg_sql-lv_root   #xfs_growfs 需要添加挂载点。
df -h  #查看

4)、逻辑卷LV缩小

逻辑卷LV缩小命令lvreduce与扩容命令类似,缩减逻辑卷LV请谨慎操作。lvreduce命令使用-L选项减少空间,-r选项减少文件系统空间,实现动态调整(这是ext4文件系统)

lvreduce -L 100M -r /dev/vg1/lv1

如果不使用-r选项,那么需要卸载挂载点再使用resize2fs调整,但这已经不是动态调整了。xfs文件系统不支持缩小。

​ LV 的缩小不在赘述。

5)、删除 LV

​ 删除LVM步骤:umount卸载-->lvremove移除逻辑卷LV-->vgremove移除卷组VG-->pvremove移除物理卷PV

[root@xuexi dev]# umount /lv1  //卸载挂载点
[root@xuexi dev]# lvremove /dev/vg1/lv1  //移除逻辑卷
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
  Logical volume "lv1" successfully removed
[root@xuexi dev]# lvs
[root@xuexi dev]# vgremove vg1  //移除卷组
  Volume group "vg1" successfully removed
[root@xuexi dev]# vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg2   1   0   0 wz--n- 1.98g 1.98g
[root@xuexi dev]# pvremove /dev/sdb1  //移除物理卷
  Labels on physical volume "/dev/sdb1" successfully wiped.

更多可参考 「LVM管理」:https://www.cnblogs.com/diantong/p/10554831.html