1.备份
连接好数据库引擎后,我本地有2个实例,分别是sqlserver、sqltest,如图(1-1)。
(图1-1)
以备份sqlserver为例,右击->任务->备份,如图(1-2)。
(图1-2)
出现如图(1-3)界面:
【源】-数据库,默认为图(1-2)中选中的数据库实例。
【目标】默认备份文件名为"数据库实例名.bak"。
(图1-3)
可以通过添加功能修改备份文件名,点击“添加”,出现如图(1-4)界面。
(图1-4)
点击选择目录操作后,出现(图1-5)界面。重新更名文件,并加上后缀(不然备份出来的文件没有后缀),然后确定。
(图1-5)
出现刚才更名的文件路径,如图(1-6),最后确定。
(图1-6)
点击确定后,出现(图1-7)界面,出现了新添加到文件路径,我们一般删除原来的默认文件路径(不然备份出来的数据库会被分成这两个文件),最后确定就可以了。
(图1-7)
弹出备份成功对话框,如图(1-8)。
(图1-8)
2.还原
参考(图1-2),如果要对原来的数据库进行还原,点击要还原的数据库实例名,做操作:右击->任务->还原->数据库,出现(图2-1)。
说明:
【还原的目标】-目标数据库,默认是是刚才点击选中的数据库实例。
【还原的源】中,默认选中【源数据库】,它是最近期的数据库备份文件。
若我们需要备份到另一台机子上,或者说新装的数据库,要对以前的数据库进行还原,则选择【源设备】,具体
(图2-1)
点击确定后,出现(图2-2),报错提示:尚未备份数据库“...”的日志尾部...
(图2-2)
解决办法:在(图2-1)中,做操作:【选择页】-【选项】,选中“覆盖现有数据库”,如(图2-3)
(图2-3)
点击确定,出现(图2-4)
(图2-4)
【源设备】的方式还原,点击该行右边的按钮,出现(图2-5)。
(图2-5)
点击“添加”,出现(图2-6),选中要还原的备份数据文件,点击确定。
(图2-6)
出现(图2-7)
(图2-7)
确定后,出现(图2-8),对“选择用于还原的备份集”中出现的项,在其前面“还原”列打勾,表示对该备份集还原。
(图2-8)
点击确定,同样出现(图2-2)的报错提示:尚未备份数据库“...”的日志尾部...,解决方法同上,见(图2-3),最后确定后,提示备还原成功。
过渡
如果要在数据库实例sqltest上还原sqlserver,操作仍然是在数据库实例名sqltest上右击->任务->还原->数据库。
见图步骤:(图1-2)->(图2-1),此时若在“源数据库”行的下拉列表选择sqlserver,出现(图2-9)。
【还原的目标】-目标数据库,自动替换为sqlserver,需在该下拉列表选择sqlserver,然后确定。
(图2-9)
出现(图2-10)。
(图2-10)
此时参照(图2-1)->(图2-3),点击确定,出现(图2-11)。
(图2-11)
同样,在(图2-9)【还原的源】中选择“源设备”->(图2-5)->(图2-6)->(图2-7)->(图2-8)等操作,得到的也是(图2-11)的结果。
因为sqlserver实例还在,正在使用“sqlserver.mdf”,导致无法再生成一个“sqlserver.mdf”来覆盖自己,但是若对sqlserver实例用自己的“sqlserver.mdf”文件还原则又是可行的,这应该是sql server的机制。
3.分离
现在对上面出现的问题进行解决,因为sqlserver和sqltest两个实例同在数据库下,都是正在使用的状态,此时我们停止sqlserver实例的使用。
对sqlserver实例,右击->任务->分离,出现(图3-1),“删除连接”列可选可不选。
(图3-1)
单击确定后,出现(图3-2),此时sqlserver实例从数据库中消失了。
(图3-2)
再对sqltest进行上面所述操作的还原,就不会出现问题了。还原成功后,原来的“sqltest.mdf”数据库文件会被“sqlserver.mdf”取代,也就是说“sqltest.mdf”丢失了,而现在的“sqlserver.mdf”的实例名被换为sqltest了,我是多么无聊和扯淡。。。
4.附加
附加是把数据库源文件(.mdf)添加到数据实例中,这对于换机操作是相当方便的。
对“数据库”右击->附加,如(图4-1)
(图4-1)
在出现的界面中选择步骤3中的“sqlserver.mdf”数据库文件添加进来后出现(图4-2)。
(图4-2)
点击确定后,报错提示,如(图4-3),这个时候,自己又不能覆盖自己了,我真是菜啊,不大懂。。。
(图4-3)
当然这个时候你附加其他的数据库文件是可以成功。
比如我们此时可以将实例sqltest分离,然后附加“sqlserver.mdf”是没有问题的。
在(图4-1)中,右击“数据库”时还有“还原数据库”选项,其操作是用备份数据库文件还原,我们可以发现,分离和还原有时是可以通用的,只是目标文件不一样罢了。