运维日记|SQL server 镜像怎么读 – 作者:database

客户:您好,我SQL 2008的数据库想实现主从同步。

我:这个…能实现主备同步。

客户:请问这两者的区别是?

我:主从:实时同步,至少两端都可读。

        主备:实时同步,备库不可读。

客户:……

我:请问,您的具体需求是实时备份还是备库可读呢?实时性要求高不高呢?

客户:备库能读取到数据就行,实时性要求不高。

我:好的,镜像,您最好的选择!

 

同事A:听说SQL server的镜像库是不可读的啊…

我:嘿嘿、知道什么是快照么?

同事B:愿闻其详。

我:看下方…..

 

什么是快照:

数据库快照,是数据库在某一时间点的视图。是SQL Server在2005之后的版本引入的特性。快照的应用场景比较多,同时可以和镜像结合来达到读写分离的目的。

创建快照:

无论是使用SSMS或是命令行,快照只能通过T-SQL语句创建。在创建数据库之前,首先要知道数据库分布在几个文件上,因为快照需要对每一个文件进行copy-on-writing。

image.png

在确定数据文件个数及名称之后,开始创建数据库快照。当数据文件个数=1时,创建快照命令如下:

image.png

当数据文件个数>=2时,创建快照命令如下:

image.png

相比数据文件个数=1而言,多出来的数据文件采用( )多次写出来方可。

使用快照:

image.png

读到这里,我们已经解决了镜像库如何来读的问题,但是,大家好不容易来一趟,我岂会轻易放过,乖乖接着往下看。

 

快照特性:

这里,为了广大朋友能看的更清楚,此时的示例数据库我选择了数据量相对较大的sale库。

1、快照数据文件和源数据文件对比:

image.pngimage.png

database_id=24 代表源库,database_id=25代表快照库。从查询结果看,两者貌似没有区别。

2、快照文件和源数据文件对比:

image.pngimage.png

从上面可以看出,两者的大小一样,但是在磁盘的占用空间,快照文件非常小,这是为什么呢?

 

啊!是因为稀疏文件(Sparse Flie)

所谓的稀疏文件,是指文件中出现大量0的数据,这些数据对我们用处并不大,却一样占用着磁盘空间。因此NTFS对此进行了优化,利用算法将这个文件进行压缩。因此当稀疏文件被创建时,稀疏文件刚开始大小会很小(甚至是空文件)。 

啊?空文件,怪不得这个占用空间(448K)让人迷茫,还好还好,这下就解释的通了。那有人问了,快照文件这么小,我岂不是想建就建、想保留多少就保留多少?莫慌,继续往下看…

3、稀疏文件的大小变更

快照创建后,随着对源数据库的改变逐渐增多,稀疏文件也会慢慢增长。

image.png

为了存储复制的原始页,快照使用一个或多个“稀疏文件” , 最初,稀疏文件实质上是空文件,不包含用户数据并且未被分配存储用户数据的磁盘空间。随着源数据库中更新的页越来越多,文件的大小也不断增长。

综上所述:初始生成的快照实质上是个空文件,当稀疏文件增长到源数据库文件大小的30%时,就应该考虑重建快照了。

讲到这里,我们就知道了,可以通过快照读取镜像数据库,但是要严格控制快照的大小以及快照的数量。

 

拓·展

利用快照恢复数据库:

当源数据库存在不当操作时,要想将数据恢复到做快照时的状态,恢复命令如下:

image.png

删除快照:

image.png

生成快照需要考虑的一些因素:

1. 快照数据库的安全设置继承源数据库的安全设置。也就是说能访问源数据库的用户或角色也能访问快照数据库,当然,因为快照数据库是只读的,所以无论任何角色或人都无法修改快照数据库;

2. 随着快照存在的时间越来越长,快照会不断增长。所以推荐在快照达到源数据库大小30%之前,重新创建快照;

3. 由于快照会拖累数据库性能,所以数据库不宜存在过多快照。

参考资料:

https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15


美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。

来源:freebuf.com 2020-06-09 12:01:43 by: database

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论