基于ASP.NET的数据迁移方法

基于ASP.NET的数据迁移方法,第1张

引言

近年来 国内许多高校逐步建立了网络基础设施 构建了一些应用系统 但由于缺乏对数字校园总体结构的认识 出现了系统构建各自为政 缺乏统一规划 已构建的系统互割裂 信息与资源无法共享 而有些系统则集成度过高 维护与升级困难 网络基础服务平台与应用系统脱节等问题

在数字化校园的建设中 URP(University Resource Plan)概念的提出很好地解决了信息共享等问题 URP通过建立统一的数据库 制定统一的信息标准 使各种信息系统以松散耦合的方式集成起来 保障了数据的一致性 可靠性 可用性和安全性 原有系统中的历史数据 可以通过数据迁移的方式导入到新系统中 但在数据迁移的过程中 新的问题也随之而来

数据迁移所面临的问题

目前 信息系统的开发大都是利用SQL Server Oracle Sybase等大型数据库 数字化校园 建设中的数据库系统也大多采用这几种数据库 而Dbase FoxBASE FoxPro是我国近年来应用比较广泛的数据库开发软件 高校中仍有很多管理系统采用这种DBF格式的数据库 随着新系统的使用 原有系统中多年来积累的大量的宝贵的数据资料如何导入到新系统中 成为一个要解决的问题 也就是我们将面临如何将原始的数据迁移到新系统数据库中

解决思路

统一数据库的主要目的是实现数据共享 保障数据的一致性 但不论是新的信息系统 还是原有的信息系统 每个系统的业务本身并没有发生本质的变化 因此在数据库的结构到数据方面 都可以保持基本一致 只是采用的数据库平台不同 另外 SQL Server自身提供的DTS(Data Transformation Services)工具 也包含了将Dbase FoxBASE FoxPro等旧格式数据库文件导入到SQL数据库的功能

因此 根据实际的业务需求 利用ASP NET所提供的数据库 *** 作功能 配合SQL语句来编程 完全可以替代DTS的所有功能 从而实现大量的历史数据迁移至新的数据库系统中

设计与实现

以全国高校毕业生就业管理系统为例 具体说明如何实现数据迁移功能

原系统为教育部统一使用的单机版软件 采用FoxPro编写 并使用DBF格式文件存储数据 新系统是采用B/S结构 使用ASP NET编写及SQL Server数据库存储数据

在编写程序进行数据迁移的过程中需要解决以下几个问题

( )    原系统数据文件为DBF格式 在SQL Server中 DBF文件所在的文件夹被认为是一个数据库 DBF文件被认为是一个数据表

( )    数据迁移过程中 DBF文件可能存放在客户端 SQL Server数据库在服务器端 这需要将DBF文件先上传至服务器端再进行 *** 作

( )    根据用户业务需求 数据迁移功能应包含初次迁移 追加数据 覆盖数据等功能

DBF文件上传

传统的DBF格式数据文件 一般文件体积较小 因此采用ASP NET提供的上传组件即可 对于上传文件类型 限定为 DBF格式 以上传学生基本信息表student dbf为例 上传功能代码如下

//判断文件大小是否为

if (File PostedFile ContentLength> )

{

string fileExt=Path GetExtension(File

PostedFile FileName) ToLower();

//判断是否为DBF格式文件

if(fileExt!= dbf )

{

//出错提示

Label Text= 只能上传dbf格式文件!! ;

}

//合法的非空的dbf文件

else

{

//指定上传目录

string filepath=Server MapPath( Data/ );

//上传至指定目录中

File PostedFile SaveAs(filepath+

student dbf );

//进行相关数据迁移 *** 作

……

}

}

else

{

//出错提示

Label Text= 上传文件字节数为 !! ;

}

DBF文件导入

若在SQL Server数据库中不存在目标数据表 则使用导入并生成新表的命令 导入并建立新数据表功能代码如下

//打开SQL Server数据库连接

myConnection Open();

//filepath为DBF文件上传时定义的目标文件夹

//该语句将指定文件夹中的student dbf文件

//导入至SQL Server的新建数据表student中

string creattb= SELECT INTO student FROM

Openrowset( MSDASQL Driver=Microsoft

Visual FoxPro Driver;SourceDB= +filepath+ ;

SourceType=DBF select from student ) ;

//定义SQL命令

SqlCommand myComm=new SqlCommand(

creattb myConnection);

//执行导入命令

myComm ExecuteNonQuery();

//关闭数据库连接

myComm Dispose();

myConnection Close();

// *** 作成功提示信息

Label Text= 导入并生成学生数据表成功!! ;

DBF文件追加

若SQL Server数据库中已存在student数据表 则使用追加命令导入数据 追加数据功能代码如下

//打开SQL Server数据库连接

myConnection Open();

//filepath为DBF文件上传时定义的目标文件夹

//该语句将指定文件夹中的student dbf文件

//追加至SQL Server的数据表student中

string creattb= INSERT INTO student

SELECT FROM Openrowset( MSDASQL

Driver=Microsoft Visual FoxPro Driver;

SourceDB= +filepath+ ;

SourceType=DBF select from student ) ;

//定义SQL命令

SqlCommand myComm=new SqlCommand(

creattb myConnection);

//执行导入命令

myComm ExecuteNonQuery();

//关闭数据库连接

myComm Dispose();

myConnection Close();

// *** 作成功提示信息

Label Text= 导入学生数据表成功!! ;

DBF文件覆盖

若导入的数据需覆盖SQL Server数据库中原有数据 则需先执行删除语句 再执行导入语句 数据覆盖功能代码如下

//打开SQL Server数据库连接

myConnection Open();

//删除SQL Server中student数据表内容

string creattb= delete from student ;

//定义SQL命令

SqlCommand myComm=new SqlCommand

(creattb myConnection);

//执行删除命令

myComm ExecuteNonQuery();

//filepath为DBF文件上传时定义的目标文件夹

//该语句用指定文件夹中的student dbf文件

//覆盖SQL Server数据表student中的数据

creattb= INSERT INTO student SELECT

FROM Openrowset( MSDASQL

Driver=Microsoft Visual FoxPro Driver;

SourceDB= +filepath+ ;

SourceType=DBF select from student ) ;

//重新定义SQL命令

myComm CommandText=creattb;

//执行导入命令

myComm ExecuteNonQuery();

//关闭数据库连接

myComm Dispose();

myConnection Close();

// *** 作成功提示信息

Label Text= 覆盖学生数据表成功!! ;

从上面的代码中 可以看出覆盖 *** 作被分解为删除 追加两步执行

类似的 也可以先删除SQL Server中的student数据表 然后采用 的导入并生成数据表两个 *** 作来实现覆盖数据 其中 删除数据表可使用SQL 命令 DROP TABLE student 来实现

结 语

在程序的可靠性 准确性等方面 通过对数万条学生信息的迁移测试和校验 数据的导入 追加 覆盖等功能 完全达到了要求 能将原有的DBF数据文件准确快速的导入到SQL Server数据库中

lishixinzhi/Article/program/net/201311/13312

服务器迁移的整体思路大概是:
新旧系统的迁移是一个整体系统工程。迁移必须保证用户系统建设的相关要求,在迁移过程中,我们需要重点考虑几个问题:
1、数据迁移如何保障“业务中断停机时间”。业务中断对用用户无论是生产环境还是测试环境均存在较大的恢复风险,这样的风险特别是对于时间敏感型数据还是对于数据完整性业务都是不可以接受的。我们基于这样的要求,考虑到如何将停机时间最小,能否实现0停机的建设目标?
i 对
于服务器 *** 作系统而言,我们可以采用P2V的方式,利用 *** 作系统的Volume Shadow Copy卷影副本复制服务作为基础,来实现在旧系统环境下
的系统无修改,无停机的情况下,将数据和应用软件、 *** 作系统环境、系统环境变量等全部以“快照”形式迁移到新服务器中。由此实现服务器环境的整体迁移。
ii 对
于应用IIS和其他应用服务器来说,我们可以基于应用服务器的动态业务扩展集群方式,来实现服务器不停机环境下的增加业务节点 *** 作,这样可以实现应用服务
器“热添加”到新环境中的故障转移/负载均衡集群系统中,在部分应用服务中我们可以使用session会话复制来实现旧系统的全局环境变量和会话请求状态
也迁移到新环境中来。考虑到会话复制和状态的快速实时,我们可以采用会话内存复制,考虑到会话复制和状态的安全性,我们可以采用会话数据库复制管理。
iii 对
于数据库而言,我们可以基于数据库本身自带的数据库镜像技术、数据库日志传递技术来实现各自的分库、迁移库的构建,数据库镜像技术可以让我们不但保证数据
库迁移的不停机,而且还可以保证万一迁移中出现停机故障也不影响源数据库,而日志传递技术构建的迁移可以保证系统数据库迁移以异步方式进行,这样可以让我
们的系统环境在网络出现故障的情况依然可以进行迁移任务窗口的正常工作。
2、迁移涉及到的除了应用、实例、数据库的 *** 作以外,还涉及到迁移前规划、迁移后测试的完整性测试。这些测试包括但不限于数据一致性测试、数据完整性测试、应用会话状态完整性测试、连接中断测试、数据恢复测试。只有这样才能保证迁移的安全性和有效性。

什么时候会用到整体数据迁移方案呢?

情况1、当企业从物理机房托管转向公有云平台时,将会涉及到业务数据的搬迁服务,如何能帮企业解决平滑的过渡,保护数据迁移的安全性、海量数据的完整性呢?

首先物理机房的服务器运行环境与云平台的云服务器的物理环境发生了变化,靠传统的搭建环境、再复印粘贴的方式,首先时间上不能保证迁移的时效性,而且 *** 作步骤繁琐,我们要考虑的因素很多,另外因为环境不同很容易出现这样那些的问题,导致业务不能正常启用。

数据迁移:IDC张祚涛

情况2:当企业面临机房搬迁时,会涉及到跨地域进行设备搬迁,这时候可能很多企业可能并没有意识到风险,因为迁移的过程中如果遇到设备老旧或物理颠簸可能就会遇到数据丢失,机器不能正常开机导致业务中断,影响企业生产线的正常运营!

同时,很多企业本地的NAS服务器或者SAN服务器,都装载了企业很多重要的本地核心数据,当遇到企业搬家,很可能涉及到存储设备的搬迁,机器有可能也是用了很多年,存储了近几十TB甚至几百TB、EB级的海量数据,那么,这时候如果遇到设备故障,那企业将面临因为搬迁造成的设备核心数据丢失,那损失将是不可预估的。所以这时候企业最稳妥的方式是搬之做先做一个完整的实时的数据备份,这样当面临意外宕机时,才能将完整的实时的数据备份快速的恢复到原机、或异机进行恢复。

情况3:当企业从A云向B云进行业务转移的时候 ,也会涉及到整体数据迁移方案。总不能下载到本地再从本地搬到另一个云平台上吧,这时候就需要借助一个工具来完成企业的整体数据迁移。

情况4:当公安机关打击违法犯罪时,需要从涉案企业的设备上提取作案证据时,因为有时候可能就是一个大型案件,涉案企业的设备较多,涉及到跨省出警,这时候警察叔叔又不可能把几十台设备都搬到外地去,如果通过移动硬盘进行拷贝的话,首先时间上采用传统的备份可能需要几天的时间,但因为客户服务器的物理环境,比如做了read5那有可能拷过去的数据不可用,那如何能最快的时间提取到涉案企业服务器里的完整的数据,而且保证数据的可用呢。

这时候就需要一种更先进的手段,协助警察同志对数据中心的涉案服务器进行完整的数据迁移提供高可用方案,不仅能为公安机关案件调查节约时间争取早日破案,更能为打击犯罪提供技术支持。

情况5:当企业遇到其它混合云环境下的整体数据迁移,从本地到云端(D2C或D2D2C),云端到云端(C2C)的灾备服务架构的备份与恢复;数据灾备到用户自建的数据中心进行异地灾备,实现跨设备、跨地域、跨云和物理隔离的整体数据迁移方案。

以上几种情况正是「ucache灾备云」能帮企业提供整体数据迁移方案的实例。

「ucache灾备云」可以作为一个服务,为企业提供完整数据备份、数据迁移、灾难恢复服务;

「ucache灾备云」可以看作一个平台,具备云的特性,即开即用,d性扩容;

「ucache灾备云」可以理解为一项技术,可以满足混合云环境下的海量数据、即时备份。

「ucache灾备云」可以当作一个工具,帮企业实现跨设备、跨云、跨地域的数据迁移。

「ucache灾备云」是以在线云服务的方式提供用户Web控制台,备份本地数据至云端和云端数据恢复至本地的数据保护服务,为用户的数据搬迁提供技术保障。

特点如下:

(1)云灾备具备实时性

当面对不同企业用户无论是几百GB或是面临TB-EB 级海量数据的存储及备份时,在业务连续性上都能做到不间断的进行数据备份。

(2)云灾备具备可靠性。

备份数据可靠性=备份数据恢复验证频度×60%+恢复演练环境具备度×40%=(一类系统业务备份数据恢复验证频度×40%+二类系统业务备份数据恢复验证频度×35%+三类系统业务备份数据恢复验证频度×25%)×60%+恢复演练环境具备度×40%。

云灾备平台可以进行灾难恢复演练,通过即时的数据有效性验证,验证备份数据的完整性、可靠性,能够为企业的云灾备提供可靠保障。

(3)云灾备具备安全性。

云灾备平台应当为用户的数据安全提供全过程的数据保护,从传输层、存储层、数据库层全程加密的方式,保障数据全程处于加密状态。

(4)云灾备具备全能性。

云灾备的应用场景可以满足用户:完成数据从本地到云端(D2C或D2D2C),云端到云端(C2C)的灾备服务架构的备份与恢复;数据灾备到用户自建的数据中心进行异地灾备,实现跨设备、跨地域、跨云和物理隔离的灾备数据中心服务。

(5)数据容灾备份具备灵活性。

云灾备应当基于云服务的订阅收费模式,采取按需订阅,d性扩容,减少初期的投资浪费;无需用户初期硬件资产投入以及运维人员投入;满足用户即开即用、 *** 作简单、以云管理的方式交付用户使用。

当灾难发生时,生产数据遭到破坏,可以在线上立刻启用「ucache灾备云」的备份数据,以灾备即服务的方式对数据进行快速恢复,或将备份数据搬迁到新的服务器或应用平台,并且保证系统稳定运行,一键备份,秒级恢复的数据容灾备份解决方案,相信是每个企业进行整体数据备份、迁移、恢复的不二之选!

这个要看你的需求了,如果仅仅是纯数据,直接通过网络共享,把老服务器上的数据复制到新服务器就行了,如果是有业务应用系统跑在老服务器上,那就需要把业务应用系统也迁移到新服务器山了。 迁移业务应用系统,如果你会安装,那就在新服务器上安装一下,然后恢复数据。如果你不会安装,这就要把老服务器上的所有环境全部迁移到新服务器上,这就叫服务器迁移,你可以用vmware来实现服务器到服务器的迁移。

元素迁移的方式是多种多样的,这是由于元素本身状态与其所存在环境的复杂多样性所决定的,据物质运动的形式,元素的迁移大致可划分为以下三类。

程序中断方式特点:不仅允许主机和外设同时工作,而且允许一台主机管多台外设。完成的过程中需要许多辅助的工具,如果中断请求过于频繁,CPU应接不暇,速度慢。

DMA的特点:在主机和外设之间有直接的传送通道,无需经过CPU既保证了CPU的效率,有满足高速外设。

主机虚拟主机:

1.网络空间:也叫网页空间,是存储网页,程序,等网页文件的主要空间。

2.数据库空间:支持数据库的虚拟主机所提供的数据库存储空间。

3.日志空间:网站日志(日志)文件的的存储空间。

虚拟主机,(也叫网站空间)是在网络服务器上划分出一定的磁盘空间供用户放置站点,应用组件等,提供必要的站点功能与数据存放,传输功能。虚拟主机技术的出现,是对互联网技术的重大贡献,是广大互联网用户的福音。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13186016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-17
下一篇 2023-06-17

发表评论

登录后才能评论

评论列表(0条)

保存