SQL Server数据的转移并不难


  本文标签:SQL Server数据

  下面的文章主要介绍的是SQL Server数据的转移(新建数据库或转移服务器),我们大家都知道在一般的情况下,最好使用备份与还原操作来对转移数据进行转移,在特殊情况下,可以用导入导出的方式进行转移,这里介绍的就是导入导出方式  。

  导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小(收缩)数据库的大小,本操作默认为您对SQL的操作有一定的了解,如果对其中的部分操作不理解,可以咨询动网相关人员或者查询网上资料

  1、将原数据库的所有表、存储过程导出成一个SQL文件,导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项

  

  2、新建数据库,对新建数据库执行第一步中所建立的SQL文件

  

  3、用SQL的导入导出方式,对新数据库导入原数据库中的所有表内容

  

  利用数据库日志恢复数据到时间点的操作

  由于不正常的数据丢失,而又不想使用备份数据还原,只要原来有备份且当前日志保存完好,可以采用这个方法试试,说不定可挽回损失……

  

  1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进

  进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)

  

  

  1. backup log dbName to disk=fileName 

  

  2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢

  

  复

  

  

  1. restore database dbName from disk=fileName with norecovery 

  

  3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻

  

  

  1. restore log dbName from disk=fileName 
  2. with stopat=date_time 

  

  

  以上这些操作都可以在SQL SERVER企业管理器里完成,难度不大  。  。  。

  当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利

  用上述方法来恢复数据的...

  

  SQL Server2000数据库文件损坏时如何恢复

  出现这样的问题是比较严重的了,能否修复只能看你的运气……

  

  SQL Server2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,仅适用于非master,msdb的数据库  。

  说明如下:

  1 建一个测试数据库test(数据库类型为完全)

  2 建一个表,插入点记录

  

  create table a(c1 varchar(2))

  

  go

  

  insert into a values(aa)

  

  go

  

  insert into a values(bb)

  

  go

  

  3 作完全备份,到文件test_1.bak

  

  4 在作一点修改

  

  insert into a values(cc)

  

  go

  

  create table b(c1 int)

  

  go

  

  insert into b values(1)

  

  go

  

  insert into b values(2)

  

  go

  

  5 shutdown 数据库服务器

  

  6 用ultraedit编辑数据库文件test_data.mdf,随便修改点字节内容,相当于数据库遭到致命的损坏  。

  

  7 启动数据库,并且运行企业管理器,点开数据库,看到test变成灰色,而且显示置疑  。

  

  8 运行isql -SLocalhost -Usa -P

  

  1> backup log test TO DISK=D:Program FilesMicrosoft SQL ServerMSSQLBACKUP

  

  est_2.bak WITH NO_TRUNCATE

  

  2>go

  

  已处理 2 页,这些页属于数据库 test 的文件 TEST_Log(位于文件 1 上)  。

  

  BACKUP LOG 操作成功地处理了 2 页,花费了 0.111 秒(0.087 MB/秒)  。

  

  9 进行恢复最老的完全备份

  1> RESTORE DATABASE test FROM DISK=D:Program FilesMicrosoft SQL ServerMSSQL

  

  BACKUP est_1.bak WITH NORECOVERY

  

  2> go

  

  已处理 96 页,这些页属于数据库 test 的文件 TEST_Data(位于文件 1 上)  。

  

  已处理 1 页,这些页属于数据库 test 的文件 TEST_Log(位于文件 1 上)  。

  

  RESTORE DATABASE 操作成功地处理了 97 页,花费了 0.107 秒(7.368 MB/秒)  。

  

  10 恢复最近的日志

  1> RESTORE LOG test FROM DISK=D:Program FilesMicrosoft SQL ServerMSSQLBACKU

  

  P est_2.bak WITH RECOVERY

  

  2> go

  

  已处理 2 页,这些页属于数据库 test 的文件 TEST_Log(位于文件 1 上)  。

  

  RESTORE LOG 操作成功地处理了 2 页,花费了 0.056 秒(0.173 MB/秒)  。