菜鸟科技网

Linux下SQLServer命令如何操作?

在Linux环境下管理和操作SQL Server涉及多种命令行工具和脚本技术,这些工具可以帮助数据库管理员(DBA)和开发人员高效地完成安装、配置、监控和维护任务,以下将从安装配置、日常管理、性能监控、数据操作及自动化脚本等方面详细介绍相关命令和使用方法。

Linux下SQLServer命令如何操作?-图1
(图片来源网络,侵删)

在Linux上安装SQL Server通常使用微软提供的官方脚本,需要下载Microsoft SQL Server Red Hat存储库配置文件,例如对于Red Hat Enterprise Linux或CentOS,可以使用命令curl https://packages.microsoft.com/config/rhel/8/mssql-server.repo | sudo tee /etc/yum.repos.d/mssql-server.repo添加仓库,通过sudo yum install -y mssql-server安装SQL Server服务,安装完成后运行sudo /opt/mssql/bin/sqlservr --install初始化服务,并使用sudo systemctl start mssql-server.service启动服务,安装SQL Server命令行工具(如sqlcmd)时,需添加微软的Ubuntu仓库(对于Ubuntu系统)或Red Hat仓库,然后执行sudo apt-get install mssql-toolssudo yum install -y mssql-tools,安装后可通过echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc将工具添加到环境变量。

配置SQL Server时,sudo /opt/mssql/bin/mssql-conf是核心工具,设置SA密码需运行sudo /opt/mssql/bin/mssql-conf set sa.YourStrong!Passw0rd,其中密码需满足复杂度要求;修改TCP端口使用sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433;启用或禁止远程连接可通过sudo /opt/mssql/bin/mssql-conf set network.remoteaccess 10实现,配置完成后,需重启服务sudo systemctl restart mssql-server.service使更改生效。

日常管理中,连接SQL Server主要通过sqlcmd和Azure Data Studio(GUI工具),sqlcmd的基本用法为sqlcmd -S localhost -U SA -P 'YourPassword',连接后可执行T-SQL语句,如创建数据库CREATE DATABASE MyDB;,或退出QUIT,服务管理方面,sudo systemctl start mssql-server启动服务,sudo systemctl stop mssql-server停止服务,sudo systemctl restart mssql-server重启服务,sudo systemctl status mssql-server查看服务状态,备份与恢复是重要任务,使用T-SQL命令可实现,例如完整备份BACKUP DATABASE MyDB TO DISK='/var/opt/mssql/backup/MyDB.bak' WITH INIT;,恢复数据库RESTORE DATABASE MyDB FROM DISK='/var/opt/mssql/backup/MyDB.bak' WITH MOVE 'MyDB' TO '/var/opt/mssql/data/MyDB.mdf', MOVE 'MyDB_log' TO '/var/opt/mssql/data/MyDB_log.ldf';

性能监控是确保SQL Server稳定运行的关键,动态管理视图(DMV)提供了丰富的性能数据,例如通过查询SELECT * FROM sys.dm_os_performance_counters获取计数器信息(如CPU使用率、内存占用),SELECT * FROM sys.dm_exec_requests查看当前正在执行的请求,SELECT * FROM sys.dm_os_wait_stats分析等待资源,Linux系统工具如tophtopvmstat可用于监控服务器整体资源,例如htop实时显示CPU和内存使用情况,df -h查看磁盘空间,日志文件位于/var/opt/mssql/log/,可通过tail -f /var/opt/mssql/log/errorlog实时查看错误日志。

Linux下SQLServer命令如何操作?-图2
(图片来源网络,侵删)

数据操作和用户管理也是常见任务,创建用户并授权权限的T-SQL语句为CREATE LOGIN MyUser WITH PASSWORD='SecurePass!';CREATE USER MyUser FOR LOGIN MyUser;GRANT SELECT, INSERT ON MyTable TO MyUser;,数据导入导出可使用bcp命令行工具,例如导出数据bcp MyDB.dbo.MyTable out /tmp/MyTable.csv -c -S localhost -U SA -P 'YourPassword',导入数据bcp MyDB.dbo.MyTable in /tmp/MyTable.csv -c -S localhost -U SA -P 'YourPassword'

自动化脚本方面,结合Shell脚本和T-SQL可定期执行维护任务,创建备份脚本backup.sh#!/bin/bash /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'YourPassword' -Q "BACKUP DATABASE MyDB TO DISK='/var/opt/mssql/backup/MyDB_$(date +%Y%m%d).bak' WITH INIT;",然后赋予执行权限chmod +x backup.sh并设置定时任务crontab -e添加0 2 * * * /path/to/backup.sh实现每天凌晨2点备份。

以下表格总结了常用命令及其功能:

命令类别 命令示例 功能描述
安装SQL Server curl https://packages.microsoft.com/config/rhel/8/mssql-server.repo | sudo tee /etc/yum.repos.d/mssql-server.repo 添加Microsoft SQL Server仓库
sudo yum install -y mssql-server 安装SQL Server服务
安装工具 sudo yum install -y mssql-tools 安装SQL Server命令行工具(如sqlcmd、bcp)
配置SQL Server sudo /opt/mssql/bin/mssql-conf set sa.YourStrong!Passw0rd 设置SA密码
sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433 修改TCP端口
连接数据库 sqlcmd -S localhost -U SA -P 'YourPassword' 使用sqlcmd连接本地SQL Server
服务管理 sudo systemctl start mssql-server 启动SQL Server服务
sudo systemctl restart mssql-server 重启SQL Server服务
备份数据库 BACKUP DATABASE MyDB TO DISK='/var/opt/mssql/backup/MyDB.bak' 使用T-SQL执行数据库完整备份
性能监控 SELECT * FROM sys.dm_os_performance_counters 查询SQL Server性能计数器
htop Linux系统工具,实时监控CPU和内存
用户管理 CREATE LOGIN MyUser WITH PASSWORD='SecurePass!'; 创建SQL Server登录用户
数据导入导出 bcp MyDB.dbo.MyTable out /tmp/MyTable.csv -c -S localhost -U SA -P 'YourPassword' 使用bcp工具导出数据到CSV文件

相关问答FAQs:

Linux下SQLServer命令如何操作?-图3
(图片来源网络,侵删)
  1. 问题:在Linux上安装SQL Server时提示“依赖包缺失”,如何解决?
    解答: 安装SQL Server前需确保系统满足依赖要求,例如Red Hat/CentOS系统需安装libicuopenssllibcurl等包,可通过sudo yum install -y libicusudo yum install -y opensslsudo yum install -y libcurl安装依赖,若仍有问题,可检查系统版本是否符合SQL Server支持列表(如RHEL 8、Ubuntu 20.04等),并确保仓库配置正确。

  2. 问题:如何定期清理SQL Server备份文件以避免磁盘空间不足?
    解答: 可以编写Shell脚本结合find命令删除旧备份文件,创建清理脚本cleanup_backups.sh#!/bin/bash find /var/opt/mssql/backup -name "*.bak" -mtime +7 -delete(删除7天前的备份文件),赋予执行权限chmod +x cleanup_backups.sh,并通过crontab -e添加定时任务(如每天凌晨3点执行0 3 * * * /path/to/cleanup_backups.sh),实现自动清理。

分享:
扫描分享到社交APP
上一篇
下一篇