Database 从一个DBMS迁移到另一个DBMS

Database 从一个DBMS迁移到另一个DBMS,database,migration,rdbms,Database,Migration,Rdbms,有人有从一个DBMS迁移到另一个DBMS的经验吗?如果你这样做了,为什么要这样做?特征?成本?公司指令 有时,我曾与DBA合作,他们坚持我们不使用特定于DBMS的功能(例如,SQL Server中的CLR存储过程)。DBA的观点是,如果我们使用这些功能,那么在必要时切换到另一个DBMS将更加困难。但到目前为止,我从未被要求切换。在我看来,不利用您使用的数据库的所有功能是愚蠢的。无论使用多少功能,都很难更改DBMS。系统之间存在微小的差异(如一些记录日期和一些记录日期和时间),这将导致非常头痛的更

有人有从一个DBMS迁移到另一个DBMS的经验吗?如果你这样做了,为什么要这样做?特征?成本?公司指令


有时,我曾与DBA合作,他们坚持我们不使用特定于DBMS的功能(例如,SQL Server中的CLR存储过程)。DBA的观点是,如果我们使用这些功能,那么在必要时切换到另一个DBMS将更加困难。但到目前为止,我从未被要求切换。

在我看来,不利用您使用的数据库的所有功能是愚蠢的。无论使用多少功能,都很难更改DBMS。系统之间存在微小的差异(如一些记录日期和一些记录日期和时间),这将导致非常头痛的更改。根本不存在切换到新dbms的情况

从商业角度来看,还有很多工作要做。分析将要更改为的新dbs。计算更改dbs对新系统的影响。让开发人员改变现有的系统,测试改变等等。这个列表一直在继续。在企业系统上进行这样的切换需要数月甚至数年的时间。我最后一次工作的地方是更换星展银行,我们花了整整11个月的时间才完成,顾问、硬件、软件和员工工资也花了大约200万美元。这是一件大事。如果有人说不使用功能,因为“可能”有一天会发生,而且这样做会更容易,那么很有可能,那个人是疯了。转换这些功能所需的额外时间和金钱与其他任何东西相比都是微不足道的(很可能)。依我看,如果现在使用这些功能可以节省时间和金钱,那么这就是最好的做法


我们这样做是因为我们在旧dbms上运行的系统太大了。数据太多了,我们需要更强大的东西。另外,它不再受支持。

在我看来,不利用您使用的数据库的所有功能是愚蠢的。无论使用多少功能,都很难更改DBMS。系统之间存在微小的差异(如一些记录日期和一些记录日期和时间),这将导致非常头痛的更改。根本不存在切换到新dbms的情况

从商业角度来看,还有很多工作要做。分析将要更改为的新dbs。计算更改dbs对新系统的影响。让开发人员改变现有的系统,测试改变等等。这个列表一直在继续。在企业系统上进行这样的切换需要数月甚至数年的时间。我最后一次工作的地方是更换星展银行,我们花了整整11个月的时间才完成,顾问、硬件、软件和员工工资也花了大约200万美元。这是一件大事。如果有人说不使用功能,因为“可能”有一天会发生,而且这样做会更容易,那么很有可能,那个人是疯了。转换这些功能所需的额外时间和金钱与其他任何东西相比都是微不足道的(很可能)。依我看,如果现在使用这些功能可以节省时间和金钱,那么这就是最好的做法


我们这样做是因为我们在旧dbms上运行的系统太大了。数据太多了,我们需要更强大的东西。此外,它不再受支持。

多次切换。主要是因为“非自愿转换”——旧产品不再受支持或不再适用

  • DB2到Oracle。UDB之前的数据被保留并移动到Oracle中
  • MS访问Oracle。继续通过Oracle表使用Access前端
  • 甲骨文对甲骨文。6点到8点,我想
“你为什么要这么做?”不是特写。不是成本。在所有情况下,都有东西坏了

  • 旧产品不再有效。要么是操作系统升级,要么是其他原因导致了传统产品的崩溃
  • 旧产品没有规模
切换很少是你选择做的事情。当供应商停业(安格尔做过一次)或停止支持您的版本(微软经常做这件事)时,您会被迫这样做

当然,这是一场危机。触发器和存储过程更改的技术复杂性使情况更加复杂。如果只是数据的话,就不会有太大的危机。转储到一些标准表单(例如CSV),重新加载,您就可以启动并运行了

更重要的是,数据库中的“东西”(存储过程、触发器等)越多,您的应用程序软件就越成为一堆难以理解(也难以维护)的乱七八糟的东西。没有什么比等待几个星期来有人跟踪存储过程名称更令人沮丧的了。如果是VB代码,每个人都可以访问它。但由于它在数据库中,矛盾的是,它变得不那么明显了。代码就是代码,应该远离数据


有关此主题的详细信息,请参阅。

多次切换。主要是因为“非自愿转换”——旧产品不再受支持或不再适用

  • DB2到Oracle。UDB之前的数据被保留并移动到Oracle中
  • MS访问Oracle。继续通过Oracle表使用Access前端
  • 甲骨文对甲骨文。6点到8点,我想
“你为什么要这么做?”不是特写。不是成本。在所有情况下,都有东西坏了

  • 旧产品不再有效。要么是操作系统升级,要么是其他原因导致了传统产品的崩溃
  • 旧产品没有规模
切换很少是你选择做的事情。当供应商停业(安格尔做过一次)或停止支持您的版本(微软经常做这件事)时,您会被迫这样做

当然,这是一场危机。由于trig的技术复杂性