当前位置: 首页 > article >正文

DBA(数据库管理员)常用的 Linux 命令

DBA(数据库管理员)常用的 Linux 命令

作为数据库管理员(DBA),熟练掌握 Linux 命令对于日常的数据库管理、维护和故障排除至关重要。以下是分类整理的一些常用 Linux 命令,涵盖文件管理、进程管理、性能监控、网络管理等多个方面,帮助 DBAs 高效地完成工作。


1. 文件和目录管理

列出文件和目录

  • ls:列出目录内容。

    • ls -l:以长格式显示详细信息。
    • ls -a:显示所有文件,包括隐藏文件。
    ls -la /home/dbuser/
    

切换目录

  • cd:更改当前工作目录。

    cd /var/lib/oracle/
    

复制、移动和删除文件

  • cp:复制文件或目录。

    • cp -r:递归复制目录。
    cp /home/dbuser/file1.txt /backup/
    
  • mv:移动或重命名文件或目录。

    mv oldname.txt newname.txt
    
  • rm:删除文件或目录。

    • rm -r:递归删除目录及其内容。
    • rm -f:强制删除,不提示确认。
    rm -f /tmp/tempfile.log
    

查找文件

  • find:在文件系统中查找文件。

    find /var/log -name "*.log" -mtime -7
    
  • grep:在文件中搜索指定模式。

    grep "ORA-" /var/log/oracle/alert.log
    

查看和编辑文件

  • cat:连接并显示文件内容。

    cat /etc/passwd
    
  • more / less:分页查看文件内容。

    less /var/log/oracle/alert.log
    
  • vi / vim:编辑文本文件。

    vi /home/dbuser/init.ora
    

2. 文件权限和所有权

查看文件权限

  • ls -l:查看文件权限、所有者和所属组。

    ls -l /home/dbuser/
    

修改文件权限

  • chmod:更改文件或目录的权限。

    chmod 750 /home/dbuser/datafile.dbf
    

更改文件所有者

  • chown:更改文件或目录的所有者和所属组。

    chown oracle:oinstall /home/dbuser/datafile.dbf
    
  • chgrp:仅更改文件的所属组。

    chgrp dba /home/dbuser/
    

3. 进程管理

查看进程

  • ps:显示当前运行的进程。

    • ps -ef:显示所有进程的详细信息。
    ps -ef | grep ora_
    
  • top / htop:实时监控系统的进程和资源使用情况。

    top
    

管理进程

  • kill:终止指定的进程。

    kill -9 12345
    
  • pkill:按进程名称终止进程。

    pkill -f ora_pmon
    
  • killall:终止所有具有指定名称的进程。

    killall -u oracle
    

4. 网络管理

查看网络接口

  • ifconfigip:查看和配置网络接口。

    ip addr show
    

检测网络连接

  • ping:测试与目标主机的连通性。

    ping -c 4 dbserver.example.com
    
  • traceroute:追踪数据包的路由路径。

    traceroute target_host
    

查看网络端口和连接

  • netstatss:显示网络连接、路由表和网络接口。

    netstat -tulnp
    

安全远程访问

  • ssh:通过 SSH 连接到远程主机。

    ssh oracle@dbserver.example.com
    
  • scp:在本地和远程主机之间复制文件。

    scp /home/dbuser/backup.sql oracle@dbserver:/backup/
    
  • rsync:高效同步本地与远程文件。

    rsync -avz /home/dbuser/data/ oracle@dbserver:/data_backup/
    

5. 性能监控

系统资源使用

  • top / htop:实时查看系统资源使用情况。

    top
    
  • vmstat:报告虚拟内存统计信息。

    vmstat 5 10
    
  • iostat:监控系统输入/输出设备和 CPU 性能。

    iostat -xz 5 3
    
  • free:查看内存使用情况。

    free -m
    

磁盘使用

  • df:显示文件系统的磁盘空间使用情况。

    df -h
    
  • du:查看目录或文件的磁盘使用情况。

    du -sh /home/dbuser/
    

查看打开的文件

  • lsof:列出当前打开的文件。

    lsof | grep oracle
    

6. 用户和组管理

用户管理

  • 添加用户

    useradd -m dbadmin
    
  • 修改用户信息

    usermod -aG dba dbadmin
    
  • 删除用户

    userdel -r dbadmin
    

组管理

  • 添加组

    groupadd dba
    
  • 修改组

    groupmod -n dbadmins dba
    
  • 删除组

    groupdel dbadmins
    

7. 服务管理

系统服务控制

  • systemctl:控制和管理 systemd 服务。

    systemctl start oracle-db
    systemctl status oracle-db
    systemctl restart oracle-db
    
  • service:传统的服务管理命令(适用于非 systemd 系统)。

    service oracle-db status
    service oracle-db stop
    

8. 备份与恢复

备份

  • tar:打包和压缩文件。

    tar -czvf backup_home.tar.gz /home/dbuser/
    
  • rsync:同步和备份文件。

    rsync -avz /home/dbuser/ /backup/dbuser/
    

恢复

  • 解压缩和解包

    tar -xzvf backup_home.tar.gz -C /restore/path/
    

9. 日志管理

查看日志

  • tail:查看文件的最后几行。

    • tail -f:实时跟踪文件新增内容。
    tail -f /var/log/oracle/alert.log
    
  • grep:在日志中搜索特定关键词。

    grep "ORA-" /var/log/oracle/alert.log
    

日志轮转

  • logrotate:管理日志文件的轮转和压缩。

    • 编辑配置文件 /etc/logrotate.conf/etc/logrotate.d/ 中的相关文件。

10. 环境变量管理

查看环境变量

  • envprintenv

    env | grep ORACLE
    

设置环境变量

  • export:设置或修改环境变量。

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export PATH=$PATH:$ORACLE_HOME/bin
    
  • 永久设置:编辑用户的 ~/.bash_profile~/.bashrc 文件,添加上述 export 语句。


11. 压缩与解压

压缩文件

  • gzip

    gzip logfile.log
    
  • bzip2

    bzip2 logfile.log
    

解压缩文件

  • gunzip

    gunzip logfile.log.gz
    
  • bunzip2

    bunzip2 logfile.log.bz2
    

12. 软件包管理

基于 RPM 的系统(如 CentOS、RedHat)

  • 安装软件包

    yum install oracle-database-preinstall-19c
    
  • 更新软件包

    yum update
    
  • 移除软件包

    yum remove package-name
    

基于 DEB 的系统(如 Debian、Ubuntu)

  • 安装软件包

    apt-get install oracle-database-preinstall-19c
    
  • 更新软件包

    apt-get update && apt-get upgrade
    
  • 移除软件包

    apt-get remove package-name
    

13. 调度任务

cron:定时任务调度

  • 编辑当前用户的 crontab

    crontab -e
    
  • 示例:每天凌晨2点执行数据库备份脚本

    0 2 * * * /home/dbadmin/scripts/backup.sh >> /var/log/backup.log 2>&1
    

查看和管理 crontab

  • 查看 crontab 任务

    crontab -l
    
  • 删除 crontab 任务

    crontab -r
    

14. 网络安全与防火墙

管理防火墙

  • firewall-cmd(在使用 Firewalld 的系统上)

    • 开放端口 1521(Oracle 默认端口)

      firewall-cmd --permanent --add-port=1521/tcp
      firewall-cmd --reload
      
  • iptables(传统防火墙管理)

    • 允许端口 1521

      iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
      service iptables save
      

SELinux 管理

  • 查看 SELinux 状态

    sestatus
    
  • 暂时禁用 SELinux

    setenforce 0
    
  • 永久禁用 SELinux:编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled,然后重启系统。


15. 其他实用命令

查找磁盘中的大文件

find / -type f -size +100M -exec ls -lh {} \; | awk '{ print $NF ": " $5 }'

监控实时数据库日志

tail -f /u01/app/oracle/diag/rdbms/orcl/orcl/alert/log.xml

统计表空间使用情况

du -sh /u01/app/oracle/oradata/

查看数据库实例状态

ps -ef | grep pmon

查看系统启动时间和运行时间

uptime

查看当前登录用户

who

16. 实用技巧与最佳实践

使用别名简化命令

编辑 ~/.bashrc~/.bash_profile,添加常用命令的别名,如:

alias ll='ls -la'
alias dbstatus='ps -ef | grep ora_'
alias backup='tar -czvf backup_$(date +%F).tar.gz /home/dbuser/'

脚本自动化

编写 Shell 脚本自动化常见任务,如数据库备份、日志清理等。例如,创建一个每日备份脚本 backup.sh

#!/bin/bash
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH

BACKUP_DIR=/backup/oradata/$(date +%F)
mkdir -p $BACKUP_DIR
rman target / <<EOF
RUN {
  BACKUP DATABASE PLUS ARCHIVELOG;
  BACKUP CURRENT CONTROLFILE;
}
EOF
tar -czvf $BACKUP_DIR/db_backup.tar.gz $ORACLE_HOME

权限最小化

仅赋予必要的权限给数据库用户和脚本,遵循最小权限原则,增强系统安全性。

定期更新和补丁管理

保持系统和数据库的最新补丁,修复已知漏洞和问题,提高系统稳定性和安全性。

监控与报警

配置系统监控工具(如 Nagios、Zabbix)监控关键指标,并设置报警机制,及时响应系统异常。


17. 参考资料

  • Linux Command Reference
  • Oracle 官方文档
  • CentOS 文档
  • Ubuntu 文档
  • UNIX 和 Linux 系统管理手册

通过掌握以上常用 Linux 命令,DBA 可以更加高效地管理数据库系统,监控系统性能,执行维护任务,并快速响应和解决问题。建议在实际工作中不断练习和积累,根据具体需求深入学习相关命令和工具,提升管理和优化数据库系统的能力。


http://www.kler.cn/a/590238.html

相关文章:

  • 【开源免费】基于SpringBoot+Vue.JS电商应用系统(JAVA毕业设计)
  • HTML 基础夯实:标签、属性与基本结构的学习进度(一)
  • FPV无人机战术演练仿真系统技术详解
  • 网络世界探索之旅:初始网络
  • KUKA机器人编程之signal的应用(包括创建组输入和组输出)
  • Day09 -实例:拿到加密密文进行解密
  • Tomcat新手登峰指南:从零到部署的原子化实践
  • repo init 错误 Permission denied (publickey)
  • 机器学习扫盲系列(2)- 深入浅出“反向传播”-1
  • 3.17学习总结 java数组
  • 18.使用读写包操作Excel文件:xlrd、xlwt 和 xlutils 包
  • 浅谈AI落地之-关于数据增广的思考
  • Tomcat线程池详解,为什么SpringBoot最大支持200并发?
  • 从零搭建微服务项目Pro(第6-1章——Spring Security+JWT实现用户鉴权访问与token刷新)
  • 【前端】入门基础(一)html标签
  • Git 面试问题,解决冲突
  • ‌RTSPtoWeb, 一个将rtsp转换成webrtc的开源项目
  • C++之list类及模拟实现
  • Redis 安装详细教程(小白版)
  • 《企业级 Webpack 5 优化实战:构建速度提升 400% 的完整方案》