【UNIX】DBA常用的linux命令

结合数据库,主要介绍 linux常用命令、进程跟踪相关及文件查找 —by Firsouler

版本信息

  • 2021/09/17 初始版本

目录

资源监控

Linux

#前10内存
ps auxw|head -1;ps auxw|sort -rn -k4|head -10

AIX

ps命令
# +3 显示第四列,内存百分比,也可以按照第六列RSS显示
ps aux | head -1 ; ps aux | sort -rn +3 | head -10
#内存 更详细信息
ps -ealf | head -1 ; ps -ealf | sort -rn +9 | head  -10
#查看某进程使用私有内存
procmap 7931354|grep “read/write” |awk -F ” ” ‘{print $2}’
#显示10个消耗cpu最多的进程
ps aux |head -1 ;ps aux |sort -rn +2 |head -10
#显示10个消耗内存最多的进程
ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head -10
#显示10个换页最多的进程
ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10
#显示10个消耗存储空间最多的进程
ps aux |head -1 ;ps aux |sort -rn +3 |head -10
显示按顺序系统中受罚的进程
ps -eakl |head -1 ;ps -eakl |sort -rn +5
#显示按优先级顺序系统中的进程
ps -eakl |sort -n +6 |head
#显示按处理时间为顺序系统中的前十个进程
ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3 |head –1
SVMON命令
#显示前5个使用内存最多的  Inuse*4/1024/1024=GB
svmon -uP -t 5|grep -p Pid|grep '^.*[0-9] '
#显示前5个使用交换分区最多的
svmon -gP -t 3|grep -p Pid|grep '^.*[0-9] '
#查看进行详细命令
svmon -pP 3735726

HPUX

ps -ealf | head -1; ps aux| sort -rn+9 | head -10

LVM管理

pvcreate /dev/sdb
vgcreate oravg /dev/sdb
lvcreate -L 29G -n lvoracle oravg
lvresize -L +200M /dev/oravg/lvoracle #将逻辑卷空间增加200M
lvreduce -L -80M /dev/oravg/lvoracle #将逻辑卷的空间大小减少50M
mkfs.ext4 /dev/oravg/lvoracle
mkfs.ext4 /dev/oravg/lvbackup
mount /dev/oravg/lvoracle /oracle
mount /dev/oravg/lvbackup /backup
resize2fs /dev/oravg/lvoracle

元数据修复

lvm方式

#备份文件位置
ls -lrt /etc/lvm/backup/
#查看vg创建信息
vgcfgrestore --list vg_backup
#查看损坏的pv信息
pvscan
#通过备份修复 pv元数据
pvcreate  --uuid "9a2Lzl-B1Z0-zaR7-jgLj-9g72-u7PD-aYcjgh" --restorefile /etc/lvm/backup/vg_backup /dev/sdd
#修复vg信息
vgcfgrestore -f /etc/lvm/backup/vg_backup vg_backup
#激活vg    vgscan
vgchange -a y vg_test
#擦除pv元数据信息  
dd if=/dev/zero of=/dev/sdd count=4

fdisk方式

#假如被dd了,可以通过fsck修复
dd if=/dev/zero of=/dev/sdd count=4

双网卡绑定

[root@mytest network-scripts]# cat ifcfg-bond0 
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.8.27
GATEWAY=192.168.8.1
TYPE=Ethernet
BONDING_OPTS="mode=1 miimon=100"
[root@mytest network-scripts]# cat ifcfg-eth0
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
[root@mytest network-scripts]# cat ifcfg-eth1
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
cat /etc/modprobe.d/bonding.conf  #redhat6
alias bond0 bonding
cat /etc/modprobe.conf #redhat5
alias bond0 bonding
cat /proc/net/bonding/bond0

进程跟踪

#跟踪进程
strace -ftp  5950
#跟踪sqlplus,sqlplus登录缓慢
strace -T -t -o /tmp/nohost01 sqlplus / as sysdba
#跟踪进程打开的文件
strace -t -e trace=file sqlplus / as sysdba
strace -f -o /tmp/trace.1.log sqlplus / as sysdba
#其他相关命令
pidstat  -d 1 10 #进程 io读写情况 -p 某个进程
pstrace   #进程跟踪
perf  #性能分析
oprofile #性能测试工具
#打印进程的栈跟踪信息
pstack [pid]  #pstack是gdb的一部分,yum gdb即可
#显示线程运行时间
ps -eLo pid,lwp,pcpu |grep   #LWP XXXX

文件查找

#查找最近一天权限变更过的文件,注意-ctime,-mtime -atime区别
find  *.tr* -ctime +3 -exec rm -rf {} \;
#查找重复的文件
find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 | cut -c 35
#当前目录下,2天前修改属性时间,先查看,后删除 注意alert日志别删 -m是修改内容,-a创建,-c改变
find *.tr* -mtime +10 -exec rm -rf {} \;
find *.dbf -mtime +10 -exec rm -f {} \;
find ./ -name "*.aud" | xargs rm -rf "*.aud" &
#查找1天内权限发生改变的
find $ORACLE_HOME/* -ctime -1 -exec ls -lrt {} \;
#查找大约50M文件,确认没用,再删除
find . -size +50000K -exec ls -l {} \;
find . -size +50000K -exec rm -f {} \;

多路径配置

yum install device-mapper-multipath*
modprobe dm-multipath  #加载模块
modprobe dm-round-robin #加载模块 
service multipathd restart #重启
multipath -F #删除现有路径 
multipath -v2 #格式化路径 
multipath -ll #查看多路径
chkconfig --level 2345 multipathd on
grep -v ^# /etc/multipath.conf
defaults {
       udev_dir                /dev
       polling_interval        5
       path_grouping_policy    multibus
       getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
       prio                    const
       path_checker            directio
       rr_min_io               1000
       rr_weight               uniform
       failback                manual
       no_path_retry           fail
       user_friendly_names     yes
}
blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
        devnode "^cciss!c[0-9]d[0-9]*"
}
multipaths {
    multipath {
                wwid    14f504e46494c45526356443464532d693345332d36383647
                alias   crs
                path_grouping_policy multibus
        }
        multipath {
                wwid    14f504e46494c45524633443145642d3730316d2d6563706f
                alias   data
                path_grouping_policy multibus
        }
        multipath {
                wwid    14f504e46494c45526c6a6432446e2d6b3145382d35513845
                alias   data1
                path_grouping_policy multibus
        }
}
vi  /etc/udev/rules.d/12-dm-permissions-oracle.rules
ENV{DM_NAME}=="ocr1", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
ENV{DM_NAME}=="ocr2", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
ENV{DM_NAME}=="ocr3", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"
ENV{DM_NAME}=="ocr4", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="mapper/$env{DM_NAME}"

磁盘测试

#测试读
time dd if=/dev/sdb of=/dev/null bs=1M count=1024
#测试写,注意磁盘
time dd if=/dev/zero of=/dev/sdb bs=1M count=100

NFS配置

#NFS,注意*时 server端hosts文件中不能有客户端ip信息
/soft/db 192.168.8.*(rw,sync,no_root_squash,insecure)
/soft/db 192.168.8.0/24(rw,sync,no_root_squash,insecure)
service portmap status
service nfs restart
--aix
lssrc -g nfs
startsrc -s portmap
startsrc -g nfs
showmount -e 192.168.8.24
mkdir -p /soft/database
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 192.168.8.24:/soft/db /soft/database
mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0  192.168.8.24:/soft/db /soft/database

MD5校验


#windows
certutil -hashfile xxx MD5
certutil -hashfile xxx SHA1
certutil -hashfile xxx SHA256
请使用浏览器的分享功能分享到微信等