
一个SQL
SERVER的数据库由一个数据文件和一个日志文件组成,通常在SQL服务运行时,这两个文件是处于打开状态的,在WINDOWS中,我们是不能对于一个打开的文件进行剪切、粘贴等 *** 作的。
通过分离 *** 作,可以实现对于被分离的数据库文件进行各种文件 *** 作,分离的数据库文件可以通过附加命令再次附加。
相对于停止SQL
服务,分离要更加安全。
读写分离主要目的是提高系统吞吐量。某些网站同一时间有大量的读 *** 作和较少的写 *** 作。同时,读 *** 作对数据的实时性要求并没有那么高。在此前提下,可以这么设计解决方案。
所以你问题里“数据仍然需要同步”这个理解是不对的。事实上,正是由于允许用户读到几秒钟甚至几分钟前的数据,才可以使用读写分离的。
数据库里面concurrency control是最复杂的组件之一。因为transaction是原子性的,但要保证原子性就得上锁,要不然读写 *** 作之间就有inconsistency。为了减少锁的代价,数据库往往会提供多种consistency level供选择。
而如果读写分离了,那么只读 *** 作的那些服务器就完全不需要考虑锁的问题了,完全可以选哪个最低代价的consistency level。只有执行写 *** 作的服务器需要用强的consistency level。虽然读服务器也需要隔一段时间更新一下,但只有更新时才需要加锁。
所以这种方案其实就是以数据的时效性,换取了读 *** 作的吞吐率。
打开"企业管理器",选择你要分离的数据库,单击右键,在“所有任务”上可以看到“附加数据库”、“分离数据库”。主要是来将你的数据库进行分离和附加,比如别人要用你的数据库,但你的数据库服务器是在你本机上,别人或许不能远程访问你的数据库,这样你就可以把数据库给分离掉,形成两个文件:.mdf--数据库文件;以及数据库日志文件log,这样你可以把这两个文件发给要用的人,他们可以在自己的机子上,用同版本的数据库服务器将你的数据库附加上,这样就可以知道你的数据库数据信息了。
也许说的不是很全面吧!不过应该是离线数据库的方式吧~~~
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)