数据库生成pdm
数据库迁移是一个复杂的过程,尤其是从SQL Server迁移到Oracle。这次我经历了一次这样的迁移,从SQL Server 2005迁移到Oracle 10g。这里我将分享迁移的方法和过程中需要注意的问题。
首先,迁移的方法是从SQL Server已有数据库中生成出Oracle的建库脚本,然后在Oracle数据库上执行。使用Power Designer作为生成工具。
1. 打开Power Designer,新建一个物理数据模型,选择Microsoft SQL Server 2005作为DBMS,起名为mssdb。
2. 通过逆向工程将现有SQL Server数据库生成PDM。选择Database->Reverse Engineer Database,配置数据源,选择要迁移的数据库,输入用户名、密码。选择数据库,选择用户dbo下的所有表、视图、存储过程、方法、触发器、序列等。点击OK,生成PDM。
3. 生成Oracle物理数据模型。选择Tools->Generate Physical Data Model,DBMS选择Oracle 10g,输入名称oradb。在Configure Model Options配置中,勾选Ignore identifying owner。在Selection标签中,选择需要生成的所有表、视图、外键、存储过程、方法、触发器、序列等。点击确定,生成Oracle的PDM。
在生成PDM的过程中可能会遇到一些问题,如对象长度超限,需要根据具体错误提示做相应修改。
4. 生成Oracle脚本。在Oracle里表名、字段名全部为大写,若要单独处理为小写,需加上双引号。PD生成的脚本默认是有双引号的,这里需要修改默认配置,去掉双引号。选择oradb,选择Database->Generate Database,进入数据库生成界面。在Format标签下,去掉勾选Owner prefix;在Selection标签下,选择要生成脚本的各对象;在Preview标签下,预览预生成的脚本。
5. 检查与调整。脚本是PD自动生成的,因为表比较多,在Oracle上直接去执行难免会有错误。这里提几点需要注意的地方。Oracle要求表名、字段名等长度最多是30位,检查主键、外键的名称,检查字段名是否用到了Oracle的关键字,检查存储过程、方法是否符合Oracle语法。Sql Server有自增字段,需要相应创建序列、触发器。Sql Server中字段类型为text的情况,如果是存二进制数据需要在Oracle中选用Blob字段类型。Sql Server有外键的情况,需要添加外键级联删除。生成的表、视图等个数是否正确,缺失的情况可单独生成脚本。
6. 建库。在Oracle数据库服务orcl实例下,使用用户sys登陆并创建用户orauser,并将resource、connect角色赋给orauser。用刚创建的用户orauser登陆orcl数据库服务,执行前面已经生成的脚本。若干分钟后脚本执行完毕,检查执行过程中有无错误产生,记录执行的日志以便日后查看;检查看表、视图等个数与SQL Server数据库中是否一致。
B. pdm是什么文件
PDM:物理数据模型(Physical Data Model)PDM,提供了系统初始设计所需要的基础元素,以及相关元素之间的关系。
即用于存储结构和访问机制的更高层描述,描述数据是如何在计算机中存储的,如何表达记录结构、记录顺序和访问路径等信息。使用物理数据模型,可以在系统层实现数据库。
数据库的物理设计阶段必须在此基础上进行详细的后台设计,包括数据库的存储过程、操作、触发、视图和索引表等。
(2)数据库生成pdm扩展阅读:
PDM的功能:
1、可以将数据库的物理设计结果从一种数据库移植到另一种数据库;
2、可以通过反向工程将已经存在的数据库物理结构重新生成物理模型或概念模型;
3、可以定制生成标准的模型报告;
4、可以转换为OOM;
5、完成多种数据库的详细物理设计(涵盖常用的各种数据库的DBMS),并生成数据库对象的.sql脚本。