SQL 2000还原数据库单用户问题解决方法
- 格式:doc
- 大小:20.00 KB
- 文档页数:1
USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'Gosp_dboption '置疑的数据库名', 'single user', 'true'GoDBCC CHECKDB('置疑的数据库名')Goupdate sysdatabases set status =28 where name='置疑的数据库名'Gosp_configure 'allow updates', 0 reconfigure with overrideGosp_dboption '置疑的数据库名', 'single user', 'false假设数据库为TEST:按以下步骤执行A.设置数据库允许直接操作系统表。
此操作可以在SQL Server Enterprise Manager 里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。
也可以使用如下语句来实现。
use mastergosp_configure 'allow updates',1goreconfigure with overridegoB.设置test为紧急修复模式update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表C.下面执行真正的恢复操作,重建数据库日志文件dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')执行过程中,如果遇到下列提示信息:服务器: 消息5030,级别16,状态1,行 1未能排它地锁定数据库以执行该操作。
Sql2000r 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。
1. DBCC CHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use masterdeclare @databasename varchar(255)set @databasename='需要修复的数据库实体的名称'exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(@databasename,REPAIR_REBUILD)exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态然后执行DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。
注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称declare @dbname varchar(255)set @dbname='需要修复的数据库实体的名称'exec sp_dboption @dbname,'single user','true'dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称exec sp_dboption @dbname,'single user','false'3. 其他的一些常用的修复命令DBCC DBREINDEX 重建指定数据库中表的一个或多个索引用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。
SQL Server 2000 数据库还原实例操作教程SQL Server是一个关系数据库管理系统它最初是由Microsoft Sybase和Ashton- Tate三家公司共同开发的于1988年推出了第一个OS/2版本在Windows NT推出后Microsoft 与Sybase在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server的Windows NT版本Sybase则较专注于SQL Server在UNIX操作系统上的应用在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统的最新版本该版本继承了SQL Server 7.0版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98的膝上型电脑到运行Microsoft Windows 2000的大型多处理器的服务器等多种平台使用。
SQL Server 2000共有4个版本,分别是个人版,标准版,企业版和开发版。
网页吧的一些网友询问怎么调试MSSQL数据库的程序,开始简单说了下,但怕大家不明白,还是做了个图片版的说明,希望大家能看懂。
第一步:安装SQL2000,并启动SQL2000。
到网上下载SQL2000,并安装完毕。
(我操作系统是XP,装的是SQL个人版,按照下面所示的图片打开SQL服务管理器方法:开始----- 程序 ---- M icrosoft SQL Server ----- 服务管理器机山.化即WMUfitr*丹AariLE■-■iaflUBH1n t*J fttt MH>J UII«|I«IEr a电&点开始/继续左边的小图标启动SQL,稍等五秒钟左右,刷新服务后就可以看到SQL启动了。
sql server 2000数据库备份还原图文教程详解
MSSQL是微软公司的一款数据库管理系统,本文将详细介绍了sql server 2000数据库备份还原功能,需要的朋友可以参考下。
MSSQL是微软公司的一款数据库管理系统,本文将详细介绍MSSQL2000中数据库的备份和还原功能。
1、首先请保证您的备份文件是bak文件,并且备份文件能够正常还原。
2、打开企业管理器”→数据库”,选择您要还原的数据库,右键所有任务”→还原数据库”。
如图:
MSSQL2000数据库备份还原的图文教程
3、如果需要还原以前备份过的文件,直接在还原”选择数据库
”,然后在下方选择要还原的备份即可,如果是从其他地方上传或者复制过来的,请选择从设备”还原。
点添加”,添加您需要还原的备份文件。
如图:。
MS SQL Server 2000 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复。
但是,此时会出现问题,这里说明几种常见问题的解决方法。
一、孤立用户的问题比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于test 的用户表。
这个问题有两种办法解决。
先说解决的前提条件。
首先,要用备份文件还原数据库,我们这里的数据库名为test,里面有属于用户test的用户表。
这个很容易了操作了,不多讲了,在企业管理器中很方便可以恢复。
恢复后,就产生了孤立用户test。
然后,用sa用户或者具有DBA权限的用户登录,创建一个test数据库登录用户,密码随便设置了,也可以和以前的保持一致。
我们用它来对应孤立的test用户。
下面就有两种操作方法了,第一种就是改变对象的属主,第二种就是使登录用户和数据库的孤立用户对应起来。
方法:使登录用户和数据库的孤立用户对应起来其实我们建立了同样名称的数据库登录用户后,数据库中的表我们照样不能使用时因为sid的不同,就是系统登录表和数据库用户表中的用户名相同,单是sid字段,数据库中的还是以前旧系统的sid值,所以我们就要把它对应成我们新建的,数据库靠sid来识别用户。
这里可以使用存储过程sp_change_users_login。
它有三种动作,分别是report,update_one和auto_fix。
运行下面的代码,系统会列出当前数据库的孤立用户数。
sp_change_users_login 'report' 我们只需要选择当前数据库为testdb,然后运行sp_change_users_login 'update_one','test','test' 系统就会提示修复了一个孤立用户。
SQLserver2000数据库修复办法总结Praymid 戴华倪总结步骤如下:1、检测数据库,使用命令(Dbcc checkdb)拿到数据库后附加到本地SQLserver使其运行,打开企业管理器,查看它。
同时打开查询分析器,在里面输入Dbcc checkdb 检测数据库命令然后回车即可以看到数据库的分析资料看到问题,评注:拿到问题先不要盲目的卸载SQLServer,本次因为新手,上手后就把数据库卸载,这样就耗费了一天的时间,过没有任何作用,测试服务器的完整性可以拿一个好的数据库做对比,自己可以建一个“test”,如果测试数据库运行正常,则不需要对服务器做任何改动。
千万不要改动系统,麻烦会更大。
提示:错误会以红色显示。
2、简单修复:命令:dbcc checkdb输入以下两句尝试修复。
DBCC CHECKDB('AIS20110120172605',repair_allow_data_loss)DBCC CHECKDB('AIS20110120172605',repair_rebuild)不管他究竟哪里错了,先用这两句试试一般的索引系统文件丢失,SQLserver 都可以解决这个问题,基本就差不多了。
但是对于主键索引损坏,这个命令基本修不好,所以对一个满身是伤的数据库,他可以修复70%。
注:修复时系统提示必须要在单用户模式下才可以生效,用户可以去企业管理器,对要修理的数据库:右击属性—选项—限制访问—单用户。
也可以使用以下语句实现:ALTER DATABASE AIS20110420091143 SET single_USERGO 改为单用户ALTER DATABASE AIS20110420091143 SET MULTI_USERGO 改为多用户。
继续使用dbcc checkdb检测,如果继续报错。
再次运行:DBCC CHECKDB('DataBasename') with NO_INFOMSGS,PHYSICAL_ONLY然后再运行:DBCC CHECKDB(' DataBasename ',repair_allow_data_loss) WITH TABLOCK 再次运行:DBCC CHECKDB('DB name') 系统显示修复成功,说明本次问题主要由索引等数据库系统本身问题引起,这样的修复可能会导致数据丢失,但是绝对不会是大批丢失,基本没有影响。
sqlserver2000数据库备份还原的图⽂教程MSSQL是微软公司的⼀款数据库管理系统,本⽂将详细介绍MSSQL2000中数据库的备份和还原功能。
1、⾸先请保证您的备份⽂件是bak⽂件,并且备份⽂件能够正常还原。
2、打开“企业管理器”→“数据库”,选择您要还原的数据库,右键“所有任务”→“还原数据库”。
如图:MSSQL2000数据库备份还原的图⽂教程3、如果需要还原以前备份过的⽂件,直接在“还原”选择“数据库”,然后在下⽅选择要还原的备份即可,如果是从其他地⽅上传或者复制过来的,请选择“从设备”还原。
点“添加”,添加您需要还原的备份⽂件。
如图:MSSQL2000数据库备份还原的图⽂教程4、点击确定后,点还原数据库上的“选项”查看恢复后数据库的路径,有时可能会还原失败,可以勾选“在现有数据库上强制还原”,⾄此,数据库还原的过程就讲完了。
如图:MSSQL2000数据库备份还原的图⽂教程5、如果您已经有MDF和LDF⽂件,可以⽤数据库的附加功能进⾏附加。
⾸先将您的数据库mdf和ldf⽂件上传到服务器的某个⽬录(⼀般不要放在系统盘,以免系统损坏造成数据丢失),⽐如d:\mssql⽬录,并给该⽬录mssqluser的完全控制权限。
然后打开企业管理器,右键点击“数据库” ——“所有任务”——“附加数据库”,如图:MSSQL2000数据库备份还原的图⽂教程点击“…”添加需要附加的mdf⽂件,并指定要附加的数据库名和数据库所有者如图:MSSQL2000数据库备份还原的图⽂教程点击确定附加数据库成功,如图:MSSQL2000数据库备份还原的图⽂教程注意,如果放在其他⽬录,务必保证该⽬录先加上mssqluser的完全控制权限,否则还原或备份会失败。
保存备份的⽬录也必须有这个权限!!。
SQL还原数据库后孤立用户问题处理(SQL 数据库拥有对象无法删除)2008-10-10 01:37所谓孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录孤立帐户的产生一般是一下两种:1.将备份的数据库在其它机器上还原;2.重装系统或SQL SERVER之后只还原了用户库解决方法是使用sp_change_users_login来修复sp_change_users_login的用法有三种用法1:exec sp_change_users_login 'REPORT'列出当前数据库的孤立用户用法2:exec sp_change_users_login 'AUTO_FIX','用户名'可以自动将用户名所对应的同名登录添加到syslogins中用法3:exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'将用户名映射为指定的登录名----------------------------------------------------------------------------------------------------------------看看是否有用SQL孤立用户解决方案症状当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题SQL Server 联机丛书中的孤立用户疑难解答主题中没有讲述解决此问题的具体步骤本文介绍了如何解决孤立用户问题状态Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题更多信息虽然术语登录和用户经常交换使用,但它们之间有很大的不同登录用于用户身份验证,而数据库用户帐户用于数据库访问和权限验证登录通过安全识别符 (SID) 与用户关联访问 SQL Server 服务器需要登录验证特定登录是否有效的过程称为身份验证登录必须与 SQL Server 数据库用户相关联您使用用户帐户控制数据库中执行的活动如果数据库中不存在针对特定登录的用户帐户,使用该登录的用户即使能够连接到 SQL Server 服务器,也无法访问数据库但是,该情形的唯一例外是当数据库包含guest用户帐户时与用户帐户不关联的登录将被映射到guest 用户相反,如果存在数据库用户,但没有与其关联的登录,则该用户将无法登录到 SQL Server 服务器中将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户这种情况被称为存在孤立用户孤立用户疑难解答当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题以下情形说明了该问题并阐述如何加以解决1. 向主数据库添加一个登录,并将默认数据库指定为 Northwind: Use master go sp_addlogin 'test', 'password', 'Northwind'2. 向刚创建的用户授予访问权限: Use Northwind go sp_grantdbaccess 'test'3. 备份数据库 BACKUP DATABASE NorthwindTO DISK = 'C:MSSQLBACKUPNorthwind.bak'4. 将数据库恢复到其他 SQL Server 服务器: RESTORE DATABASE Northwind FROM DISK = 'C:MSSQLBACKUPNorthwind.bak'恢复的数据库包含名为test的用户,但没有相应的登录,这就导致test成为孤立用户5. 现在,为了检测孤立用户,请运行此代码: Use Northwind gosp_change_users_login 'report'输出中列出了所有登录,其中包含 Northwind 数据库的 sysusers 系统表和主数据库的 sysxlogins 系统表中不匹配的条目解决孤立用户问题的步骤1. 为前一步中的孤立用户运行以下命令:Use Northwindgosp_change_users_login 'update_one', 'test', 'test'这样,就将服务器登录test与 Northwind 数据库用户test重新连接起来sp_change_users_login 存储过程还可以使用auto_fix参数对所有孤立用户执行更新,但不推荐这样做,因为 SQL Server 会尝试按名称匹配登录和用户大多数情况下这都是可行的;但是,如果用户与错误登录关联,该用户可能拥有错误的权限2. 在上一步中运行代码后,用户就可以访问数据库了然后用户可以使用sp_password 存储过程更改密码: Use mastergosp_password NULL, 'ok', 'test'此存储过程不能用于 Microsoft Windows NT 安全帐户通过 Windows NT 网络帐户连接到 SQL Server 服务器的用户是由 Windows NT 授权的;因此,这些用户只能在 Windows NT 中更改密码只有 sysadmin 角色的成员可以更改其他用户的登录密码----------------------------------------------------------------------------------------------------------------SQL2005删除用户的时候,产生数据库主体在该数据库中拥有架构,无法删除的解决办法--执行如下SQL语句ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;--然后手动删除就可以了----------------------------------------------------------------------------------------------------------------[导入]sql2000备份的数据库还原到sql2005后,选择数据库关系图提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法sql2000备份的数据库还原到sql2005后,选择数据库关系图提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象若要继续,请首先使用数据库属性对话框的文件页或 ALTER AUTHORIZATION 语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象解决方法如下:1设置兼容级别为90(2005为90)USE [master]GOEXEC dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90GO或是选责你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定,这时,你在该数据库下展开数据库关系图节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择是即可2通过以上的方法操作,如果问题依然存在的话,按下列方法继续选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后use [你的数据库名]EXEC sp_changedbowner 'sa'执行成功后,你再选择"数据库关系图"节点,时提示此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择是即可就可以看到原先建的关系图了----------------------------------------------------------------------------------------------------------------从服务器上作导入导出至本地机上,数据库中的表都在,可是表名前段的架构身份不是dbo了,而是服务器上数据库的库名这样架构身份不同了,程序运行就出问题了试过单个修改表,在sql2005的属性窗口可以更改架构者,可是N多表哪儿能手动改得过来呀!还请高手指点批量更改的方法在此谢过SQL Server2005可以使用系统存储过程sp_changeobjectowner更改数据库对象的所有者sp_changeobjectowner '对象名(包括架构名)','新架构名'批量修改请用:方法一:使用游标declare @name sysnamedeclare csr1 cursorforselect TABLE_NAME from INFORMATION_SCHEMA.TABLESopen csr1FETCH NEXT FROM csr1 INTO @namewhile (@@FETCH_STATUS=0)BEGINSET @name='原架构名.'+@nameEXEC SP_ChangeObjectOwner @name, '新架构名' fetch next from csr1 into @nameENDCLOSE csr1DEALLOCATE csr1方法二:使用系统存储过程sp_MSforeachtableEXEC sp_MSforeachtable @command1="EXEC SP_ChangeObjectOwner ' ?','新架构名'"----------------------------------------------------------------------------------------------------------------在sql server 2005数据库中更改数据架构在数据库testDB中存在架构A及用户A,现将testDB数据库所属的用户由A改为B,同时删除用户A;架构也由A改为B,删除架构A,操作如下:1创建用户B,再创建架构B;2将架构A的权限赋给用户B,取消用户A拥有架构A的权限,删除用户A;3将数据库的所有属于架构A的对象改为架构B,代码如下:ALTER SCHEMA [新架构名] TRANSFER 旧架构名.[数据库中的对象表或视图或存储过程]ALTER SCHEMA [B] TRANSFER A.[对象1]ALTER SCHEMA [B] TRANSFER A.[对象2]ALTER SCHEMA [B] TRANSFER A.[对象n]4删除架构A。
SQL Server2000还原数据库步骤一、方法一:使用“附加数据库”方式还原(使用.MDF和.LDF文件还原) (1)二、方法二:使用“还原备份文件”方式还原(使用备份文件还原) (4)一、使用“附加数据库”方式还原(使用.MDF 和.LDF文件还原)1、展开SQL Server企业管理器中左侧树图上的“数据库”节点,在“数据库”上点右键,如下图所示:2、选择“所有任务”→“附加数据库”,弹出如下所示的界面:3、单击上图中红框所示按钮,弹出如下所示的选择需附加(还原)的数据库文件的界面:选择需附加的数据库文件(选择.mdf文件),单击“确定”按钮,如下图所示:4、根据自己的实际情况选择“指定数据库所有者”中的一个用户,单击“确定”按钮,数据库附加(还原)完成,如下图所示:二、使用“还原备份文件”方式还原(使用备份文件还原)1、展开SQL Server企业管理器中左侧树图上的“数据库”节点,在“数据库”上点右键,如下图所示:2、选择“所有任务”→“还原数据库”,弹出如下所示的界面:3、在上图所示的对话框中,在“还原为数据库”后的输入框中输入还原后的数据库名(可以是备份前的数据库名,也可以新起一个数据库名。
本例还原后的数据库名为“ExamOnline”),然后选择“从设备”,如下图所示:4、单击“选择设备”按钮,弹出如下所示对话框:5、单击“添加”按钮,弹出如下对话框:6、单击“文件名”后输入框后面的按钮,弹出选择备份文件的对话框,如下图所示:7、选择之前的数据库备份文件(本例中的备份文件为ExamOnline_backup.bak),单击“确定”按钮,返回到“选择还原目的”对话框,如下图所示:8、单上面的对话框中的“确定”按钮,返回到“选择还原设备”对话框,如下图所示:9、单击“确定”按钮,返回到“还原数据库”对话框,如下图所示:10、单击“确定”按钮,SQL Server开始还原数据库,稍等一会儿,还原就完成了,如下图所示:。
SQLServer 2000还原数据库失败解决办法在SQLServer2000数据库中,选择从设备还原数据库时,显示“设备激活错误,C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Data.MDF可能有误,文件Xxx无法为C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Data.MDF,请使用WITH MOVE 选项来标识该文件的有效位置”。
“设备激活错误,物理文件名C:\Program Files\Microsoft SQLServer\MSSQL\data\test_Log.LDF可能有误,文件XXX无法还原为C:\ProgramFiles\Microsoft SQL Server\MSSQL\data\test_Log.LDF,请使用WITH MOVE选项来标识该文件的有效位置”。
RESTORE DATABASE操作异常终止。
解决办法:将下图中的“移至物理文件名”下的路径改为当前要还原的数据库所在的路径即可。
说明:在默认情况下,当创建数据库abc时,更改了数据库abc的“数据文件”和“事务日志”的路径,在还原该数据库时,由于系统默认不改变“数据文件”和“事务日志”的路径,为C:\Program Files\Microsoft SQL Server\MSSQL\data\XXX_Log.MDF和C:\Program Files\Microsoft SQL Server\MSSQL\data\XXX_Log.LDF,这时总会无法还原,把MDF和LDF的路径改为当前要还原的数据库所在的路径,问题就解决了。
还原数据库abc,选择从“设备还原”默认情况下的路径如果按上图直接还原,是无法还原的,修改数据库abc的MDF和LDF文件所在的路径OK,完毕。
Sql2000r 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。
1. DBCC CHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use masterdeclare @databasename varchar(255)set @databasename='需要修复的数据库实体的名称'exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(@databasename,REPAIR_REBUILD)exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态然后执行DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。
注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称declare @dbname varchar(255)set @dbname='需要修复的数据库实体的名称'exec sp_dboption @dbname,'single user','true'dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称exec sp_dboption @dbname,'single user','false'3. 其他的一些常用的修复命令DBCC DBREINDEX 重建指定数据库中表的一个或多个索引用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。
双机热备模式下,SQL2000数据库分离,附加,置疑,单用户解除的方法首先,在任何操作之前,必须要备份数据库(重要)一、分离数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口4、点击确定,该选定的数据库就被分离。
5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。
所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
二、附加数据库1、在附加数据库之前,首先要移动数据库文件在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。
这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data目录下。
2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器3、展开服务器组,然后展开服务器4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口5、输入要附加的数据库的MDF名称。
如果不确定文件位于何处,单击浏览("...")搜索。
若要确保指定的 MDF 文件正确,请单击"验证"。
在"附加为"框内,输入数据库的名称。
数据库名称不能与任何现有数据库名称相同。
指定数据库的所有者6、单击"确定"按钮。
新附加的数据库的数据库节点即创建在"数据库"文件夹中重启双机1.此时数据库分离,附加完成,必须重启一次双机修复置疑1,双机重启后,数据库置疑下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库)2,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作)A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。
(一)用SQL语句备份数据库SQL 备份语句调用系统存储过程sp_addumpdevice 完成sp_addumpdevice disk DevDataBaseName C:\Backup BACKUP DATABASE DataBaseName TO DevDataBaseName--完整备份Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Full_20070908.bak'--差异备份Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Diff_20070908.bak'With Differential--日志备份,默认截断日志Backup Log NorthwindCSTo disk='G:\Backup\NorthwindCS_Log_20070908.bak'--日志备份,不截断日志Backup Log NorthwindCSTo disk='G:\Backup\NorthwindCS_Log_20070908.bak'With No_Truncate--截断日志不保留Backup Log NorthwindCSWith No_Log--或者Backup Log NorthwindCSWith Truncate_Only--截断之后日志文件不会变小--有必要可以进行收缩--文件备份Exec Sp_Helpdb NorthwindCS --查看数据文件Backup Database NorthwindCSFile='NorthwindCS' --数据文件的逻辑名To disk='G:\Backup\NorthwindCS_File_20070908.bak'--文件组备份Exec Sp_Helpdb NorthwindCS --查看数据文件Backup Database NorthwindCSFileGroup='Primary' --数据文件的逻辑名To disk='G:\Backup\NorthwindCS_FileGroup_20070908.bak' With init--分割备份到多个目标--恢复的时候不允许丢失任何一个目标Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Full_1.bak',disk='G:\Backup\NorthwindCS_Full_2.bak'--镜像备份--每个目标都是相同的Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Mirror_1.bak'MirrorTo disk='G:\Backup\NorthwindCS_Mirror_2.bak'With Format --第一次做镜像备份的时候格式化目标--镜像备份到本地和远程Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Mirror_1.bak'MirrorTo disk='\\192.168.1.200\Backup\NorthwindCS_Mirror_2.bak' With Format--每天生成一个备份文件Declare @Path Nvarchar(2000)Set @Path ='G:\Backup\NorthwindCS(二)在数据库还原时出现下面问题的解决方法。
MSSQL数据库还原时容易出现的错误和解决方法
一台机器上备份了一个数据库,把备份后的文件拷到另一台机器上准备还原时却出了错,提示是:请使用WITH MOVE选项来标识该文件的有效位置。
解决方法:
第一步:程序→Microsoft SQL Server→企业管理器中的方法:→右键"数据库" →所有任务→还原数据库→"还原为数据库"中输入还原后的数据库名
第二步:还原选择"从设备"—>选择设备→添加→添加你的备份文件→确定,回到数据库还原的界面
第三步:→备份号→查看内容—>选择你要恢复那次备份的内容
第四步:→选项→将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名;
注意:现在的数据库物理位置要与实际相同,否则就要更改如将:E:\MSSQL\User\Huaxin51\.... 更改为: C:\Program Files\Microsoft SQL Server\MSSQL\Data\
C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\sqlhuaxin51
也就是说:.MDF,.LDF这两个文件的位置要正确。
最后一步:如果要还原的数据库已经存在,选择"在现有数据库上强制还原"—>确定。