如何将zktime60数据库从MySQL迁移到MSSQL.docx
- 文档编号:7092350
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:13
- 大小:372.57KB
如何将zktime60数据库从MySQL迁移到MSSQL.docx
《如何将zktime60数据库从MySQL迁移到MSSQL.docx》由会员分享,可在线阅读,更多相关《如何将zktime60数据库从MySQL迁移到MSSQL.docx(13页珍藏版)》请在冰豆网上搜索。
如何将zktime60数据库从MySQL迁移到MSSQL
如何将ZKTime6.0数据库从MySQL迁移到MSSQL
V1.0
一、目的-2-
二、迁移之前-2-
1.备份MySQL数据库-2-
2.确认ZKTime6.0的版本-2-
3.安装SQLServer2000-2-
4.新建SQLServer数据库-2-
三、迁移的步骤-4-
1.删除初始数据-4-
2.如何从MySQL中导入数据-5-
3.先导入基本数据表-12-
4.导入人事管理相关表-12-
5.导入考勤管理相关表-12-
6.导入薪资管理相关表-13-
四、迁移之后的处理-13-
一、目的
MySQL数据库有很多优点:
它非常小巧,而且它的功能也很强大,最重要它是免费的。
尽管这样,但是由于很多人对它不熟悉,维护起来也不方便,所以不为大多数人所接受。
因zktime6.0早期版本只支持MySQL,随着新版本的推出,有用户希望提供将zktime6.0数据库从MySQL迁移到MSSQL的说明。
下面就以迁移到SQLServer2000为例,做一下说明。
二、迁移之前
1.备份MySQL数据库
出于安全考虑,在对数据库任何操作之前,最好先备份数据库。
2.确认ZKTime6.0的版本
需要确认现在所使用ZKTime6.0的版本,这是是因为需要在同一个版本下创建一个SQLServer的数据库(下面第4点有说明)。
操作步骤:
请进入zktime,打开菜单【关于】->【关于本系统】,查看系统版本。
如下图所示:
3.安装SQLServer2000
SQLServer最好和MySQL安装在同一台电脑上。
如果不能装在同一台电脑,请确保两台电脑是可以互相访问的,并且能连接到彼此的数据库。
4.新建SQLServer数据库
使用ZKTime6.0新建一个SQLServer数据库,按以下步骤进行操作:
1).在桌面上右击“ZKTime考勤管理系统”的快捷图标,选择“属性”,点击“查找目标”按钮,此时会定位到zktime的安装目录。
2)找到dbconnect.ini文件,用记事本打开。
将文件中DBMS=MySQL改为MSSQL,这样我们就将连接的数据库改为SQLServer了,修改后别忘记保存。
如下所示:
[SYSTEM]
DBMS=MSSQL
3)此时运行ZKTime6.0,此时系统会弹出连不到SQLServer数据库的提示。
如下图所示:
“确定”之后,系统会弹出系统“数据库连接设置”的窗口,此时可以点击下方的“现在新建数据库”。
如下图所示:
接着系统会打开“新建数据库”的窗口。
此时请设置好需要新建的数据库名称、服务器名称或IP、登录SQLServer的帐户和密码。
如果设置正确,此时“测试服务器连接”就能连到服务器。
如下图所示:
最后,点击按钮“新建数据库”就可以创建好一个名为zktime610_mssql的SQLServer的数据库了。
注意,此时不用急着进入zktime,关闭这些窗口即可,因为此时的数据库中没有数据,我们需要将MySQL数据库中的数据迁移过来之后才能使用。
三、迁移的步骤
迁移MySQL的数据库,我们使用SQLServer的导入/导出向导来完成。
假设MySQL数据库名为zktime610_mysql,需要迁移的数据名为zktime610_mssql。
下面我们详细说明操作步骤。
1.删除初始数据
1.1需要删除zktime610_mssql中的一些初始数据,避免导入时因为重复而出错。
需要处理的表有
♦Zks_userflow
♦Zks_userlog
♦Zks_userright
♦Zks_user
♦zks_tablecolumn
♦hum_base:
人事基础资料表,如果有添加新的基础资料,需要从mysql中导入。
♦hum_department
♦att_leavetype:
请假类别表,如果有添加新的类别,需要从mysql中导入。
♦att_overtimetype:
加班类别表,如果有添加新的类别,需要从mysql中导入。
♦att_timeset
♦att_scheduleclass
♦att_workstate
♦att_workstate2
♦salary_sumcolumn:
薪资表项目,如果已经用到薪资功能,需要从mysql导入。
♦salary_formula:
薪资计计算公式表,如果已经用到薪资功能,需要从mysql导入。
1.2请在SQLServer数据库中执行以下脚本,进行删除。
USEzktime610_mssql
deletefromZks_userflow
deletefromZks_userlog
deletefromZks_userright
deletefromZks_user
truncatetablezks_tablecolumn
truncatetablehum_base
truncatetablehum_department
truncatetableatt_leavetype
truncatetableatt_overtimetype
truncatetableatt_timeset
truncatetableatt_scheduleclass
truncatetableatt_workstate
truncatetableatt_workstate2
truncatetablesalary_sumcolumn
truncatetablesalary_formula
GO
2.如何从MySQL中导入数据
使用SQLServer的企业管理器“导入数据”向导,将zktime610_mysql的数据导入到zktime610_mssql中。
下面我们以导入部门表(hum_department表)为例说明导入数据的详细操作步骤:
2.1在企业管理中选中数据库zktime610_mssql,点鼠标右键,选择:
所有任务->导入数据。
2.2进入导入/导出向导,选择【下一步】。
2.3选择数据源,即选择来源数据库。
因为zktime6.0在安装时就会创建MySQL的ODBC数据源,所以下面只要选择就可以了。
♦选择数据源:
MySQLODBC3.51Driver
♦选择用户/系统DSN:
odbcmysql
♦用户名:
root
♦用户密码:
zksoft3
2.4选择目的,即选择目标数据库。
♦目的:
使用默认即可“用于SQLServer的MicrosoftOLEDB提供程序”
♦服务器:
本地服务器(LOCAL)
♦使用Windows身份验证
♦数据库:
注意目标数据库的名称是否正确,此例中为zktime610_mssql。
2.5【下一步】,选择导入的方式。
此处选择“从源数据库复制表和视图”即可。
再执行【下一步】。
2.6选择来源表。
此处以部门表为例,选择hum_department表。
目的表和来源表的表名称是相同的。
因为两个数据库的结构是一样的,如果一旦选择来源表,目的表中也会自动选择对应的hum_department表,目的表不需要进行修改。
并且要注意,如果鼠标光标目的表的位置,千万不要滚动鼠标,因为这样操作很有可能改变目的表,如果目的表不对,导入会失败。
备注:
可以点击【预览】按钮,查看来源表的中数据,如果没有数据,可以不需要导入。
2.7【下一步】,弹出以下窗口,此时按默认设置按【下一步】“立即执行”。
2.8点【完成】,开始执行导入。
2.9以下是导入执行成功的界面。
并且提示导入数据的笔数。
注意:
执行如果失败,会提示失败信息:
造成失败主要有以下一些原因:
♦数据重复导入,已经存在的数据不能重复导入。
♦导入的表错误。
♦MySQL数据库中有一表未加唯一约束,而在SQLServer可能加了,此时如果导入的记录不是唯一的,会出错。
解决办法是:
将SQLServer数据库中的唯一索引改成非唯一索引再重新导入即可。
3.先导入基本数据表
请严格按以下先后顺序进行导入。
♦Zks_user(需要单独导入,下面3个可以一起导入)
♦Zks_userflow
♦Zks_userright
♦zks_tablecolumn
4.导入人事管理相关表
♦hum_base(可以和下面的表一起导入)
♦hum_department
♦hum_employee(可以和下面的表一起导入)
♦hum_employee_lz
♦hum_change
5.导入考勤管理相关表
以下14个表可以一起导入
♦Template
♦Templateface(从zktime6.1.1build107版本开始才有此表)
♦Machines
♦att_holidayset
♦att_leavetype
♦att_overtimetype
♦att_restbase(调休表)
♦att_rest
♦att_workcode
♦att_workstate
♦att_workstate2
♦att_yearholiday(年假表)
♦att_yearset
♦att_yearset_emp
班次相关表
♦att_timeset(班次表)
♦att_scheduleclass(时间段表)
排班表
♦att_sch_dept
♦att_sch_emp
♦att_schedule
考勤记录相关表(这些表记录量可能比较大,导入时间可能比较长)
♦att_record(记录量最大,单独导入)
♦att_days
♦att_days_history
♦att_leave
如果记录重复,有可能出现错误。
如果发生这种情况,请去掉SQLServer数据库中att_leave表中的唯一约束。
♦att_overtime
如果记录重复,有可能出现错误。
如果发生这种情况,请去掉SQLServer数据库中att_overtime表中的唯一约束。
♦att_leavetotal
♦att_month
6.导入薪资管理相关表
如果不使用薪资功能,或者还未开始使用,可以不导入。
♦salary_fixupcolumn
♦salary_unfixupcolumn
♦salary_sumcolumn
♦salary_formula
♦pay_month
♦salary_base(固定薪资维护)
♦salary_unfixupbase(变动薪资维护)
♦salary_sumtable
♦pay_salary_edit
四、迁移之后的处理
1.完成之后,请使用zktime连接SQLServer数据库进入系统。
进入后,检查每个功能使用是否正常。
2.备份数据库,最好设置SQLServer的自动备份功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 zktime60 数据库 MySQL 迁移 MSSQL