将数据迁移到新的服务器之前 - 合理规划
选择正确的目标服务器是第一步。例如,如果计划更改网站/应用程序,则需要执行其他任务,以便在重新定位期间不必处理这些任务。无论是将数据从一个服务器(例如香港服务器)迁移到另一个服务器,还是新的服务器结构是基于集群的或涉及多个不同的系统,它也是不同的。
更改服务器体系结构时,必须更改配置,不管是不同的 *** 作系统、不同的软件版本还是不同的控制面板。即使只是切换到功能更强大的同类型服务器,仍然需要相应地配置应用程序和服务,以便能够利用额外内存、改进的cpu性能或增加内存容量。
请注意,无论是选择简单的性能升级还是完全更改服务器体系结构,都应提前为移动设备创建最佳条件。这些因素包括足够的存储空间和计算能力、30%到40%的缓冲区或详细的扩展计划以及快速的网络连接。
当数据迁移到另一台服务器?
如果您租用服务器资源,您可能没有充分考虑托管服务的成本。供应商提供的各种软件包在内容提供方面有所不同,即可用性、数据安全性和支持。因此,有必要在选择之前比较不同的软件包。迁移数据的另一个原因可能是您希望减轻it部门的压力。在这种情况下,it托管服务解决方案将是一个不错的选择。它不仅承载服务器,还由提供者维护和更新。例如,使用稳定的网络互连香港服务器租赁服务,您可以选择不同级别的技术服务包来简化您的IT管理工作。
为即将进行的迁移组织当前服务器
为了使新服务器的配置和引入尽可能简单,有必要整理当前使用的服务器。因此,数据迁移是删除任何冗余或过期页面、备份、电子邮件和用户帐户的最佳时间。这意味着您可以最小化传输的数据量,另一方面,您可以从目标系统上所需的资源中获得更多的价值。
此外,还应该制定关闭活动服务器进程随后因数据损失而不会出现并发症,精确的计划。指定时间应停止对文件,脚本和配置做任何改动,并尽可能暂时阻止对数据库的访问。您也可以稍后更新数据库。在大多数情况下,数据传输通过一个完整的服务器备份进行。
服务器的数据迁移是如何工作的?
迁移数据最简单的方法是使用实际状态的一对一备份副本。在进行必要的配置和调整之前,将其转移到新的服务器硬件,然后可以测试其是否有效。最后,您可以调整dns或ip设置,这将允许您在新系统上实时启动Web项目。虽然这种方法通常需要系统管理员的支持,但是很容易计划和执行。但是,这意味着当前服务器将完全暂停,在数据迁移期间,您将无法访问或使用您的网站。
如果提供需要连续数据库访问的服务,则需要一个混合迁移解决方案来保持当前服务器处于活动状态。在这种情况下,应将服务器上的当前数据库声明为“master”,然后在配置完成后将新数据库从属为“slave”。这使得两个应用程序能够实时同步。如果两个数据库处于相同状态,请反转角色,以便新数据库成为主数据库。这意味着您的项目可以在数据迁移期间继续可用。
什么样的资源可以用来将数据迁移到新的服务器?
有几种工具和服务可以简化服务器迁移。例如,如果只想移动数据而不调整 *** 作系统或其他软件,则不应放弃控制面板。这些服务器管理器可以帮助您创建数据备份,然后将它们迁移到新服务器。所需的配置工作负载是最小的。像wordpress这样的内容管理系统也可以使用简单的ftp和备份应用程序进行传输,并且通常提供自己的插件来迁移链接的数据库。这些过程大多是自动化的。
对于更复杂的项目,root权限总是会带来好处:使用ssh,您可以通过相应的命令行将完整的数据库(包括所有权限和用户数据)转移到新服务器。例如,可以使用mysql转储向目标系统发送mysql数据库的副本。作为微软的sql服务器用户,您甚至可以使用内置功能来实现这一点。
但是,您也可以外包服务器数据的迁移:许多托管服务提供商不仅为客户提供用于手动服务器数据传输的特定软件,而且还为数据迁移提供了积极的支持。此外,还有一些服务专门用于Web项目的迁移和全天候服务的可用性-无论是从一个共享服务器转移到另一个共享服务器,还是要替换提供者,还是计划切换到服务器集群。
服务器迁移期间可能会出现什么问题?
需要连续稳定的网络连接才能根据需要传输服务器数据。因此,在服务器迁移期间,连接问题是最常见的错误源。如果连接断开,它可以完全终止传输,这意味着它从一开始就重新启动。然而,短期连接问题通常不会被注意到,也不会导致进程终止。但是,在某些情况下,并非所有数据都可以到达目标服务器,这反过来会影响迁移应用程序的功能。
但是,如果有些文件不能成功地转移到新服务器上,可能有几个原因。尤其是在改变 *** 作系统而不再支持某些文件格式、编程语言等时,会出现兼容性问题。此外,在源计算机和目标计算机上不同的访问权限或密码保护会导致并发症。此外,如果目标系统没有所需的磁盘空间或dns条目没有正确更改,数据迁移可能导致错误。
需要检查服务器数据迁移。
移动到新的服务器的项目可能是一个复杂和繁琐的过程,这取决于项目规模和新目标的体系结构。这就是为什么它应该精心策划和执行良好。下表总结了有关服务器迁移的最重要的问题。
五一节办公室要停电,机房虽有UPS,但也支撑不了8小时。
因生产环境有业务系统挂了办公室机房的NAS存储,故需要进行迁移,步骤记录如下:
先闲谈下技术-----------------------
NFS和samba的区别
samba是混合型网络中的共享服务,windows服务器可建samba服务,linux服务器也可建samba服务
nfs只面向unix、linux间的共享,linux服务器可建nfs服务(winodws系统也可以挂载nfs,就是有点不稳定)
NFS服务器上的 *** 作--------------------------
nfs服务器 *** 作系统版本:
[root@c7110 ~]# more /etc/system-release
CentOS Linux release 792009 (Core)
nfs服务器安装nfs服务
[root@c7110 ~]# yum -y install nfs-utils rpcbind
创建nfs目录,并授权
[root@c7110 ~]# mkdir /opt/nfs-test
[root@c7110 ~]# chmod 777 /opt/nfs-test
编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test (rw,root_squash,all_squash,sync)
重新加载nfs配置:
[root@c7110 ~]# exportfs -r
nfs服务设置开机启动
[root@c7110 ~]# systemctl enable rpcbind
[root@c7110 ~]# systemctl enable nfs
[root@c7110 ~]# systemctl enable nfs-lock
[root@c7110 ~]# systemctl enable nfs-idmap
启动nfs服务
[root@c7110 ~]# systemctl start rpcbind
[root@c7110 ~]# systemctl start nfs
[root@c7110 ~]# systemctl start nfs-lock
[root@c7110 ~]# systemctl start nfs-idmap
查看nfs服务启动后,所监听的端口信息:
[root@c7110 ~]# rpcinfo -p
linux服务器服务器上 *** 作-------------------------------
业务服务器安装nfs软件客户端
[root@c7111 ~]# yum -y install nfs-utils
建立一个挂载目录
[root@c7111 ~]# mkdir /opt/test-m
挂载nfs服务器共享出来的目录
[root@c7111 ~]# mount -t nfs 10xx10:/opt/nfs-test /opt/test-m/
查看下已挂载的nfs
[root@c7111 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 15G 0 15G 0% /dev
tmpfs 15G 0 15G 0% /dev/shm
tmpfs 15G 88M 15G 1% /run
tmpfs 15G 0 15G 0% /sys/fs/cgroup
/dev/mapper/centos-root 97G 23G 95G 3% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 297M 0 297M 0% /run/user/0
10xx6:/opt/nfs-test 97G 41G 93G 5% /opt/test-m
经测试,数据可读可写,证明nas服务没有问题,于是进行数据同步,数据同步用rsync命令。
rsync -avp gdsz@108756::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000
数据同步完,通知研发进行挂载切换。研发同事在测试时,发现文件属性中的uid及gid与原来的不一致,有些担心,于是又小完善了一下NFS服务。
编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test (no_all_squash,anonuid=600,anongid=600)
重新加载nfs配置:
[root@c7110 ~]# exportfs -r
引言
近年来 国内许多高校逐步建立了网络基础设施 构建了一些应用系统 但由于缺乏对数字校园总体结构的认识 出现了系统构建各自为政 缺乏统一规划 已构建的系统互割裂 信息与资源无法共享 而有些系统则集成度过高 维护与升级困难 网络基础服务平台与应用系统脱节等问题
在数字化校园的建设中 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)