likes
comments
collection
share

服务器安装MSSQL(SQL server)

作者站长头像
站长
· 阅读数 15
  1. 确保您已经在 CentOS 7 系统上安装了 Docker。如果没有,请参考以下命令进行安装:
shCopy code
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
  1. 接下来,安装 Docker Compose。您可以通过以下命令下载并安装:
shCopy code
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  1. 创建一个新文件夹,然后在其中创建一个名为 docker-compose.yml 的文件,内容如下:
yamlCopy code
version: '3.9'

services:
  db:
    image: mcr.microsoft.com/mssql/server:2019-latest
    environment:
      SA_PASSWORD: "YourStrong@Passw0rd"
      ACCEPT_EULA: "Y"
    ports:
      - "1433:1433"

YourStrong@Passw0rd 替换为您自己的强密码。

  1. 在新创建的文件夹中打开终端,并运行以下命令:
shCopy code
docker-compose up -d
  1. 等待 Docker 拉取镜像并启动容器。

完成上述步骤后,您就可以使用 SQL Server 客户端工具(如 Azure Data Studio、SQL Server Management Studio 或其他支持 SQL Server 的应用程序)连接到运行在 CentOS 7 服务器上的 SQL Server 容器。在连接时,请使用 服务器 IP 地址,1433 作为服务器地址,并使用 sa 用户名以及您在 docker-compose.yml 文件中设置的密码进行身份验证。

使用TSQL新建作业

1. 启用SQL Server代理
docker exec -u 0 -it 你的docker容器名 /opt/mssql/bin/mssql-conf set sqlagent.enabled true
# 到mssql 的 docker-compose.yml统计目录下执行
# 注意这里的db是serviceName,是在docker-compose.yml中配置的不是执行docker ps查询出来的那个,那个是容器名
docker-compose restart db
# 备注:从 SQL Server 2017 CU4 开始,SQL Server 代理是附带mssql server打包并默认处于禁用状态。
2. 创建示例数据库
# 进入docker内部
docker exec -it mssql_db_1 /bin/bash
# 创建数据库SampleDB
/opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U sa -P YourStrong@Passw0rd -Q 'CREATE DATABASE SampleDB'
# 查询数据库列表
/opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U sa -P YourStrong@Passw0rd -Q 'SELECT Name FROM sys.Databases'

服务器安装MSSQL(SQL server)

或者在连接上MsSQL后通过新建查询做到新建数据库

CREATE DATABASE SampleDB
GO
SELECT Name FROM sys.Databases
GO
3. 使用 Transact-SQL 创建作业
-- 1. 使用sp_add_job若要创建一个名为作业Daily SampleDB Backup。

-- Adds a new job executed by the SQLServerAgent service
-- called 'Daily SampleDB Backup'
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = N'Daily SampleDB Backup' ;
GO
-- 2. 调用sp_add_jobstep若要创建的备份创建的作业步骤SampleDB数据库。

-- Adds a step (operation) to the job
EXEC sp_add_jobstep
@job_name = N'Daily SampleDB Backup',
@step_name = N'Backup database',
@subsystem = N'TSQL',
@command = N'BACKUP DATABASE SampleDB TO DISK = \
N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \
NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10',
@retry_attempts = 5,
@retry_interval = 5 ;
GO
-- 3. 然后创建与作业的每日计划sp_add_schedule。

-- Creates a schedule called 'Daily'
EXEC dbo.sp_add_schedule
@schedule_name = N'Daily SampleDB',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 233000 ;
USE msdb ;
GO

-- 4. 将作业计划附加到作业sp_attach_schedule。

-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
EXEC sp_attach_schedule
@job_name = N'Daily SampleDB Backup',
@schedule_name = N'Daily SampleDB';
GO

-- 5. 使用sp_add_jobserver若要将作业分配到目标服务器。 在此示例中,目标是本地服务器。

EXEC dbo.sp_add_jobserver
@job_name = N'Daily SampleDB Backup',
@server_name = N'(LOCAL)';
GO
-- 6. 启动的作业sp_start_job。

EXEC dbo.sp_start_job N' Daily SampleDB Backup' ;
GO