Rumah  >  Artikel  >  pangkalan data  >  SQL Server数据库迁移偏方

SQL Server数据库迁移偏方

WBOY
WBOYasal
2016-06-07 15:24:04978semak imbas

欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入 44. 45. SET @sql = ' 46. 47. SET IDENTITY_INSERT [ClassifyResult_T] ON 48. 49. INSERT INTO [dbo].[ClassifyResult_T]( 50. 51. [Id] 52. 53. ,[ClassId] 54. 55. ,[ArchiveId]) 56. 57. SELE

欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入

 

    44.

    45.       SET @sql = '

    46.

    47.       SET IDENTITY_INSERT [ClassifyResult_T] ON

    48.

    49.       INSERT INTO [dbo].[ClassifyResult_T](

    50.

    51.           [Id]

    52.

    53.          ,[ClassId]

    54.

    55.           ,[ArchiveId])

    56.

    57.       SELECT

    58.

    59.          [Id]

    60.

    61.          ,[ClassId]

    62.

    63.           ,[ArchiveId]

    64.

    65.       FROM [dbo].[ClassifyResult]

    66.

    67.       WHERE Id >= '+ CONVERT(VARCHAR(100),@Id1) + ' and Id

    68.

    69.       ORDER BY Id

    70.

    71.       SET IDENTITY_INSERT [ClassifyResult_T] OFF '

    72.

    73.       EXEC (@sql)

    74.

    75.       UPDATE Temp_MoveManage SET IsDone = 1 WHERE Id = @Id1

    76.

    77.    END

    78.

    79.END

    --4 Job(省略)

    四、缺陷

    缺陷1:在CreateTable生成的表中,最后一条记录无法执行,因为最后一个Id是使用

    缺陷2:如果转移表的记录同时在不断的增长,那么数据就无法把最新的数据转移到分区表了;针对这个缺陷,本来的想法是为搬迁辅助表的Id分段加多一些记录,这样就可以执行最新数据;

    缺陷3:对于上面的那个问题,也是有缺陷的,例如现在Id分段是100和200,当新数据Id>100的某段时间,这两个分段值的IsDone就会给更新为1,这样就会造成缺失了很多数据;针对这个缺陷,也是可以解决的,先去判断当新数据的Id>200的时候,才执行导Id为100和200分段的脚本;(在存储过程中判断Max(Id)就可以了)

    五、注意

    对磁盘做RAID0(看具体情况而定)之后的创建分区时需要设置64K的分配单元大小;

    64位操作系统和64位数据库系统;

    搬迁完之后需要创建这表必要的索引,迁移的时候没有创建索引是因为频繁的插入会影响索引,这些索引需要进行存储位置对齐;

    因为把数据库搬迁到新的服务器了,程序链接的IP地址就需要修改,如果很多程序需要修改链接地址,那我们又没办法解决呢?可以通过修改服务器的IP;

    测试相关的应用程序,测试数据库的运行情况;

    六、其它

    这是一些朋友的建议,这里还没有尝试,因为环境的限制,比如数据库是简单模式了等情况.这里记录下,期待适合环境的童鞋拿去用.

    用Mirror迁移

    考虑Log Shipping

    先完整备份并在目标服务器还原,迁移前先进行事务日志备份并还原,最后将原库所有数据库账号改为只读,然后再进行一次事务日志备份并还原,这样宕机时间会

  [1] [2] [3] 

SQL Server数据库迁移偏方

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn