sql server数据库 第12讲 数据库备份与恢复
- 格式:pdf
- 大小:349.43 KB
- 文档页数:33


sql还原数据库步骤SQL数据库还原是将备份文件恢复为原始数据库的过程。
它通常在以下情况下使用:1.数据库损坏:当数据库发生意外故障或数据损坏时,可以使用数据库还原来恢复数据库到之前的状态。
2.数据库迁移:当需要将数据库从一个服务器迁移到另一个服务器时,可以先将数据库备份,然后在新服务器上进行数据库还原。
3.数据库版本升级:当需要将数据库升级到新的版本时,可以先进行数据库备份,然后在新版本中进行数据库还原。
下面是SQL数据库还原的步骤:1. 准备备份文件:首先,需要准备一个数据库备份文件,该文件通常具有以.bak作为文件扩展名。
2. 连接到数据库:使用适当的工具(如SQL Server Management Studio)连接到数据库服务器。
3. 选择还原选项:在工具中,找到并选择数据库还原选项。
在SQL Server Management Studio中,可以通过右键单击要还原的数据库,然后选择“任务”>“还原”来打开还原向导。
4.选择备份集:在还原选项中,选择“从备份设备还原”,然后单击“添加”按钮并浏览到备份文件的位置。
选择正确的备份集(如果有多个备份文件),然后单击“确定”。
5.指定还原数据库的位置:在“选项”选项卡中,选择要还原数据库的位置。
您可以选择将数据库还原到新的位置或覆盖现有的数据库。
还可以选择还原到特定的时点,而不是最新的备份。
6.恢复模式选择:还原选项中也包含恢复模式的选择。
根据需要,可以选择完全恢复还是部分恢复。
完全恢复将还原所有数据,而部分恢复仅还原一部分数据。
7.还原数据库:通过单击“确定”或类似的按钮开始数据库还原过程。
此过程可能需要一段时间,具体取决于备份文件的大小和数据库服务器的性能。
8.验证还原:一旦还原完成,可以使用工具或SQL命令验证数据库的完整性和一致性。
可以运行一些查询来检查数据库中的表、列和数据是否与预期的一样。
9.更新服务器配置:如果还原的数据库使用不同的服务器配置(如服务器名称、端口、身份验证等),则需要更新应用程序或网站的配置信息。
在SQLServer中使⽤SQL语句备份单表-造数据-还原表之前在⽹上看到使⽤sql语句进⾏单表的备份和还原的,但是好像是针对Oracle数据库的。
我们现在项⽬上使⽤的是SQL Server数据库。
就想能否也可以使⽤这种⽅式。
参考:按照⽹上的SQL语句,修改可以⽤于SQL Server数据库,需要的可以测试下:--不影响⽇后⼯作的造数据步骤:--1、备份表内的内容,--2、清表内内容,--3、给表造数据,--4、还原表--5、检查还原后的两表数据是否相同--------------------------------------------------------------1、备份表内的内容,--select * into tb_bak from tb Where [条件1,条件2];--tb 原数据表--tb_bak 要备份的新表名--若只需要表头不需要表数据的话,加上条件 select * into tb_bak from tb where 1=0;--若要向已经存在的表中备份数据库,使⽤ insert into ⽬标表名 select * from 源表名;select*into dbo.t_scs_0304 from dbo.t_scs;--------------------------------------------------------------2、清表内内容,--delete <表名>;--删掉⼀整个表内的数据--若只删除部分表数据的话,加上条件 delete <表名> where 字段1=字段值;delete dbo.t_scs;--------------------------------------------------------------3、给表造数据,declare@num int,@inTime datetimeset@num=1set@inTime= SYSDATETIME()while(@num<5)begininsert t_scs (scs_Name,scs_DateTime) values('王⿇⼦'+cast(@num as varchar),@inTime)set@num=@num+1set@inTime=DATEADD(mi,1,@inTime)end--------------------------------------------------------------4、还原表--清空现有表中的数据delete dbo.t_scs--把备份表中的数据复制到原表去--⽅法⼀:使⽤ insert into ⽬标表 select * from 源表对数据恢复--若⽬标表有使⽤⾃增id作为主键的,需要设置 set IDENTITY_INSERT dbo.t_scs on 和 set IDENTITY_INSERT dbo.t_scs off--⽅法⼆:根据表的主键更新记录,更新效率⾼:update table1 set field1=table2.field1,field2=table2.field2 from table2 where table1.id=table2.idset IDENTITY_INSERT dbo.t_scs oninsert into dbo.t_scs (id,scs_Name,scs_DateTime) select*from dbo.t_scs_0304;set IDENTITY_INSERT dbo.t_scs off--------------------------------------------------------------5、检查数据是否相同--如果数据量⽐较少的话,那么你可以直接⾃⼰对⽐两表,查看数据是否相同;--也可以使⽤ intersect和except 语句进⾏检查--查询出两表的相同数据select*from t_scsintersectselect*from t_scs_0304;--查询出两表不同的数据select*from t_scsexceptselect*from t_scs_0304;--把备份的表删掉。
SQLServer:用SQL语句还原数据库(withmove选项用法)SQL Server:用 SQL 语句还原数据库(with move 选项用法)SQL Server:用 SQL 语句还原数据库(with move 选项用法)SQL Server:用 SQL 语句还原数据库(with Move 选项用法)。
当我们把服务器A上的一个数据库备份后,在服务器B上还原的时候,直接restore 的时候,大多情况下都会出错,可能的原因是数据库的文件(数据和日志)在不同服务器上所在的 path 不同。
这时候就需要 restore with move 选项,来把数据库文件还原到目标 path 中。
with move 的详细语法:MOVE 'logical_file_name' TO 'operating_system_file_name' [ ,...n ]当我在把SQL Server 2000 Instance(实例)中的数据库Nortwind,还原到 SQL Server 2005 Instance 中的时候,也需要使用 restore with move 选项来进行还原。
1. 查看 SQL Server 2000 中 Northwind 数据库文件的逻辑文件名(logical file name)和物理文件路径(operation system file name):use Nothwindgoselect name, filename, * from dbo.sysfilesname filename-------------- ------------------------------------------------------------------Northwind d:\program files\microsoft sql server\mssql$sqla\data\northwnd.mdfNorthwind_log d:\program files\microsoft sql server\mssql$sqla\data\northwnd.ldf2. 备份 SQL Server 2000.Northwind 数据库backup database Northwind to disk = 'c:\Northwind.bak'3. 在 SQL Server 2005 Instance 中还原 Northwind 数据库。
(2.18)备份与还原--还原的原理与总结关键字:恢复系统数据库⼀、还原的过程还原过程主要分为3个阶段。
1. 数据复制 此阶段将从数据库的备份介质将所有数据、⽇志和索引页复制到数据库⽂件中。
完成这个阶段后,数据库被恢复到备份介质所包含的最后⼀个检查点。
2. 重做(前滚) 此阶段将记录的事务应⽤到从备份复制的数据,以将这些数据前滚到恢复点。
此阶段将使数据库从最后⼀个检查点前滚到恢复点(recovery point)的最后⼀笔交易。
重做(前滚)阶段阶段后,数据库通常有未提交的事务,并处于“正在恢复,不可⽤”的状态。
3. 撤消(回滚) 此阶段将撤消(回滚)任何未提交的事务。
撤消(回滚)阶段后,数据库可供⽤户使⽤。
⼆、还原的过程⽰例以下是⼀个事务的⽰例 LSN01 提交事务1 LSN02 检查点 LSN03 执⾏事务2 LSN04 执⾏“完整备份1”(备份导致检查点) LSN05 执⾏事务3 LSN06 检查点LSN07 提交事务2 LSN08 执⾏“事务⽇志备份1”(恢复点)恢复过程如下:(1)第⼀阶段:将通过备份介质“完整备份1”,恢复到LSN04(即备份介质所包含的最后⼀个检查点)。
这个过程主要是以“区”为单位直接将数据页⾯复制到数据库⽂件中。
(2)第⼆阶段:根据备份介质“事务⽇志备份1”的记录,前滚到LSN08(即数据库的“恢复点”)。
此阶段后,LSN05和LSN07都被执⾏,被回写到数据页⾯,但此时尚不确定LSN05事务是否被提交,因此,此时数据库的状态为“正在恢复,不可使⽤”,需要等待后续阶段。
(3)第三阶段,在备份介质“事务⽇志备份1”中没有发现LSN05被提交的⽇志记录,因此需要回滚未提交的事务,即撤消LSN05。
此阶段后,数据库可正常使⽤,且恢复到“恢复点”。
完成上述3个阶段后,事务2被提交(根据根据LSN07),事务3被回滚(因为事务3在LSN08时未提交)。
三、还原的操作⽅法1. T-SQL⽰例:RESTORE DATABASE[db01]FROM DISK= N'C:\backup\DB01_Data_BAK.bak'WITH FILE=1, NORECOVERY, NOUNLOAD, STATS =10GORESTORE LOG[db01]FROM DISK= N'C:\backup\DB01_Log_BAK.bak'WITH FILE=2, NOUNLOAD, STATS =10GO2.SSMS四、还原的恢复状态 在⼀个或多个备份已还原后,恢复通常会包含重做和撤消两个阶段。