Oracle 11 gとSQL Developerを使用して小さくシンプルなデータベースを作成する方法エラーが多すぎて、単純なデータベースを作成する方法が見つかりません。例えば
create database company;
次のエラーが発生しました:
Error starting at line 1 in command:
create database company
Error at Command Line:1 Column:0
Error report:
SQL Error: ORA-01501: CREATE DATABASE failed
ORA-01100: database already mounted
01501. 00000 - "CREATE DATABASE failed"
*Cause: An error occurred during create database
*Action: See accompanying errors.
編集-これは、私がよく知っているMySQLやMS-SQLとは完全に異なります。思っていたほど直感的ではありません。
まず、Oracleが「データベース」と呼ぶものは、他のほとんどのデータベース製品が「データベース」と呼ぶものとは一般に異なります。 MySQLまたはSQL Serverの「データベース」は、特定のユーザーが所有するオブジェクトのセットである「スキーマ」と呼ばれるものに非常に近いものです。 Oracleでは、通常、サーバーごとに1つのデータベースしかありません(大規模なサーバーには少数のデータベースがある場合があります)。各データベースには多くの異なるスキーマがあります。 OracleのExpressエディションを使用している場合、サーバーごとに1つのデータベースのみが許可されます。 SQL Developerを介してOracleに接続している場合は、Oracleデータベースがすでに作成されていることを示しています。
データベースではなくスキーマを本当に作成したい場合(Oracleの用語を使用)、ユーザーを作成します。
CREATE USER company
IDENTIFIED BY <<password>>
DEFAULT TABLESPACE <<tablespace to use for objects by default>>
TEMPORARY TABLESPACE <<temporary tablespace to use>>
次に、必要な特権をユーザーに割り当てます
GRANT CREATE SESSION TO company;
GRANT CREATE TABLE TO company;
GRANT CREATE VIEW TO company;
...
これが完了すると、COMPANY
として(既存の)データベースに接続し、COMPANY
スキーマにオブジェクトを作成できます。
質問の説明から、データベースインスタンスではなくデータベーススキーマを作成すると思います。 Oracleの用語では、データベースインスタンスはファイルシステム内の一連のファイルです。 MySQLのデータファイルに似ています。一方、MySQLのデータベースは、Oracleのスキーマといくらか同等です。
Oracleでスキーマを作成するには: https://docs.Oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm
Oracleでデータベースインスタンスを作成するには(個人的にはCDBAを好みます): https://docs.Oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11068
Oracle Express Editionは、一度に複数のデータベース・インスタンスのマウントをサポートしていないことに注意してください。
実際、上記のジャスティンからの答えはこれ以上正確ではありません。 SQL ServerとMySQLは、小さめのデータベース用です。 Oracleは大規模なエンタープライズデータベースを対象としているため、その構造に違いがあります。また、サーバーが負荷を処理するのに十分な堅牢性を備えている場合、サーバー上に複数のOracleデータベースを配置するのが一般的です。上記のエラーが表示された場合は、明らかに新しいOracleデータベースを作成しようとしていることになります。そうしている場合は、おそらくOracleデータベースの構造をすでに理解しています。考えられるシナリオは、dbcaを使用してデータベースを作成しようとしたが、最初は失敗したが、バイナリが作成されたというものです。次に、初期パラメーターを調整し、dbcaを使用してデータベースの作成を再試行しました。ただし、ユーティリティは作成中のデータベースのバイナリとフォルダー構造を確認するため、データベースはすでに存在しているがマウントされていないと見なされます。データベースを削除し、バイナリとフォルダを削除し、最初の試行の他のクリーンアップを最初に実行してから、再試行してください。