一、前言
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
二、部署环境&安装包
1.环境
screenfetch

2.安装包
- mssql-server-rpm.tar.gz【提取码:csdn】
- mssql-dev.tar.gz【提取码:csdn】
- mssql_client_rpm.tar.gz【提取码:csdn】
三、具体步骤
1.安装依赖包
tar -xvzf mssql-dev.tar.gz && cd mssql-dev //解压并进入目录
yum -y localinstall *.rpm //yum本地安装

2.安装sql-server
tar -xvzf mssql-server-rpm.tar.gz && cd mssqlrpm
rpm -ivh mssql-server-15.0.4375.4-1.x86_64.rpm

# 包安装完成后,使用其完整路径运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。
/opt/mssql/bin/mssql-conf setup
2 //选择免费版本
yes //同意一下许可条款
10 //语言选择简体中文
******** //管理员密码
******** //确认密码

3.查看运行状态
systemctl status mssql-server
netstat -ntlupa |grep 1433

说明:根据图中所示状态已经在运行并且服务端口为1433/tcp
4.开放对应端口(可选)
# 默认的 SQL Server 端口为1433,TCP协议。 如果为防火墙使用的是FirewallD,则可以使用以下命令:
firewall-cmd --zone=public --add-port=1433/tcp --permanent && firewall-cmd --reload
firewall-cmd --zone=public --list-port

5.安装客户端(可选)
说明:离线包用不了的用下面线上安装方式即可
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
yum install -y mssql-tools18 unixODBC-devel
# 添加环境变量并激活
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> /etc/profile
source /etc/profile

6.数据库测试
注意:
******换成自己设置的密码
sqlcmd -U sa -P '******' -S 127.0.0.1 -C -N
CREATE DATABASE TestDB;
SELECT Name FROM sys.databases;
GO

USE TestDB;
CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id));
SELECT * FROM dbo.Inventory WHERE quantity > 152;
GO
QUIT

6.数据库备份
vim sql_server_backup.sh
#!/bin/bash
# 设置变量
DB_SERVER="localhost" # SQL Server 地址
DB_USER="sa" # SQL Server 用户
DB_PASSWORD="******" # SQL Server 密码
BACKUP_DIR="/srv/sql_backup" # 备份存储目录
DATE=$(date +"%Y%m%d%H%M%S") # 当前时间戳
# 检查备份目录是否存在,如果不存在则创建
if [ ! -d "$BACKUP_DIR" ]; then
echo "备份目录不存在,正在创建目录:$BACKUP_DIR"
mkdir -p $BACKUP_DIR
echo "备份目录未授权,正在授权目录:$BACKUP_DIR"
chown -R mssql:mssql $BACKUP_DIR
if [ $? -eq 0 ]; then
echo "目录创建成功:$BACKUP_DIR"
else
echo "创建目录失败!"
exit 1
fi
else
echo "备份目录已存在:$BACKUP_DIR"
echo "正在授权备份目录:$BACKUP_DIR"
chown -R mssql:mssql $BACKUP_DIR
fi
# 获取所有数据库名称(排除系统数据库)
DATABASES=$(sqlcmd -S $DB_SERVER -C -N -U $DB_USER -P $DB_PASSWORD -Q "SET NOCOUNT ON; SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb', 'distribution')" -h -1 -W)
# 对每个数据库执行备份
for DB_NAME in $DATABASES; do
# 创建备份文件名
BACKUP_FILE="${BACKUP_DIR}/backup_${DB_NAME}_${DATE}.bak"
# 执行备份命令
sqlcmd -C -N -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP DATABASE [$DB_NAME] TO DISK = N'$BACKUP_FILE' WITH NOFORMAT, NOINIT, NAME = N'$DB_NAME-Complete Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "数据库 $DB_NAME 备份成功: $BACKUP_FILE"
else
echo "数据库 $DB_NAME 备份失败"
fi
done
:wq
chmod +x sql_server_backup.sh
注意:
DB_PASSWORD换成自己的密码

执行测试没问题写入cron定时任务即可
crontab -e
0 0 * * * /srv/soft/sql_server_backup.sh
:wq
四、结束语
本次CentOS7.4Linux系统离线部署SQL-Server2019就到此结束了,后期会给大家带来更多相关使用教程等,感谢认真读完,如果觉得还可以,那么给作者点赞、收藏、关注吧!

1773

被折叠的 条评论
为什么被折叠?



