如何使用Oracle Express 11g的"创建数据库"语句?

swe*_*ams 2 oracle11g oracle-sqldeveloper

根据我的一篇文章(下面),似乎Oracle中没有数据库这样的东西.我们称之为MySQL和MS-SQL中的数据库在Oracle中称为模式.如果是这种情况,为什么oracle文档提到了create database语句?为了记录,我使用的是Oracle 11g和oracle SQL Developer GUI工具.

如何使用Oracle 11g和SQL Developer创建一个小而简单的数据库?

oracle docs中的create database语句如下所示.如果没有数据库概念,那么这个命令是如何进入图片的呢?

CREATE DATABASE
CREATE DATABASE [ database ]
{ USER SYS IDENTIFIED BY password
| USER SYSTEM IDENTIFIED BY password
| CONTROLFILE REUSE
| MAXDATAFILES integer
| MAXINSTANCES integer
| CHARACTER SET charset
| NATIONAL CHARACTER SET charset
| SET DEFAULT
{ BIGFILE | SMALLFILE } TABLESPACE
| database_logging_clauses
| tablespace_clauses
| set_time_zone_clause
}... ;
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 5

Oracle中存在"数据库"的概念.Oracle中术语"数据库"的含义与MySQL或SQL Server中术语的含义不同.

由于您使用的是快速版,因此Oracle会CREATE DATABASE在安装过程中自动运行该语句.一台机器上只能有1个快速版数据库.如果要安装其他版本,则可以选择是否让安装程序在安装过程中创建数据库,或者是否CREATE DATABASE稍后通过语句手动执行此操作.如果您只是在学习Oracle,那么在安装时让Oracle为您创建数据库会更好 - 您只能通过命令行工具(而不是SQL Developer)创建数据库,并且很少有人刚刚开始需要以安装程序没有为您提供的方式调整数据库设置.

在Oracle中,"数据库"是一组数据文件,包括包含所有Oracle数据字典表的模式SYSSYSTEM模式的数据文件,用于TEMP发生排序和其他临时操作的表空间的数据文件以及用于数据文件的数据文件.无论你想创建什么模式.在SQL Server和其他RDBMS中,这些将是单独的"数据库".在SQL Server中,您有一个master数据库,一个tempdb数据库,用于不同产品的附加数据库(即msdb用于SQL Server代理),然后是其他用户定义的数据库.在Oracle中,这些都是Oracle在更大容器中的单独模式,Oracle称之为"数据库".

有时,DBA会希望在同一台服务器上运行多个Oracle数据库 - 最常见的是有不同的打包应用程序对数据库版本或参数有不同的要求.如果要运行需要11.2数据库的应用程序A和不支持11.2的应用程序B,则需要在服务器上安装两个不同的数据库.DBA可以创建一个单独的数据库和一个单独的实例,但这会使内存需求翻倍,运行数据库所需的后台进程数量增加一倍,并且通常会降低可扩展性.如果你真的想同时运行不同版本的数据库,这是必要的,但这并不理想.