首页主机资讯Ubuntu SQL Server自动化运维怎么操作

Ubuntu SQL Server自动化运维怎么操作

时间2025-10-20 19:39:03发布访客分类主机资讯浏览1285
导读:Ubuntu环境下SQL Server自动化运维操作指南 一、前置准备:安装与基础配置 在实现自动化运维前,需先完成SQL Server在Ubuntu上的安装及基础配置: 安装SQL Server 通过Microsoft官方APT仓库安装...

Ubuntu环境下SQL Server自动化运维操作指南

一、前置准备:安装与基础配置

在实现自动化运维前,需先完成SQL Server在Ubuntu上的安装及基础配置:

  1. 安装SQL Server
    通过Microsoft官方APT仓库安装SQL Server(以2022版为例):
    # 导入微软公钥
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
    # 注册SQL Server Ubuntu仓库
    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/mssql-server-2022.list)"
    # 更新包列表并安装
    sudo apt-get update &
        &
         sudo apt-get install -y mssql-server
    
  2. 启动服务与开机自启
    sudo systemctl start mssql-server  # 启动服务
    sudo systemctl enable mssql-server # 设置开机自启
    
  3. 配置SQL Server
    运行配置工具设置SA密码及身份验证模式:
    sudo /opt/mssql/bin/mssql-conf setup
    
  4. 启用SQL Server Agent
    SQL Server Agent是自动化作业的核心组件,需手动启用:
    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    sudo systemctl restart mssql-server
    

二、自动化运维核心工具:Ansible

Ansible是Ubuntu下实现SQL Server自动化运维的高效工具,可通过Playbook定义并执行安装、配置、备份等任务:

  1. 安装Ansible
    sudo apt-get update &
        &
     sudo apt-get install -y ansible
    
  2. 创建Playbook
    编写sqlserver_setup.yml,包含安装、启动、配置等任务:
    ---
    - name: Automate SQL Server setup on Ubuntu
      hosts: all
      become: yes
      tasks:
        # 添加Microsoft GPG密钥
        - name: Add Microsoft GPG key
          apt_key:
            url: https://packages.microsoft.com/keys/microsoft.asc
            state: present
        # 注册SQL Server仓库
        - name: Register SQL Server repository
          apt_repository:
            repo: "deb [arch=amd64] https://packages.microsoft.com/ubuntu/$(lsb_release -rs)/prod $(lsb_release -cs) main"
            state: present
        # 更新包列表并安装SQL Server
        - name: Install mssql-server
          apt:
            name: mssql-server
            state: latest
            update_cache: yes
        # 启动SQL Server服务
        - name: Start mssql-server service
          service:
            name: mssql-server
            state: started
            enabled: yes
        # 启用SQL Server Agent
        - name: Enable SQL Server Agent
          command: /opt/mssql/bin/mssql-conf set sqlagent.enabled true
        # 重启SQL Server服务
        - name: Restart mssql-server for Agent changes
          service:
            name: mssql-server
            state: restarted
    
  3. 执行Playbook
    通过inventory_file指定目标主机,运行Playbook:
    ansible-playbook -i inventory_file sqlserver_setup.yml
    

三、自动化备份:Shell脚本+Cron

定期备份是数据库运维的关键环节,可通过Shell脚本结合Cron定时任务实现:

  1. 创建备份脚本
    编写backup_sqlserver.sh,实现全量备份(带压缩与日期标记):
    #!/bin/bash
    # 配置参数
    DB_USER="sa"
    DB_PASSWORD="your_strong_password"
    DB_NAME="your_database"
    BACKUP_DIR="/var/opt/mssql/backup"
    DATE=$(date +%Y%m%d_%H%M%S)
    BACKUP_FILE="$BACKUP_DIR/${
    DB_NAME}
    _${
    DATE}
        .bak"
    
    # 创建备份目录(若不存在)
    sudo mkdir -p "$BACKUP_DIR"
    sudo chown mssql:mssql "$BACKUP_DIR"
    sudo chmod 700 "$BACKUP_DIR"
    
    # 执行备份(使用sqlcmd)
    sqlcmd -S localhost -U "$DB_USER" -P "$DB_PASSWORD" -Q \
    "BACKUP DATABASE [$DB_NAME] TO DISK='$BACKUP_FILE' WITH INIT, SKIP, STATS=10, COMPRESSION"
    
  2. 添加可执行权限
    chmod +x /path/to/backup_sqlserver.sh
    
  3. 配置Cron定时任务
    编辑Cron表,设置每天凌晨2点执行备份:
    crontab -e
    
    添加以下内容:
    0 2 * * * /path/to/backup_sqlserver.sh >
        >
         /var/log/sql_backup.log 2>
        &
        1
    
    (日志会记录到/var/log/sql_backup.log,便于后续排查问题)

四、自动化监控:系统工具+第三方方案

监控SQL Server性能与系统资源,可通过Linux自带工具或第三方解决方案实现:

  1. 系统自带工具
    • top/htop:实时查看SQL Server进程的CPU、内存占用(top -p $(pgrep -f mssql)过滤SQL Server进程)。
    • vmstat/iostat:监控系统磁盘IO、内存使用情况(vmstat 1 5每1秒采样1次,共5次)。
    • sar:收集系统历史性能数据(sar -u 1 3查看CPU使用率,sar -d 1 3查看磁盘IO)。
  2. 第三方监控工具
    • Netdata:开源实时监控工具,支持SQL Server指标(如查询延迟、连接数),安装后自动展示仪表板。
    • Prometheus+Grafana:Prometheus收集SQL Server指标(通过mysqld_exporter或SQL Server原生Exporter),Grafana可视化展示(如CPU使用率趋势图、内存占用饼图)。
  3. 自定义监控脚本
    编写Shell脚本监控SQL Server连接数,超过阈值发送邮件报警:
    #!/bin/bash
    THRESHOLD=100  # 连接数阈值
    EMAIL="admin@example.com"
    CONNECTIONS=$(sqlcmd -S localhost -U sa -P your_password -Q "SELECT COUNT(*) FROM sys.dm_exec_connections" -h -1 | tail -n 1)
    
    if [ "$CONNECTIONS" -gt "$THRESHOLD" ];
         then
      echo "SQL Server连接数超过阈值:$CONNECTIONS(阈值:$THRESHOLD)" | mail -s "SQL Server连接数报警" "$EMAIL"
    fi
    
    通过Cron每小时执行一次:
    0 * * * * /path/to/connection_monitor.sh
    

五、自动化安全维护

安全是自动化运维的重要环节,需定期执行以下任务:

  1. 定期修改SA密码
    使用Microsoft提供的工具修改SA密码:
    sudo /opt/mssql/bin/mssql-conf set-sa-password
    
    按提示输入新密码即可。
  2. 清理旧日志
    定期清理SQL Server日志目录(默认路径:/var/opt/mssql/log),避免日志占满磁盘:
    # 清空所有.log文件(谨慎操作,建议先备份)
    sudo truncate -s 0 /var/opt/mssql/log/*.log
    
  3. 更新系统与SQL Server
    定期更新Ubuntu系统包与SQL Server,修复安全漏洞:
    sudo apt update &
        &
         sudo apt upgrade -y  # 更新系统
    sudo apt install --only-upgrade mssql-server  # 升级SQL Server
    

通过以上步骤,可实现Ubuntu环境下SQL Server的安装配置自动化、备份恢复自动化、性能监控自动化、安全维护自动化,大幅降低运维成本,提升系统稳定性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu SQL Server自动化运维怎么操作
本文地址: https://pptw.com/jishu/730384.html
ubuntu getconf可以查磁盘容量吗 Ubuntu SQL Server集群搭建方法

游客 回复需填写必要信息