`
ds3783
  • 浏览: 5224 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

开发环境Oracle向Sybase迁移心得

阅读更多
 

负责的项目要迁移到Sybase,本身工期就紧,而数据库迁移的事情谁都不提。公司的DBA即没有Sybase的经验,又没有时间搭理我们。手下几个兄弟都在忙着赶工,于是决定自己干,NNDCyberDs.

项目原有的架构中对数据库的访问是用HibernateJDBC进行了封装。所以程序方面需要处理一下问题:

1.       Hibernate映射文件(.hbm.xml)

2.       建表SQL CyberDs.

3.       代码和原始数据插入脚本

首先说映射文件,最初是数据类型这个不难只是要多加注意,下面给出用到的对应关系表

Oracle数据类型(不分大小写)

Sybase数据类型(均为小写)

Char

Char

Varchar2 CyberDs.

Varchar

Number(m,n)

Numeric(m,n)

Date

Datetime

Timestamp(6)

Datetime CyberDs.

Integer

Int

另外Oracle的主键是依赖sequence的,SybasemySQL一样是依赖自增列做主键的。所以把映射文件中id.class属性改成native(后面有关sequence的配置可以不改,这样就可以适用与所有数据库了)。CyberDs.

建表SQL是从映射文件由程序生成的,把映射文件改好后,建表SQL就有了,但这里注意需要人工在最后一句drop table语句后和文件末尾增加go命令,和SQL99Commit一个效果。这里注意:DDL语句在Oracle中是自动提交的,但是在Sybase中是存在在一个事务里面。

原始数据脚本的修改更让人感觉可笑,Sybase是用回车作为SQL的结尾,而Oracle’;’,所以原始数据脚本中出现回车断行的统统都要改成1行,谢天谢地,还有正则表达式帮忙,一个替换全部搞定(也许有更好的办法,偶也是刚刚接触Sybase,所以如果有还望不吝赐教)。另外就是Sybase不支持从字符串类型到数字类型的隐式转换(愤怒,简直笨死了)。

大体的思路就是如上,由于我们是开发,所以数据库配置管理、调优什么的统统不管,能玩就行。下面我想说说我在今天一天的痛苦经历中总结的经验和遇到的问题:

1.                  IDENTITY_INSERT问题,如果您用M$的产品,那么可以跳过这条看后面去了。Sybase默认对identity的字段是不允许insertupdate的,所以需要设置IDENTITY_INSERT选项,这个选择虽说是针对某个表设置的,但如果你对表A打开设置后,你就不能再对表B设置它了,这点要切记。在M$的文档帮助下(就是微软的文档,这里不得不感叹微软文档写得好啊。PSSybaseM$数据库产品都是使用一样的SQL语言叫Transact-SQL),终于解决此问题,下面给出SQL样本: CyberDs.

SET IDENTITY_INSERT table_name ON

Insert into table_name values ……

Update table_name set ……CyberDs.

SET IDENTITY_INSERT dbo.Tool OFF

2.                  中文字符集的问题,测试表结构和数据都准备好了,然后兴致冲冲的启动Tomcat,发现从数据库中读出的中文都是乱码,那个叫汗。最后,还要感谢万能的互联网,感谢无私的汪涛,具体解决方案,看这里。当然,在这里我也做了一些扩展,自己制作了cp936nocase排序,解决了Sybase对表名、列名大小写的区分,呵呵,具体方法?原谅我卖个官子,万能的互联网吧,很简单的:)CyberDs.

使用Sybase开发要注意的几个问题:

1.                  虽然SybaseDML语句不区分大小写,但是对数据类型是区分大小写的,而且是只认小写。CyberDs.

2.                  SybaseOracle差不多都是按数据库、用户管理表、数据、存储过程和各种用户对象的,但由于其提供的用户角色实在太少,而且很不方便,所以建议一个用户单独建立一个数据库,并为设置其为该数据库的owner,这样在开发过程中能省去不少麻烦。

3.                  分配足够的数据库空间,本身开发数据库不会像生产数据库那样硕大无比。目前还没有弄清楚数据库空间自增如何配置,这点确实没有oracle方便,但是一旦数据库满了,就把所有事情都阻塞了,但是只是给出警告说日志段空间接近不足,某些事务可能被阻塞。

4.                  重视自动化测试,一旦数据库移植完成,立刻跑测试,能发现很多问题。CyberDs.

最后,刚刚接触Sybase,欢迎大家提出意见,也希望有机会多多交流,共同进步。CyberDs.

 

((本文属原创作品,如需转载,必须标明作者Ds.3783和出处链接)

 

分享到:
评论

相关推荐

    Oracle向Sybase ASE迁移指南

    ### Oracle向Sybase ASE迁移指南 #### 迁移过程概览 本文档旨在提供一个详细的指南,帮助读者理解从Oracle数据库迁移到Sybase ASE(Adaptive Server Enterprise)的过程和技术细节。迁移过程通常包括多个阶段:...

    oracle to sybase迁移向导英文版

    ### Oracle至Sybase ASE迁移指南 #### 一、引言 本白皮书旨在帮助用户完成从Oracle到Sybase Adaptive Server Enterprise (ASE)的应用程序迁移过程。本文档将详细介绍两个数据库管理系统之间的主要差异,并提供一个...

    Sybase数据库迁移到Oracle-11g手册【中文版】.docx

    Sybase数据库迁移到Oracle-11g手册【中文版】 一、概述 Sybase数据库迁移到Oracle-11g手册【中文版】旨在帮助用户将Sybase数据库迁移到Oracle数据库11g。该手册涵盖了以下主题:概述、先决条件、创建mwrep用户、...

    通过Oracle访问Sybase数据库

    首先,需要在运行Oracle的服务器上安装Sybase客户端软件(或在同一台服务器上安装Oracle与Sybase服务器),确保可以从Oracle环境访问到Sybase数据库。这是实现跨数据库访问的基础条件之一。 #### 2. 安装...

    oracle向达梦数据库迁移

    Oracle12C 向达梦8(DM8)迁移是一个涉及多个步骤的技术过程,主要目的是将现有的Oracle数据库系统顺利地转换到达梦数据库平台,以利用其特定的优势或满足特定的业务需求。以下是对这个迁移过程的详细说明: 一、...

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    总结来说,从MySQL到Oracle的数据迁移是一个涉及多个步骤的过程,需要正确配置和管理数据库环境,确保用户和表空间设置正确,并且使用像SQL Developer这样的工具来简化迁移。在迁移过程中遇到问题时,要逐一排查,如...

    oracle 同步sybase

    3. 第三方工具:市面上有许多第三方工具,如ETL(Extract, Transform, Load)工具,如Informatica、SSIS等,它们提供更灵活的配置和调度,能够处理复杂的数据同步任务,包括Oracle到Sybase的数据迁移。 四、性能...

    数据迁移 说明 oracle 数据迁移完整手册

    Oracle 数据迁移完整手册 Oracle 数据迁移是一种常见的数据库管理操作,目的是将 Oracle 数据库从一台服务器迁移到另一台服务器。以下是 Oracle 数据迁移的完整手册,涵盖了迁移方法概述、实现步骤、其他方法等...

    2020_Oracle19c数据迁移图文详解.docx

    通过使用Oracle数据泵技术,即使是在复杂的环境中也能顺利地完成数据迁移任务。本文档提供的步骤不仅详细而且易于理解,即便是初学者也能轻松掌握。在实际操作过程中,根据具体的数据库环境和个人需求,可能还需要...

    国产化改造,如何将Oracle数据完整迁移到DM数据库。

    国产化改造,如何将Oracle数据完整迁移到DM数据库。 本文将详细介绍将Oracle数据完整迁移到DM数据库的过程,包括分析待移植系统、数据迁移、PL/SQL移植、移植结果校验、应用系统移植、测试和优化等几个方面的工作。...

    Oracle,SyBase,DBF数据转换器

    这个"Oracle,SyBase,DBF数据转换器"是一个实用工具,它允许用户在这些系统之间进行数据迁移和转换。 Oracle数据库是全球广泛使用的大型企业级数据库系统,以其高度可扩展性、安全性和性能而闻名。它支持复杂的SQL...

    Oracle到Mysql数据库迁移总结

    Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结

    oracle 数据导入sybase

    在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从Oracle迁移到Sybase。本篇文章将详细探讨如何利用JAVA编程语言,通过JDBC(Java Database Connectivity)接口实现Oracle数据到Sybase的...

    数据库迁移资料,oracle移植到sybase的技术参考手册

    数据类型的转换是Oracle向Sybase迁移过程中首先需要解决的问题之一。不同数据库系统间的数据类型并不总是完全一致,因此必须进行适当的映射以确保数据完整性和准确性。以下是一些常见的数据类型及其转换方式: - **...

    双机镜像环境下Oracle数据库向Linux系统迁移.pdf

    随着技术的发展,许多医疗机构选择将数据库从传统的Windows环境迁移到更稳定、开源的Linux操作系统。本文针对的就是这样一个案例:武警医学院附属医院在中心机房搬迁的同时,将运行在双机镜像环境下的Oracle数据库...

    ORACLE数据库跨平台迁移

    ORACLE数据库跨平台迁移 ORACLE数据库跨平台迁移是指将WINDOWS平台上的ORACLE数据库迁移到LINUX平台,当前LINUX平台只装数据库软件,不建库。本文将详细介绍如何使用RMAN Convert database特性来实现数据库跨平台...

    官方数据库迁移教程PPT migration sybase to oracle

    在这个官方的“migration sybase to oracle”教程中,我们很显然会探讨如何从Sybase数据库系统迁移到Oracle数据库系统的具体步骤和策略。Sybase是一款强大的企业级数据库管理系统,而Oracle则以其高度可扩展性和企业...

    oracle rac数据迁移

    随着业务的发展和技术的进步,可能会遇到需要将原有的Oracle数据库迁移到新的环境或者进行数据整合的情况。数据迁移是一项复杂且重要的工作,它不仅涉及数据本身的迁移,还包括了表结构、存储过程、函数、同义词、...

    Sybase IQ 迁移快速指导手册

    Sybase IQ迁移快速指导手册主要面向从Oracle数据库迁移到Sybase IQ数据库的场景,提供了一系列的迁移步骤和指导方案。以下将详细介绍各个步骤中涉及的关键知识点。 1. 数据迁移概述: 数据迁移通常是因为业务发展...

Global site tag (gtag.js) - Google Analytics