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_tablego
-- 执行分离操作Select * INTO .dbo.test_split_table
From [dbo].[vw_test_split_table]go
-- 修改分离表下文件名exec sp_helpfile
goexec sp_rename .dbo.test_split_table, "","OBJECT"
go-- 将本地表删除
drop table [dbo].[test_split_table] go
-- 删除视图drop view [dbo].[vw_test_split_table]
go
可见,采用mssql数据库分离,能够有效实现运维异地分布、多数据库统一管理的需求,比传统的运维方式更加可靠、高效。