首页
关于
Search
1
LXC中Alpine模板安装Docker
16 阅读
2
Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程
14 阅读
3
netclient docker compose
12 阅读
4
Netmaker安装
11 阅读
5
PVE 引入img文件作为虚拟机磁盘
10 阅读
默认分类
PVE虚拟机
数据库
容器技术
Linux
登录
Search
标签搜索
SQLSERVER
学习笔记
累计撰写
31
篇文章
累计收到
1
条评论
首页
栏目
默认分类
PVE虚拟机
数据库
容器技术
Linux
页面
关于
搜索到
2
篇与
的结果
2024-02-27
SQL Server打开XPs代理
源链接使用 Agent XPs 选项可以启用此服务器上的 SQL Server 代理扩展存储过程。 如果禁用此选项,则 SQL Server 对象资源管理器将不显示 SQL Server Management Studio 代理节点。使用 SQL Server Management Studio 工具启动 SQL Server 代理服务时,会自动启用这些扩展的存储过程。可能的值包括:0,表示 SQL Server 代理扩展存储过程不可用(默认值)。1,表示 SQL Server 代理扩展存储过程可用。该设置立即生效,无需停止并重新启动服务器。示例下面的示例启用 SQL Server 代理扩展存储过程。在 Microsoft SQL Server Management Studio 中连接到数据库引擎。在标准工具栏上,单击“新建查询”。将以下示例复制并粘贴到查询窗口中,然后单击“执行”。 sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Agent XPs', 1; GO RECONFIGURE GO 另可参考自动执行管理任务(SQL Server 代理)
2024年02月27日
2 阅读
0 评论
0 点赞
2024-02-27
Docker运行SQL SERVER下的数据持久化
为非根容器配置持久存储权限若要允许非根用户访问已装载卷上的数据库文件,请确保以可读取/写入永久性文件存储的用户身份或组成员身份运行容器。可通过此命令获取数据库文件的当前所有权。ls -ll <database file dir>如果 SQL Server 无权访问持久数据库文件,请运行以下命令之一。授予根组对数据库文件的读/写访问权限授予对以下目录的根组权限,使非根 SQL Server 容器有权访问数据库文件。chgrp -R 0 <database file dir> chmod -R g=u <database file dir>将非根用户设置为文件的所有者这可以是默认的非根用户,也可以是要指定的任何其他非根用户。 在此示例中,我们将 UID 10001 设置为非根用户。chown -R 10001:0 <database file dir>保留数据即使通过 docker stop 和 docker start 重启容器,SQL Server 配置仍会更改,且数据库文件依然保留在容器中。 但是,如果使用 docker rm 删除容器,则会删除容器中的所有内容,包括 SQL Server 和数据库。 以下部分介绍如何使用数据卷保留数据库文件(即使关联的容器已被删除)。重要:对于 SQL Server,了解 Docker 中的数据持久性至关重要。 除本部分讨论的内容外,请参阅有关如何在 Docker 容器中管理数据的 Docker 文档。备注SQL Server 2019 (15.x) 及更高版本容器以非根用户的身份自动启动,而 SQL Server 2017 (14.x) 容器在默认情况下以根用户的身份启动。 有关以非根用户的身份运行 SQL Server 容器的详细信息,请参阅配置安全性。docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2019-latest借助此方法,还能共享和查看 Docker 外部的主机上的文件。备份和还原除这些容器技术外,还可使用 SQL Server 标准备份和还原技术。 可通过备份文件来保护数据,或将数据移至其他 SQL Server 实例。 有关详细信息,请参阅在 Linux 上备份和还原 SQL Server 数据库。警告如果要创建备份,请确保在容器外部创建或复制备份文件。 否则,一旦删除容器,备份文件也将随之删除。启用容器中的 VDI 备份和还原从 CU15 for SQL Server 2019 和 CU28 for SQL Server 2017 开始,SQL Server 容器部署现在支持虚拟设备接口 (VDI) 备份和还原操作。 按照以下步骤为 SQL Server 容器启用基于 VDI 的备份或还原:部署 SQL Server 容器时,请使用 --shm-size 选项。 若要开始,请将大小设置为 1 GB,如以下示例命令所示:docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Mystr0ngP@ssw0rd!" --shm-size 1g -p 1433:1433 --name sql19 --hostname sql19 -d mcr.microsoft.com/mssql/server:2019-latest使用选项 --shm-size,可以在容器内配置共享内存目录 (/dev/shm) 的大小,默认情况下设置为 64 MB。 共享内存的这一默认大小不足,无法支持 VDI 备份。 建议你在部署 SQL Server 容器并想要支持 VDI 备份时将此大小配置为至少 1 GB。还必须在容器内的 mssql.conf 中启用新参数 memory.enablecontainersharedmemory。 可以使用保留数据部分中所述的 -v 选项,或在通过手动更新容器内的 mssql 来部署容器后,在部署容器时装载 mssql.conf。 下面是一个示例 mssql.conf 文件,其中 memory.enablecontainersharedmemory 设置设为 true。[memory] enablecontainersharedmemory = true配置时区若要在具有特定时区的 Linux 容器中运行 SQL Server,请配置 TZ 环境变量(有关详细信息,请参阅在 Linux 上配置时区)。 若要查找正确的时区值,请从 Linux bash 提示符运行 tzselect 命令:tzselect选择时区后,tzselect 显示类似以下内容的输出:The following information has been given: United States Pacific Therefore TZ='America/Los_Angeles' will be used.要查看容器内的时区,请在容器内运行以下命令查询。date +%Z要查看容器内的时间,请在容器内运行以下命令查询。date可使用此信息在 Linux 容器中设置相同的环境变量。 以下示例介绍如何在 Americas/Los_Angeles 时区的容器中运行 SQL Server:sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \ -p 1433:1433 --name sql1 \ -e 'TZ=America/Los_Angeles'\ -d mcr.microsoft.com/mssql/server:2019-latest更改默认文件位置添加 MSSQL_DATA_DIR 变量以在 docker run 命令中更改数据目录,然后将卷装载到容器的用户有权访问的位置。docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=MyStrongPassword' -e 'MSSQL_DATA_DIR=/my/file/path' -v /my/host/path:/my/file/path -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest更改 tempdb 路径最好将 tempdb 数据库与用户数据库分开。连接到 SQL Server 实例,然后运行以下 Transact-SQL (T-SQL) 脚本。 如果存在多个与 tempdb 相关的文件,也需要移动这些文件。ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev, FILENAME = '/var/opt/mssql/tempdb/tempdb.mdf' ); GO ALTER DATABASE tempdb MODIFY FILE ( NAME = templog, FILENAME = '/var/opt/mssql/tempdb/templog.ldf' ); GO使用以下 T-SQL 脚本验证是否已修改 tempdb 文件位置:SELECT * FROM sys.sysaltfiles WHERE dbid = 2;必须重启 SQL Server 容器,这些更改才能生效。docker stop sql1 docker start sql1打开交互式 bash 会话以连接到容器。docker exec -it sql1 bash ls /var/opt/mssql/tempdb/#如移动成功,则有以下输出 tempdb.mdf templog.ldf参考链接:Microsoft Learn
2024年02月27日
0 阅读
0 评论
0 点赞