• 締切済み
  • 困ってます

create databaseがうまくいきません。。

databaseを新規に作成したいのですが 今使用しているDB(Oracle 10g Express Edition )は インストール時にデフォルトでデータベースを 作成してしまうため、 「create databese」のsql文を実行すると以下のエラーが出てしまいます。 すでにマウントってどういうことなのでしょうか。 ORA-01501: CREATE DATABASE文でエラーが発生しました。 ORA-01100: データベースはすでにマウントされています。 今存在するDB名が分かれば「drop」コマンドで 削除を試みようと思っているのですが DB名を参照する方法もよく分かりません。 どなたかご教授お願いします。

共感・応援の気持ちを伝えよう!

  • Oracle
  • 回答数4
  • 閲覧数3166
  • ありがとう数6

みんなの回答

  • 回答No.4

10g Expressは使ったことが無いのであくまで EnterpriseやStandard Editionと基本的に同じうごきという仮定で書かせてもらいます。 >今存在するDB名が分かれば「drop」コマンドで >削除を試みようと思っているのですが >DB名を参照する方法もよく分かりません。 データベース名は SYSTEMユーザなどでSQL*plusで繋いでいるのであれば select value from v$parameter where name ='db_name'; とすれば表示されるかと思います。 >すでにマウントってどういうことなのでしょうか。 という質問に対してですが Oracleのデータベースには クローズ(停止) ノーマウント マウント オープン という4つの状態があり、 おそらく10g Expressではインストール時に データベースまで自動的に作成してしまって オープン状態にまでなっているものと考えられます。 ですのでcreate database文内で(おそらく) startup nomount(クローズ状態からノーマウント状態に変更する命令) などが実行されると 「すでにマウントされています」 と表示されるのだと思います。 drop database {database_name}; でも良いですが、shutdown immediate; として、データベースをオープン状態からクローズ 状態にまでしてあげてからデータベースの ファイルを全て削除する方法でも良いかと思います。 (9iまではdrop database文が無かったのでこの方法 が本来のやり方でした)

共感・感謝の気持ちを伝えよう!

  • 回答No.3
  • anmochi
  • ベストアンサー率65% (1332/2045)

#1です。 実際にダウンロードしてちょっと調べてみたところ、10g Expressは ・1インスタンス ・4GB(管理モードで見てみると物理的な制限は5GBとなっているが・・・・?)までのディスク ・1GBまでのメモリ となっているね。なので、TABLESPACEを作るのは速度とメンテナンス以外の目的では使えなさそう。  以上から、create databaseは使えない(使えても意味が無い)と考えられまふ。  結局表領域「USERS」と一時表領域「TEMP」を使う事になるので、それらを使うように一般ユーザを作って、適当にテーブルを作っていきましょう。  DBに繋ぐ、DBをつつく、などの操作は従来のOracleと全く変わりは無いね(当たり前だが)。9iのEnterprise Manager Consoleでも繋がるし、ADO.NetのOracleProviderもばっちりでした。

共感・感謝の気持ちを伝えよう!

  • 回答No.2

お使いのバージョン/エディション用のドキュメントを読んでください。 管理ガイド等に、データベースの作成手順が書かれているハズです。 多分、CREATE DATABASEだけでなく、その後の作業も躓くでしょうから、 管理者ガイドを一度は読んでおく必要があると思いますよ。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • anmochi
  • ベストアンサー率65% (1332/2045)

 10g Expressの事はよく分からないが、Oracleには旧来よりcreate database文は無いよ。正確には存在するけど、人間が直でこのsql文を叩く事があまり無い。  イメージとしては、Oracleは1「database」=1インスタンスだ。  もし、SQL Serverのイメージでやろうとしているのであれば、create TableSpaceを使うと良いだろう。  SQL Serverでは「database」というのは、1ファイルまたは1つのファイルセットの事だよね。Oracleでは1つの物理ファイルに当たるのはTableSpaceだ。  多分私が何を言っているのかさっぱりわからないと思う。とにかく、Oracleの基本概念が今ひとつ理解できていないように見受けられる。SQL Server、PostgreSQL、MySQLとは(概念から)全く違う方法で管理しているので、簡単なチュートリアルからやってみるとどうだろう。 キーワード:  Oracle、ホーム、インスタンス、スキーマ、テーブルスペース

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • create database

    mysqlにログインできるのですが create databaseが実行できません。 myphpadminでも、新規データベースの作成に「特権なし」と表示されています。 以前は、作成できていたのですが、できなくなったのは、どのようなことが原因として考えられるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • ORA-22866について

    DBのインポートが出来ない状況で、1週間ほど悩んで済ます いろいろ調査してみたのですが、キャラクタセットの変更等 どうも、うまくかないみたいです。 内容) 以下のようなSQL文で、ORA-22866のエラーが出ます。 <<実行したSQL文>> CREATE TABLE FOO (A CLOB); <<返ってくるエラー>> ORA-22866: デフォルトのキャラクタ・セットの幅が固定されていません。 そこで質問なのですが、デフォルトのキャラクタ・セットの幅を 固定するにはどうしたら良いのでしょうか? 是非、ご教示ください。 環境) db:ORACLE8.1.6 os:windows2000 server

  • ORACLE SQL DeveloperでのDBへの接続でORA 01017エラー

    私は今、ORACLE 10g Express Editionをインストールして、 操作を試しています。 データベースのホームページにて、新しく"ORAUSER"という名前のユーザーを作成し、すべての権限をチェックし、同ユーザーでデータベースのホームページに再ログインすると、正常にログインできます。 SQLPLUSを起動して、作成した"ORAUSER"でCONNECTコマンドを発行しても正常に接続できます。 ただ、Oracle Sql Developerを利用して接続するとORA 01017エラーになってしまいます。 同ツールを利用してSYSユーザーで接続した場合は、正常に接続できます。 なんども試した為、パスワードの記述に間違いは無いとおもうのですが、 何か問題があるのでしょうか。 ご教授よろしくお願い致します。 環境 Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product Oracle SQL Developer Version 1.2.1 Build MAIN 32.13 OS Windows XP Home Edition

  • エクステントについて

    データベースをOracle8i→Oracle10gへ移行しました。 10gのデフォルトであるローカル管理で表領域を管理していますが、 これまでディクショナリ管理にしか接していなかったため困っています。 で、疑問が出てきました。 ローカル管理でも、フラグメンテーションは発生するとは思いますが それに対してはどのように対応したらよいでしょう。 データをDrop/Createすればデータの並びはきれいになると思いますが もし、そのように対応するならどのような基準で対象となるテーブルを選んだらよいでしょうか。 もちろん、簡単に対応する方法があったら教えてください。 これまでは複数エクステントにデータがまたがっているテーブルをディクショナリからSelectし、 第1エクステント内にデータが収まるようテーブルをDrop/Createして データをインポートしていました。 サーバ環境は OS:Windows2003Server StandardEdition DB:Oracle Database 10g 10.2.0.1.0 StandartEdition

  • DATABSE LINKについて

    現在Oracle10gとOracle11gのDataBaseLinkを行っているのですが、 DBLinkを作成し、データを取得しようとしたら、 「ORA-01017: invalid username/password; logon denied ORA-02063: 先行のエラー・メッセージを参照してくださいline(XXX.XXXX.CO.JP)。」の様なエラーがおきます。 以下に実行したSQLを書いています。 create database link ****.****.co.jp connect to user identified by **** using '****' ↑に書いたユーザとパスワードで、 「Connect ユーザ/パスワード@Link先DB」をすれば繋がるのは確認出来ています。 色々ネットで調べてみたものの、原因が掴めていません。 何の要因から起こるエラーなのか、分かりません。 何かご存知の方がいらしたら、教えて頂けますか? 宜しくお願いします。

  • データーベースリンク

    以前にも、データベースリンクについての質問をさせていただきました。さらに問題が発生し、困っております。 【環境】 RedHatLinux Oracle9i Windows2000 Oracle8.0.6 という二つのDBがいます。 Oracle9iからCREATE DATABASE LINKをつかって、 Oracle8を参照します。 【データベースリンク作成】 CREATE DATABASE LINK XXXX_DBLINK CONNECT TO aaaaa IDENTIFIED BY bbbbb USING 'XXXX' でDBLINKを作成し、 select * from test@XXXX_DBLINKとして、 結果を受けることはできました。 そこで、以下のSQLを実行したときに、SQLエラーが発生してしまいました。 【問題のSQL】 select * from test@XXXX_DBLINK where COLUMN1=:hensu1 and COLUMN2=:hensu2 【実行結果】 SQL実行中に以下のエラーが発生しました。 ORA-01026: バインド・リストにサイズが4000を超える複数バッファが存在しています。 ORA-02063: 先行のエラー・メッセージを参照してくださいline(TRINITY_DBLINK) と2つのメッセージからなっています。 【※】 ・変数パラメータとしては、1つの場合、SQLエラーは発生しません。 ・変数パラメータが2つ以上の場合発生します。 ・変数の部分を固定で、条件を指定すれば、正常にSQLが実行されます。 質問は、この問題を解消するためにどのような対処方法がありますでしょうか? CREATE DATABASE LINK時にオプションを設定することや、 Oracle8もしくは、Oracle9iを構築する際に設定する数値など ありましたら、お教えください。

  • DDLトリガーの作成にて

    お世話になります。 oracleにDDLトリガーを作成したいのですが、エラーが出て作成出来ません。 AFTER DDL on DATABASEのAFTERのところで エラー内容:「ORA-04072: トリガー型が無効です」 が発生します。 試しに、AFTER insert にするとここの部分は通るのですが、作成したいのはCREATEやDROPの時に起動するDDLトリガーなのです。 ちなみに、AFTER create or drop としても同じエラーが発生します。 ネットやoracleのリファレンスも見ましたが今だ解決出来ないでおりますので、ぶしつけな質問なのですが、どこが悪いのか教えて戴きたいです。 -- 作成するトリガーは下記となります ------------------------------------- CREATE OR REPLACE TRIGGER SYS.AFTER_DDL_EVENT AFTER DDL on DATABASE WHEN (ora_sysevent not in ('AUDIT','TRUNCATE')) DECLARE VCW_MODULE varchar2(48) := null; NW_CNT number := 0; BEGIN insert into ログ格納テーブル ・・・ if ( ora_sysevent = 'CREATE' ) then ・・・ elsif ( ora_sysevent = 'DROP' ) then ・・・ end if; END; / です。CREATEやDROPが発生した時にログを残したいのです。 oracle8ではDDLトリガーは作成出来ないってことは無いですよねぇ・・・。 環境は、oracle8、windowsNTサーバー 以上、誰か教えて~

  • DB作成中のエラーについて

    現在「Oracle9.2.0.4.0」を使っています。 「Databese Configuration Assistant」の「データベース作成スクリプトの生成」で作成されたスクリプトを使って、データベースを作成しようとしております。 スクリプトの一部ですが、以下の内容です。 mkdir E:\oracle\admin\AAAA\bdump mkdir E:\oracle\admin\AAAA\cdump mkdir E:\oracle\admin\AAAA\create mkdir E:\oracle\admin\AAAA\pfile mkdir E:\oracle\admin\AAAA\udump mkdir E:\oracle\ora92\database mkdir E:\oracle\oradata\AAAA set ORACLE_SID=AAAA E:\oracle\ora92\bin\oradim.exe -new -sid AAAA -startmode m E:\oracle\ora92\bin\oradim.exe -edit -sid AAAA -startmode a E:\oracle\ora92\bin\orapwd.exe file=E:\oracle\ora92\database\PWDAAAA.ora password=change_on_install E:\oracle\ora92\bin\sqlplus /nolog @E:\oracle\admin\AAAA\scripts\CreateDB.sql    ~省略~ 上記の手順で処理が実行されて、「orapwd」の行でエラーが発生します。 エラーメッセージ 「OPW-00005: 同一名のファイルがあります。 - 削除または名前を変更してください。」 ステップごとに追った結果「oradim」の行で、「PWDAAAA.ora」が作成されるために発生するようです。 これは、無視しても良い物なのでしょうか? または、何らかの対処が必要なのでしょうか? よろしくお願いします。

  • svrmgrl起動時のTNSプロトコル・アダプタエラー

    Oracle8iをインストールしました。インストール時にDBを作成せずに、あとでcreate databaseコマンドで作成するつもりでした。 インストールが終わり、コマンドプロンプトでsvrmgrlと打ったのですが ORA-12560: TNS: プロトコル・アダプタ・エラー が出てしまいます。リスナーは起動しています。 どうすればよいでしょうか。 よろしくお願いします。

  • 文字化けしたデータベース名・・・dropできない

    禁則文字や日本語の使用をいろいろ試してみようと データベース名を日本語で作成 > create database テスト; してみたところ、show databases してみると > チE というデータベースが一覧の中に加わっていました。 日本語は使えないのだと思い、作ったDBを削除しようとしたところ、 > drop database テスト; > drop database チE; いずれもエラーとなってしまい削除できませんでした。 このデータベースを削除するにはどのようにしたらよいのでしょうか。 ご存知の方いらっしゃいましたらご教示願います。 宜しくお願い致します。