2012-08-07 103 views
2

根據我的一篇文章(下文),似乎沒有Oracle中的數據庫這樣的東西。我們稱之爲MySQL和MS-SQL中的數據庫在Oracle中稱爲模式。 如果是這樣的話,爲什麼oracle文檔會提到create database語句? 爲了記錄,我使用Oracle 11g和Oracle SQL Developer GUI工具。如何使用Oracle Express 11g的「create database」語句?

How to create a small and simple database using Oracle 11 g and SQL Developer?

的創建從Oracle數據庫文檔聲明如下。如果沒有數據庫的概念,那麼這個命令是如何出現的?

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 
}... ; 

回答

5

Oracle中有一個「數據庫」的概念。 Oracle中術語「數據庫」的含義與該術語在MySQL或SQL Server中的含義不同。

由於您使用的是快速版本,Oracle會自動運行CREATE DATABASE語句作爲安裝過程的一部分。您只能在一臺機器上安裝1個快速版數據庫。如果要安裝其他版本,則可以選擇是讓安裝程序創建數據庫作爲安裝過程的一部分,還是通過稍後通過CREATE DATABASE語句手動執行。如果您只是在學習Oracle,那麼讓Oracle在安裝時爲您創建數據庫要好得多 - 您只能通過命令行工具(而不是SQL Developer)創建數據庫,並且很少有人剛剛開始將需要調整數據庫設置,安裝程序不會提供給您。

在Oracle中,「數據庫」是一組數據文件,這些文件包括其中包含的所有Oracle數據字典表,數據文件的TEMP表空間SYSSYSTEM架構中的數據文件,其中排序和其他臨時操作發生,以及您想要創建的任何模式的數據文件。在SQL Server和其他RDBMS中,這些將是單獨的「數據庫」。在SQL Server中,您有一個master數據庫,一個tempdb數據庫,不同產品的額外數據庫(即SQL Server代理的msdb),以及其他用戶定義的數據庫。在Oracle中,這些都將是Oracle稱爲「數據庫」的更大容器中的獨立模式。

偶爾,DBA會希望在同一臺服務器上運行多個Oracle數據庫 - 最常見的情況是,當存在對數據庫版本或參數有不同要求的不同打包應用程序時。如果您想運行需要11.2數據庫的應用程序A和尚不支持11.2的應用程序B,則需要在服務器上有兩個不同的數據庫。 DBA可以創建一個單獨的數據庫和一個單獨的實例,但這會增加內存需求的兩倍,運行數據庫所需的後臺進程的數量增加一倍,並且通常會使可擴展性降低。如果你真的想同時運行不同版本的數據庫,但這不是很理想。

3

回答您的原始問題的人是正確的。上面的DDL(數據定義語言)爲模式準備了一個空間,類似於MySQL的'數據庫'。上面的語句定義了模式的特徵,例如時區,表空間的MB,編碼字符集,根帳戶等等。然後,您將發出DDL語句,例如其他帖子中的DDL語句來創建模式,這些模式定義了每個用戶可以看到。

相關問題