上节我们提到了如何把PowerShell DSC的数据库换成Access;DSC Pull服务器当前的版本对MS SQL Server是不支持的,该怎么办?另外如果我们需要对Pull服务器建立负载均衡,这些负载均衡的Pull的服务器能够共享一个数据库,这个时候应该怎么办?最后不得不提的是,随着Pull服务器运行的时间越来越长的时候,其存储的Access的性能满足不了大负荷量数据的时候怎么办? 这个时候就需要把数据库服务器切换成SQL Server。那么应该如何做呢?当前的解决方案就是通过ODBC把Access数据中的表映射到SQL server数据上面去。
具体步骤,如下:
@ 切换DSC Pull服务器的数据库为Acces
根据 [25]Window PowerShell DSC学习系列----如何更换DSC Pull服务器数据库为Access数据库?这篇文章把数据库切换成Access数据库。
@ 安装Access软件
Office 里面自带Access的安装,因为后面要在Access里面配置ODBC,所以首先要安装Access,笔者电脑安装的是Access 2013.@ 安装SQL Server Express 2014
到这个网站去下载 SQL Server Express 2014的安装包https://www.microsoft.com/en-us/download/details.aspx?id=42299
下载完成后,直接安装。这个SQL Server Express 既可以安装在Pull 服务器上,也可以另外安装到一*立的服务器上。
@ 配置 SQL Server Express 2014的网络访问
安装SQL Server Express 2014(企业版本当然更好了),安装完成之后,配置一下数据库的网络设置。打开SQL Server Configuration manager,然后选择SQL Server Netowork Configuration 选项,选择TCP/IP 协议。然后配置相应的设置。
配置完成后,重启服务
@ 在SQL Server Express中创建一个新的表
打开SQL Server 2014 Management Studio,并新建一个数据库,比如名称设置为Devices;此时的数据库中没有任何的表@ 在SQL Server Express中创建一个新的用户
在SQL服务器中创建一个新的用户,比如dscuser,并设置符合密码复杂度规范的密码,并赋予相应的权限。@ 设置64 bit 的ODBC连接
打开控制面板,找到ODBC Data Sources (64-bit),打开并选择System DSN,然后选择添加
@ 设置32 bit 的ODBC连接
设置32 bit的ODBC连接和64 bit的ODBC连接类似。但是需要注意的是,ODBC的名称必须保持一致;因为实际上上Pull 服务器访问的是32 bit的ODBC。
设置完成之后,应该有2个ODBC的同名连接。
@ 打开Pull服务器的Access文件并另存为Access 2000的格式
在C:\Program Files\WindowsPowerShell\DscService 目录中把Devices.mdb拷贝出来。比如拷贝到桌面; 用Access打开这个副本文件;然后另存为evices1.mdb@ 打开Access 2000的格式的Access文件并做数据映射到SQL Server
打开Devices1.mdb文件,删除已有的三种表
然后选择相应的主键。
@ 重命名Acces里面的映射表名称
重名Access表里面的名称,并和以前的名称保持一致。并选择重名的三张表做一个Linked Table Manager@ 用做过映射的Access数据库文件替换Pull 服务器本身Devices.mdb文件
把Devices1.mdb文件重新命名为Devices.mdb 并覆盖C:\Program Files\WindowsPowerShell\DscService\Devices.mdb文件@ 重新启动Pull服务器
重新启动Pull服务器。当上面的步骤都完成后,恭喜你!!! 你切换成SQL Server成功。可以通过注册一个新的DSC 节点来测试。
@参考文档
https://leandrowpblog.wordpress.com/2016/10/26/using-sql-server-db-for-dsc/