17

Oracle 11gとSQLDeveloperを使用して小さくて単純なデータベースを作成するにはどうすればよいですか?エラーが多すぎて、単純なデータベースを作成する方法が見つかりません。例えば

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とは完全に異なります。思っていたほど直感的ではありません。

4

3 に答える 3

34

まず、Oracleが「データベース」と呼ぶものは、他のほとんどのデータベース製品が「データベース」と呼ぶものとは一般的に異なります。MySQLまたはSQLServerの「データベース」は、特定のユーザーが所有するオブジェクトのセットである「スキーマ」とOracleが呼ぶものに非常に近いものです。Oracleでは、通常、サーバーごとに1つのデータベースしかありません(大規模なサーバーには少数のデータベースがある場合があります)。各データベースには多くの異なるスキーマがあります。OracleのExpressEditionを使用している場合、サーバーごとに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

于 2012-08-07T21:38:31.747 に答える
1

質問の説明から、データベースインスタンスではなく、データベーススキーマを作成することになったと思います。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は、一度に複数のデータベース・インスタンスをマウントすることをサポートしていないことに注意してください。

于 2016-04-11T21:41:02.513 に答える
0

実際、上記のジャスティンからの答えはこれ以上間違っているはずがありません。SQL ServerとMySQLは、小規模なデータベース用です。Oracleは大規模なエンタープライズデータベース向けであるため、その構造に違いがあります。また、サーバーが負荷を処理するのに十分な堅牢性を備えている場合は、サーバー上に複数のOracleデータベースが存在するのが一般的です。上記のエラーを受け取った場合は、明らかに新しいOracleデータベースを作成しようとしています。その場合は、おそらくOracleデータベースの構造をすでに理解しているはずです。考えられるシナリオは、dbcaを使用してデータベースを作成しようとした場合、最初は失敗しましたが、バイナリが作成されたというものです。次に、初期パラメーターを調整し、dbcaを使用してデータベースの作成を再試行しました。でも、ユーティリティは、作成しているデータベースのバイナリとフォルダ構造を確認するため、データベースはすでに存在しているがマウントされていないと見なします。データベースを削除し、バイナリとフォルダを削除するだけでなく、最初の試行の他のクリーンアップを最初に実行してから、再試行する必要があります。

于 2016-10-03T16:18:08.037 に答える