数据库附加方法迁移用友U8 10.1
2015年8月1日 23:44:32
一、环境
原服务器 | 新服务器 |
Windows server 2003 with sp2 x64 | Windows server 2008 R2 with sp1 x64 |
Sql Server 2008 x64 | Sql Server 2008 R2 x64 |
用友U8 V10.1 | 用友U8 V10.1 |
二、分离/附加概述
SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即把数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中。比如,在实验教学过程中,同学们常常想把
自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想重新创建该数据库,就可以使用这种简单的方法。但由于数据库管理系统的特殊性,需要利用SQL Server提供的工具才能完成以上工作,而直接的文件拷贝是行不通的。
这个方法涉及到SQL Server分离数据库和附加数据库这两个互逆操作工具。
1、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。
2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。
三、附加数据库时丢失日志文件的风险
1. SQL Server数据库启动的过程
数据库启动时,大致可以分为以下3个过程:
(1)分析:读取日志文件,从而分析数据文件中的检查点是否是最后一个检查点,并且分析哪些事务未提交从而需要回滚。
(2)前滚(Redo):数据文件的检查点之后的所有事务都重做一次,直到最后一笔事务。
(3)回滚(Undo):撤销所有未提交的事务。
2. 附加数据库时丢失日志文件的潜在风险
由于预写事务日志(WAL)是一种缓存机制,数据文件也采用了缓存机制(检查点),那么丢失了日志文件可能有以下风险:
(1)如果数据库关闭时未执行检查点(例如,shutdown with nowait),那么这些数据将不会回写到数据文件,即丢失了部分数据。
举例来说,我在银行柜台存了钱,这时候只在日志文件中做了记录,数据文件要等到检查点才会回写到磁盘。此时,快速关闭数据库而且不执行检查点,那么我的存服务器数据库安装教程钱记录就只在日志
文件中。如果丢失了日志文件,那么我的存钱记录就不存在了。
(2)如果某些事务未提交,但已经执行了检查点,那么这些事务不能回滚。
举例来说,我去银行取钱,此时数据库执行检查点,数据库中有我取钱的记录了。但是我在最后阶段发现数据库关闭了,然后日志文件也被删除了。附加数据库后,由于记录了我的“取消”操作的日志文件不存在,数据库就只承认数据文件中记录的取钱操作。
四、具体步骤
安装Windows server 2008 R2 with sp1 x64、Sql Server 2008 R2 x64以及用友U8 V10.1。配置用友U8,时期连接到SQL Server 2008 R2 x64,然后打开U8“系统管理”并初始化数据库。
下图是初始化后数据库情况,多了一个“UFSystem”数据库,这个数据库就是U8创建的。突发奇想,将原服务器“UFSystem”对应的数据库文件以及日志文件替换新服务器的。
下图是替换后的截图。替换是要同时停掉原服务器和新服务器的“SQL Server”服务,不然下面的两个文件即不让复制也不让删除。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论