mssql站库实现分离:一种新的运维方式(mssql站库分离)

mssql数据库分离,是运维异地分布、多数据库统一管理的一种新的实现方式。这种方法的思想是从数据库服务器上,将数据库拆分成不同的部分,并使用不同的存储服务,实现数据库多源连接和分配管理的方法,以达到运维异地分布、多数据库统一管理的目的。

在过去的基于mssql数据库运维场景中,如果是要实现异地分布、多数据库统一管理,就需要在不同地方建立多个mssql数据库服务器,然后维护一套远程连接路由、管理密码,在多个mssql服务器上安装类似于SSMS(SQL Server管理工具),实现远程连接用于统一管理多个数据库,但这样存在以下问题:一是管理资源成本高,二是部署过程繁杂,三是智能分库存储的方式不智能,统一管理的力度不够高。

基于上述需求,mssql数据库可以通过分离实现异地分布、多数据库统一管理,但是在切忌不能直接分离数据库,因为分离数据库如果没有做好准备工作,可能会影响原有的数据库。

因此,要想实现mssql数据库分离,首先要明确实现的分离方式,其次要根据实际情况,利用一些SQL命令事先进行数据库准备工作,以保证当前数据库的安全性。比如采用如下SQL脚本,可用于事前准备分离准备:

-- 配置文件
exec sp_configure 'show advanced options',1 -- 开启
go
reconfigure
go
exec sp_configure 'Ad Hoc Distributed Queries',1 -- 开启
go
reconfigure
go
-- 另外新建一个分离表,它是一个空表,就可以用于分离到另外一个库了
create table test_split_table(id int IDENTITY,name varchar(20))

最后,使用一些SQL命令,可以实现mssql数据库的分离,如下:

-- 针对待分离的表创建一个视图
create view [dbo].[vw_test_split_table] as select id,name from dbo.test_split_table
go
-- 执行分离操作
Select * INTO .dbo.test_split_table
From [dbo].[vw_test_split_table]
go
-- 修改分离表下文件名
exec sp_helpfile
go
exec sp_rename .dbo.test_split_table, "","OBJECT"
go
-- 将本地表删除
drop table [dbo].[test_split_table]
go
-- 删除视图
drop view [dbo].[vw_test_split_table]
go

可见,采用mssql数据库分离,能够有效实现运维异地分布、多数据库统一管理的需求,比传统的运维方式更加可靠、高效。


数据运维技术 » mssql站库实现分离:一种新的运维方式(mssql站库分离)