如下图所示,每一个实例库实例,都有四个系统数据库,master,model,msdb,tempdb,那么这个四个库究竟有什么作用呢?
http://s16/mw690/002wTZbPzy774zlWbplef&690Server四个系统数据库的作用" TITLE="SQL
Server四个系统数据库的作用" />
1. master数据库
它记录了SQL Server系统的所有系统信息。比如说所有的登录信息,系统设置信息,SQL
Server的初始化信息和其他系统数据及用户数相关信息。 如果它不可用了,就意味着SQL Server无法启动。
的
2. model 数据库
model,中文是模型,也就是说,它就像模板一样。是这个含义吗?实事确实如此,当系统监测到CREATE
DATABASE(创建数据库)的SQL
语句的时候,首先将model数据库中的内容来创建数据库新数据库,然后再创建新数据的其它部分,也就是说,如果修改了model数据库,那么在这个SQL
Server实例上面创建的新库,将会把model的所有部分复制到新库,包括表结果,存储过程等。即新库将继承model的所有内容。
为了更好的让大家理解,我们做一个简单的Demo,我们首先在Model下面建一张新表。
因为是演示,则只建立一个字段。
表名默认Table_1即可。如下图:
不用重启实例,则新建数据库,如新建如test库,那么Test库在没有新建一张表之前,就已经有了Table_1表了,而且结构也在。这里只是建表,那如果model里有存储过程,它也会复制过来,就是我们说的新库继承model的所有内容。
那新库继承的内容,新库可以改吗?当然可以。
那我以后不建新数据库了,我可以将model库删除吗?如果我只讲了上面一部分内容,很多朋友会觉得是可以的,实际上不可以的。为什么呢?因为SQL
Server每次重启后,SQL Server都会创建tempdb,它也是系统数据库,后面将介绍,总之后,SQL
Server每次重启后,它会创建tempdb,既然是创建数据库,那么,它又得复制model,对吧。所以,如果没有model,SQL
Server也是无法启动。 那有的朋友说,那我SQL
Server以后再也不启动了,那可以删除吗?这个时候理论上是可以,但不建议,谁敢确定以后再也不启动?
关于model就分享这么多,希望大家能够理解。
3. msdb数据库
msdb,它呢,跟master的相似之处在说,它也是记录信息的数据库。只不过,它是跟SQL
Server的一些功能相关联。比如说,报警,任务调度和记录操作员的操作提供存储空间。
如名字所示,它是一个临时库,它是所有临时表,临时存储过程及其它临时操作提供存储空间。不管哪个用户,哪个数据库他们所建的临时表和存储过程都在tempdb上。当SQL
Server每次启动的时候,tempdb数据库将重新创建,所以,我们前面说启动的时候,会用到model数据库。当用户与SQL
Server断开连接的时候,那么这个用户相关的临时表和存储过程将自动删除。
以上是分享四个系统数据库的作用。
写于二零一六十二月十日
二十维的奇迹
加载中,请稍候......