2010-08-22 62 views
3

我以前用的是mysql,而且在mysql数据库中保存表,但这些概念并不适用于oracle,所以我不太了解它们之间的差异。解释“创建数据库”时Oracle和Mysql有什么区别?

更新:我面临的问题是,我需要从Mysql迁移到Oracle。 我有两个名为A和B的交换数据库,在Mysql中,所有的表都在它们对应的数据库中。 在mysql数据库中是一个逻辑概念,它使用数据库来存放表,在oracle数据库中是物理的概念,我不知道如何在oracle中设计这个。 我是否需要使用“CREATE DATABASE”在oracle中创建两个数据库才能达到相同的效果?

+1

我想你会发现Oracle确实有'表'的概念。也许你可以更具体地说明你遇到的困难? – 2010-08-22 09:58:55

+1

我相信相当于Oracle的概念是* schema * ... – 2010-08-22 20:56:36

回答

4

要回答你的问题,你想创建一个模式(CREATE USER)而不是实例/数据库(CREATE DATABASE)。

数据库的Oracle定义是磁盘上的文件。这些可以在实例之间共享(Real Application Clusters),也可以仅由单个实例使用(例如,在同一台服务器上,最常用)。

背景:数据库供应商之间的“数据库”概念不同。作为Oracle DBA,当与来自MySQL,DB2,SQL Server后台的人交谈时,我非常小心,他们在Oracle中称之为“数据库”的是用户/模式(用户和模式之间的区别是模式包含表和一个用户只是一个登录)。每当有人,特别是开发人员,在什么情况下使用“数据库”这个词的问题。

2

Oracle的SQL Developer文档有一章将MySQL与Oracle进行比较。 Find it here。这是因为SQL Dev包含the Migration Workbench which supports migrating MySQL to Oracl e。您可能要考虑在您的努力中使用该工具。这是免费的。

无论如何,文档有this answer to your specific question

“当迁移MySQL数据库到 甲骨文,SQL开发每个MySQL的 数据库映射到Oracle表空间 数据库对象,如表, 索引和视图存储在 各自的表空间中,并且 从Oracle架构引用为 拥有它们的用户。“

相关问题