1 :
NAME IS NULL :
04/08/03 13:48 ID:UfLTX+VF
質問テンプレっぽいもの ■どの様な問題が起きて、どんな結果を得たいのか? ■フロントエンド、バックエンドどちらの問題か? ■フロントエンドのプラットフォームは何か? ■バックエンドのプラットフォームは何か? ■フロントエンドはどの様なドライバ/ソフトウェアを使用してアクセスしているか? ■Oracleのバージョンは?(バージョンと一言で言っても、フロントエンドなのかバックエンドなのか色々ある)
久しぶりに来たら落ちてたので立ててみますた
>>1 "シッシヨン2” になってるぞ! ヽ(`д´)ノゴルァ!!
edit コマンド実行時に以下のメッセージがでます。 原因はなんでしょうか? SP2-0107: 保存対象がありません。
8 :
7 :04/08/04 14:14 ID:???
SQL PLUS で実行です。
>>7 バッファーに何もない状態で、editをするとそうなります。
SELECT文等実行後にeditやってみれ
>>8 define _EDITOR="メモ帳以外のエディター.exe"
11 :
>10 :04/08/05 04:50 ID:???
>>8 undef &1;
ho if not exist &1..sql type nul> &1..sql
ho start &1..sql
12 :
NAME IS NULL :04/08/05 20:12 ID:+9BAYhW1
保全Age
13 :
7 :04/08/06 09:08 ID:???
ありがとうございますm(_)m
14 :
NAME IS NULL :04/08/06 21:22 ID:k2K50GA0
Oracle9i Database Release 2 (9.2.0) for Windows トライアル版 って、どれ位使えるん? 30日限定と書いてないけど、無制限ってことは無いよね PCの時刻を2ヶ月進めても動いたから、実稼働時間なのかな?
15 :
NAME IS NULL :04/08/06 21:41 ID:HCYBKbTf
助けて下さい。 現在Oracle 816にてSQLによる更新作業を行なっているんですが、エラーとなって進めません。 Table A: ID DUMMY Table B: ID DATA Table C: ID DATA AのIDがマスタでB/CのIDはリンク?です。 update A set DUMMY = ( select DATA from B where A.ID = B.ID and B.DATA IS NOT NULL ); update A set DUMMY = ( select DATA from C where A.ID = C.ID and C.DATA IS NOT NULL ); としてB/CそれぞれのDATAをAのDUMMYに集約しようとしているのですが、select以下に問題が あるようでA.DUMMYが毎回すべて更新されてしまいます。2行めのupdateを実行すると1行目で 更新した値をnullで上書きしてしまうのです。試しに select DATA from B where A.ID = B.ID and B.DATA IS NOT NULL; とすると "where A.ID" の .ID のところで「列名が無効です」というエラーになってしまいます。 何がいけないのでしょうか?ちなみに select B.DATA from A, B where ...; とすると正しく値を返してくれるのですが、この内容を上記のupdate文のカッコ内に書いて実行すると 「単一副問合せにより2つ以上の行が返されます。」というエラーになり、うまくいきません。 出先での作業で何も資料がないため、2チャンネルの識者の皆様におすがりするしかありません。 どなたかご教授くださいませ。
16 :
NAME IS NULL :04/08/06 22:38 ID:Ez7LxW2l
>>14 無制限に使える。
紳士協定に基づいて30日たったら使用をやめてくださいね、ていうのが
ボラクルからの言い分だそうだ。
17 :
NAME IS NULL :04/08/06 22:41 ID:Ez7LxW2l
>>15 そりゃあupdate文でwhere句を指定していなければ当然全部の列が更新
されちまうわな。
18 :
14 :04/08/06 22:51 ID:???
>>16 目的を持たないままインスコしちゃったから
不安だったのよ
サンクス
> 毎回すべて更新されてしまいます。 UPDATE文にWHERE句が無いから。 > 更新した値をnullで上書きしてしまうのです。 福問い合わせが0行を返すから。 > 「列名が無効です」というエラーになってしまいます。 そのSELECT文を単体実行すると、FROM句にA表がないから。 > 「単一副問合せにより2つ以上の行が返されます。」というエラーになり エラーそのままの意味。
20 :
19 :04/08/06 22:55 ID:???
あっ、福って。
アーカイブログモードで動いてるデータベースに インポートユーティリティでデータのインポートをしたら REDOログに書き込み>アーカイブログ吐きまくり ということになるのでしょうか。 帰宅前にスクリプト書いて実行させてきたのだけれど、 明日モード切り替えてやり直しかいな・・・ 誰かおしえてください・・・
>>21 impはINSERTしているようなもんなので、相応のredoが発生します。
23 :
15 :04/08/07 09:17 ID:???
>>17 , 19
返答ありがとうございました。確かにupdateにwhereがないと当然ですね。
深夜にかけての作業でテンパっていてすっかりドツボにはまってました。
仰るとおりwhere入れてselect文を見直したら正しく動きました。
とても助かりました。本当にありがとうございました。
24 :
21 :04/08/07 13:25 ID:???
>>22 やはりそうなんですね。
確認すると、しっかりログが吐き出されていました。
レスを見てから覚悟して出社しましたが、幸いディスクの容量内に収まりました。
ありがとうございました。
25 :
NAME IS NULL :04/08/09 01:19 ID:c9CZwpXr
保守Age
26 :
NAME IS NULL :04/08/09 06:49 ID:48U9oRIz
10gと9iってどっちが使いやすい?
27 :
ナメ :04/08/09 14:20 ID:qvC73v7s
DB:Oracle8.1.7.4 OS:Solaris8 コールドバックアップ(OSファイルレベル)を使用して、DBのリストアを計画しています。 この場合、コールドバックアップは日曜日に取得したとして 月〜水曜日のアーカイブファイルを、コールドバックアップに適用するには どうすればよいでしょう? (DBから見て、未来のアーカイブを適用できるかどうか。当然制御ファイルも古いままです) startup mount recover database until '2004-xx-xx:xx:xx:xx' using backup controlfile alter database open resetlogs; で、合ってますか? (この場合のbackup controlfileって?)
28 :
NAME IS NULL :04/08/09 15:03 ID:P38kap9W
>>27 コールドバックアップを利用してPoint-in-timeリカバリーを計画
している場合は、普通はデータファイル部分を全部戻しさえすれば
制御ファイルとリドログファイルをバックアップから戻す必要は無い。
よって手順としては・・・・
1.データファイルのリストア(制御ファイルとリドログは戻さない)
2.sqlplus> startup mout;
3.sqlplus> recover database until '2004-xx-xx:xx:xx:xx';
4.sqlplus> alter database open resetlogs;
となる。
29 :
NAME IS NULL :04/08/09 15:05 ID:P38kap9W
>>26 新機能を使わなければどっちも大差無い。
ただ10gではOEMなどのGUI関係がかなり充実している。
もっともその分メモリーも馬鹿食いだが・・・。
30 :
ナメ :04/08/09 17:10 ID:qvC73v7s
>>28 ありがとうございます。
制御ファイル・redoもリストアしてしまったら、不可能なのでしょうか?
(やはり制御ファイルのロールフォワードは不可能?)
31 :
NAME IS NULL :04/08/09 18:28 ID:ss9qs0gY
>>30 そちらが最初に書き込んでいる通り「using backup controlfile」オプションを
指定して出来ない事は無いと思うが、極たまにpoit-in-timeで正しく止まらずに
無限にArchivelogを要求してくる事がある。
その時には「recover database until cancel using backup controlfile:」で
Archivelogを充てていって、極め打ちで「alter database open reseglogs;」で
あげるしかない。
基本的に逝って制御ファイル・リドログファイルをリストアするというのは、
DB全体をコールドをとった時点にまで戻したい時のみに行うべきであって、
poit-in-timeリカバリ時には行うべきではない。
それとリストアを行う時の基本は、まずリカバリーを行う前に、その時点での
コールドバックアップを必ず取得すること。
そうする事によって例えリストアに失敗しても、もう一回その時点からやり直せる。
実作業において、なんどこの最初のバックアップに救われたことか・・・・。
32 :
NAME IS NULL :04/08/09 22:36 ID:JB+/H05C
OTNの掲示板ってどう? 最近、ますます役立たずな掲示板になってねぇ? 常連にキモイ奴大杉。
役立たずなサポート部隊の巣箱になってる
>>33 そうなのか?
漏れがボラクルにいた時は、かなり優秀な人達がサポート部隊にいたもんだが・・・。
昇給がストップして皆モラルが下がっちまったのかな・・・。
>>31 > 実作業において、なんどこの最初のバックアップに救われたことか・・・・。
そんなに何度も本番リカバリ?
>>34 最近は... 以下略。
>>35 Oracle 7の時代から運用してるからね〜。
結構リカバリ経験はあるよ(w
ただし、その中でも本番DBを「open resetlogs」オプションであげた事は「3回」だけだけど。
その内の一回はつい半年ぐらい前の事だが。
ちなみに本番DBを「open resetlogs」であげる時には、いつも心臓がドキドキするものだよ(w
37 :
35 :04/08/10 01:14 ID:???
>>36 私もドキドキですめば良かったのですが、
R8.0.5でresetlogsのORA-00600を喰らったことが2回あります。
なんで?そういう星の元に生まれているのでしょーか。
そんなこんなで、ドキドキしなくなってしまった今日のワタクシ。
38 :
NAME IS NULL :04/08/10 01:57 ID:TX6ft7Uj
>>37 8.0.5は何かと「open resetlogs」で問題が起きていたみたいだね。
取り合えず俺はまだリカバリでは一回も失敗した事がないので
ある意味ラッキーなのかもね。
最近はRMANが何でもやってくれる様になったから、便利な世の中に
なったもんだよ。
39 :
NAME IS NULL :04/08/10 06:57 ID:76mXH8tZ
>>33 1日中、掲示板に張り付いて即レスしているのって
サポートの奴らなのか。
そのわりには嘘回答が大杉だな。
40 :
NAME IS NULL :04/08/10 08:22 ID:Cph1syVs
VB6.0+ORACLEのCSシステムがあるんだ。 oo4oを使います。 ターゲットマシンにORACLEクライアントのセットアップは済。 接続テストも正常。 VB6.0のソースをコンパイル ↓ セットアップを作製 ↓ ターゲット(win2000sp4)にセットアップ そこでソフトを起動すると・・・ 実行時エラー'429' ActiveXコンポーネントはオブジェクトを作成できません。 と来やがる。なぜ?どうすればいいの? 開発PCでは無問題なのに。
>>40 クライアントのVer.は何?
とりあえず対策として・・・。
1. %Oracle_Home%\bin以下に以下のファイルがあるかどうかを確認。
OIP8.DLL
OIP8.TLB
ORAANSI.DLL
ORADC.OCX
2. %Oracle_Home%\dbs以下に以下のファイルがあるかどうかを確認。
OIPlang.MSB
3. DOSプロンプトにて以下を実行。
> cd %Oracle_Home%\bin
> regsvr32 oip8.dll
42 :
NAME IS NULL :04/08/10 19:08 ID:Cph1syVs
>>41 今日は終日スルーされるかと思いました、レスありがとうございます。
クライアトはver.9.2.0.1.0です。
ORADC.OCX
これ以外は開発機内にもありませんでした。
今まで開発環境ごとターゲットにインスコしてたので気にしたことがありませんでしたが、みなさんどうされてるのでしょうか?不思議です。
>>42 あ〜、すまんね、漏れは日本にいないからレスがほとんどそっちの夕方から
明け方になってしまう。
>>41 に書いたのはクライアントが8の時の対処方法です。
とりあえず手元に環境がないので見つけたきた情報を書きます。
1. ファイルの検索をかけて以下の二つが存在するかチェックする。
Ole2.reg
Oraipsrv.reg
2.上記のファイルの中で「c:\orant」がデフォルトのインストールパスとして
ハードコードされてしまっているので、こいつをそっちの環境に合わせて
パスを変えるなりする。
3.上記の中に書かれているレジストリ情報をregeitなりを使って探して
まず消してから、「Ole2.reg」「Oraipsrv.reg」を再インポートする。
これで動けばいいんだが、手っ取り早い解決方法は、実はクライアントを
「c:\orant」にインストールすることなのではないかと思い始めている。
>>33 ,39
金をださんやつにサポートがわざわざ答えるはずないだろ
45 :
NAME IS NULL :04/08/11 17:54 ID:qnDDQf9u
皆さん、Oracleのデータブロックの使用について教えてください。 ある2Gのデータがデータベース上から消されることになりました。 そこで消された後、その消された2Gの領域がどの程度再利用されるかが 気になっております。(ディスクサイズの検討が必要なので) そこで、Oracleのブロックの利用方法について教えて頂けないでしょうか? おそらくこの2Gの領域はまるごと再利用の対象にはならないとは思いますが・・ 通常の空き領域と、削除されて空いた領域とはどちらが優先的に 利用されるのでしょうか? 初心者の質問で申し訳ありません・・・
>>45 とりあえず以下の情報に関して教えてくれ。
1. OracleのVer.
2. O/S
3. セグメントの管理方法 (フリーリスト管理なのか? それとも自動セグメント管理なのか?)
特に、フリーリストで空き領域を管理しているのか、もしくはASSM(自動セグメント管理)で
管理しているかで動きが変わる。
47 :
45 :04/08/11 18:42 ID:qnDDQf9u
ありがとうございます。 1.Oracle8.1.7.4 2.Solaris8 3.8.1.7なので、freelist管理だと思います。
49 :
45 :04/08/11 19:11 ID:qnDDQf9u
追加です。 例えば、取引先Aのデータが全てdeleteされました。(約2G) delete後、どのくらいのデータブロックが再利用可能かを 事前に算出したいということです。 もちろん、たくさんのデータブロックにデータが散らばっていて データブロック毎にPCTUSEDがあってその値をきらないと 再利用の対象とはならないのは知ってます。 用は、SQLかなんかで再利用できるデータブロック数(サイズ) を算出できないかなと思いまして..
>>49 そんなんだったら難しく考えないで「dba_free_space」で十分なんでねぇの?
col tablespace_name a25 word_wrapped
col mb_free format a15
col fragments format 999999
col biggest_bit format a15
select ts.tablespace_name, to_char(sum(nvl(fs.bytes,0))/1048576, '99,999,990.99')
as MB_FREE,count(*) as FRAGMENTS, to_char(max(nvl(fs.bytes,0))/1048576, '99,999,990.99')
as BIGGEST_BIT
from dba_free_space fs, dba_tablespaces ts
where fs.tablespace_name(+) = ts.tablespace_name
group by ts.tablespace_name;
中国の人?
54 :
45 :04/08/12 10:36 ID:7/MD2O4d
>>50 SQLありがとうございます。
FRAGMENTS と、BIGGEST_BIT はそれぞれ何を示すのでしょうか?
要するに、データを削除した後にここにでてきた値が今使用できる値
と考えてよいのですよね?
(データが削除されたブロックであれば、PCTUSEDを切って再利用
できる状態になったものも含まれる)
55 :
NAME IS NULL :04/08/12 13:43 ID:sFQeQqK+
どうでもいいけど重すぎ。 あと使い勝手悪すぎ。 なるべく使いにくくしてサポートで稼ごうと。。
>>53 何処の世界にも変な椰子がいるって事ですな。
まぁ、2chにいる漏れが言うのも何だけどw
ここではマターリと逝きましょうやヽ(´-`)ノ
>>54 「FRAGMENTS」は文字通り空きブロック同士が隣接していなくって
フラグメンテーションを起こしてしまっている状態のものです。
つまり空き領域が隣接してい訳なので、そこには2ブロック以上に
またがって割り当てなければならないものは作成出来ないという
意味になります。
「BIGGEST_BIT」は端的に言うと、現在におけるその表領域内で
割り当てる事が出来る最大のチャンクサイズと言った感じですかね。
新しいセグメントをその表領域内に作成する時に、Initialエクステント
等を大きくとりたいと思った時は、この値を参考にすると良いと言った
感じでしょうか。
58 :
45 :04/08/12 18:19 ID:7/MD2O4d
>>57 ありがとうございました。
とても参考になりました。
もれは寧ろポイント乞食がたくさん居ついてるのがイヤだな〜 <OTN 見る価値ないレス増えすぎで重いんじゃないのか。
61 :
NAME IS NULL :04/08/14 15:01 ID:FDkwRBXV
保全age
62 :
NAME IS NULL :04/08/16 05:48 ID:JCYQGqJr
oracle8i + VB6.0 で開発しています。 BBテーブルのレコード(70万件)をAAテーブルにコピーし、同一にしたいです。 毎回 AAテーブルのデータを削除して、もう一度insert するのは大変なので、 前回コピーした差分だけを更新コピーしたいです。 下記のSQLでできるとは思いますが、Oracleのトリガーを使ったほうが安定するのでは ないかと思うんですが、トリガの使い方をネットで検索しているんですがどうもあまり掲載されて ないようです。 よければ皆様お教えください INSERT INTO AA(hincd,hinnm) SELECT hincd,hinnm FROM BB WHERE EXISTS (SELECT hincd,hinnm FROM AA WHERE AA.hincd = BB.hincd)
スナップショットにすれば?
なかやまage
65 :
NAME IS NULL :04/08/16 16:21 ID:Ti3ObFbY
66 :
NAME IS NULL :04/08/16 23:14 ID:YrLSzzlY
なかやまage
67 :
NAME IS NULL :04/08/17 23:54 ID:v1hw9IIs
保守Age
68 :
NAME IS NULL :04/08/18 16:08 ID:ufg7dQiG
保湿Age
69 :
NAME IS NULL :04/08/19 00:21 ID:DUrRC6DG
保存Age
ura2ch ura2ch
71 :
NAME IS NULL :04/08/20 01:54 ID:cERit/ZE
Oracle9i + PL/SQLです テーブルの内容を改行無しでテキストファイルに書き出していくって仕様なのですが、 utl_file.putだと一行の長さ制限に引っかかってしまいレコード数が増えると失敗してしまいます。 utl_file.put_rawも使ってみたのですが、これも同じく制限にかかるようで…。 put_raw(hoge, hoge, true)とかしてみたのですが、結果は変わらず…。 dbms_lobってパッケージも検索で出てきたのですが、これはファイルへの書き出しは無いような… 同じようなことをしたことがある方、解決方法をご存知の方がおられましたら、教えてください (;´д⊂) 本当は一レコード一行にしてもらうのが一番手っ取り早い気もするのですが、そこは色々と力関係で…_| ̄|○
>>72 dbms_lob.readとutl_file.putを組み合わせるよろし。
---------------------------------------------
CREATE OR REPLACE PROCEDURE retrieve_lob IS
temp_blob BLOB;
data_buffer RAW (1);
temp_buffer VARCHAR2(1);
amount BINARY_INTEGER := 1;
position INTEGER := 1;
filehandle utl_file.file_type;
error_number NUMBER;
error_message VARCHAR2(100);
length_count INTEGER;
BEGIN
SELECT video_clip INTO temp_blob FROM lob_store WHERE lob_id = 1;
length_count := dbms_lob.getlength(temp_blob);
dbms_output.put_line('Internal LOB size is: ' || length_count);
filehandle := utl_file.fopen('/home/usupport/npasumar/bulletin','lob_flat.out','W');
WHILE length_count <> 0 LOOP
dbms_lob.read (temp_blob, amount, position, data_buffer);
temp_buffer := utl_raw.cast_to_varchar2(data_buffer);
utl_file.put (filehandle, temp_buffer);
position := position + 1;
length_count := length_count - 1;
data_buffer := null;
END LOOP;
dbms_output.put_line('Exit the loop');
utl_file.fclose(filehandle);
dbms_output.put_line('Close the file');
EXCEPTION
WHEN OTHERS THEN
BEGIN
error_number := sqlcode;
error_message := substr(sqlerrm ,1 ,100);
dbms_output.put_line('Error #: ' || error_number);
dbms_output.put_line('Error Message: ' || error_message);
utl_file.fclose_all;
END;
END;
74 :
72 :04/08/21 09:53 ID:???
>>73 レスありがとうございます。
すいません、説明が足りませんでした。
出力したいレコードは普通の文字列なのです。
for vCnt in 0..x loop
utl_file.put(vFile
,to_char(nvl(vaSupplyQty(vCnt), '0'), 'S9999999999999')
);
end loop;
なんてのをやりたいのです。
>>74 基本的に32K以上のデータ量は扱えない。
よって32kずつにぶち切ってputを使用してアペンドしていくといった感じになるみたい。
------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE dump_doc(docid IN NUMBER,filename IN VARCHAR2)
IS
data_chunk VARCHAR2(254); -- もっと大きな値を指定可能
chunk_size NUMBER:=254; -- 最大32kまで
chunk_size_returned NUMBER;
location VARCHAR2(20) := '/tmp'; -- init.oraにもUTL_FILE_DIR=/tmpを指定しておく事
mycursor NUMBER;
stmt VARCHAR2(1024);
cur_pos NUMBER:=0;
rows NUMBER;
dummy NUMBER;
file_handle UTL_FILE.FILE_TYPE;
add status VARCHAR2(50);
BEGIN
file_handle:=utl_file.fopen(location,filename,'w');
stmt:='SELECT DOCUMENT FROM ASCII_DOCS WHERE ID = :doctoget';
mycursor:=dbms_sql.open_cursor;
dbms_sql.parse(mycursor, stmt, dbms_sql.v7);
dbms_sql.bind_variable(mycursor, ':doctoget', docid);
dbms_sql.define_column_long(mycursor,1);
dummy:=dbms_sql.execute(mycursor);
rows:=dbms_sql.fetch_rows(mycursor);
loop
dbms_sql.column_value_long(mycursor,1,chunk_size,cur_pos,data_chunk,chunk_size_returned);
utl_file.put(file_handle, data_chunk); -- キャリッジリターンが入らないようにPUTを使用
cur_pos:=cur_pos + chunk_size;
exit when chunk_size_returned = 0;
end loop;
dbms_sql.close_cursor(mycursor);
utl_file.fclose(file_handle);
EXCEPTION
WHEN OTHERS THEN
utl_file.fclose(file_handle);
END dump_doc;
76 :
72 :04/08/22 09:26 ID:???
>>75 ありがとうございます。
PL/SQLには疎いので、できるのかどうか分からなかったのですが
これでなんとか仕様変更をお願いできるかも…
って仕様作った人も知らなかったのかなぁ(^^;
そうなんですよね、fcloseで勝手に改行とか入れられちゃうので、
どないしたものかと悩んでおりました。
77 :
NAME IS NULL :04/08/23 15:04 ID:OVCwTyi7
HP-UX10.20上にOracle7.3.4が稼動しています。 既に別システムで構築されたDBでありデータは現在も 蓄積されています。 今回、このDBからデータを抽出して別システムで データを利用することになりました。 別システムは、Redhat7.3で同一ネットワークセグメント上に 配置されています。 Linux側からOracleのデータを抽出(Select)したいのですが Linuxには、Oracle関連ソフトならびにドライバが入っていません。 Perl5.6とDBD-Oracle1.15+DBI1.43を用いてデータを抽出したいのですが 可能でしょうか? 不足しているもの(スキルという意見以外)や別方法などありましたら 教えて下さい。 抽出されたデータはテキストファイルとして保存できればOKです。
俺のターン! 一億件のレコードからクソ情報を抽出! いつまで経っても応答がない orz
79 :
NAME IS NULL :04/08/23 16:27 ID:Ce/M8jNK
>>78 クソ情報なだけに、クライアントサーバ間のお通じが悪いんだろ。
あしたは おらくるでべろっぱーでいず!
>>77 spoolで取り出すのはだめ?
svrmgrはよくわからんけど、SQL*Plusだとこんな感じ。
set head off -- 列名のヘッダなし
set colsep , -- 列の区切りはカンマ
spool emp.csv -- スプールするファイル名
select * from emp; -- お望みのSELECT
spool off
quit
試さずに書いてるからまちがってるかも。
82 :
77 :04/08/24 17:14 ID:fIGf3mkO
>>81 ありがとうございます。
spoolを使う方法検討してみます。
SQL*Plusを使う場合は、Linux側にインストールが必要ですよね?
サーバマネージャもインストールが必要なのでしょうか?
83 :
NAME IS NULL :04/08/24 18:53 ID:nXWm1Z1D
>>82 svrmgrはDBの起動などに必要なプログラムだから、LinuxにDBがない以上、
そんなもんはいらん。
SQL*PLUSだけいれればよろし。
それにしても7.3.4なんて懐かしいね。
漏れが一番最初に触ったOracleのVer.だよ。
84 :
77 :04/08/24 19:54 ID:4PfhuArk
>>83 ありがとうございます。
やはりSQL*Plusはインストールの必要があるんですね。
Linux側のコストを低くしたいらしいので、新しいソフトを
買うことが難しいんですが、何か良い方法はありませんか?
HPのOracleバージョンが古いのはLinuxにSQL*Plusを
インストールする時に何か問題になったりはしないのでしょうか?
質問ばかりで申し訳ありませんが、宜しくお願い致します。
85 :
NAME IS NULL :04/08/24 21:14 ID:nXWm1Z1D
>>84 う〜ん、ライセンス形態がどうなっているか良く分からないんだけど、
テストだけだったらOTNからLinux用のクライアントをダウソして入れて
みるというのも一つの手かも?
製品版と変わらないから、そのまま使い続ける事も可能なんだけどね(w
それと7.3.4にアクセスするためにはクライアントのVer.は9i以下にする
必要があるみたいね。
10gクライアントだと7.3.4には未対応でORA-3134が出るらしい。
もうわけ分がんね〜。 理由は分からなくて、クライアントからサーバーに繋がらなくて 気が付いたら繋がるようになっていた・・・。 落ち着いて、環境を書きます。 サーバー Solaris8 + Oracle9.2 クライアント Win2k + Oracle9.2クライアント(管理者パッケージ) サーバにはDBが2つ作ってあって、1つはクライアントからOEM で繋がります。もう1つのDBには何故か繋がりません。 繋がらないDBは一昨日作りました。 で終電間際にもう一度試してみたら、繋がる!! 接続情報とか小人が変えてくれたの!?って感じ。 繋がらなかったときのエラーは、サービス名が解決できない みたいな内容だった気がします。 作成したてのDBは繋がらない事なんて無いよね? まず何から調べたら良いでしょうか。 会社から2chは書けないので返事は遅くなってしまいますが、 よろしくお願いします。
88 :
NAME IS NULL :04/08/25 04:01 ID:Y5Il5HBa
>>87 漏れだったらまずSolaris上のlistner.oraを見て、後はWin2k上のtnsnames.oraみて、
Portとかがちゃんと合っているか調べる。
でもって、後はO/S levelでpingが通るか調べて、その後はWin2kからtnspingを
打って、ちゃんと別名で名前解決出来るかを見る。
>>88 終電間際につながったっていうのは特に設定とかいじらなくて、つながったってこと?
Oracle8i くらいのときにあったんだけど
リスナとインスタンスの起動順序によってリスナがインスタンスを
認識してくれないということがありました。
(通常は一定間隔でリスナがインスタンスを検出しにいくはずなんだけど
UNIX版の8iあたりのバージョンでこれが上手くいかないことがあった)
いったんインスタンスとリスナを落として、インスタンス→リスナ の順に起動した場合に
lクライアントからつながらないと言う現象が再現するかどうかみてみたら?
90 :
NAME IS NULL :04/08/25 10:56 ID:n0/+OFlh
ODDに参加中。テキストブースに群がるオラヲタうぜーしくせー!
91 :
77 :04/08/25 16:04 ID:m0CtrOF8
>>85 >>86 ありがとうございます。
JDBCをインストールして実現できそうです。
Javaも未インストールだったのでインストールしたり
またJavaのスクリプト自体も初心者だったので、
四苦八苦しましたが、ご助言頂けたおかげで
前に進むことができそうです。
前述構成に加えてj2sdk1.4.2をインストール,
Oracle JDBC Driver9.2.0をインストールしました。
接続して簡単なSQL文を発行して結果を得るところまで
きました。あとはシステムに見合ったSQLと出力結果を
揃えるのみです。
本当にありがとうございました。助かりました。
>>87 MTSだとDBよりリスナーを先に騰げないと認識するのに時間がかかる
んじゃなかったかなぁ、、、
93 :
87 :04/08/27 01:18 ID:???
遅くなりました、皆さんレスありがとうございます。
>>88 listner.oraとtnsnames.oraですね。確認してみます。
ただ、同一インスタンス無いの他のDBには繋がったので
ネットワーク系の問題では無いと思っています。
>>89 >特に設定とかいじらなくて、つながったってこと?
はい、そうなんです。
>インスタンス→リスナ の順に起動した場合に
>クライアントからつながらないと言う現象が再現するかどう
はい!明日やってみますね。lsnrctrでstatus結果をもって帰ってきたら
有用でしょうか。
>>92 MTS? マイクロソフトトランザクションサーバーの事ですか?
サーバーがSolarisでクライアントがWinの環境でも関係ある
事なんでしょうか。すいません、Oracle初心者なもんで。
それでは、今日はお休みなさい。
94 :
NAME IS NULL :04/08/27 20:18 ID:WJQzdBQU
>>93 MTSとは「Multi-Thread Server」の略。
専用サーバーとは違って、複数のユーザープロセスで一つのサーバープロセスを
使用する接続方式の事だ。
MTSにするとディスパッチャーというプロセスが、空いているサーバープロセスを
見つけてそれをユーザープロセスに割り当てる。
言ってみれば銀行に金を降ろしに行った時なんかに、玄関に立っている従業員の
オッサンが「このATM空いてますよ」と言って振り分けてくれるような感じか?(w
>90 デベロッパだけあって、プータロー風とネクタイと半々くらいだったな。 しょうがねぇよ。
ソースネクストのOracle JDeveloper 1980円ってどうなんすか?
97 :
NAME IS NULL :04/09/01 21:53 ID:+8r2Bt0j
王道Age
oracle 9.2.0 windowsXP pro でxp の sp2 使用しても大丈夫だった?
99 :
NAME IS NULL :04/09/03 11:43 ID:fp9+6ORM
system と sys のパスワードをデフォルトのまま 稼動しているやつって多いと思うけど、どう?
>>99 なめるな!ちゃんと変えてるyo!!
change_on〜とか長いし、、、
(oracle/oracle, system/system, sys/sysにしてるけど、、、)
> 96 ここにはJava使える香具師いないから、聞くだけ無駄。
>> 102 遅いからか? なんにしろ、Eclipseと比べてどうかくらい説明してやれよ。
105 :
NAME IS NULL :04/09/04 18:22 ID:uWngy+IG
質問させてください。 Oracle8.0.5が入ったNT4のサーバが既にあって Win2000+PHPからアクセスしようと環境を構築しようとしています。 ですがうまくいかず いろいろ調べてOracle8.0.5にはPHP4.0.5までしか対応してない というとこまで分かりました。 で、PHP4.0.5にダウングレードして確かに動いたのですが いまさらこのバージョンで運用をしようとは思えません。 ですのでOracleのバージョンアップを考えなければならないのですが OracleとPHPの動作バージョンの対応表など どこかにありませんでしょうか? そもそも「Oracle8.0.5にはPHP4.0.5まで」というのも Oracleなどから公式にアナウンスされたものなのでしょうか? ご存知の方、よろしくお願いします。
106 :
ひろ坊 :04/09/05 02:07 ID:???
PHP4.0.5に付属するphp_oci8.dllとphp_oracle.dllを上書きすると 出来るとか出来ないとかあります
107 :
105 :04/09/05 11:38 ID:???
>>106 それも試しましたが動きませんでした。
PHP4.0.xまではその方法で動いたみたいです。
PHP4.3.8に上書きではだめでした。
このへんの情報もOracleのサイトとかに
まとまっていたら分かりやすいのですが
OracleはPHPは軽視でJavaとか
大規模システムに力を入れてるって感じなんですかね。
PHP は Oracle が開発しているものじゃないからな。 PHP の開発元に聞くのが良いだろう。
シェルスクリプト内でOracleに接続して、SQLの実行結果とかを上手く扱う方法ってないかな?
とりあえず
#!/bin/sh
sqlplus hoge/huga@hage<<EOF
select aaa_id from aaa_table;
EOF
みたいな感じで、スクリプト内からOracleに接続してSQLを実行する事は出来たんだけど、
SQLの実行結果をスクリプト内で扱う事が出来ん・・・。
検索したら
http://www.atmarkit.co.jp/flinux/rensai/shell07/oracle.html こんなんがあったんだけど、ライブラリが足りなくて動かなかった。会社のマシンだから
勝手にライブラリとか追加できないし・・・。
誰か良いやり方知ってたら教えて下さい。
ASP.NET+ODP for .NETで開発してるのですが、 ランダムにInternal Error -3000と言うのが出て鯖ごと止まってしまいます。 皆様の中でこのようなエラーが出ている方はいらっしゃいますか。
111 :
NAME IS NULL :04/09/07 16:20 ID:aARHyPs3
>>109 スマートな方法ではないかも知れないけど、一番手っ取り早いのはsqlplusから
spoolしてファイルに書き出して、そのファイルをshから読み込むといった方法が
ある。
------------------------------------------
#!/bin/sh
sqlplus -s hoge/huga@hage<<EOF
spool hogefile
select aaa_id from aaa_table;
spool off
EOF
exec 3<hogefile
i=1
while read -u3 hoge
do
echo $hoge
let i+=1
done
exec 3<&-
>>110 Nested Cursorsを使っていると起きる事があるらしいな。
U.S.でバグ登録されているよ。
回避策はそのままずばりNested Cursorsを使わないか、10g用の
Oracle Data Provider for .Netとやらが出るのを待つしかないらしい。
しょぼい質問でも申し訳ないのですが NULLと空の文字列って同じ扱いなのでしょうか? create table aaa (c1 varchar2(10) not null); insert into aaa values (''); これってアウト? postgresから移行してきてとまどってます
>>111 一応補足だけど、spoolする時には以下のオプションを指定してね。
sqlplus -s hoge/huga@hage<<EOF
SET NEWPAGE NONE
SET FEEDBACK OFF
SET HEADING OFF
spool hogefile
select aaa_id from aaa_table;
spool off
EOF
>>113 アウトだね。
--------------------------------------------------
SQL> create table aaa (c1 varchar2(10) not null);
Table created.
SQL> insert into aaa values ('');
insert into aaa values ('')
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SYS"."AAA"."C1")
---------------------------------------------------
>>115 うひー
なんとか慣れるようがんばります。
文字型だからnull可でもいっか。
逆にいうと「''」で更新しても
nullとして入るんですね。
>>116 どうやらその様だね。
------------------------------------------
SQL> create table aaa (c1 varchar2(10));
Table created.
SQL> insert into aaa values ('hoge');
1 row created.
SQL> update aaa set c1='';
1 row updated.
SQL> select * from aaa where c1 is null;
C1
----------
------------------------------------------
>>117 う〜ん、どうやらバグっぽいかも・・・。
analyze tableかけると、キャラクターとして認識されちまう・・・。
--------------------------------------------------------
SQL> update aaa set c1='';
1 row updated.
SQL> select * from aaa where c1 is null;
C1
----------
SQL> analyze table aaa compute statistics;
Table analyzed.
SQL> select * from aaa where c1 is null;
no rows selected
SQL> select count(*) from aaa;
COUNT(*)
----------
1
--------------------------------------------------------
''は使わん方がいいみたいだねぇ。
>>118 ええ!?
試してみたけど大丈夫だった
バージョンいくつですか?
うちは10gトライアル
120 :
119 :04/09/07 17:25 ID:???
SQL> create table aaa (c1 number(2), c2 varchar2(5)); SQL> insert into aaa values (1,'aaa'); SQL> insert into aaa values (2, ''); SQL> insert into aaa values (3, null); SQL> select * from aaa where c2 is null; C1 C2 ---------- ----- 2 3 SQL> analyze table aaa compute statistics; SQL> select * from aaa where c2 is null; C1 C2 ---------- ----- 2 3 SQL> update aaa set c2 = '' where c1 = 1; SQL> select * from aaa where c2 is null; SQL> analyze table aaa compute statistics; SQL> select * from aaa where c2 is null; C1 C2 ---------- ----- 1 2 3
122 :
NAME IS NULL :04/09/09 11:30 ID:cHF62ijD
質問ですー 下記のPostgreSQLのSQL文のように 21番目から10データ取得ってできますか? rownumで先頭から10データとかはできるのですが。。。 バージョンはOracle10gです。 select * from hoge order by hoge1 offset 20 limit 10;
>>122 order byでsortしなくていいんだったら以下が使えるんだけどね。
select * from hoge rownum<= 30 minus select * from hoge rownum <= 20;
124 :
NAME IS NULL :04/09/09 23:35 ID:yGLov8PC
Oracleの脆弱性ってどんなのですか?
うげー Oracleのトライアル版の10gクライアントって RedHatにしか入らないの? 製品版もそうですか?
126 :
NAME IS NULL :04/09/10 22:53:36 ID:qllay40P
10gのサーバーをいれたんだけど、OEMコンソールがはいってないよ。 どこにあるの?
>>126 10GのOEMは全部Webベースになっているが?
デフォルトだと「
http:// (host名):5500/em」だが?
OracleのIMPORT/EXPORTについて教えてください。 スキーマAの特定のテーブルを、 スキーマBに自動的に取り込むツールを作りたいと考えています。 (つまり特定のテーブルをスキーマA/B共に常に同じにしておきたいのです。) この際、取り込むテーブルは定義がしばしば変わるので、 INSERTではなくスキーマAのテーブルをEXPORTして、 スキーマBに取り込みたいと思います。 Windows環境なのでVBSを使って、 1.スキーマAからEXPコマンドを発行して、取り込み対象テーブルのダンプを作る 2.スキーマBにドロップ文を発行して、取り込み対象テーブルをドロップする 3.スキーマBにIMPコマンドを使ってダンプから取り込み対象テーブルを取り込む という方法を考えているのですが、あまりスマートなやり方とは思えません。。。 このようなときの良い運用方をご存知の方がいらっしゃいましたら、ご教授 いただければと思います。 よろしくお願いいたします。
>>128 128さんの要求仕様でレプリケーションが使えるかどうか調べてみて下さい。
#調べた上で聞いてたらごめんね。
130 :
129 :04/09/11 01:33:50 ID:???
あ、AさんとBさんが同一インスタンス上のスキーマだったらトリガー使うのがいいかも。
131 :
128 :04/09/11 01:52:55 ID:???
>>129-129 ありがとうございます。
レプリケーション、知りませんでした(すみません、DB初心者なのです)。
調べてみます。
>トリガー使うのがいいかも。
同一インスタンス上なのですが、テーブル定義とデータをごっそり持ってくる
SQL文があるのでしょうか。
どのようなSQLか分からないのですが、、、
もしそのようなものがあれば教えていただければ(もしくは書籍を紹介していただければ)と
思います。
重ねて質問申し訳ありません、
よろしくお願いいたします。
>>131 同一インスタンス内なら
CREATE TABLE schemaB.table_name AS SELECT * FROM schemaA.table_name;
でいいんでない?あれ、構文これであってるかな?
GRANT SELECT ON schemaA.table_name TO userB;
とかも必要。
133 :
131 :04/09/11 02:09:30 ID:???
>>132 ありがとうございます。そのようなことができるとは、、知りませんでした。。
とりあえずトリガーで実装してみます。
ありがとうございました。
>>128 テーブルの定義が変わるのなら、結局EXP/IMPがいちばん簡単。
135 :
129 :04/09/11 02:47:57 ID:???
>>128 ごめんテーブルの定義が変わるっていうのを見落としてたっていうか
定義がしばしば変わるテーブルっていうのが何だかヘンなので
そこをもうちょっと整理できそうな気がしますけどどう?
136 :
128 :04/09/11 03:01:24 ID:???
>>135 定義が変わるというのは、まだ開発段階なので
同じテーブルでもカラムが増えたりデータ定義が
微妙に変わったりすることがある、ということです。
テーブル自体が増えたり減ったりすることはありません。
ですので、
・ミラーリングするテーブル名一覧のマスタを作っておく
・上記を参照して、インポート先のスキーマの
同じ名前のテーブルをドロップし、インポート元の
同じ名前のテーブルを
>>132 さんのSQL文で丸ごと
取り込む
というロジックを、トリガーで定期的に起動させようかと
思います。
>>136 あーなるほど、いずれテーブルの仕様が固まるまでってことだったんですね。
でかいテーブルを作り直すのではなさそうなので
>>132 さんの方法が簡単でいいと思います。
>>136 スキーマBの用途が分からないが、
132の方法だと主キー等の制約はコピーされないので注意。
トリガーはデータの挿入・更新・削除の時に発生するものであって、
定期的に実行させるのはジョブ。
結局exp/impが一番スマートだと思うけど。
スナップショットは?
セキュリティFIXパッチ出たね 適用( ゚Д゚)マンドクセー
141 :
NAME IS NULL :04/09/12 18:32:23 ID:ptn6epF0
質問です。 DBはアーカイブモードで、日々 rman でオンラインバックアップ ( backup database )しています。 この場合、ctl, redo,datafaile の全てが無くなった場合についてですが、 ctlファイルは create controlfile で復旧させたとします。 また、datafile は rman からリストアできると思います。 1つも残っていないredoはどうやって復旧させればいいのでしょうか? またこの場合はバックアップした状態までには戻せないのでしょうか?
>>142 ctl、現行のredolog、datafileが全て喪失してしまった場合、既にその
時点で不完全回復(open resetlogs)しか道は残されていない事になる。
つまりRedoは全て新しく作り直す。
手順としてはこんな感じ?
1. RMANを使って全Datafileをバックアップからリストア
2. create controlfile文を使用して、ctlを再作成
3. recvoer database until cancel using backup controlfile;文を使って
残っている全archivelogを適用
4. alter databse open resetlogs;でデータベースをオープン。この時に
自動的に新しいredologがoracleによって再作成される。
上記を見れば分かる様に、ロールフォワードできるのは最後のarchivelogの
時点迄ということになる。
Oracle10gのLinux x86-64版は、何時出るんでしょうか。
Oracle10gですが クライアントからSQL文を発行するときって みなさんはどのアプリを使ってますか? sqlplus? webのsqlplus? どれもいまいち使いにくくて。 SQLServer付属のツールみたいに 実行する文を選択状態にして その文についてだけ実行できてかつ 複数のSQL文を一気に実行できるのが希望です。
>>143 ありがとう。
順番としては、以下でできました。
1.RMANでコントロールファイルを復旧
2.RMANでデータファイルのリストア
(リストアの際に set until logseq を最終ログまで指定)
3.recover database
4.resetlogs
>>146 おおっ、そうね、RMANはデフォルトでコントロールファイルのバックアップを
取るから、確かにそいつを利用出来るね。
それにしてもそこまでの復旧作業が必要って、ディスクかなんか吹っ飛んだ
んかいな?
SQLPlusにラインエディット機能が付いたようなツールでお薦めはありますか? Oracle謹製のSQL*Plusは使いにくすぎます
オブジェクトブラウザ?
emacs とか。
151 :
NAME IS NULL :04/09/15 10:13:41 ID:4lwDdbdV
CSEでいいんじゃない? 定義書もはいてくれるぞい。
>>151 CSEでOracleって
複数の文を同時に実行できなくない?
insert into hoge values (1);
insert into hoge values (2);
こんな感じで。
なにか設定あるの?
>>152 できないねぇ。
それどころかセミコロンつけるとエラーになる。
コンソールじゃなくてあくまでも
エディタって位置付けだからでしょう。
全体をスクリプトにすりゃ出来ると思うけど。
やっぱ秀丸で編集、SQLPlusにコピペが最強。
秀丸(爆)
俺のSQLPlusのエディタ、秀丸だよ
>>152 今、試せる環境ないんだけど、
CSEのメニュー「データベース」−「一括実行」って、そゆ機能じゃないの?
>>156 一括実行はファイルを実行するのと同じような感じで
エディタ内のすべてを実行するんじゃない?
>>60 >-- ushitaki --
>OTN から「教授して」と言う言葉を根絶しよう!「教示」のつもり?
>ここは対等での情報交流の場所。会議室検索や Tips も活用しよう!
最近は、こうなってます。マジでウザ杉。
-- ushitaki --
OTNから「教授して」と言う誤用を根絶しよう!一方的質問箱でもないはず。
対等な技術交換共有のために、掲示板検索や Tips,Library等も活用しよう!
osqledit
>>158 ushitakiは在日チャンコロ。
日本人にはない粘着質が気持ち悪い。
ジサクジエ・・・
162 :
NAME IS NULL :04/09/16 23:44:29 ID:npLC5ofo
やっぱ秀丸だな。
あんた馬鹿?
>>113 8iか9iのドキュメントに,将来のリリースでは区別するかもって書いてあった希ガス。
どっちかに統一しといた方がええんとちゃう?
統一しちゃダメだよ。 文字列であるべきところは''にして、ヌルであるべきところはNULLにする。 そのうえで、そのふたつがおなじものとして扱われることに依存しない 造りにすることを心がける。 とはいえ、いくらがんばっても意識せざるを得ない箇所は出てくるし 結局依存しちゃうんだけどね。 初期化パラメータで切り替える形でも良いから、はやいところ''とnullを 区別する動作を実現してもらいたいものだ。
167 :
会社から :04/09/18 16:09:38 ID:4VEYoChp
こんにちは。オラクルで主キーを設定するにはGUIからでは無理なのでしょうか?
OEMから普通にでけますが何か?
OTNに常駐してる連中って、所謂DBオタなんだろうなぁ
>>148 emacs+sql-oracle-mode
xyzzy+sqlplus-mode
ノートPCでデモ環境をつくりたいのですが Oracleを少しでも軽く動かす方法はないでしょうか。 本番のバージョンはOracle10g+Windows2003です。 デモ環境はWindows上で WebサーバはVirtualPC+Linux+Apache+PHP で構築予定。 VirtualPC+Linuxは普通に動くのですが Oracleが重くて重くて・・・
メモリを調整して swap しないようにすればいいんじゃないの?
>>173 窓2003上では確かに重たいね。
1GB積んだノートでも10g OEMを入れていると動作的に辛いものがあるもんね。
とりあえず10g OEMは外して、後は
>>174 が言っているように出来るだけSGAの
サイズを下げてテスト環境を構築するしかないんじゃないの?
177 :
NAME IS NULL :04/09/22 20:25:07 ID:wt0w+D4E
Age
178 :
NAME IS NULL :04/09/24 00:44:08 ID:8IGiq9Pz
AgeAge
Oracle10g windows版の CSService DBConsoleXXXX iSQL*Plus ってサービスは止めてても平気? 普通に使う分には TNSListenerとServiceXXXXが動いてれば 問題ないですよね。 もう重くて>10g
180 :
NAME IS NULL :04/09/24 17:31:59 ID:8IGiq9Pz
>>179 CRSServiceはASMを使っていないんだったら止めても構わんよ。
DBConsoleやiSQL*Plusは普通に使うんだったらインストールの必要すらないよ。
181 :
179 :04/09/24 18:43:49 ID:???
>>180 ありがとうございます!
ASMはまだ使い道がよくわかってませんが
開発目的なのでまーいらないかなと思ってます。
停めたら劇的に軽くなりました!
ちょっと教えていただけると幸いです。 例えば、下記のようなSQLを走らせると select (SYSDATE - REGIST_DATE) DAY TO SECOND "bbb" from CUSTOMER 次のようなエラーが返されます。 「型の長さが最大を超えています。」 どのように解決すればいいでしょうか? よろしくお願いします。
183 :
NAME IS NULL :04/09/24 21:50:18 ID:8IGiq9Pz
>>182 Linux上の10gでは全く問題なく表示されたのだが・・・?
SQL> create table hoge (regist_date date);
Table created.
SQL> insert into hoge values (sysdate);
1 row created.
SQL> select * from hoge;
REGIST_DATE
---------------
24-SEP-04
SQL> select (sysdate - regist_date) day to second "bbb" from hoge;
bbb
---------------------------------------------------------------------------
+00 00:01:25.000000
レスありがとうございます。 8なんですけどダメです。 ただ、違いといえばデータの保持のフォーマットが 2004-09-31 00:00:00です。 ここらへんが問題なのでしょうか?
185 :
NAME IS NULL :04/09/24 22:26:25 ID:8IGiq9Pz
>>184 AIX上の9.2.0.5でも問題なかった。
ひとつ確認なんだけど「REGIST_DATE」はDate型だと思っていいんだよね?
もしかしてvarchar2で持っていたりなんかしないよね?
>>185 ご面倒かけています。
date型です。
ときどき、date型まわりで困ってしまうことがあるんですよね。
>>186 SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
でフォーマットを変えてみたけど、特に問題無いねぇ。
Ver.固有のバグかいな?
ところでクライアントはSQL*PLUSと思っていいのかな?
SQL*PLUSじゃなくて、今はJDeveloperを使ってます。 PHPなどのWebアプリに落とし込んでます。 実装すると英語ですけど、同内容のアラートがでます。
>>188 もしかしてDBへの接続はJDBC Thin Driverとかかいな?
その辺りでDate型の問題がかなりあったような・・・?
どこに行けばいいのか分からず迷い込んできました。 これからOracleを導入しようと思っているのですが、 御値段は御幾ら位なのでしょうか? もし、スレ違い板違いであれば、誘導して頂けませんでしょうか? 宜しくお願い致します。
Windowsなんですが、500万なんですか??
193 :
NAME IS NULL :04/09/25 15:11:01 ID:KeMUv/28
>>192 それはCPU1つだけの場合のライセンス価格。
CPUが2つなら2倍、4つなら4倍しろ。
あとサポートサービスにもちゃんと金払わないとパッチ手に入らないぞ。
>>192 機能を抑えたStanderd Editionなのか、それとも全機能が使えるEnterprise Edition
なのかでも値段は変わる。
あとはユーザー数に応じたライセンス形態もある。
まあ総じて言える事はボラクルは高いという事だ。
確かに高い これでも安くなったんだろうけど このままじゃ自然と他に流れてって ユーザが減ったあとで後手後手で安くして 利益がなくなってあぼーんって流れとよむ
WindowsをShutdownしたら、自動的にOracleもshutdown immediateされるの?
197 :
NAME IS NULL :04/09/26 22:26:41 ID:JflQZjV2
>>196 デフォルトは、そうだったと思う。
Oracle9iAdministration Assistant for Windows NT ってやつで、
Oracleサービス停止時のアクション(停止モード)を設定すること
ができる。
トライアル版をDLする際のアンケートで、 「導入の予定は無い」と答えた次の設問で 「導入予定システムの使用人数」を答えさせるって一体・・・
>>197 私もそう聞いたのですが実際には
OracleがShutdownされてませんでした。
Win鯖2k+Oracle9i
Shutdown Abortも無し。電源断と同じジャン!
10gはどうかなぁ。
200 :
200 :04/09/29 02:36:25 ID:???
>>199 なにか理由があったんじゃ。
普通は shutdown immediate になるはず。
>>199 OS停止時には、サービスの停止しか行わないから、
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx\ORA_sid_SHUTDOWNが
TRUEに設定されていない限り、"サービス停止" = "インスタンスダウン"になり、
実質的に電源断と同じです。
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx\ORA_sid_SHUTDOWNが
TRUEに設定されていると、サービス停止時にインスタンス自動停止が実行されますが、
この機能はあまり信用しないほうが無難です。
>>201 んだんだ、DBはマニュアルでちゃんと停止すべきだ。
203 :
196 :04/09/30 00:23:31 ID:???
おれは10gだけど、
>>197 が言ったAdministration Assistに設定があった。
デフォルトはなんだか忘れたが、shutdown immediateに設定できるよ。
204 :
NAME IS NULL :04/10/02 00:57:53 ID:2QoqSQcr
突然Perlのモジュールがインストールできなくなった原因はOracle10gだった。 まさかOracleが原因なんて思わないから何時間も悩んださ。 サーバならまだしもPersonalEditionでユーザの既存環境壊すか? 相変わらずクソだなオラクル
じゃあ使わなきゃ良いのに(プ
206 :
NAME IS NULL :04/10/02 09:10:10 ID:7uCo7Wjt
OS起動したとき、異様に重いのって メモリ不足なのかな?
207 :
NAME IS NULL :04/10/02 17:02:55 ID:nt6D3OmK
>>206 多分ね。
Swapしちゃってんじゃないの?
窓とかだったら、DB関係の色々なサービスが立ち上がるからさらに
遅かったりするけどね。
>>204 Oracle様はエンタープライズ顧客がメインターゲットなので
専用機を用意できないような貧乏人は相手にしません
209 :
NAME IS NULL :04/10/03 19:51:27 ID:4gS4zlic
oracle8.1.7で質問です。 OUIでインストールする際にインストレーションタイプを Typicalでインストールしました。 その場合、ProductLanguageがEnglishのみインストールされるみたい ですが、この状態だと日本語のデータが扱えなくなるんでしょうか? それとも、日本語メッセージが表示できなくなるだけですか?
>>209 > それとも、日本語メッセージが表示できなくなるだけですか?
こっちです。
データベースに格納されるデータのマルチバイト・キャラクタセットは、
CREATE DATABASE時に指定したデータベース・キャラクタセットによります。
211 :
NAME IS NULL :04/10/04 01:43:45 ID:oRk2+3iU
>210 回答有難うございます。
212 :
NAME IS NULL :04/10/06 16:20:50 ID:sxOqfpdR
ボラクル10g Age
v$archived_logのarchivedの値が「YES」になっているものは アーカイブ済みのログファイルだと考えていいのでしょうか? また、「NO」になるようなケースはあるのでしょうか (例えばログを吐き出している等)? それとも、v$archived_logに書き込まれるものは基本的に アーカイブ済みのものなのでしょうか?
>>213 アーカイブ済みと考えて言い。
RMANはこの値が「Yes」になっているものをバックアップする。
それとこの値が「No」になる事はない。
実際にアーカイブが走っている最中のlogはv$archived_logには
載らない。
それを知りたければv$logの方を見るべき。
>>214 そんな意地悪言いなさんな。
Oracleの質問はここですればいいですか? 今、ファイルを読み込んでテーブルに格納するというプログラムを作っているのですが、 UTL_FILE.GET_LINEを使用してレコード(400バイト程度)を読み込む、または 文字列を連結して255文字以上の文字列を生成するとORU-10028が発生します。 レコードの読み込みはUTL_FILEを使えば1022文字までは読めるはずだと思うのですが・・・ また、どこにも使用していないのにエラーメッセージに「DBMS_OUTPUT」と 表示されているのも気になります。 解決方法等ありましたらご教授いただけないでしょうか? 環境はOracle8.1.7+NT 4.0(古い・・・)です。
SQL*LOADERでやればいいのに・・・
218 :
NAME IS NULL :04/10/08 18:55:39 ID:WCPxmI6u
お前らOUIのレスポンスファイルの書き方教えろや!! 情報少なすぎんだよオラァ!!
BLOB型からの読み出しが遅くてたまらん。 80KB/sぐらしか出ない。 10gでThinドライバつかっとる。CPU負荷はスカスカ。 BLOBにスピード求めちゃいけないの? それともチューニングの方法でもある?
Oracle10g上でrmanを何も設定せずにbackup databaseと打ちました。 これってどこにバックアップされているんですか?? show allすると、こんな感じです。 using target database controlfile instead of recovery catalog RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
>>220 「db_recovery_file_dest」が設定されていたら、そこに行くだろうし、そう
じゃなければ「$ORACLE_HOME/dbs」ってとこじゃないのかねぇ?
通常は自分でファイルの吐き先を指定する事が多いから、あんまり
考えたこともなかったが・・・。
222 :
NAME IS NULL :04/10/11 18:58:37 ID:Jaty5rwm
質問させてください トランザクション開始前に Rollbackとするとエラーになりますが これをエラーにならないようにはできないでしょうか? もしくはトランザクション開始中かそうでないかを 取得することはできますか?
>>222 初っ端にrollbackを打ったけどエラーなんか発生しないぞ?
------------------------------------------------------------
$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.5.0 - Production on Mon Oct 11 12:03:04 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.5.0 - Production
SQL> rollback;
Rollback complete.
SQL>
Oracle てメジャーなDBMSなのに、まだ2スレ目なんだな。
>>223 SQL Plus での話では無いだろ。
プログラムを組んだ時の話をしているんだろ。
>>222 Oracle へは、どうやって接続しているの?
oo4o? それともADO?
226 :
222 :04/10/11 21:57:00 ID:???
>>223 ,225
すみません。
oo4oでの話でした。
sqlplusだとエラーにならないですね。
てっきりoracleのせいだと勘違いしてしまいました。
もしoo4oでの回避方法をご存知でしたら
教えていただけないでしょうか。
>>226 BeginTrans メソッドが実行されているかどうかを知る方法はないみたい
だから、自分で明示的にBoolean の変数を作成して、BeginTransされて
いたらそいつをTrueにして制御するというのが楽でいいんじゃないんかな?
228 :
NAME IS NULL :04/10/11 23:17:34 ID:vFw2/fae
「ORACLE9iデータベース入門」という本の 30日間トライアル版のOracle9i Database Release 2(9.2.0)を インストールしようとしているのですが、 kernel-headersというパッケージがインストールされている必要が あるらしいのですが、僕の環境には入っていませんでした。 そこで、本書の指示に従い、LinuxのCD-ROMから インストールしようとしたのですが、CD-ROMにこのパッケージは 入っていませんでした。 RedHat Enterprise Linuxを使っているのですが、 Webでドキュメントもなかなか見つかりません。 誰かご教授お願いできませんか? #uname -mrs Linux 2.4.21-4.ELsmp i686 #uname -a Linux ccapt225.bkc.ritsumei.ac.jp 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2 003 i686 i686 i386 GNU/Linux
230 :
NAME IS NULL :04/10/11 23:31:16 ID:x9CuXO0q
Solaris9 x86 マシンに、 10gの勉強しようと思ってインスコしようとしたら、 要件確認で、64bitじゃないとだめみたいなことが マニュアルに書いてあるんだけど、32bitぢゃだめなんでしょうか?
231 :
228 :04/10/11 23:41:00 ID:vFw2/fae
>>229 返信ありがとうございます。
インストールCDに入ってませんでした。
上記した通りRedHat Enterprise Linuxなのですが、
例えば、RedHat 9等の、kernel-hedersパッケージでも
いけたりしますか?
>>231 取り合えず9iと10gが動いているRH AS3.0で「rpm -qa |grep -E '(kernel|header)'」で
見てみたのが以下の結果。
kernel-utils-2.4-8.37.3
kernel-2.4.21-4.EL
glibc-kernheaders-2.4-8.34
kernel-smp-2.4.21-15.EL
kernel-smp-2.4.21-9.0.3.EL
kernel-2.4.21-9.0.3.EL
glibc-headers-2.3.2-95.20
kernel-smp-2.4.21-4.EL
kernel-source-2.4.21-15.EL
kernel-pcmcia-cs-3.1.31-13
kernel-2.4.21-15.EL
glibc-kernheadersというのは入っているけど、kernel-headersという
パッケージは無さげなんだけど・・・?
本当に必要なんかいな?
233 :
228 :04/10/11 23:55:31 ID:vFw2/fae
>>232 RedHat ELでは、kernel-headersの代わりに
glibc-kernheadersというパッケージが入っていると、
どこかのWeb Documentで見たのですが、
kernel-headersが本当に必要ないのか、わかりません。
必要ないのですかね?
234 :
216 :04/10/12 00:04:48 ID:???
>>217 事情があってUTL_FILEでやらないといけないのです・・・
裏で何かがDBMS_OUTPUTを実行しているんでしょうかね?
>>233 こんな記述があった。
-------------------------------------------------------------
On RHELAS2.1 system, the binutils and gcc RPMs will be missing
if you did not select the "Software Development" package group
during the "RedHat 2.1 Advanced Server" installation.
To satisfy dependencies, execute the following command:
su - root
rpm -ivh gcc-2.96-108.1.i386.rpm \
binutils-2.11.90.0.8-12.i386.rpm \
cpp-2.96-108.1.i386.rpm \
glibc-devel-2.2.4-32.11.i386.rpm \
kernel-headers-2.4.9-e.3.i386.rpm
-------------------------------------------------------------
でもって、手元にあるRH AS 2.1を見てみたら確かに入っていた。
[root@xxxxx root]# rpm -qa |grep -E '(kernel|header)'
kernel-smp-2.4.9-e.40
kernel-2.4.9-e.40
kernel-utils-2.4-6.1.EL
kernel-headers-2.4.9-e.40
kernel-source-2.4.9-e.40
赤帽2.1ならいるけど、3.0はいらねぇんじゃないのかね〜?
236 :
228 :04/10/12 00:24:26 ID:I7mpU+zQ
>>235 そこまで調べていただけるなんて、ありがとうございます!
ですが、Enterprise Linuxは、ASとESとWSがありまして、僕のはESです。
ですが、glibc-kernheadersが入っているので、kernel-headersは
要らないのかもしれません。
インストールしてみます。
ありがとうございました!
238 :
228 :04/10/12 00:41:42 ID:I7mpU+zQ
>>237 すいません、色々と。
今の環境でダメだったら、そっちのディストリを使ってみます。
どうもっす!
239 :
222 :04/10/12 09:17:53 ID:???
>>227 ありがとうございますー!
おっしゃるようにグローバルな変数を持つか
エラートラップするかで対応しようと思います。
240 :
NAME IS NULL :04/10/12 16:58:16 ID:ZN9jslfk
WindowsNT から Windows2003Server に Oracle9i(9.0.1.0.0) を EXP/IMP でマシン移行したのですが レプリケーション関連がどうもうまくいきません。 そこで OTN に行ってみたら Oracle 9i Release 2 Database Server Patch を見つけて 「Oracle9i Database Release 2をWindows Server 2003 で お使いいただくにはこちらのパッチの適用が必要です。」 とあったのでダウンロードまではしたのですが、 READMEをみると (9.2.0.1.0) のパッチ と書いてあるような雰囲気があります。 これは (9.0.1.0.0) しか持っていない場合は (9.2.0.1.0) を 買わなければ Windows2003Server では Oracle9i は 動かない事を意味しているのでしょうか?
>>240 9iR1からR2へはライセンス上のアップグレードは発生しないと思ったが?
単にR2へのパッチを当てれば使えるはず。
>>240 つーか、今時バグだらけの9iR1を使っている人がいるとはちょっと驚き。
とっくに皆R2へアップデートしてたと思ってたよ。
243 :
NAME IS NULL :04/10/12 20:26:01 ID:ZN9jslfk
>>241-242 そうなんですか、てっきりR2を買わなきゃいけないのかと思っていました。
R2へのアップグレードパッチ、探してみます。
ありがとうございました。
>>230 Solarisが今手元に無いから分からん(;´д`)
でも見てみる限りだと、x86版をダウソすればいけるんでねぇの?
245 :
MANE IS NULL :04/10/13 00:14:48 ID:TzEGj4P7
246 :
NAME IS NULL :04/10/13 22:50:42 ID:dGEQAZRW
OTN見たんだけど、Oracle 8.1.5 Linux のインストレーションガイドってないの? OTN掲示板見ると、存在してたっぽいんだけど。 昔はあったのだろうか。
>>243 9i R1からR2へアップグレードさせるパッチなんてあるわけ無いだろ。
R1の最新パッチは 9.0.1.5 ちょいだ。
248 :
NAME IS NULL :04/10/13 23:45:05 ID:gz9m/8W1
>>243 R1からR2へのアップグレード手順としてはこんな感じ?
1. Oracle 9iR2のインストレーションCDをゲッツする。(OTNからダウソしてもいい)
2. DBのコールドバックアップを取る。
3. 9iR2を既存のR1とは別のORACLE_HOMEにインスコ。
4. DBをマイグレーションモードにて起動。
sqlplus> startup migrate;
5. 「u0900010.sql」を流す。
sqlplus> @?/rdbms/admin/u0900010.sql
6. 「cmpdbmig.sql」を流す。
sqlplus> @?/rdbms/admin/@cmpdbmig.sql
7. DBを再起動する。(shutdown abortは使わない様に!)
8.「utlrp.sql」を流す。
sqlplus> @?/rdbms/admin/utlrp.sql
って、とこか?
もしくは9iR2のバイナリをインスコを入れた後に「DBUA」を使ってアップ
グレードした方がGUIで、流さないとならないSQLも漏れなく実行
されて簡単に出来るかも知れん。
250 :
NAME IS NULL :04/10/14 01:21:34 ID:8CebjC+w
>>250 こんな記述がMetalinkにあった。
"Please note that Oracle 10g RDBMS no longer has 32bit software available for Solaris."
つまりSolarisの32bitはアボーンされたということみたいで・・・。
252 :
NAME IS NULL :04/10/14 23:29:03 ID:v3i3ZiEp
すみません。 PL/SQLですが、 カーソルのフェッチ途中でコミットは御法度でしょうか? カーソルのレコードを指定件数フェッチしたら、 カーソル自体を更新して(WITH指定含む)コミットすることは可能ですか?
ORACLE10gをRedHatAS3にインストールして、 pro*cで作成したプログラムをmakeしたところ "__ctype_b"が未定義とでます。 対処法を教えてください。
>>253 端っからボラクルのエラーと決め付けるの如何なものかと・・・。
そのプログラム、どのプラットフォーム(O/SのVer)上で作成した?
glibcのVersionの違いから全く同じ事が以前に起きたんだが・・・?
255 :
NAME IS NULL :04/10/15 11:02:12 ID:vvLhTiR7
基本的な質問をさせてください。 PHP+PostgreSQLからの移行なのですが 文字列をインサートするときのエスケープは シングルクォーテーションを二重にするだけでしょうか?
256 :
NAME IS NULL :04/10/15 11:25:46 ID:11LkM/Pb
すみません、VALUEファンクションの使い方がわからないので 教えていただきたいです。たとえば・・・ SELECT VALUE(e) FROM temp1 e * 1行でエラーが発生しました。 ORA-00904: 列名が無効です。 となってしまいます。 マニュアルにある通りにやってるつもりなのですが 何がいけないのでしょうか?
いつになったらストアドで SELECT文の結果セットを 返すことが可能となりますか? 10gでは可能?
>>255 良く分からんが「'」をエスケープしたいのか?
だったら「'''」を使えばいいよ。
SQL> create table hoge (boge varchar2(10));
Table created.
SQL> insert into hoge values ('''Alohaboe''');
1 row created.
SQL> insert into hoge values ('\BogeHoe');
1 row created.
SQL> select * from hoge;
BOGE
------------------------------
'Alohaboe'
\BogeHoe
>>256 VALUE関数って、空値でない最初の値を求めるという汎用機などで
よくあるあれですか?
すいません、それって本当にOracleのマニュアルですか?
それとも単に漏れが無知なだけ?
>>256 >>259 空値でない最初の列に別の値を入れるというのなら、OracleだったらNVLか
もしくはcolesceになるんじゃないかと思うのだが、違う?
SQL> select * from hoge;
NO LAST_NAME
---------- ------------------------------
1 Hoge
2 Boge
3 <= これがNull
4 Boe
SQL> select no, coalesce(last_name,'hogeboe') from hoge;
NO COALESCE(LAST_NAME,'HOGEBOE')
---------- ------------------------------
1 Hoge
2 Boge
3 hogeboe
4 Boe
262 :
NAME IS NULL :04/10/16 15:09:24 ID:6HnNI/C2
済みません質問です。 Oracle JDeveloper 10gで普通のSwingアプリケーションを作成したのですが、 別のマシンで動かすには何をすればいいですか? JDevのインストーラ作成機能とか、配付機能をヘルプから探したのですが、 見つからなくて・・・
263 :
NAME IS NULL :04/10/16 15:45:28 ID:6HnNI/C2
>>262 てけとにデプロイとかいうのしたらでけた
メモリ2GのWindows2000SVにoracle9iをつんだらおまいら、oralceにどれぐらい使わせてあげますか? dbブロック場と共有SQLどれぐらいとりますか?
>>264 んなデータ量に依存された質問されてもなぁ?
OASもここでOK? Vine-3.0にOAS9i入れようとすると最低64MBメモリ必要!って出て 弾かれちゃいます。RAM512MB載ってるのに。。
267 :
NAME IS NULL :04/10/17 17:28:57 ID:T+Sk8R3N
質問です。 今日10gのトライアル版をダウンロードしてきたのですが、 10日を経過すると使えなくなってしまうのでしょうか? よろしくお願いします。
268 :
NAME IS NULL :04/10/17 17:35:56 ID:T+Sk8R3N
↑↑↑ 30日の間違いです。。。
269 :
NAME IS NULL :04/10/17 18:46:14 ID:APZSdsym
270 :
NAME IS NULL :04/10/17 19:13:26 ID:T+Sk8R3N
>>269 ありがとうございます。
紳士規定に基づき、30日で使用をやめたいと思います。
271 :
NAME IS NULL :04/10/17 19:41:52 ID:APZSdsym
>>270 いや、その別にライセンスさえ買って貰えればそのまま使い続けて
貰って全然構わんのだが・・・?(;´д`)
紳士協定かぁ・・・・ 中国人や韓国人には、通用せんな。
>>261 ストアド内でのSlect文を
MSSQL、Sybase(T-SQL)
のように、レコードセット(JavaならResultSet)で
返すことが可能な機能のことを言っていると思う。
ストアドパッケージでカーソルを返したり レコード型を返してやれば良いだけであ?
>>274 それは、Oracle内のストアド間だけでは?
カーソル変数をOUTPUTパラメータでの宣言のみだったから ADO(RecordSet)とか、JDBC(ResultSet)では受け取れないよね。(たしか) (だからPL/SQL表を受け取ることができるか?等の質問が多くある) T-SQLならはSELECT文をそのまま書けば(たとえ複数行返ってきても)、 DB2だとOpenさせたままコードを終了させればできる(はずだった)けど。
277 :
NAME IS NULL :04/10/18 15:38:44 ID:H1NN2Y2O
1,yamada 2,tanoka 3,sato 2,tanaka たとえばこういうデータ(1つめがPKで2つめが名前)を SQL*Loader で流し込んで, 1,yamada 2,tanaka (←後者が採用されている) 3,sato としたいのですが, これをスマートに行うにはどうすればどうすればいいのでしょうか? REPLACE モード使えばいいのかな・・・と思ってたら, どうやら用途が違うっぽいので,詰まりました・・・
オラクルラーな人たちに質問です。 今、HOGEというインスタンスがあります。 それでこのHOGEというインスタンス内にある ユーザーデータテーブル全てを 別のインスタンス(HAGE)に置いて参照したいのですが、 可能でしょうか? その手順は HAGEというインスタンスを作成する ↓ インスタンス作成時にユーザーデータファイルを HOGEと同じ名前で作成する ↓ データファイルをHOGEからコピーする でいけますかね? ご教授お願いします。
>>278 んな面倒な事しないで「database link」使えばいいじゃん?
280 :
278 :04/10/18 17:51:12 ID:???
>>279 ある時点でのバックアップを参照したいらしいので、
dblinkでは今現在のデータが見えてしまうので・・。
>>280 だったらSNAPSHOTを使えばよろし。
SNAPSHOTのREFRESH間隔を設定すればまさしくその目的で使えるべ?
>>277 スマートな方法かどうかは分からんが、ViewとTrigerの組み合わせで
なんとかはなる。
1. 表の作成
Create Table HOGE (
ID NUMBER(10) PRIMARY KEY,
NAME VARCHAR2(15));
2. Viewの作成
Create View HOGE_UPDATE_VIEW As
Select * From HOGE;
3. Triggerの作成
Create Or Replace Trigger UPDATE_VIEW_INSTEAD_OF
Instead Of Insert On HOGE_UPDATE_VIEW
Begin
Update HOGE set
NAME =:NEW.NAME
Where ID = :NEW.ID;
End;
/
4.hoge表にデータを流し込むSQL*LOADERのコントロールファイル「hoge.ctx」を作成
load data
infile 'hoge.dat'
append
into table HOGE
fields terminated by ',' optionally enclosed by '"'
(id char(10),
name char(15))
5.流し込む元データ「hoge.dat」の中身。 1,yamada, 2,tanoka, 3,sato, 2,tanaka, 6. データローディングを実行 sqlldr userid=scott/tiger control=hoge.ctx .Primary keyが設定されているので、当然「hoge.bad」の中に 「2,tanaka,」がはじき出されている。 7. 「hoge.bad」を「HOGE_UPDATE_VIEW」に流し込むコントロールファィル「hogeupd.ctx」を作成 infile 'hoge.bad' append into table HOGE_UPDATE_VIEW fields terminated by ',' optionally enclosed by '"' (id char(10), name char(15)) 8.「hoge.bad」をSQL*LOADERを使って流し込む sqlldr userid=scott/tiger control=hogeupd.ctx 9. 確認。 SQL> select * from hoge; ID NAME ---------- --------------------------------------------- 1 yamada 2 tanaka 3 sato
>>283 すまん、7番の「hogeupd.ctx」の所で最初の一行が抜けていた。
正しくは・・・
load data <=こいつが抜けていた
infile 'hoge.bad'
append
into table HOGE_UPDATE_VIEW
fields terminated by ',' optionally enclosed by '"'
(id char(10),
name char(15))
ユーザーデータテーブルスペース Aの中身を テーブルスペース Bにコピーするには どうしたら良いのでしょうか? ご教授おねがいします。
>>285 ALTER TABLE hoge MOVE TABLESAPCE hogeboge;
表の移動後は索引の再作成を忘れずに!
287 :
NAME IS NULL :04/10/18 19:00:38 ID:H1NN2Y2O
>>282-284 やはり trigger になるのね・・・
こういった機能要件ってかなりあると思うのだが、
皆さんこういう面倒くさい事をするのだろうか。
でも instead of すっかり忘れてましたw
ありがちょ。
でも trigger なんて誰も管理できなさそうなので、
アプリフローを見直す事にしたよ。
>>287 triggerを使わなくても出来るのかも知れんのだけどね。
単に漏れが無知なだけでもっと他にも良い方法があるのかも・・・?(;´д`)
>287 ファイルひっくり返したらダメなのか
290 :
NAME IS NULL :04/10/18 23:24:19 ID:KX5ApixV
Oracle10g には、今まで同様、JavaのEnterpriseManagerってついて ないんですかね。クライアントにしかない? DB自体とクライアントって同じマシンにいれれるのかな?
OEMってまともに使ったこと無いけど、 みんな活用してる?
>>292 10G OEMは今までと比べ物にならない程使えるようになった。
294 :
285 :04/10/19 10:07:59 ID:???
コマンド ALTER TABLE 表名 MOVE TABLESPACE 表領域名; でユーザーテーブルスペースを別のユーザーテーブルスペースに コピーした時って、テーブルに付いているユーザー名ってどうなります? 例えば表領域Aがユーザー名hogeに割り当てられてて、 表領域Bにユーザー名hageがいた場合、 hoge.aテーブルを表領域Bにコピーした場合、hage.aになるんですか? ご教授おねがいします。
295 :
694 :04/10/19 11:11:08 ID:???
>>695 えっと表の列の項目が30個ぐらいあるのですが、
その方法だとやたらSQL文が長くなるのですが・・・・。
296 :
295 :04/10/19 11:11:48 ID:???
すみません誤爆しました
インスタンスの名前を変更したのですが、SQL*PlusでSELECTを実行した際に下記のような表示になって困っています。 OracleのバージョンはOracle8i Release 8.1.7.0.0です。 <インスタンス名変更前> SQL> select 'BBBBBBBBB',count(*) from X 2 / 'BBBBBBBBB' COUNT(*) ------------ --------- BBBBBBBBB 0 || \ / こうなってしまう。 \/ <インスタンス名変更後> SQL> select 'BBBBBBBBB',count(*) from X 2 / 'BBBBBBBBB' COUNT(*) --------------------------- ---------- ← 何故幅が広く? BBBBBBBBB 0 掲示板だと半角スペースが省略されてしまうので全角スペースを使って表現しています。 フィールド名、または結果文字列の長さで結果を表示して欲しいのですが、例のように余分なスペースが入ってしまいます。 インスタンスを変更する前はこんなことは無かったのですが、どうすれば結果表示のフォーマットを変更できるのでしょうか? SQL*Plusのマニュアルにはデフォルトの表示が上の例のようになると書いてありました。 特にSQL*Plusの設定は変えてないのですが... どなたかわかる方宜しくお願いします。
298 :
NAME IS NULL :04/10/19 15:22:51 ID:sH6SzGXp
すみません。 一度上げさせてください。
299 :
NAME IS NULL :04/10/19 15:26:53 ID:34u9Qvmg
>>294 もしかして表領域とユーザースキーマとを混同してたりしないか?
300 :
NAME IS NULL :04/10/19 15:28:49 ID:34u9Qvmg
>>297 インスタンス名の変更って、一体どうやったの?
ctlファイルの再作成?
それともexp/imp?
やたらめったらやる事ではないんだけど?
本当にインスタンス名の変更?
301 :
297 :04/10/19 16:27:07 ID:sH6SzGXp
>>300 最初に予定していたインスタンス名が変更することになったので、別に新しくインスタンスを作成しました。
その後表領域などを作成して、exp/impで復元しました。
要するに新規でインスタンスを作成してデータベースが起動できるようになるまでの作業を実施しました。
一時的に二つのインスタンスが立ち上がるようになっていましたが、現在はoratabで切り替えられるようにして、新しい方のインスタンスだけ立ち上がるようにしています。
インスタンスの名前だけ変更することってできるんですかね?
というか、
>>297 の回答をお願いします。
>>301 回答も何もそれがSQL*PLUSのデフォルトの動きだし?
むしろ何で前がそんな動きになっていたのか分からん。
なんかFunctionでも使っていて、それがexp/impで移植されてないんじゃない?
DB名の変更はctlファイルの再作成が簡単。
SQL*PLUS> alter database backup controlfile to trace; でudumpに出力された
コントロールファイル作成用のscriptの中で「CREATE CONTROLFILE REUSE ... 」の
部分を「CREATE CONTROLFILE SET <新規DB名>」に変更すればいい。
303 :
NAME IS NULL :04/10/20 00:26:01 ID:rBAmFzmV
windows2000server + oracle9iR2 のDBサーバをAAドメイン内に構築しているのですが、 クライアントからSQL*PLUSで接続(ユーザ名/パスワード@インスタンス名で)する際、 AAドメインにログインしていなくても接続できてしまうのですが・・・。 AAドメインにログインしている場合のみ接続可能にするにはどうしたら良いのでしょうか? どなたかご教授お願いします。
>>303 以下のレジストリ値は「TRUE」になってんかいな?
\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OSAUTH_PREFIX_DOMAIN
305 :
NAME IS NULL :04/10/20 07:54:05 ID:0lFU6NIQ
「ORA-00020最大プロセス数を超えました」のエラーが出たため init.oraにprosses=1280を追加したのですがまたエラーになってしまいました。 v$resource_limitを調べるとLIMIT_VALUEは1280に変わっているのですが MAX_UTILIZATIONは変更前と変わらず300で 頭打ちになりORACLEへの接続ができなくなってしまいます。 何が原因でプロセス数の上限が決まってしまうのでしょうか? またどうやったらプロセス数の上限を増やせるのでしょうか? OSはWindows2000でOracle8.0.5です。 一台のマシン上でIISとORACLEを稼動させたときは 上手くいっていたのですが、IISとORACLEを別々のマシンに 分けたら現象が発生するようになってしまいました。 どなたかご教授をお願いいたします。
306 :
297 :04/10/20 10:14:46 ID:ZuUsTirQ
>>302 現在も同時に二つのインスタンスを立ち上げることは可能な状態なのですが、
不思議なのは元のインスタンスに接続すると、
SQL> select 'BBBBBBBBB',count(*) from X
2 /
'BBBBBBBBB' COUNT(*)
------------ ---------
BBBBBBBBB 0
と表示されるのですが、新しいインスタンスに接続すると、
SQL> select 'BBBBBBBBB',count(*) from X
2 /
'BBBBBBBBB' COUNT(*)
--------------------------- ----------
BBBBBBBBB 0
のような表示になってしまうことです。
インスタンス毎にSQL*Plusの設定は存在するのでしょうか?
その他の違いとしては元のインスタンスはインストールの時のデフォルトデータベースを修正して構築したのに対して、
新しいインスタンスはコマンドラインベースで作成しました。
書き忘れていましたがOSはSolaris8です。
宜しくお願いします。
307 :
297 :04/10/20 10:41:06 ID:ZuUsTirQ
新しい方のデータベースを構築する際に、以下のsqlを実行しています。 @.../product/8.1.7/rdbms/admin/catalog.sql @.../product/8.1.7/rdbms/admin/catsnmp.sql @.../product/8.1.7/rdbms/admin/catexp7.sql @.../product/8.1.7/rdbms/admin/catproc.sql connect system/manager @.../product/8.1.7/rdbms/admin/catdbsyn.sql @.../product/8.1.7/sqlplus/admin/pupbld.sql ... ※ connect internal @.../product/8.1.7/rdbms/admin/caths.sql @.../product/8.1.7/rdbms/admin/oramts.sql もしかして ※ のSQLを実行したのがまずかったのでしょうか? sqlplusのディレクトリにあるのが怪しい感じです。
308 :
297 :04/10/20 10:59:28 ID:ZuUsTirQ
連続書き込みすみません。
>>307 の中身を確認しましたが、関係なさそうでした。
ちなみに内容は以下の通り。
sqlplus_product_profileというテーブルを作成しているようですが、何のためのテーブルなんでしょうか。
drop synonym product_user_profile;
create table sqlplus_product_profile as
select product, userid, attribute, scope, numeric_value, char_value,
date_value from product_user_profile;
drop table product_user_profile;
alter table sqlplus_product_profile add (long_value long);
create table sqlplus_product_profile
(
product varchar2 (30) not null,
userid varchar2 (30),
attribute varchar2 (240),
scope varchar2 (240),
numeric_value decimal (15,2),
char_value varchar2 (240),
date_value date,
long_value long
);
drop table product_profile;
drop view product_privs;
create view product_privs as
select product, userid, attribute, scope,
numeric_value, char_value, date_value, long_value
from sqlplus_product_profile
where userid = 'PUBLIC' or user like userid;
grant select on product_privs to public;
drop public synonym product_profile;
create public synonym product_profile for system.product_privs;
drop synonym product_user_profile;
create synonym product_user_profile for system.sqlplus_product_profile;
drop public synonym product_user_profile;
create public synonym product_user_profile for system.product_privs;
>>297 一体、何が問題で困ってるのかサパリわからん。
>>309 要約するとこういうことらしい。
用件定義が変更になったので、新たにDBを再作成してFull Exp/Full Impして
データを移し変えましたと。
でもって、以前のDBの場合、SQL*PLUSを使って接続すると、どういう訳かは
知らないけど、出力結果がカラムのサイズで表示されてましたと。
ところが新しいDB側ではSQL*PLUSがデフォルトの動きに戻ってて、出力結果が
カラムのサイズではなく、スペースで埋められて表示されてしまいましたと。
でもって結論から言えば「そんなん知らんがな。それが正常な動きだ。」なんだ
けどね?
>310 それは判るんだけど、それで何が困るのかがワカランのが何とも。 カラムサイズが気に入らなければ自分で設定し直せば良いし。
>>306 まあ、可能性としたらあれだな。
8.1.7ではFull Exp/Full ImpだとSYSのオブジェクトはインポートされないという事だ。
何らかのファンクションかプロシージャーかは分からないが、そいつがインポート
されてないんじゃないのかねぇ?
313 :
NAME IS NULL :04/10/20 19:57:39 ID:oY2Pax+f
314 :
NAME IS NULL :04/10/20 23:14:54 ID:rBAmFzmV
>>304 \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OSAUTH_PREFIX_DOMAIN
上記のレジストリ値は存在しないのですが・・・。
>>314 だからだべ?
無いなら取り合えず自分でキーを作って「TRUE」にセットしてみる!
>>308 「$ORACLE_HOME/sqlplus/admin」以下に「glogin.sql」というファイルはあるかい?
そこでデフォルトのカラムのサイズを指定していたりとかしていないかい?
カラムサイズがどーこーってたしかキャラクタセットの問題じゃなかったっけか PLUSのマニュアルかなんかに設定の方法が書いてあるってOTNで見た覚えがある・・・
318 :
297 :04/10/21 16:14:24 ID:s2wUZHG6
>>311 ソフト側がSQL*Plusの出力結果を読み込んで処理を行っているのですが、
諸事情によりソフト側の修正ができないのでSQL*Plus側の設定を何とかするしかないんです。
>>312 full exp/full impでインポートされないものがあるのかもしれませんね。
実は当方Oracle初心者でしてそれだとお手上げかも...
319 :
297 :04/10/21 16:18:29 ID:s2wUZHG6
>>316 glogin.sql はありました。
内容は以下の通りです。
かなり怪しい気がするので正常なものと比較してみます。
column ROWLABEL format A15
column LINE/COL format A8
column ERROR format A65 WORD_WRAPPED
column name_col_plus_show_sga format a24
column name_col_plus_show_param format a36 heading NAME
column value_col_plus_show_param format a30 heading VALUE
set pagesize 14
column id_plus_exp format 990 heading i
column parent_id_plus_exp format 990 heading p
column plan_plus_exp format a60
column object_node_plus_exp format a8
column other_tag_plus_exp format a29
column other_plus_exp format a44
320 :
297 :04/10/21 16:22:39 ID:s2wUZHG6
>>317 キャラクタセットの問題については全く知りませんでした。
情報ありがとうございます。
早速調べてみます。
>>320 下手なキャラクタセットにしていたら、DB再作成が待っているぞっと。
>>320 各インスタンスで
select * from SYS.V_$NLS_PARAMETERS;
の結果が違うんでないかい?
323 :
NAME IS NULL :04/10/21 18:34:21 ID:lnuIkD88
IBMのWindows2003serverのマシンを購入したのですが、 oracle9iを入れた後に再起動するとoracleに繋がらなくなってしまいます。 やもえずもう一度インストールしなおしましたが、設置場所を変える為に 一回落としたら又、oracleに繋がらなくなりました。 対処方ってあるのでしょうか?? それともWindows2003serverこういうものなんでしょうか??
>>323 繋がらないと言っても千差万別だし、とりあえずエラー内容でも載せてみそ?
325 :
NAME IS NULL :04/10/21 19:22:09 ID:lnuIkD88
はい、 こんなエラーで出てしまうんです、、、。 エラー内容 ORA-01034 ORACLE not available ORA-27101 shared memory realm does not exist
>>325 それはちゃんとインスタンスをあげてないだけちゃうんかと
問いたい、問い詰めたい、小一時間問い詰めたい・・・。
いつも思うんだけど、「共有メモリがありません」なんてわけ分からん エラーメッセージじゃなくてずばり「Oracleが起動してません」って 吐いてくれればいいのにね。
>327 もしかして、これが読めない? >ORA-01034: ORACLE not available
10gDBServerのインストールで質問です。 インストール中に「コンピュータ名が識別できない可能性があります」 の旨のメッセージが表示されてインストールが先に進みません。 3台インストールた結果は以下です XPPro ドメイン DHCP OK XPPro ワークグループ 固定IP NG また管理クライアントのインストール結果は以下です XPHOME ワークグループ DHCP NG 推測なのですが、10gのインストールはドメインに属する PCでないと出来ないのでしょうか? それとも別の原因? ワークグループでDHCPのマシンでインストールってできますか?
>>329 \\WINDOWS\system32\drivers\etc\hostsにインスコしようとして
いるPCのIP書いておけ。
それで問題なくインスコ出来るはず。
英語のメッセージが読めない人はIT業界で働くのは難しいですね
>330 要はDBサーバーにDHCP使うな、IP固定にしろってことですね
>>332 そういうこと。
昔からボラクルDBとDHCPとは仲良くないだよ。
>333ありがとうございます。 しかしクライアントセットアップでDHCPだと アウトというのは・・・・・ ゴミレス&雑談失礼
325>> 複数のインスタンスあげてるんじゃない? 共有するメモリが足らないんでしょ それか最大共有メモリ値が少ないか。
>>335 ちげぇーよ。
インスタンスが共有メモリー上に存在していない=DBが起動していないだよ。
もしくは環境変数で正しくORACLE_SIDがセットされてないとかな。
自動起動をONにしてないとかな
338 :
NAME IS NULL :04/10/22 11:20:33 ID:0RYlxmuS
323です。 インスタンスが自動で立ち上がらないんです、、、、。 自動起動はONになってるのですが、、、、。 オラクル再起動した後にDOS窓でコマンドを打たないとなぜか インスタンスが立ち上がらなくって、、、。 ORACLE_SIDって必要でしょうか?? 2000サーバーで8i使ってたころはその環境変数設定してなかったのですが、、、。
339 :
NAME IS NULL :04/10/22 11:42:49 ID:0RYlxmuS
323です。 ちなみに、OTNから落とした9iのパッチの当て方がさっぱり解らず パッチを当ててないままwindows2003サーバーを動かしてます。 これが原因でしょうか?? パッチを当てるマニュアルが入手できなくって当てれませんでした。
アラートログになんか出てないか?
>339 あんまりはっきり書いちゃうとまずいからヒントだけ。 oradim.logの中に何か出てるかもね。
342 :
いなむらきよし :04/10/23 01:08:35 ID:vtT94cT0
腹が立ってしょうがないキケー!
カタカナ→ひらがな の変換できるSQLの関数とかありますか? SQLでlikeを使って検索しています。 SQL中にはカタカナを使用して、テーブルにあるひらがなのデータを 検索したいのです。 DBは10gです
ないんじゃない?
345 :
オラクル初心者 :04/10/23 18:01:25 ID:XyIHxQN2
◎動作環境 OS :win98SE CPU :600MHz Memory:128MB ◎疑問点 1台のPCにOracle8iをインストールしたのですが、SQL*PLUSでログイン (system/manager)しようとすると、「ORA12560-プロトコルアダプタ・エラーです。」 と表示され、ログインできません。 なぜでしょうか?まったくの初心者で困っています。 ○Oracleバージョン ネットからDLしました。 【Oracle8i Workgroup Server for Windows NT/2000 R8.1.7 トライアル版】 「動作環境」では、Oracle8i Personal Edition R8.1.7で、win98SEのFAT32で可能となっています。 もちろん、FAT32ファイルシステムです。
346 :
NAME IS NULL :04/10/23 18:22:44 ID:FcWJwTk3
>>315 \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OSAUTH_PREFIX_DOMAIN
を作って「TRUE」にしてみたのですが結果変わりませんでした。
ちなみに、このキーはどこの設定で作成されるのでしょうか?
>>345 tnsnames.oraの記述が間違ってるんじゃない?
Oracleを9x系OSで、しかもたったの128MBで動かそうなんて…
>>348 Oracleって実はメモリショボくても「起動するだけ」ならでけるのか?
テスト用に自分とこに環境立ち上げようと思った事は何度もあったが
システム要件のメモリんとこにひっかかってあきらめてたんよ。
実はいける?
350 :
297 :04/10/25 16:57:10 ID:/sFe6lCq
glogin.sqlというSQLですが、このSQLはSQL*Plusが起動されるたびに実行されるのでしょうか? それとも手動で実行しておく必要があるのでしょうか? SQL自体は同じなのにインスタンスが違うと動きが異なる、 と言うことは新しいインスタンスで手動実行しておく必要があるということでしょうか?
351 :
NAME IS NULL :04/10/25 18:30:52 ID:e+KnVo0q
oracle9iのパッチの当て方が解らないんですが、 どなたかご指導お願いします。 setup.exeらしきものがまったく見つからないのです。
>>351 リリースノート、readme辺りの内容は確認しましたか?
それでも分からなければ、サポートに問い合わせるのが良いと思います。
>>349 「起動するだけ」なら128Mでもいける
メモリまわりのパラメータをいじる必要があるけど
せめて256Mあれば…
>>350 しつこい。
SQL*Plusなんてデータ閲覧用のツールなんだから、
それ以上を求めるなら自分でツール作るなりしろ。
せめて自分の意図を反映させたいパラメータくらい
自分で責任を持って設定しろ。
355 :
NAME IS NULL :04/10/26 00:35:43 ID:oue8ocut
>>353 ん?インストール中にメモリが足りませんてきなメッセージで
おこられるでしょ。 9i
356 :
NAME IS NULL :04/10/26 00:52:25 ID:75rAlZyk
357 :
NAME IS NULL :04/10/26 01:47:00 ID:AHzPa14H
SQLLoaderについて質問があるのですが、街頭するスレに誘導願います。
359 :
NAME IS NULL :04/10/26 07:57:41 ID:MzpJVQlL
360 :
297 :04/10/26 10:12:43 ID:???
>>354 厳しい言葉厳粛に受け止めます。
ただ今回の場合は自分でツールに手を入れることができないため、
どうしてもSQL*Plus側の設定で対応するしかない状態です。
自分としてはSQL*Plusの結果なんか使わず、
ソフトを組んでしまいたい気分ですが、そうもいきませんので.....
調べる時間が少しできたので再度自分で調べてみます。
Oracle9iでDBのテーブル更新(INSERTとかUPDATEとか)の履歴 を参照したいのですが、REDOファイルとアーカイブログファイルを利用すれば 良いと思うのですが、ここからどうすればいいのでしょうか? これらファイルを直接開いて人間が目で見ても分かるものなんでしょうか? それとも何かSQLコマンドを介して参照するものなんでしょうか? ヒントだけでもご教授ください。
>>361 随分気合の入ったことするな。
「LogMiner」で調べてみるといいよ。
>360 SQL*Plusの結果を統一したいのなら、SQL*Plusの マニュアル見れば全部やりたいことは書いてあるぞ。 薄いマニュアルなんだから、1,2時間ながめりゃ 全て解決できるだろう。 linesize pagesize trimspool column あたりを眺めれば いいんでないの?
365 :
NAME IS NULL :04/10/27 13:25:55 ID:23njgVzs
教えてください OracleでSEQUENCEの次の値を変更するには いちどDROPしてCREATEしなおすしかないのでしょうか? PostgreSQLのように setval みたいなことはできませんか?
366 :
NAME IS NULL :04/10/27 14:59:30 ID:88BXw0Xj
>>363 OUI220180と9203WIN2K3というパッチが当てれないんです、、、。
OTNから落としたものなんですが、、、、。
>>290 Client CDにOEM用のJava Console入っていたよ。
でもこれって9iのJava Consoleの流用みたいな気がする。
本当に10gの機能をフルに使うならば、やっぱウェブベースの方を使うしか
ないみたいだね。
オラクル8と8iの非互換について載っているサイトがあったら教えて下さい。
>>368 正確に知りたければMetalinkだろうな。
あとせめてどっちがクライアントで、どっちがサーバー側かぐらいは書いた方が
答えやすいと思うぞ?
370 :
368 :04/10/29 10:30:00 ID:???
すみません。 オラクルサーバの8を8iに上げるときに起こる非互換という意味です。
>>370 マイグレーションマニュアルだろうな。
廃止されたパラメーターとか載っているはずだよ。
後はMetalinkかOTNか?
372 :
NAME IS NULL :04/10/30 20:16:45 ID:5sQZ/IZC
すいません。 オラクルのインストールについてアドバイスいただけないでしょうか。 現在下記環境にてdbcaにてデータベースを作ろうとしているのですが 「ORA-27102: out of memory」 [ORA-01034: ORACLE not available] の二つのエラーがでてつくれない状況なんです。 なにが原因かわからなくて、 怪しそうなところあったら教えていただきたいとおもってます。 どうかお助けおねがいいたします。。。 ■ 環境 os SOLARIS8 sparc版 oracle 9.2.0.1 standardedition ■ インストールの作業 1.SOLARIS8のインストール 2.oracle9.2.0.1のインストールをしました。 ただしここではデータベースを作らずに終わりました。 3.次にdbcaでデータベースを作ろうとしたのですが、 作成途中に上のエラーがでて作成できませんでした。
>>372 ちゃんとO/Sのパラメーターは推奨値に変更したんかいな?
特にSHMMAXの値を疑って見るといいと思うぞ。
>>372 ハードのスペックかけ
特にメモリ重要。
256MB以上ないと無理。
>>372 /etc/systemの設定は大丈夫だよね?
376 :
NAME IS NULL :04/10/31 11:40:47 ID:Nc0cPEZ0
>373-374 さん レスありがとうございます。 ハードウェアのメモリは1GBつんでおります。 shmax=4294967295にしております。 一点気になってるところが、init.oraしかなくて、init[SID].oraファイルがないのですが これは問題ないのでしょうか?
378 :
372 :04/10/31 17:15:30 ID:Nc0cPEZ0
>> 377 さん レスありがとうです。 もう一点気になるところが、 ps -ef |grep ora_ をしてみるたのですが、 まったく何もうごいてないようなのですがこれは問題ありますでしょうか?
>>378 > ORA-01034: ORACLE not available
これが読めんのかね。
>>378 echo $ORACLE_SIDしてみ
381 :
372 :04/10/31 18:34:39 ID:Nc0cPEZ0
>>379 さん
オラクルが使えないってことですよね?
エラーメッセージ集では下記のようにかかれてました
ORA-01034 Oracle は使用できません。
原因: Oracle は起動していません。次の原因が考えられます。
割り当てた領域より多くの領域がSGA に必要になっている。
インスタンスを指定するオペレーティング・システム環境変数が正しく定義されて
いない。
処置: 付随するメッセージを参照して、原因を確認し、その他のメッセージで示されて
いる問題を修正してください。Oracle が初期化されている場合は、いくつかのオペレー
ティング・システム上で、Oracle が正しくリンクされていることを確認してください。
プラットフォーム固有のOracle マニュアルを参照してください。
インストールして、データベースを作る前にはora_***は動いているものなのでしょうか?
>> 380 さん
echoしてみると設定している変数が正しく返ってきます。
>>381 面倒だから、/etc/system と ~/.profile をここに貼り付けろ。
>>381 データベースとインスタンスは別なんだけど。
384 :
372 :04/10/31 20:31:24 ID:Nc0cPEZ0
>>382 、383 さん
一点まちがってるところにきづきました。。
/etc/systemの設定したあとにリブートせずにオラクルインストールしてました。。。
今からリブートしてからdbcaしても問題ないでしょうか?
それともオラクル入れなおしでしょうか?
/etc/system、profileは前回導入してうまくいったときと同じものなので大丈夫だと思います。
今手元になくて、はりつけれないです。
>>384 >今からリブートしてからdbcaしても問題ないでしょうか?
>それともオラクル入れなおしでしょうか?
やらずに質問するのはエスパー募集だからなのか?
それとも宗教的理由なのか?
386 :
372 :04/10/31 21:45:47 ID:Nc0cPEZ0
>385 やらずにきいてしまいすいません。 今できなくて、実際やるのは明日になるので、 oracleの再インストールが必要なら手順を調べておこうと考えまして 聞いてしまいました。
dbca はインストーラとは関係なく、いつ実行してもよい。 実行しなくても自分で CREATE DATABASE などが叩けるなら それでもいいだろう。
388 :
372 :04/10/31 22:08:01 ID:Nc0cPEZ0
>387 レスありがとうございます。 /etc/systemに設定する値がインストールの時に利用されるなら 再インストールする必要があるのかもと考えていました。 では一度再起動してdbcaを実行してみます。 ありがとうございました。
>>388 つーか、インストレーションガイドを読めよ。
390 :
NAME IS NULL :04/11/01 17:34:51 ID:aFVGFm6J
perl+oracle でプログラム書いています。 select P_G_ID, G_T, G_ID, CREDIBILITY from p_g_table where p_id=70 のようなSQLで3行かえって来るはずなんですが、 133,T,825,90 128,P,13,100 129,C,454, の様に3行目の最後のフィールドが空文字列になってしまいます。 DBに直接ログインして値が入っていることは確認しました。 うまくいく pattern_id もあります。 また、select P_G_ID, G_T, G_ID, CREDIBILITY, CREDIBILITY とやるとうまくいく みたいです。 perlDBIあたりのバグかなとも思っているのですが、 どなたか情報お持ちでしたら、教えてください。 環境は、 perl, v5.6.1 built for i386-freebsd OS はFreeBSD 4.8。 DBはsolaris8i windows だと思います(自分の直接の管理下ではないもので...)
perlなどという言語を使うのやめれば解決
392 :
NAME IS NULL :04/11/02 01:20:04 ID:dHKumjJN
v$session_waitにPX Deq CREDIT〜ってのが、 たくさん出ているのだがこれってなに?
393 :
NAME IS NULL :04/11/02 19:35:14 ID:VKYPqFQE
>>392 PX系はパラレルクエリーの待ち関係のイヴェントだったと思ったけど?
>>394 パラレル止めたら、消えたよ。ありがd!
396 :
NAME IS NULL :04/11/03 11:51:00 ID:C9uJK7mX
windowsドメインに参加したPC(WinXP)にOracle9を入れたのですが、 起動できません。 ちなみに、windowsドメインに参加しない状態でなら起動します。 windowsドメインに参加した状態ではOracleは動かないのでしょうか? そんなアホな、と思ってるのですが、知識不足のため苦慮しております。 「これを読め」など、ご指南いただければ幸いです。
398 :
NAME IS NULL :04/11/03 17:39:29 ID:rhHolyXp
もっとデータがいっぱいあるサンプルスキーマない? OTN見たけど、それらしいものはなかった。
Oracle10gでStrageGridを構成する場合、サーバの内蔵DASDで出来るのですか? 外付けのファイバーチャネルで接続したDASD群を構成しなくちゃいけないのかな。
400 :
NAME IS NULL :04/11/04 13:26:38 ID:r8MeVatb
質問させてください。 PHPでOCIを使ってOracleにアクセスしています。 検索ページの「○件中○件を表示」というページ制御をするために、 SELECTで取得したあとに たとえば11ページ目を表示する場合には 1ページあたりの表示行数x10ページ分、 OCIFetchを実行して空まわししたあとに、 表示すべきデータを取得してるのですが ページ数が増えれば増えるほど目に見えて遅くなってしまいます。 これを回避する方法はあるのでしょうか? PostgreSQLの場合は、SELECT文にOFFSETを 指定することができたと思いますが このようなものがOracleにはありませんか?
>>399 StorageGridっつーのは、ASMのことかいな?
だったら別に内臓でも出来るぞ。
ただし2 nodes以上のRACの場合は外付けになるとおもうけどな。
1 node RACだったら別に内臓でも出来たよ。
404 :
399 :04/11/05 08:37:24 ID:???
>>403 レスありがとうございます。>399です。
RACで複数node構成にした場合を考えておりました。
やっぱり外付けになりますか。なるほど。
しかし1nodeRACの構成にしておいて、後で性能不足が
あったらnodeを追加する方式も取れるみたいですね。
勉強になりました。
405 :
400 :04/11/05 10:47:31 ID:???
>>401-402 ありがとうございます
123さんの方法で劇的に早くなりました
order by も join も where も使ってるため
select hoge from
(select hoge <中略> order by hoge) where rownum <= 30000
minus
(select hoge <中略> order by hoge) where rownum <= 29900
とすることでできました。
ただ件数が増えれば増えるほどメモリ食ってるんだろうな
という不安はありますが。。。
このカッコ内の(order by)の結果は
最終結果にも正しく反映されるのでしょうか?
それとも外側でも order by hoge とする必要がありますか?
406 :
400 :04/11/05 12:38:54 ID:???
自己レスです。 外にも order by つけないとだめでした。当たり前ですよね。 それとSQL文間違えてました。失礼しました。 select hoge from (select hoge <中略> order by hoge) where rownum <= 30000 minus select hoge from (select hoge <中略> order by hoge) where rownum <= 29900 order by hoge
>>406 それだとテーブルの全検索とソートを2回やることになるから
↓の方が良くない?
select <カラム> from (
select rownum as SEQ, v.* from (
select <カラム> from <テーブル> order by 順序
) v
) where SEQ >= 開始 and SEQ <= 終了;
408 :
400 :04/11/05 14:12:44 ID:???
>>407 いただきました
ありがとうございます!
409 :
NAME IS NULL :04/11/05 19:26:50 ID:3BqX1VWV
こいつでさえ、Oracle の本を読んでいるのに!! tp://49uper.com:8080/html/img-s/20913.jpg tp://49uper.com:8080/html/img-s/20911.jpg
>>404 まあ、そのなんだ。
1 Node RACつうのは、技術的に可能ていう話であって、ボラクルにオフィシャルに
サポートされている訳でないので注意が必要だぞっと。
それとも最初はシングルで入って、足りなくなったらRACに変えると言っている?
それだったら別に問題はないけど、面倒な事は確か。
Oracle DBのバックアップソフトって名につかってる。 Veritasu NetBackup BakBone Netvault exp,impコマンド begin backup,end backup cp,tar などなど・・・・。 どれ?
412 :
NAME IS NULL :04/11/06 22:40:22 ID:vYj4NXmH
すみません、質問です。 ORACLEでランダムな7桁の大文字・小文字の入った英数字を返す FUNCTIONを作りたいのですが、どのようにしたらよいでしょうか。。 ランダムな数字を返す関数はあったのですが、文字をランダムに 返す方法が見つかりませんでした。 どなたか同じようなことをされた方がいらっしゃいましたら、 ご教授お願いいたします。
個人的にはそんなのアプリでやればいいのにと思います
414 :
412 :04/11/07 02:27:45 ID:YiNQ8jUT
>>413 sqlでこのようなことをするのは、難しいということでしょうか。。
>>412 一般的なプログラミングの話になるけど。
使う文字が少ないのであれば、それを文字列で持っておいて、
ランダムな数字で、その文字列の中から取り出すって方法がある。
>>412 si object browser を使ったほうが楽。
417 :
NAME IS NULL :04/11/07 03:40:07 ID:l1t73am/
>>411 プラットフォームに依存するんじゃない?
大規模システムになると、大抵はRMAN+Tape Storageというのが一般的だと
思うけど?
Tapeは窓系ならVeritus、HP系ならOmniBack、IBMならTSMってとこか?
Sunは使ったことないから分からんw
418 :
412 :04/11/07 03:44:18 ID:???
ありがとうございます。。
>>415 それは文字コードも意識する必要が無くて良いですね。
早速実装してみます。
>>416 なるほど、これは気づきませんでした^^;
いざとなったらぜひ使わせていただきます。
Oracle Discovererって、使ってる人います? あれは本当に糞だ。
421 :
297 :04/11/08 12:49:59 ID:???
解決はしませんでしたが一応対策を施すことができたので報告します。 結局1項目あたりの大きさを変えることができなかった(COLUMUNなどでは全てをカバーしきれない)ので、1行あたりの読込サイズを80から500に変更することでソフトの変更無しで結果を取り込むことができるようになりました。 いろいろ助言くださった皆さんありがとうございました。
>>419 禿げ同。
ヨーロッパで使ってるけど、こいつの発行するSQLは本当にう●こ。
ViewからViewを呼び出したり、なんとかしろって感じだよ。
Discovererはバグが多すぎて使い物にならない。 *.disを開く ↓ 何もせず上書き保存 ↓ *.disをよく見ると、サイズが倍になっている ↓ (゚Д゚)マズー
キャッシュを無効にしてSQL文を実行するにはどうしたらよいでしょうか?
>>425 ALTER SYSTEM FLUSH BUFFER_CACHE;
10gから。
>>425 10g以前だったらDB起動後にSQL実行すればOk。
ベンチマークとか取る時とかには良くやっていた。
逆にランプアップピリオドとして、5分間SQLを投げ続けた後から
実際にベンチを取ったりとかね。
でもキャッシュを外してSQLを実行する事のメリットって何?
Disk I/Oのパフォーマンスでも見るの?
428 :
NAME IS NULL :04/11/11 15:14:59 ID:axE5sAg0
基本的なことなのかもしれないですが、質問させてください。 データベースバッファについてです。 例えばテーブルAにカラム1,2があるとして select カラム1 from テーブルA; を発行した場合、キャッシュされるのは カラム1(selectしたものだけ) or カラム1、2(ブロック上にあるものそのまま) どちらなのでしょうか? ちなみにOracleのバージョンは8iです。
429 :
NAME IS NULL :04/11/11 18:30:43 ID:0De9WdRb
csvファイルのデータを、表にインポートしたいんですが、html_dbの作業領域をリクエストしても Your request for an account has been declined. というメールしか返ってきません。 他にいい方法があったら教えてください。 バージョンはoracle10gです。
>>429 ちゃんとそのユーザーに権限与えてあるよね?
登録したときのスキーマはsysで登録しました。
>>428 バッファキャッシュはブロック単位です。
PL/SQLで変数iが宣言しなくても使えるんですが 他にもこんな変数があるんでしょうか?
434 :
428 :04/11/12 14:07:35 ID:0P+k8I6j
>>432 考えてみれば読み込みの最小単位がブロックっていってるんだから、そうですよね。
あ、でもこの後
select カラム2 from テーブルA;
をした発行した場合、キャッシュを読みにいってくれるんでしょうか?
>>434 DBA(管理者じゃくてData Block Addressの方ね)が同じだったら当然
Cacheに乗ってるんだから、読みに逝くだろ。
436 :
428 :04/11/13 01:19:05 ID:s9+P6vcR
SQL解析でDBAを特定しているのだから、 DBAが同じ場合はキャッシュを読みにいくということですね。 イメージできました。ありがとうございます。
437 :
NAME IS NULL :04/11/18 13:33:46 ID:yr9HxDQb
viewのソースが見たいのですが どうすればよいでしょう? desc hoge_view; では、カラムの定義しか表示されません。
dba_views
テーブルのデータをcsv形式でかつダブルクォーテーションで括ってpl/sqlで spoolして定期的に出力したい のだが、カラムを||で連結していくと文字列が4000バイト以上になり、 エラーになります。思いついた回避策としては、 案1 分割して結合する。しかし面倒そうなのでやめ。 案2 set colsep '","'を指定し、カラムの連結はしないでカラムを出力。 しかし、データに原因不明なスペースがはいってしまう。 現在、両方うまくいかず苦戦しています。 何かうまく回避する方法はありませんか? 環境は9iです。
trimspool とか駆使すればできるよ。 OTNでCSVとかで検索してみれ。 しかし最近OTNってゴミが多くて検索も大変だよね。 過去ログみろとかサポート行けとか1行だけ書くポイント乞食は退場してほしい。
>>428 読み込まれるブロックが多いと、キャッシュされないよ。
>>440 OTNなどのオラクル掲示板の過去ログも検索しましたが、適当な回答がなく
悩んでいるところです。
trimspoolは私も使用しましたが、行末の空白を削除するというもので
今回のケースは区切りの間にスペースが入ってしまうというものです。
手元に環境がないのでうる覚えですが下記のような具合です。□はスペース。
欲しい結果 "20041101","AAA","営業"
現状結果 "20041101"□□□,"□□□AAA"□□□,"営業"
ちなみに、各カラムにはすべてtrimを使用しています。
原因不明の区切りの空白をなんとかしたいと思っています。
>>441 参照先を見たのですが、PL*SQLでなくストアドでUTL_FILEパッケージを使用しているのは
わかるのですが、コードが難しくてよくわかりません。
私は、PL*SQLで出力するのがまずいのかと思い、テスト用にUTL_FILEパッケージを使用して
ストアドを作成したのですが、やはり最大長を超えましたというエラーになりました。
テキストリテラルとして、4000バイトの制限があるそうです。そのため、案1と案2の
回避策を考えました。
急ぎではないので、もうちょっと考えて見ます。
>443 データをCSVではき出すツールって、フリーでも結構あるから 適当にぐぐってみれば見つかるよ。 時間があるなら、ociで書いちゃえば良いし。
>>443 まさかとおもうけど、CHARのエリアに可変長の文字列入れてスペースがはいって困ってるってはなしじゃないよね・・・
OTNじゃ期待薄なんでこちらに書かせて頂きます Data Guard(ロジカル)構成でプライマリ側からホットバックアップ取得して スタンバイを作成しようとしています。 ホットバックアップからスタンバイDBを作成して、スタンバイDBのリカバリ作業までは うまくいくんですけど、SQL適用操作を開始しようとして alter database start logical standby apply initial (SCN); ってやるとエラーになってしまいます。 Completed: ALTER DATABASE START LOGICAL STANDBY APPLY Fri Nov xx xx:xx:xx 2004 LOGSTDBY event: ORA-16111: log mining and apply setting up LOGSTDBY event: Unsupported instantiation mode was used. LOGSTDBY event: See release notes for creating logical standby LOGSTDBY event: ORA-16524: unsupported operation Fri Nov xx xx:xx:xx 2004 Errors in file /opt/oracle/admin/xxxx/bdump/xxxxxx.trc: ORA-16524: unsupported operation 別方法でスタンバイDBは別途作成済みなんで、サポート外のデータ型 があるとかは無いです。 心当たりがある方はアドバイスお願いします。 Solaris 5.9 Oracle 9.2
447 :
NAME IS NULL :04/11/21 16:13:25 ID:R0k6Asjg
単純な質問ですみません Oracleのto_charで 2004/01/02 でなく 2004/1/2 のようにゼロ抜きで取得することはできますか? 'YYYY/FMMM/FMDD' みたいな書き方を探してます。 ご存知の方教えていただけませんでしょうか。
>>446 可能性としては・・・
1. Logical Stand-by側のRecoveryがちゃんと指定したSCNまで完了していない。
2. Logical Stand-by側でNISする前にTemp領域を再作成していない。
の二つかね?
>>448 すまん、タイプミス。
NISじゃなくって、NIDだ。
申し訳ないのですが、どなたかお力をお貸しください。 Win2K鯖&Oracle9i環境なのですが、 作成済みインスタンスのSIDを変更するということは可能なのでしょうか? クライアントの我侭で、以下の条件を満たした上でDB移行を行うということになってしまいまして・・・。 条件 1.現行DBの構造をそのまま移行すること 2.現行DBは削除せず、そのままにすること 3.クライアント端末の設定は変更しないこと 1はどうでもいいとして、2と3の両立が・・・。 もうどうしたら良いものやら。(T-T) 初期化ファイルのinstance_nameを変更してみたのですが、当然それだけではダメでした。 ご存知の方が居られましたら、どうかご教授ください。
>>444 確かにあるのですが、パッケージに組み込む予定なので、フリーのツールを
使わすに、月次バッチを組んで運用しようとしています。
VBSでスペースを削除する関数を作成して、バッチでそれをよべばいいかなと
考えています。ただ、カラムの中のスペースまで削除しないようにするのは面倒です。
>>445 varchar2になってます。
備考用のカラムが1000バイトで複数あるため、4000バイト
超えてしまいます。本番ではまずありえないのですが、単体テストでフル桁入力
してテストしていると今回の問題が発見されました。
とりあえず、月曜にいろいろ試してみます。
>>450 DB名の変更はできなかったかもしれないけど
インスタンス名はいつでも変更可能
変更したいインスタンス名でサービス作って初期化パラメータファイルのインスタンス名変更してたちあげてみれ
453 :
447 :04/11/22 00:01:24 ID:???
>>447 自己レスです
yyyy/fmmm/dd
でできたのですが
これって正しい使い方でしょうか?
yyyy/fmmm/fmdd
だとだめなんですよね
なんか気持ち悪いですが
454 :
446 :04/11/22 00:55:44 ID:???
>>448 ありがとうございます。
一応、その点も確認したつもりなんですけど、ご指摘の点に注意しながら
再度挑戦してみます。
けど、あれ最初からやるの結構時間かかるんですよね…。
>>450 NIDが使えると思ったけど?
もしくはコントロールファイルの再作成ね。
でも窓の場合はインスタンス名を変える前にoradim使って、サービスを
再作成しないと駄目だろうね。
>>454 確かに時間がかかるね〜。
10gでもlogical stand-byを作って遊んだけど、出来上がるまでがかなり面倒。
まあ、でも記憶をリフレッシュする意味も含めて、たまに作って遊んでいるよ。
>>450 > 作成済みインスタンスのSIDを変更する
新たなSID名のサービスを作成して、既存の%ORACLE_HOME%database\init<SID>.oraを
その新SID名に準じたinit<SID>.oraにコピーして、%ORACLE_HOME%\databaseに配置。
新たなSID名のサービスを起動して、インスタンスも起動。
set ORACLE_SID=newSID
sqlplus "/as sysdba"
startup
instance_nameや、db_nameはSIDとは別物です。
instance_name/db_nameを変更してもSIDを変更したことにはなりません。
ちなみに、db_nameは制御ファイルに格納されているので、
制御ファイルの再作成が必要になります。
あと、3.はクライアントのCONNECT__DATAにSERVICE_NAMEを使用しているのならば、
それほど難しい話ではありません。初期化パラメータのSERVICE_NAMESの変更だけで
済みますので。Oracle Netが動的構成ならば、listener.oraすらいじる必要がありません。
えっ! SIDってインスタンス名じゃないの?
>>453 FM1回ごとに
ゼロを除去するか付けるかが切り替わるみたいですよ
FMMM/FMDD
だと、最初のFMでゼロなし
次のFMでゼロありになるので
1/01
みたいになってしまうと。
460 :
447 :04/11/22 13:57:05 ID:???
461 :
446 :04/11/22 16:10:15 ID:???
やはり同じエラーが発生 もう1度手順見直してみたらちょっとご指摘頂いたのとちょっと違ってた。 > 2. Logical Stand-by側でNIDする前にTemp領域を再作成していない。 マニュアル的にはNIDした後にTemp領域を再作成してるみたいなんですけど、 実はNIDする前にTemp領域再作成しなきゃ駄目何ですか? ひとまず、順番を逆に再チャンレンジしてみます。
>>461 アメの方のサイトに、NIDする前にTemp領域をDropしているか、もしくは再作成している
必要があるみたいな事が書いてあった。
後、「マニュアルの順番違うやんけっ!( ゚Д゚)ゴルァ!」という記述もあった。
もしこれでも駄目なら凄い面倒だと思うけど、手順を晒してくれればこっちでさらに
チェックは出来ると思う。
463 :
461 :04/11/22 20:15:39 ID:???
Temp領域を先に作成しても駄目でした(T T) ざっくりと(が、長い)ですけど、手順です。 Temp領域を先に作ったときは、項番7の前に項番9を実施しています。 1.プライマリからホットバックアップ、初期化パラメータ、制御ファイル、 パスワードファイル取得してスタンバイにコピー 2.コピーした初期化パラメータをスタンバイに合わせて書き換え #書き換えたパラメータ CORE_DUMP_DEST USER_DUMP_DEST CONTROL_FILES INSTANCE_NAME LOG_ARCHIVE_DEST_1 LOG_ARCHIVE_DEST_STATE_2(DEFERに設定) STANDBY_ARCHIVE_DEST ※LOG_ARCHIVE_DEST_1がローカルのアーカイブログ、LOG_ARCHIVE_DEST_2が リモートのアーカイブログの設定になっています 3.新スタンバイをマウントして、データファイル、REDOログの位置を修正 4.alter database clear logfile group 〜でREDOログファイル作成 5.項番1で取得したSCNを指定してリカバリ (正常終了。Alertログにもエラー無し) 6.データベースガードをオン&リセットログ alter database guard all; alter database open resetlogs; shutdown immediate; 7. データベースをマウント後、NIDを使用してDBNAME変更 ⇒shutdown後、初期化パラメータのdb_name修正 8. パスワードファイルを再作成 9. データベースをオープンして一時ファイルを再作成 10. 開始アーカイブREDOログを登録 alter database register logical logfile 'filename'; filenameは項番1ホットバックアップの最後で実施した switch logfieで作成されたファイルを指定 11. SQL適用操作開始 alter database start logical standby apply initial <SCN>; <SCN>はリカバリで使用したものと同じ ⇒ここでAlertに461で書いたエラー ググったらほぼ同じ現象をいくつか見つけたんですけど、 それに対する解決策は見つかりませんでした。
とりあえず気になる所をあげていくぞっと。 1. supplemental loggingがenableになっているか。 SQL> SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE; SUP SUP --- --- YES YES なっていなければ、以下を実行。 SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS; SQL> ALTER SYSTEM SWITCH LOGFILE; .2. Log Minor Dictionaryを作成する前にRestrictedモードにしているか。 SQL> ALTER SYSTEM QUIESCE RESTRICTED; SQL> EXECUTE DBMS_LOGSTDBY.BUILD; あとは取り合えずこっちでHotbackupから一回作ってみるよ。 遊べるプラットフォームがLinuxしかないけど、基本は同じだろうし、なんとかなるべ?
465 :
461 :04/11/22 22:21:46 ID:???
ご親切にありがとうございます。 > 1. supplemental loggingがenableになっているか。 こちらは SUP SUP --- --- YES YES ってなっていたので、大丈夫そう。 > .2. Log Minor Dictionaryを作成する前にRestrictedモードにしているか。 ホットバックアップから作るドキュメントにこの記述がまったく無かったので、 実施してませんでしたorz コールドバックアップから作成している最新のドキュメントを見ると書いてありました。 とすると、 ・一通りプライマリのバックアップを取った後にLogMinerをRestrictedで作成 ・最新のアーカイブREDOログを識別 ・項番10のREDOログは↑のREDOログを指定 ・項番11はSCNを指定せずにINITIAL句のみで実行 が正しいことになります? 蛇足になりますが、LogMiner関連の表領域を項番1でプライマリからそのまま スタンバイに持ってきたんですが、上の操作をしてからバックアップを取得して スタンバイに移動するのが正しいことになるのでしょうか? 何だか、理解不足な部分が多々ある模様。 恐縮ですが、お力添えよろしくお願いします。
>>465 ただ今LinuxにOracleをインスコ中・・・。
手順としては・・・
1.バックアップを取得。
2.Restrictedモードにしてlogminer dictionaryを作成
3.プライマリー側でLog Switchを発生させる。
4. SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES'
and STANDBY_DEST='NO';
でArchifelogを調べる
5. SQL> SELECT MAX(FIRST_CHANGE#) FROM V$ARCHIVED_LOG WHERE
DICTIONARY_BEGIN='YES';
でSCNを調べる
だろうな。
467 :
461 :04/11/23 01:32:35 ID:???
とりあえず強制撤去になってしまい動作確認できず。 明日ってできるのかなぁ。 まだ動作するか分からないけど、465さんありがとうございます。
>>467 とりあえずLinux上ではサクッと出来たぞ。
ちゃんとlogが適用される所まで確認できた。
いや〜、久しぶりに作ると結構忘れている所があって焦った。
>>463 とりあえず、ざっくりとLinuxで実施した点を書いていく。(長いね・・・。)
0.スイッチオーバーを想定してプライマリーにてLogical Standby表領域を
作成しておく。
SQL> EXECUTE DBMS_LOGMNR_D.SET_TABLESPACE('logical_tblsp');
1. Primaryにてほっとバックアップを取得。(ホットなので一時表領域は
取らない。というよりも取れない。)
2. コントロールファイルのバックアップを取得。
SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/hogedir/hogeboge.ctl';
3. プライマリーをquiesced stateに変更する。(この時にプライマリーのinit.ora
の中でresource_manager_plan = 'SYSTEM_PLAN' が設定されていないと
エラーとなるので注意)
SQL> ALTER SYSTEM QUIESCE RESTRICTED;
4.logminer dictionaryを作成する。
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
5.log switchを発生させ、logical Stanby側で適用を開始するlog番号を
調べておく。
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES'
and STANDBY_DEST='NO';
NAME
-----------------------------------------------------------------
/hogedir/arch/bogearch_77.arc
6.logical standbyのリカバリーに必要なSCNを調べておく。
SQL> SELECT MAX(FIRST_CHANGE#) FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES';
MAX(FIRST_CHANGE#)
------------------
123456
7. システムをUNQUIESCEに変更して、ログスイッチを発生させる。
SQL> ALTER SYSTEM UNQUIESCE;
SQL> ALTER SYSTEM SWITCH LOGFILE;
>>463 8. こっからLogical Standby DB側での作業。init.oraをlogcial standby用に
修正しておく。
9. logical standby DBをexclusiveモードにてmount.
SQL> STARTUP MOUNT EXCLUSIVE;
10.ファイル位置を修正する。
11.redologの再作成。
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
:
:
12. Step 6.で得たSCNまでlogical standby側のDBをリカバリーする。
SQL> ALTER DATABASE RECOVER AUTOMATIC FROM
'/bogedir/LGSTBY/arch/'
UNTIL CHANGE 123456 USING BACKUP CONTROLFILE;
13. logical standby側でのみdataguardをonにする。
SQL> ALTER DATABASE GUARD ALL;
14. logical standby DBをopen resetlogsで上げて、nidでrenameする。
SQL> ALTER DATABASE OPEN RESETLOGS;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT EXCLUSIVE;
SQL> EXIT;
$ nid target=sys/change_on_install dbname=bogestdby
15. 一時表領域にtempfileをaddする。
16.logcial standby DB側で、step 5.で調べた番号以降のarchivelogを
全て適用する。
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE
'/bogedir/LGSTBY/arch/bogearc1_77.arc';
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE
'/bogedir/LGSTBY/arch/bogearc1_78.arc';
:
:
17. Step 6.で調べたSCNを指定してlogical Standbyを開始する。
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY INITIAL 123456;
いや〜、やっぱ長いね〜(;´д`)
>>463 18.後はプライマリー側のDBでinitを修正して、archivelogがlogical standby側にも
きちんと飛ぶように修正すれば、自動的にlog applyが始まるはず。
こんなに手順が必要なのはモノの出来が悪い証拠だな
>>472 まあねぇ。
Logical Standbyは一度動きさえすれば、それなりに便利なんだけどねぇ。
たまにログが適用されなかったりして、再作成しないと二度と使えなかったり
なんて事もザラにあったりするんだけどね(・∀・)ニヤニヤ
>>473 そうなんです。ザラにあるんです。で〜たが〜どは怖いっす。
まだマルチマスタ同期レプリのほうがましっす。
フィジカルスタンバイにしとけって
476 :
461 :04/11/24 14:52:04 ID:???
おかげ様でスタンバイDB作成することができましたm(_ _)m
どうやらLogMinerディクショナリの作成をすっ飛ばしてたのが
原因だった模様。
一点だけ疑問点。
>>469-471 の16番で
startup pfile='init<SID>.ora' mount;
alter database open;
で立ち上げてからアーカイブログを適用すると
ORA-01665: 制御ファイルがスタンバイ制御ファイルではありません
ってエラーになってしまいます。指定したPFILEからSPFILE作成して、
それを使って立ち上げなおしたら、アーカイブの適用ができるように
なりました。
何でだろう?
>>476 無事に出来たみたいで何より(゚∀゚)
でもspfileの件は分からんなぁ・・・?
DB Nameがおかしかったのか、もしくは何らかのデフォルトバリューが
おかしかったのか・・・。
478 :
461 :04/11/25 00:49:46 ID:???
>>477 (一応ちゃんとした形式の)手順書できたし、明日もう1回作った手順書の
確認も含めて試してみます。
>>475 フィジカルスタンバイにしたいのは山々だったんだけど、要件的に
ロジカルじゃないと無理なんです_| ̄|○
479 :
NAME IS NULL :04/11/25 12:19:16 ID:RmBjqOKX
TEMP01.DBFファイルが2ギガを超えたので、 小さくするにはどうすれば良いですが? せめて500メガ位にしたいです。 教えてください。 宜しくお願いします。
480 :
NAME IS NULL :04/11/25 13:05:55 ID:EOEkWFC7
>>479 バージョンが分からんが8i以降だと想定するぞ。
alter database tempfile '一時表領域用ファイル名' resize 500m;
当然変更する時にSortが走っていて500M以上になっていたらエラーになるぞっと。
482 :
479 :04/11/26 00:15:42 ID:GFTJ1cH7
>>481 ご回答ありがとうございます。
実行してみましたが、下記のメッセージが出て、出来ませんでした。
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
に接続されました。
SQL> alter database tempfile 'C:\oracle\oradata\xxx\TEMP01.DBF' resize 2000m;
alter database tempfile 'C:\oracle\oradata\xxx\TEMP01.DBF' resize 2000m
*
行1でエラーが発生しました。:
ORA-03297:
ファイルには、要求したRESIZE値を超える使用中のデータが含まれています。
tempfileのデータを消す方法をこれから探してみます。
ありがとうございました。
>>482 DBをRestrictモードにするなり、リスタートするなりしてSortが走らない
ようにしてから変更すればいいと思う。
484 :
なみ :04/11/27 01:28:22 ID:tK3UBASD
初心者です。 oracleのサービスを停止しないでOSをshutdownしてしまいました。 今まで使用していた機能が使えなくなったのですが、 dbが破壊されたのでしょうか。
>>484 いったいどんな機能が使えなくなったのか具体的に言って
貰えるとこちらも答えやすいです。
おそらくサービスと言っている時点で、O/Sは窓だとは思うの
ですが、正確なプラットフォームとOracleのVer.とか書いて
あると、さらに答え易いでしょう。
486 :
なみ :04/11/27 02:14:35 ID:tK3UBASD
早速のご連絡ありがとうございます。 sparcUsolaris8、oracle8iです。 新規レコード追加でエラーが発生しています。
487 :
なみ :04/11/27 02:23:46 ID:tK3UBASD
例えばdbのサービスが起動していても、db参照やdb更新中でなければ、 いきなりshutdownしてもdbが壊れるということはないのでしょうか。
>>486 エラーじゃ分からん、情報をしっかり書け。
489 :
なみ :04/11/27 02:53:18 ID:tK3UBASD
おっしゃるとおりです。しばしお待ちくださいませ。
子供の使いかよ…>484 >486 >489
みなさま助けてください。 ユーザーのサーバが816なんですが 当方の環境はWindows2003サーバです。IISから816に データ取得を行いたいのですが、816クライアントをWin2003に インストールしようとする失敗します。 どんなPathを当てればインストできるのでしょうか? ご存知の方、ご教授ください。 よろしくお願いします。
>>491 >失敗します。
だけで、あなたに何が起きてるかが
他人に解って貰えると思っている人というのは
高い確率で OTN の FAQ
tp://otn.oracle.co.jp/support/productfaq/index.html
も検索しないようです。
因みに Windows Server 2003 でサポートされるのは
1> 9i (32bit) R9.2.0.3 以降
2> 9i (64bit) R9.2.0.2 以降
3> 10g R10.1.0.2 以降
だけで、R8.1 なんてサポート外ですよ。
>>493 それは読んでいます。
もちろん対応外なのは知っているのですが
ユーザーのアップグレードは不可能なので
何か裏技ないかなーなんて。。。思ったしだいです。
失礼しました。
そんな生理中のおなごの用に、眉毛上げないでくださいよ〜
>>494 裏技ねぇ・・・。
1. CDの中身を全てローカルのディスクにコピーする。
2. コピーしたファイルの中からsetup.exeを探す。
3. 右クリックして「プロパティ」の画面を出す。
4. 「互換性」のタブにいって、そこの「互換モード」を「Windows2000」にセットする。
これでインストール自体は出来るはずたけど、でもこんな未サポートの事やって
何かあったらどうすんの?
oracleって高いね。 他のアプリケーションって安くなってきてるのに データベースだけは高いよね。 前に他の人が高いと言っていたら、自分で作ったより 安くつくと言っていたけど、自分で電子レンジを作るぐらいなら メーカーに工場で大量生産する方が安くつくのと一緒で 大量に売れれば安く出来る筈なのに、データベース全体が 高い値段のまま・・・ フリーのデータベースがあるから言いのだけど・・・
>>496 そうだね
と流したいとこだけど
高すぎってとこには同意
>>492 記憶の中から引きずり出しけど、そういえば厨・工のバスケの授業で習った、習ったw
最近はタダでさえ売り上げが落ちてきているから、安くは出来んのですよ。
Oracle7→Oralce8のデータ移行の際に、LONG型のデータを移行しているのですが、 Pro*COBOLで作成したプログラムで読み出したところ、BCDで登録しているデータのうち、 X“79”を超える値が全てX“3F”に変換されてしまっています。 どなたか原因わかる方いらっしゃいますでしょうか? よろしくお願いします。
Oracle805は個人で買ったけどなぁ。 まあl、たかいっちゃたかいけど、 数千万、数億のプロジェクトからしたら誤差の範囲だ。
なんかOracleとよく分からん契約結んでるらしく、80%OFFで購入できる。 だからと言ってユーザ数が数人でも数千人でもEnterpriseEditionってのは いかがなものか。
数百万件のテーブル同士を結合する際にスピードを上げるにはどうしたらいいでしょうか? 結合のキーは双方とも主キーになっています。
>>503 フルスキャン走らせるのなら、パラレルクエリぐらいしか思いつかんな。
505 :
503 :04/12/01 01:57:58 ID:???
>503 ハッシュパーティションしてパーティションワイズジョインだ
>>499 早く手を打たないと
そろそろやばいだろうな
やばいとは思ってんのかな?
508 :
NAME IS NULL :04/12/01 17:48:35 ID:4JSs2Xi/
listener 動かしてると listener.log できるけど 名前変えたりした時に再起動せずに listener.log を再度書き出させるには どうしたらいいの? プロセス tnslsnr にシグナルHUP送ったら 死んでしまうようで。。。
509 :
NAME IS NULL :04/12/01 19:52:22 ID:mpe68v1D
dbcaにてデータベースを作ろうとして 以下のエラーが出て、作れない状況です。 ORA-27302: failure occurred at: skgpwreset1 ORA-27303: additional information: invalid shared ctx ORA-27146: post/wait initialization failed ORA-27300: OS system dependent operation:semget failed with status: 28 ORA-27301: OS failure message: No space left on device ORA-27302: failure occurred at: sskgpsemsper 何が原因が、見当がつかない状況です。 何か怪しそうなところ教えてください。 >372さんの一連の流れは一通り読みました。 ちなみに、現在すでに、そのマシンに2つのデー タベースがあり,それらが立ち上がったままで dbcaによりデータベース作ろうとしています。 ■ 環境 os SOLARIS8 sparc版 oracle 9.0.1.4 standardedition メモリ 2GB積んでます。 cat /etc/system の一部 * Oracle set shmsys:shminfo_shmmax=1294967295 set shmsys:shminfo_shmmin=1 set shmsys:shminfo_shmmni=100 set shmsys:shminfo_shmseg=10 set semsys:seminfo_semmni=100 set semsys:seminfo_semmsl=200 set semsys:seminfo_semmns=400 set semsys:seminfo_semopm=100 set semsys:seminfo_semvmx=32767
>>509 >>510 が指摘している様にメモリ不足。
SEMMSLとSEMMNIの値を上げてO/S再起動だっ!
512 :
509 :04/12/02 17:08:08 ID:xotfBDNs
>510 >511 早速の回答、ありがとうございます。 業務の都合で,すぐにはインスタンス停止や OS再起動ができないので,後日改めて実 行した際に、その結果を報告させていただきます。 取り急ぎのお礼でした。
SqlPlus等で使用するv$sessionのosuserって 何を表示してるのでしょうか? 言い換えると、クライアントPCの何を変更すれば osuserの内容も変わるのでしょうか? PC(XP)のユーザー名を変えても osuserは変わらなかったので・・・
514 :
NAME IS NULL :04/12/02 20:05:55 ID:xotfBDNs
ユーザーモードでのEXP時に,ROWS=Nとして実行してできたデータがあります。 これのIMP時に,rows=n, index=n で行ったのですが、表領域先の容量が足りなく て,エラーが発生します。 私としては,IMP先の表領域には、(最小エクステントサイズ)×(オブジェクト数) 以上の空き容量があるので,大丈夫だと思うのですが。 どこをいじれば、IMPが期待通りに、表領域に収まるのでしょうか? (ROWS=nとしてEXPしたので、IMP先はかなり容量減るはずと思っているのですが。) (以下はIMPのログの一部です) "" CHAR(8) NOT NULL ENABLE) PCTFREE 5 PCTUSED 60 INITRANS 1 MAXTRANS 255 ST" "ORAGE(INITIAL 9109504 FREELISTS 1 FREELIST GROUPS 1) LOG" "GING" IMP-00003: Oracleエラー1536が発生しました。 ORA-01536: 表領域USERSに対して割り当てられた領域を使い果たしました。
515 :
GOGO :04/12/02 22:52:39 ID:CIl33d9T
どなたかわかる方がいたらお答え下さい。 2種類のメールアドレスのヘッダからIPアドレスを割り出したら 同じIPアドレスだったのですが、それは2つのメールが 1つのPCから発信されているということなのでしょうか?
>>514 Importに使用しているUserに対して、その表領域に対するQuotaを0に
してからやってみたら?
alter user <user名> quota 0 on <表領域>;
517 :
NAME IS NULL :04/12/03 12:00:40 ID:mggCUSnZ
>>516 やってみたところ、まったく同じエラーメッセージが出ました。
で、ためしに IMPを表モードで、1つの表:(表名:BONUS)
のみを指定して実行しました。
すると、また同様のエラーが発生しました。
1つの表すらIMPできないということで、原因がまた不明となりました。
分かる方,いましたら教えてください。
(そもそもEXPした時の設定が問題かな..と確認中)
(以下にそのログを貼り付けます。)
接続先: Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
JServer Release 9.0.1.0.0 - Production
エクスポート・ファイルはEXPORT:V09.00.01によって従来型パス経由で作成されました
JA16SJISキャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでインポートが完了しました
.AAAAのオブジェクトをBBBBにインポートしています
IMP-00017: 次の文は、Oracleエラー1536で失敗しました:
"CREATE TABLE "BONUS" ("ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "SAL" NUMBER"
", "COMM" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INI"
"TIAL 65536 FREELISTS 1 FREELIST GROUPS 1) LOGGING"
IMP-00003: Oracleエラー1536が発生しました。
ORA-01536: 表領域USERSに対して割り当てられた領域を使い果たしました。
インポートは正常に終了しましたが、警告が発生しました。
>>517 なんかバグにヒットしている気がしてならないな〜。
とりあえずPSRを充てて、R1のターミナルリリースの9.0.1.5にしてから試してみては?
>>513 クライアントがJDBCのThin Driver使っていると、v$sessionの
OSUserが「Oracle」になるというバグがあるけど、それとは違う?
こんばんは。 オラクルサーバにJDBC経由でJavaのプログラムから 接続したいのですが、うまくいきません。 どうもドライバクラスの読み込みがうまくいってい ないようです。 JDBCのドライバをインストールできてないようです。 その辺をやさしく解説しているページや本があれば 教えてください。 環境はクライアントにtomcatとjdkをインストール してオラクルはサーバにあります。 クライアント:Win2000 サーバ :redhat
>>520 まず最初に聞こう。
クライアントの窓2kには、Oracle Clientは入れたのか?
>>522 JAVAのCLASSPATHはちゃんと、JDBCまで通したか?
SET CLASSPATH=%ORACLE_HOME%/jdbc/lib/classes111.zip
tomcatから繋ぎたい場合には、多分そっちのCLASSPATHにも追加しておく
必要があるかと思う。
Web Application ServerはWeblogicしか使ったことないから良く分からんが。
質問させて頂きます。 環境はOracle9iです。 インスタンスA内のユーザA1より インスタンスB内のユーザB1の所有するテーブルBTを 参照したいのですがどういった方法があるのでしょうか? またその際に気をつけないといけないこと(権限の付与)等が ありましたら御教え頂きたいです。 お忙しいところ申し訳ありません。
>>524 DBリンクを使うのだ!それとともに、シノニムなのだ
回答ありがとうございます。 上の例でしたら 1.インスタンスA内のユーザA1から インスタンスB内のユーザB1に対してDBリンクを張る 2.インスタンスA内のユーザA1内で インスタンスB内のユーザB1の所有するテーブルBTの シノニムBTを作成する 3.インスタンスA内のユーザA1内では2にて作成した シノニムBTに対して問い合わせをかける 以上のようなイメージで良いでしょうか? 回答に対して質問でお返しして申し訳ありません。
>>526 いいんではないか。ていうか、ためそうYO
>>526 >>524 にあった、「参照」というのが更新も含むなら、それで可。
含まないなら、DBリンク接続用のユーザを用意。
>>524 、527、528
みなさん、どうもありがとうございました。
週明けに環境がある場所にて試してみます。
どうも、この人はユーザとスキーマを混同しているような 気がするが。。。
そもそもOracleでのスキーマとユーザの使い方ってごちゃごちゃだから
誰か知ってる人いたら教えてください。 サーバ機+WindowsServer2003+Oracle9.2.0を業者に納品してもらいましたが、 なぜかSQLServerも入ってました。 確認したら ・Oracleインストール時にSQLServerも自動でインストールされる ・SQLServerのライセンスはOracleのそれに包括されている ・SQLServer削除後の動作保証なし と回答されたのですが、これって本当でしょうか? 仮にもかなり大手の業者なんですが、そんな話聞いたことないし・・・ 単に私の無知ならすいません。
>>532 他になにかソフトが入ってるんじゃない?
奉行とか
>>532 んな、何が悲しくて対抗他社のDBのライセンスを包括しなきゃならんのよ?w
思い切り騙されているよ、それ。
ライセンス代、OracleとSQL Serverの二つ取られてるんじゃない?
Oracle9.20をsolarisで使用しているものです。 /export/home/oracle/product/9.2.0/rbms/auditというディレクトリに ora_xxxxx(数字).audというファイルが大量に存在しております。 これらの古いファイルは削除しても問題ないでしょうか? 識者の方がおられましたら、宜しくお願いします。
>>535 そのままずばり監査用のファイルだから、既に目的を果たしているのなら
別に消してもいいんじゃないの?
537 :
NAME IS NULL :04/12/06 20:09:36 ID:8+0mYamj
質問させて下さい。 基本的な事だと思うんだけど、表領域とスキーマの関係がよくわからんです。 普段posgresqlやmysql使う事が多いんだけど、 postgresqlを例にして表領域と、スキーマを解説してもらえないでしょうか。 よろしくお願いします。
スキーマ=ユーザと考えたら駄目ですか?
539 :
535 :04/12/06 21:40:24 ID:???
>>536 レスありがとうございました。
早速、削除しようと思います。
540 :
NAME IS NULL :04/12/07 00:22:34 ID:tqFlUZBM
「select * from Txxx」 でSQL書くなっていわれますけど、 create view Vxxx (C1,C2) as select C1,C2 from Txxx みたいに ビューをつくって、「select * from Vxxx」 とするのもよくないのでしょうか?
10gでtableをDROPするとBIN$から始まるテーブルができちゃうんだけど、これは何ですか?
>>541 10gからは窓でいうゴミ箱機能が標準装備になりました。
もしゴミ箱に入れずに、即効で消したかったら「purge」オプションを
指定してください。
SQL> drop table hogetable purge;
>>540 Viewを作った所で、後ろで流れているSQL及び実行計画は同じに
なると思わないのかい?
BIN$にあるやつ消したい場合は?
>>543 実行計画は、
select C1,C2 from Txxx
と同じになると思ったのですが・・・
(SQLトレースをとってみましたが同じになりました)
>>544 幾つか方法がある。
1. Oracleに任せる。
表領域の空き容量がServer AlertのWarning Levelを超えると、その表領域内の
ゴミ箱に入っている表が削除されて、エクステントが解放される。
2. purge table (もしくはindex) ゴミ箱内での名称; で極め打ちでゴミ箱内のセグメント
を消す
3. purge dba_recyclebin; でゴミ箱内の全てのセグメントを消す。
>>545 * がよくない理由は全部の列を取ってきてしまう、
というのと列を全部挙げるためにディクショナリを一巡する、てのがある。
と思ったけど違った?
549 :
532 :04/12/07 10:48:36 ID:???
Oracleサポートと直接連絡がつきました。
やはり、全く関係ないとのこと。
>>533 確かにいくつかソフトは入ってますが、それはなかったです。
しかも業者は「Oracleにより〜」と主張してますし。
>>534 常識的に考えて、そうですよね。
ライセンス料は大丈夫でした。
ただ、今度はその業者が納得してないご様子。もうヤダ
550 :
NAME IS NULL :04/12/07 15:55:24 ID:HsRqEGKK
Oracle 9i のWindows版を使っています。 JDBCから利用されたSQLのログを参照したいのですが、 ログを出力するにはどのように設定したらよいのでしょうか?
551 :
NAME IS NULL :04/12/07 18:03:10 ID:eFE8GA5K
あるユーザ所有のパッケージ(パッケージボディ)のみを EXP&IMPする方法(というか、バックアップで保存して それを簡単に違うユーザーに再作成する方法)知ってる方、 教えてください。 パッケージ60個あり,手作業の再作成は、かなり面倒なもんで。
>>549 なにに使ってるのかはっきり聞いたほうがいい
実はOracleじゃなくて
SQLServerってことはないよね?w
確実にライセンス違反だし
脅かすわけじゃないけど知らなかったではすまないよ
>549 MSDEが入ってるだけでは?
CREATE TABLE しようとすると、 「オブジェクト名は使用されています。」 と出ます。 ところが、 DBA_OBJECTS をみても その名前のオブジェクトはありません。 いったいどこにあるのでしょうか?
>>549 SQLServerのサービスを停止して、エンドユーザーから文句が出るかどうか試してみればいい。
何かに使われているかどうかわかる。
出なければ削除しる。
>>549 データベースがあるか
テーブルがあるか
確認したほうがいい
ネットのアクセス履歴とか
社内のネットワークのモニタとか
メールの内容があったら面白いんだけど
まーなにもないんだろうな
>>549 取り合えず、その間抜けな業者を晒してみては如何か。
…「SQLServer Plugin」でした、なんてオチは無いよね…
559 :
NAME IS NULL :04/12/08 21:20:08 ID:YBJKIdWZ
9.2.0のSQLローダーなんですが、TRANCATEで大量のCSVを流し込むとORACLEが固まってしまうんです。 (15000行くらいで) 退避する方法ありませんか? ローダーのオプションは特に付けてません。
>>559 ノーロギング、ダイレクトロードだな。
こんくらいの違い。35,000,000Record 一晩中→2時間
つーか、固まってないんじゃない?
我慢ならんほど遅いだけで。
561 :
NAME IS NULL :04/12/10 15:40:12 ID:/i8yJAZD
質問させて下さい。 エクスポートしたファイルに内包されているユーザやスキーマ、テーブル名などの詳細を知りたいのですが可能でしょうか? その方法を含めどなたか教えて頂けませんでしょうか。
563 :
NAME IS NULL :04/12/10 16:55:42 ID:4C4xG1U8
>>561 Textエディタで開いて見る。
圧縮してあっても、定義は見れたような。
ダンプファイルの中見ると勉強になると思うよ。
教えて君ですいません! Win2K+ActivePerl-5.6.1.638にppmで、DBDとDBI-Oracleを入れています。 Oracle 9i(9.2.0.1.0)でデータベースを作り、PerlよりCREATE TABLEや SELECTでSQL発行できることは確認できましたが・・・ use DBI; $starttime = time(); $dbh = DBI->connect("DBI:Oracle:dbtest", "username","password", {AutoCommit=>0}); $dbh->disconnect(); print time() - $starttime; たとえば、上のでも、DBI->connect("DBI:Oracle:","username/password",....みたいな やり方など色々と試してみたのですが、接続までに2秒から16秒と 毎回ひどくばらつきがあり、非常に時間がかかります。 ぐぐってみたり、データベースを再構築してみたり、設定を変えてみたり・・ もうヘトヘトです。。どなたか解決策ご存知の方教えてくださいませんか? さすがに簡単なSELECT分で1画面でるのに10秒前後待ってくださいと 先方にいえないので・・。どうぞ宜しくお願いいたします。
>565 とりあえず、何処が遅いのか問題を切り分けろよ。 既に問題の切り分けが終わってるのなら書けよ。 調べ終わっている事を、いちいち指摘するのも馬鹿らしい。
567 :
565 :04/12/10 23:33:41 ID:???
>>566 そうやね。すまんかったね。もう少しなんとかやってみるよ。
どこが遅いか。どう書いていいか分からなかったからね。
さっきのソースを test.cgi などに保存し、コマンドプロンプトから
perl test.cgi として出た結果が 2〜16秒と毎回違う原因をご存知の
方は教えてくださいと、そう言いたかった。気にせず無かったことにして下さい。
568 :
NAME IS NULL :04/12/11 00:04:13 ID:KyN14tsu
>>549 Windows Advance で、クラスタ組んでるとか?ありそう!
正直なところ、ユーザとスキーマの違いとは何なのでしょうか?
>>569 ユーザの所有するオブジェクト空間、と理解しています。
571 :
NAME IS NULL :04/12/11 12:05:31 ID:K/aQVo0i
9iで、DBCAで作成したスクリプトファイルを元に、 DB手動作成させようとして詰まってます。 (Windows2000pro,Oracle 9.0.1.0.1 ) set ORACLE_SID=yyyy C:\oracle\ora90\bin\oradim -new -sid yyyy -startmode m -pfile C:\oracle\ora90\database\inityyyy.ora C:\oracle\ora90\bin\oradim -edit -sid yyyy -startmode a C:\oracle\ora90\bin\orapwd file=C:\oracle\ora90\dbs\orapwyyyy password=change_on_install の後に、 C:\oracle\ora90\bin\sqlplus /nolog SQL>connect sys/change_on_install as SYSDBA で、 ERROR: ORA-01031: insufficient privileges となって前に進めません。(Create Databaseコマンドを実行できない) やばそうなところ,誰かアドバイスお願いします。
572 :
>571 :04/12/11 12:50:23 ID:K/aQVo0i
>>571 解決してしまったので自己レスです。
orapwdでの fileオプションの引数が間違ってました。
(unix版の指定を書いてたので下記のように、windows版のファイル
指定をしたらうまくいきました。お騒がせしました。 )
C:\oracle\ora90\bin\orapwd file=C:\oracle\ora90\database\pwdyyyy.ora password=change_on_install
>567 Perl の事は良く知らんが、Perl の初回コンパイル時に時間が 掛かってるダケじゃないのか? せめて、SQL/Plus を使用した時、コンパイル済みを使用した時、 OCIでの接続したときの差ぐらいは調べたのか?
574 :
NAME IS NULL :04/12/12 20:56:30 ID:GI/mDpmf
明日、梅田のヨドバシでディスク買いかえる前にちょと確認。 10Gの30日版と、MIRACLEの30日版をDLして、自宅のPCに入れてみて 遊んでたんやが、 直ぐに不良セクタが表領域(10GBの大きさ)に発生する。 DBVしても、「メディアがやばい」という不良ブロックは出なかったが、 10個くらい不良個所があったので、表領域を作り直した。 で、DBVして不良セクタが無い事を確認して表作ってデータ作って 色々してたらまた不良セクタが出来る。 まあ、ハードやとは思うが、LINUX版なら、又は、試用版なら良く出るなどの 噂ってあるん? ディスクは、40GBのIDEの奴やが、内臓40GBがほぼ最新の頃に買ったものやから、 いつやろ?4年位前かな?更に1〜2年動かしてなかったものだけに、 寿命と思ってる。 しかし不良セクタのエラーは本番(業務)で出会った事が無いな。
>>574 断定はできないけど、十中八九ハードだと思うよ。
>>574 んだな。
間違いなくハードが逝っちまっただな。
577 :
NAME IS NULL :04/12/13 12:11:14 ID:xa1xUQDs
質問ですが、(Oracle8i 8.1.6) 異なるスキーマのテーブルにアクセスするとき、 スキーマ SSS 内にある TTT テーブルに ユーザ UUU が接続しようとするとき、 通常は SELECT * FROM SSS.TTT という風にSQL文を書くかとは思いますが、スキーマ名を無しで SELECT * FROM TTT という風にUUUユーザからSQLでスキーマ名を無しで TTTテーブルを利用する手段はあるのでしょうか? また、それはどのようにすればよろしいのでしょうか?
>>578 それを検索ワードに組み入れたら方法が見つかりました。
ありがとうございました。
580 :
NAME IS NULL :04/12/13 16:19:19 ID:IHBUuxWM
なんだか、OTNの反応遅くね?もしかして漏れだけなのか?
581 :
NAME IS NULL :04/12/13 17:12:47 ID:YDnOKzeK
C#でのOracle接続について質問します。 Oracleへの接続はうまくいくのですが、 ExecuteNonQueryというメソッドを実行するとエラーになってしまいます。 何か方法はないでしょうか?よろしくお願いします。 strConn= "Provider=MSDAORA.1"; strConn += ";Data Source=Server"; strConn += ";User ID=sa"; strConn += ";Password=sa"; strConn += ";Persist Security Info=True"; //コネクション作成 OleDbConnection myConn = new OleDbConnection(strConn); //コネクション確立 myConn.Open(); string myInsertQuery = "insert into TESTDB(NO,NAME,MEMO) values(7,'セブン','セブン');"; OleDbCommand myCommand = new OleDbCommand(myInsertQuery,myConn); myCommand.ExecuteNonQuery(); //ここでエラー
582 :
sage :04/12/13 17:26:19 ID:YDnOKzeK
>581 根本的に間違ってませんか?見直してください。
>>582 もしかしたら'TESTDB'という名前の表にInsertしようとしているのかも
知れないよ?
1%ぐらいの確率だろうけど。
>>580 常に遅いんだけど
前は早かったの?
漏れだけ?
585 :
580 :04/12/13 18:35:32 ID:???
正しく言えば遅いというか、表示されない。応答が無い。放置しておくと いつのまにか表示されてたって感じ。いつもはもうちょっと早いのになぁ。
586 :
NAME IS NULL :04/12/13 22:44:43 ID:2klJxOcP
明示的な行ロック(SELECT 〜 FOR UPDATE)って、0件でもロックされるのでしょうか? すいません、今試せる環境がなくて。教えて下さい。
>>587 「今から0人誘拐する」が犯行声明と受け取られる可能性があるかどうか、ですね。
590 :
574 :04/12/14 11:51:58 ID:e04t4kJp
>>575 >>576 ディスク買って、やってみたが、駄目やった・・・・。
新ディスクにDB作っても、不良ブロックが出るわ出るわで。
畜生。8000円無駄やった。
試用版とはいえ、販売品と全く同じと思っていたが、どうもそうではないのかも。
ある程度大きな表領域を作ると、わざとブロックが潰れていくのかかな?
販売品では有り得へん。
表領域2GBでやってみるかな。
>>590 >わざとブロックが潰れていくのかかな?
よっぽど有り得へんわ。
592 :
NAME IS NULL :04/12/14 13:28:25 ID:seI5J+qm
まあ、ORACLEのせいじゃないよな。 ついでに、1ファイルで10Gの領域って、バックアップとか移行性とか安全性考えたらNGだよな。 テーブルスペースの総和としての10Gならいいけど、ファイル1つで10Gは・・・。
>>590 Miracle Linuxは分からんが、DBに関しては試用版と販売品との差は無い。
ディスクを変えても不良ブロックが増えるという事は、ディスク本体じゃなくて
I/Oコントローラーかもしくはバスがいっちまてんじゃないの?
>>588 PKの項目でINSERTする前に、行ロックしたいと思ったんです。
INSERTが同時に走ると、どちらかが一意制約エラーとなるので、行ロックでWAIT
とさせたいなと。
>>589 やはり出来ないってことですか。
>>594 アプリケーションのデザイン自体があまりよくないんじゃない?
それこそPKに値を入れる時にはシークエンスを使うとかすれば
ora-00001は避けられるはずけど?
>>595 デザイン自体がよくないのは、その通りです。でも、その部分は変えられないので・・・
PKの項目は、ユニークなIDが使われており、INSERTが同時にきた場合は、遅いほうの
データを有効にしたいのです。
>>596 その場合にはもうInsert時に発生するTrigerを作成して制御するしかないんじゃない?
その変わりパフォーマンスはかなり遅くなると思われ。
というか、ora-00001が発生するようなアプリの作り自体、パフォーマンスなんか無視
しているのかも知れないけどね。
>>594 ロックに失敗したら
別のキーを取得するの?
それならINSERTに失敗したときも
同じ処理をすればよい
すいません、質問です。 Javaに関するんですがいいでしょうか? コネクションプーリングを利用しない場合 OracleDataSourceを使うのは無駄でしょうか? DataSourceを渡せば、接続からなにからいろいろできるので、 楽だと思ったのですが。
>>592 1ファイル30Gのテーブルスペースを作った。
Oracle10g
こんな馬鹿デカイの初めてだが、1テーブルで
25G超のモノがあるんでしょーがない。
1データファイルで33G位以上は無理っぽい。
でも不良ブロックなんかできないよ。
>>600 ナンデショーガナイノカサッパリワカラン
>>601 んだな、パーティション切って各パーティション毎に表領域を
準備すればパフォーマンス的にもいいのにな。
どうせ履歴テーブルかなんかでデータ放り込むだけで誰も参照なんかしないんじゃないの? >25Gテーブル あるいはLOBを知らない
605 :
NAME IS NULL :04/12/16 15:42:38 ID:Wu+We4zV
Solaris8 SPARCにOracle9.2インストールする場合、 Forteコンパイラって必要でしょうか?
>>605 プリコンパイラを使うならSun Oneのコンパイラが要る。
Windows用のクライアントのツールについて質問ですが 「Enterprise Manager Console」 (Oracle 9.2 などの)から起動できる 「SQLスクラッチパッド」はショートカットを作成するなどして 単独で起動することは出来ますか?
Oracle8(8iではない)でnext extentsを広げたいんだがどうやったらいいんだろう? alter table文?alter tablespace文?
すみません。質問させて下さい。 大量にあるレコードをインサートしたいのですが、現在レコードの数だけ インサート文を発行している為、大変処理に時間が掛かってしまいます。 このような場合、処理を早くするような方法はありませんでしょうか? ちなみにオラクルのバージョンは8を使用しています。宜しくお願いします。
>>609 alter table 表名 storage (next_extent サイズ);
でいいんじゃないのか?
>>608 U.S.のデベからの回答によると「無理ぽ」だそうだ。
614 :
610 :04/12/17 18:24:06 ID:tbcB0Ncy
615 :
608 :04/12/18 11:05:47 ID:???
>613 ありがとうございましたm(__)m
616 :
574 :04/12/18 14:12:08 ID:CSi3s+NM
>>593 そうなんかな。ディスクもそうやけど、マシン自体、少なくとも1年は電気入れて
無かったからな。このマチンは。
IOコントローラーとかになると、PC的に言えば、マザボレベルで逝ってるって
事やんね。
そろそろ新作するかな。金飛ぶなぁ。
次はデュアルCPUのものを作ろうと思ってるねんけど、高いからなぁ。
誰か、自宅でマルチCPUにオラクルのせて遊んでる人居る?
でもDBはやっぱオリジナルと同じという意識あわせが出来てよかった。ありがとう。
まあ、MIRACLEもオリジナル版やろうね。
最悪、年会費8万で、またOTNの開発ライセンスのCDアルバムを購入しようかと思ってたから。
>>616 もしくはメモリーとかね。
Oracleは思い切りメモリーで処理するから、メモリーが逝っちまっていて
書き込むアドレスとかが全然違っていたりなんかすると、きっとデフラグ
とかおきまくりだろうね。
メモリーチェッカーとかかけてみた?
自宅ではないけど、会社にある自分の管理下にあるLinuxはマルチCPUで、
ボラクル10gをのせている。
今はRAC+Physical Stanby作って遊んでいるよ。
>>617 \∩ ∩ そんな餌クマー
(\ェ)・ )三
ズザー
Oracleでハッシュ値求められますか?
620 :
NAME IS NULL :04/12/21 00:36:23 ID:vFpEVu8t
元の値に戻しても、このエラーが出ちゃうんだけど。。。 ORA-32004: obsolete and/or deprecated parameter(s) specified
>>620 そのままずばり、そのバージョンで廃止された値をinit.oraの中で
指定しているからだろ。
>>619 質問の意味をもう少し明確にしてくれますか?
求めたいのはユーザーが発行してるSQLのハッシュ値とかなのでしょうか?
それともOracleが空き領域を探すときに使用してる内部的なハッシュ値とか
なのでしょうか?
あるいはアプリ等でハッシュ値を使用したいという事なのでしょうか?
それと出来れば質問の時には自分が使用している環境が最低限は書いて
あるとさらに答えやすくなります。
624 :
NAME IS NULL :04/12/22 01:14:10 ID:A+Hb06NP
>>608 サポートのあめんぼアメミーがいらつく回答をしてくれるでしょう。
625 :
NAME IS NULL :04/12/22 11:59:13 ID:vLgLs/tX
exp実行時にエラーになってしまいます。 対処法の勘どころある方、HELPお願いします。 (環境) oracle ver 9.0.1 os solaris 8 (コマンド) exp system/manager full=y file=a.dmp log=a.log (ログ概略) 1.スキーマ非所有の各オブジェクト(表領域,プロファイル,ユーザーetc)EXP完了 2.systemスキーマの表EXP完了 3.outlnスキーマの表EXP完了 4.dbsnmpスキーマ表EXP完了 5.wksysスキーマの表EXP開始 6.EXP-00008: Oracleエラー1406が発生しました。 ORA-01406: フェッチされた列の値は切り捨てられました EXP-00000: エラーが発生したためエクスポートを終了します。
とりあえず、ログ見てどの表なりでエラーになってるか判るとおもうんで。 こんどはその表だけをEXPしてみては如何でしょうか? あとは、とりあえずエラーリファレンスを嫁。ダウンロードできるんだから。
質問なんですが、SQL*LOADERを PL/SQLプログラムから起動(実行)するには どのような記述をすればよいのでしょうか? テスト時には、BATファイルに、 sqlldr80.exe USERID=ユーザー名/パスワード@接続文字列, CONTROL=D:\sqlloader\test.ctl, LOG=D:\sqlloader\test.log, DATA=D:\sqlloader\test.csv, BAD=D:\sqlloader\test.bad, SKIP=4 の記述を行い、BATファイルを実行して データのINSERT確認を行ったのですが、 PL/SQLプログラムからの実行方法(呼び方)が分かりません。 バージョンはOracle8 Enterprise Edition Release 8.0.5.0.0です。 宜しくお願いします。
>>625 表に LONG/BLOB/CLOB の列がないか?
>>627 1. SQL*Loader を呼び出すだけの DLL を作成し、サーバに置く。
2. PL/SQL から外部プロシジャとして DLL を呼び出す。
629 :
>625 :04/12/22 17:39:35 ID:vLgLs/tX
>>626 マニュアル読みました。
wksysのユーザーモードでEXP:同様のエラー
wksys以外(scott)ユーザーモードでEXP:正常終了
でしたので、やはりwksysの表が怪しいと思いました。
以下マニュアル個所の「プログラム・バッファ領域」に着目し、RECORDLENGTH=64000
としてみましたがダメ(同じエラー)でした。
(マニュアル)
ORA-01406 フェッチされた列の値は切り捨てられました
原因: ホスト言語プログラム中のフェッチ操作によって、ある文字列が強制的に切り捨
てられました。この列のプログラム・バッファ領域が、文字列全体を格納するために十
分な大きさではありませんでした。フェッチからのカーソル・リターン・コードは+3
でした。
処置: 最大列値を保持できるよう列のバッファ領域を増やすか、または他の適切な処理
を実行してください。
>>628 wksysスキーマの所有している表定義を一通り見ましたが、
ありませんでした。
で、念のために wksysの所有してるテーブル名を全て明記して
exp tables=\(wksys.table1, ・・・・,wksys.tableN\) としてみたら、全く同じ
エラーがでました。
原因のテーブルと特定しようとしましたが、エラーになる表の方が、
多い状況です。(表は全部で22個)
>629 別のDBMSだけど、文字化けしたときも同じようなエラーが起こった気がする。 NLS_LANGとかあってる? もしくは、データ化けてない? 問題のあるテーブルの列を無効にしてからやってみたらどう。
>>625 PSR9.0.1.4を適用し下記を実行。
SQL> connect /as sysdba
SQL> @?/rdbms/admin/catexp.sql
>>625 exp の際のパラメータで、buffer だっけ?
蚊なんかで隠して味噌。
634 :
NAME IS NULL :04/12/27 06:55:24 ID:0jGrKWMT
Win2003に10Gをインストールしましたら、定期的にFDDアクセスランプが点灯します。 10Gのインスタンスを停止したら、FDDのアクセスランプの点灯は止まりました。 この事からおそらく10GがFDDのアクセスを行っている様ですが 止める方法はないでしょうか? ちなみにWin2003インストール直後に10GをサンプルDBをインストールしたのみの 状態で、特に設定を替えていません、又他のアプリは一切インストールしていません。 よろしくお願いいたします。
>>634 アーカイブログをフロッピーでとっているのか?w
636 :
NAME IS NULL :04/12/31 22:50:13 ID:t3dJI08j
>634 無い。10Gよりもっと前からある仕様。
637 :
NAME IS NULL :05/01/01 23:39:41 ID:8oQXt+SW
どなたか、オラクルマスターについて教えて下さい。 Oracle Database 10g についてなんですが、 下位資格が無いと、上位資格は受けられないのでしょうか? (Bronzを持っていないと、Silverを受けられないとか) どこを探してもわからないので、よろしくお願いしまっす!
639 :
NAME IS NULL :05/01/02 01:08:13 ID:fO595vPt
640 :
NAME IS NULL :05/01/02 16:05:34 ID:TymztilI
スタンバイDBの方に毎回以下のようなrepaire処理がされているのですが、 どうしてなのでしょうか。ほっといても大丈夫でしょうか? Sun Jan 02 10:39:06 2005 ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log E:\DB_ARCH\JP15\13822.ARC Recovery is repairing media corrupt block 45450 of file 14 Recovery is repairing media corrupt block 45451 of file 14 Recovery is repairing media corrupt block 45452 of file 14 Recovery is repairing media corrupt block 45453 of file 14 Recovery is repairing media corrupt block 45454 of file 14 Recovery is repairing media corrupt block 45455 of file 14 Recovery is repairing media corrupt block 45456 of file 14 ...... Sun Jan 02 10:40:46 2005 ORA-279 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ... Sun Jan 02 10:40:46 2005 ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log E:\DB_ARCH\JP15\13823.ARC
>>640 エラー通りファイル#14のブロックがぶっ壊れているからだろう。
当然放っておいて良い訳がない。
メディア・ブロック・リカバリーが出来ればベストだけど、出来な
そうなら、スタンバイDBの再作成で対応だな。
SQLPLUSの接続の際に使うパスワードとIDってどこで設定するんですか?
>>642 DBのユーザー作成時です。
create user ユーザー名 identified by パスワード
default tablespace デフォルト表領域名
temporary tablespace 一辞表領域名;
における「ユーザー名」がID、パスワードが「パスワード」に
対応しています。
644 :
NAME IS NULL :05/01/02 20:10:08 ID:TymztilI
>>641 実は先週作り直したんです。でもこのメッセージは消えません。。。
これって元の本番側が壊れてるんでしょうか。特にalert.logとかには
変なメッセージは出てませんが。正常かどうか確認するにはどこを
見ればよいでしょうか?
>>644 スタンバイ作る時に、プライマリ側でNologgingオプションを指定して何か
セグメントを作成していたりとかしていないか?
それこそ索引とか何か?
SELECT name, unrecoverable_change# , unrecoverable_time FROM v$datafile;
で一回調べてみそ?
646 :
NAME IS NULL :05/01/02 23:29:58 ID:TymztilI
正月早々すんません。 幾つかのファイルが引っ掛りました。。。(primary,Standby側両方同じ) リカバリの方法教えてください。 (これって現状特に問題なくシステムは動いてるんですが問題あるのでしょうか。) NAME UNRECOVERABLE_CHANGE# UNRECOVERABLE_TIME ------------------------------------------------------------------------------------ .... D:\ORACLE\ORADATA\JP15\INDX_D.ORA 0 D:\ORACLE\ORADATA\JP15\USERS1.ORA 547679252 05-01-01 D:\ORACLE\ORADATA\JP15\USERS2.ORA 547679138 05-01-01 ...
>>646 肝心な事聞くの忘れていたよ。
OracleのVerは何?
9i以上だったら、プライマリDBはforce logging modeになっている?
「select force_logging from v$database;」で、ちゃんと
「force_logging = YES」って返ってきてる?
あとは、取り合えずエラーが発生しているデータファイル上にある
表領域をforce loggingモードにしてみそ。
「alter tablespace 表領域名 force logging; 」で出来るから。
ただし、大量にredolog吐くから、スペースに注意してね。
648 :
640 :05/01/03 03:15:29 ID:Dc3bpwLf
すいません。v8.1.7でした。
>>648 むむむ、もしかしてスタンバイを再作成した時って、ホットバックアップを
使ったとか、そんなことしていない?
それだとBug#2170152にヒットしているかも知れない。
この場合にはDBを9iにアップグレードしないと解決しない。
そうじゃないなら、Nologgingモードを指定して作成したセグメントをLogging
モードで再作成してから、再度スタンバイを再作成すれば大丈夫なはず。
650 :
NAME IS NULL :05/01/03 12:14:03 ID:Dc3bpwLf
>>Bug#2170152 これ知りたいのですが、どこで参照できるのでしょうか?
>>649 ここで具体的なBUG#まで出すのはやりすぎだろ。
652 :
NAME IS NULL :05/01/03 21:35:45 ID:BFODVwRd
接続記述子と接続識別子の違いって何?
653 :
634 :05/01/05 06:04:31 ID:+bwrZ/U7
>>639 Win2003の問題だったんですね。
ありがとうございました。
654 :
NAME IS NULL :05/01/10 23:18:15 ID:mzhncqOA
あけおめ、ことよろ保存Age
Soralis8にOracle8.1.7をインストールして動かしているのですが、誰かがログインしているとシャットダウンができません。 SQL*plusなどでinternalでログイン後、以下のように入力しています。 shutdown immediate プロンプトが戻ってこなくなるのでctrl+zで停止後、全てログアウトしてからもう一度同じように入力すると停止します。 インスタンスはインストール時に作成したものではなく、手動で作成しました。 インスタンスの作成方法と何か関係があるでしょうか? それとも不具合があって、パッチをあてる必要があるのでしょうか? 宜しくお願いします。
656 :
NAME IS NULL :05/01/11 18:09:22 ID:7TuWjBi/
>>655 「shutdown immediate」って何を意味しているか分かっているかい?
アクティブなトランザクションをロールバックして、全てのユーザセッションを
切断していっているので、ユーザー数やトランザクション量によっては当然
時間がかかって当たり前。
場合によっては5分くらいかかる事もある。
どうしても即効でメモリ上から落としたかったら「shutdown abort」という手がある。
ただし、これはコミットされていないトランザクションがロールバックされない、
データベース・バッファ・キャッシュとRedoログ・バッファがディスクに書き込ま
れない、次回インスタンス時にリカバリ処理が必要(当然時間がそれなりにかかる
こともある)などのリスクがある。
過去ログ探す元気なくて、お手数ですが教えてください。 PHPでCLOBのフィールドに4000byte以上の文言を インサートしたいんですけど、どうすればいいのでしょうか? たぶん ORA-01704: string literal too long なんかのエラーが出ているかと思うんですけど。 別にclobである必要もないのですが、かなりボリュームが ある文言なので。 よろしくお願いします。
658 :
NAME IS NULL :05/01/12 00:03:29 ID:qXGM+Ait
shutdown transactionalっていうのもあるが? immediateだと完全にロールバックしないんじゃ。。。
659 :
NAME IS NULL :05/01/12 00:10:11 ID:qXGM+Ait
というのはshutdown immediate後OS落としたら、テーブルが 壊れたことがあったので。。。
661 :
NAME IS NULL :05/01/12 01:31:36 ID:8ykHWMOy
>>656 Oracle立ち上げて何の更新もしないでsqlplusなどでログインしてすぐに落とそうとしても落ちませんでした。
ログインしていなければ数十秒で落ちるのですが。
今日改めてやってみたのですが、正確には以下のようでした。
・sqlplusで立ち上げて落とす場合にはログインしていても大丈夫。
・dbstartで立ち上げた場合やdbshutで落とす場合はだめ。
dbstartで立ち上げてsqlplusで落とす、sqlplusで立ち上げてdbshutで落とす、など。
db〜スクリプトを使うと駄目なようです。
一応dbshutの方のスクリプトのオプションにはimmediateを追加しているのですが...
多分スクリプトはもう少しいじらないと駄目なような気がします。
dbshutを使わない方法で検討してみます。
アドバイスくれた皆さんありがとうございました。
663 :
NAME IS NULL :05/01/12 22:20:03 ID:BtlCvR/H
OSはlinux。 オラクル10g・・・。 インストールしぱい・・。(DB作成途中でオラクル強制終了 OS入れなおさなきゃダメ? ダメですか?(涙
>>663 OS再インストールまでいく必要はない。
665 :
NAME IS NULL :05/01/12 23:42:25 ID:IQRfqZPz
ID違うと思うけど。
>>664 サンクス、勇気湧いたw
明日ガンバロ。
666 :
NAME IS NULL :05/01/13 17:20:59 ID:OYfvs6Yc
知ってる方いたら教えてください。 例えば int a; int b; というカラムを持つテーブルがあって、aとbを複合キーとしている場合 aかbがnullの行であっても一意であればインサートは可能でしょうか? やってみるのが早いのですが手元に触れる環境がないので困ってます。 どうかお助けを。
key はNOT NULLだわな
>>666 >int a;
>int b;
C かよ!
…てのはともかく、a と b で UNIQUE キーになってれば可。
>>668 UNIQUE制約だけならそうだが
キーはだめだろうキーは。
670 :
NAME IS NULL :05/01/14 00:42:03 ID:oIn6XzS3
んだんだ。 重複しない値を保証するべきキーが、不定っていうのは変だ。 値を持つべき。 だからkey はNOT NULL
671 :
666 :05/01/14 10:37:34 ID:A93Q3WAf
なるほど。 やっぱnullはダメぽいですね…。 なにかダミーの値でも入れておくしかないかなぁ。 ありがとございました。
NULLが入る可能性があるカラムをキーにするのが間違ってるので、 キーを他のカラムに設けて、a、bにUNIQUE制約のみをつけるのが筋と思う。 まずは要件を満たす事を考えなきゃいかんですよ。 そんなにレコード数が多くないちっこいテーブルなら キー無しでもいいし。
キーを他のカラムに設けて、っておかしいな。 新しくキーのカラムを追加して、ね。なんちゃらIDとか。
そもそもの仕様を日本語で表したときに、そのデータは何によって一意性を判断されるか? それ以外に無いと思うが。 あと、キーと一意制約の違いはきちんとしないと。
666をよく読み返したら、 どうやら既にあるテーブルに突っ込みたいみたいですね。 テーブル定義は変えられないんじゃないかな。 じゃあ苦し紛れにダミー値しかないかなあ。
9.2.0のデータベースから7.3.4のデータベースに対してDBlinkを張り、 select文を発行したのですが、「ORA-001002フェッチ順序が無効です。」 のエラーが発生します。 この組み合わせは無理でしょうか?
バージョンに関する話題はマニュアルみたほうがいいような。 まずNetが対応してるか、それからDBLinkの仕様を確認。 ついでにSELECT文が7に適合した文法かとか。
>>676 無理。
tp://www.oracle.co.jp/products/system/matrix_db.html
679 :
676 :05/01/14 15:32:54 ID:???
>>677 既にいくつかのドキュメントをOTNからダウンロードしましたが、
目ぼしい情報が無くて・・・。
DBlink自体はサーバーのtnsnames.oraに記述している接続文字列を
参照し、Ora7側ユーザー側を指定するpublicのものです。
select文も select * from 表名;のベタなものです。
oracle8なんですが、データーベースが1日に一回ほぼ毎日落ちてしまいます。 朝出勤すると落ちてるのでsvrmgrlしてconnectしてstartupしてます。多分夜中に落ちてる気がします。 管理者に問い合わせる前に自分である程度原因が分かればと、mseegesなんかをみましたが、分かりませんでした。 ググっても定期的にデータベースが落ちる類のものはなかったです。 って、こんなんじゃ答えようないですよね・・・。
アラートログは見た?
バッチに間違ってshutdownが入ってたりとか。
>>682 夜中にコールドバックアップ取っていて、管理者がバックアップ終了後に
DBを上げるスクリプトをスケジューリングしていないとかいうオチでは?
Oracle9iってセッションがきれたタイミングで トリガー(?)みたいなものはよべないでしょうか? C#のプログラムからOLEで接続しているのですが リソースをロックしたまま画面が落ちたときに ロックをつかんだままになってしまうのです。 (テーブルロックとかではなく自分でロックの仕組みを 作っている) 画面とのセッションがきれたタイミングでトリガーみたいな のがよばれてDB側でロックを開放してくれると 理想的なのですが・・・
>>687 TCP/IPとかなりの特質上、セッションが勝手に切れたかどうかを即時で判断することはできません。
なので、あなたが望んでいるそのままのものは無いと思います。
NETの設定(サーバ側)でセッションタイムアウト値(監視間隔みたいな奴)があったはずです。(8iの知識ですまん)
これを設定すると、サーバー側からセッションの生存確認を一定間隔で行い、
死んでる場合はセッションをクローズしてくれる(=掴んでいたリソースの開放)はずです。
ただ、マニュアルにあると思いますが、この値を極端に上げると負荷がかかってシステム動作に影響あるはずです。
8iまでの知識でしかも手元何もなしなので、間違ってたらすみません。
っと書き込みをしてから括弧の中をきちんと読んだ。 その場合はダメだね。 多分ロック管理テーブルみたいのを作ってるんだろうけど、それって普通にデータじゃないですか。 その仕組みにしてる時点で、不慮の事故の際にロックかかりっぱなしになるのは宿命でしょ。
楽天証券で一時システム障害 今年2度目 - asahi.com : 経済
http://www.asahi.com/business/update/0120/129.html 楽天証券 システム関連のお知らせ No.2001
https://www.rakuten-sec.co.jp/ITS/V_TOP_SysNotice_2001.html ■障害の原因
今回のシステム障害の原因は、基幹データベースサーバで利用しているOracleに
不具合が発生したものと判明しております。
具体的には、Oracle上の共有プール(メモリ)の所定の設定値以上にWEBやマーケ
ットスピードのアプリケーションサーバから大量の処理要求接続が行なわれたため、
それ以上の処理接続を受け入れることができずハングアップしたものです。結果として、
基幹データベースへのアクセスが不可能となり、システムへの新規ログインならびに
登録・更新/参照処理が不可能となってしまいました。
■障害への対処策
本日の復旧処理といたしましては、共有プール(メモリ)のリソースを拡大することで
対処いたしました。そのため、本日9時30分頃からデータベースサーバの緊急停止を
実施し、Oracleの共有プール設定値(SHARED_POOL_SIZE)を障害発生前の2倍に変
更することで発生要因解消を行いました。
>>690 一般人はこの謝罪文を見て理解できるのか?
>>690 なんか一度障害でとまって、
メモリや、CPUを増設したみたい。
で、おそらくチューニングをやっていなくてあぼーん。
下手したら、カーネルのパラメタいじってな〜いんじゃない?
おそらくここのシステムのSYSTEM,TEMP表領域はた〜いへ〜んな
ことになってる余寒がする。
ほかに何かやばそうなのあるかな?
693 :
NAME IS NULL :05/01/21 14:57:15 ID:wpfCRKHH
誰か助けてください。 今Oracleバージョン8.0.3.8(8i?) で運用している者なのですが、 ・HTMLからあるプロシージャを呼び出すとします。 そこの中で戻り値ありの共通関数を呼び出し、その中でエラーが発生したら 通常は戻り値に「エラー」みたいな文字列を返して、呼び出し元のプロシージャで 処理をするのですが、戻り値を戻さずエラー処理をしたいのですが、戻り値を戻さないと 「Can't display Function Menu.ORA-06503: PL/SQL: Function returned without value」 とオラクルにシステムエラー?をはかれてしまいます。 これをうまく回避する方法はないでしょうか? ・ここまでで処理をストップさせる関数みたいなものはあるのでしょうか? ・またこの処理を入れることによりハード的に何も問題みたいなものは発生しませんでしょうか? 宜しくお願いします。
>>693 >今Oracleバージョン8.0.3.8(8i?)
>・HTMLからあるプロシージャを呼び出すとします。
>戻り値を戻さずエラー処理をしたいのですが、
なんか色々凄いね…
よく判らんが、プロシジャから関数呼んでるんでしょ?
関数で例外送ってプロシジャで受ければいいんじゃない?
695 :
693 :05/01/21 17:22:54 ID:wpfCRKHH
> 693 > 関数で例外送ってプロシジャで受ければいいんじゃない? そのような処理が通常行う処理の流れなのですが。 プロシジャ(呼び出し元)を修正するとなるとこの共通関数を呼んでいる 全ての箇所に修正を加えなくてはいけなくなってしまうので、それは避けたいので、 戻り値有り(Function)関数でこの場合だけ、例外的に処理を強制的に止められるような 処理はないのかなと思ったのですが。。
まあ、693の書き出しからしてあれだけど。 HTMLからはよべんわな? Javaスクリプト?サーブレット?PHP? 何れにしてもその中で処理すればいいだけじゃないの?
697 :
696 :05/01/21 17:51:49 ID:wpfCRKHH
> 何れにしてもその中で処理すればいいだけじゃないの? いや、違くて。。 何度も言っているのですが、共通関数なので、呼び出し側を改修するような 作業が発生してしまうと全てのプロシジャを改修する作業が発生してしまうので・・・ 呼び出しているのはCプログラムです。 ですが、開発しているのはPL/SQLで行っています。
698 :
696 :05/01/21 17:58:46 ID:wpfCRKHH
今 functionで値チェックをしてエラーならエラー処理、エラーなしなら呼び出し元に戻り通常処理だとします。 Cプログラム → PL/SQL(procejure) → PL/SQL(function) → 呼び出し元に戻るPL/SQL(procejure) ↑ 引数を渡す ここで、例外的に引数を返さずシステムエラーもはかずに処理を止められるような ことはシステム関数みたいなものでないかなと思っただけなのですが。。 このプログラムの流れが悪いとか指摘は抜きにしてもう悪いのはわかっているので。
699 :
NAME IS NULL :05/01/21 23:04:20 ID:6TFcRpwY
Oracle 10gのDatabase Configtarion Assistantでカスタムスクリプトを吐き出させて、 それを実行してインスタンス作ってみたのですが、OracleDBConsoleXXXXというのが できません。これってどうやったら作れるものなのですか?
RAC構成で普段使っていないノードがあるんだけど archive_lag_targetを設定するのってどうよ。
>>700 一定時間でArchivelogを吐かせたいということ?
fast_start_mttr_targetを設定して、チェクポイントを自動に
取る様にすればいいんじゃない?
>>700 複数インスタンスには同じ値を使用する必要がある。なんか意味あんの?
703 :
700 :05/01/23 01:45:08 ID:???
コメントサンクス いやね、遊んでるノードはアーカイブがたまにしか吐かれないんだわ。 カレントREDOが逝っちゃうと痛くないかなと思って。
>>703 RMANでArvhivelogのバックアップ取ればいいんでないの?
バックアップ時に暗黙的に「archivelog all」が行われるし?
>>703 redo memberを増やして安堵感を買う。
普通のノード:redo切り替え 2時間に1回 遊んでるノード:redo切り替え 6時間に1回 →アクセスなくても勝手に吐かれるみたいね。KROWNにのってた。 これだと遊んでるノードのカレントredoの消失って痛いかなと思って。 ただし、archiveの消失も痛しで両刃の剣。 というわけで、これを決めかねている。 ちなみにmemberは2つあるよ。RAID(0+1)でね。
>>707 memberがいるなら別にいいじゃん。
質問させてくれ〜 OracleのAPPのOCIは10gになって何か変更されたのかな? Web上に情報があれば、アドレス教えてくれると助かる
710 :
NAME IS NULL :05/01/24 22:59:26 ID:qR9yuQGl
3451.arc 3453.arc 3454.arc ... とarchive.logの番号が1つ飛んでしまったのだが、何が原因じゃ?
711 :
699 :05/01/25 00:35:43 ID:???
>>704 emcaの具体的なコマンドオプションを教えてもらえると助かります。お願いします。
>>710 RACなら別のノードに吐かれてるぞ。
(インスタンスダウンしてたらだけど)
>>710 まずはalert.log見てみそ。
>>712 スレッドが違うから、飛ぶのはおかしいってば。
>>713 他ノードのアーカイバ・プロセスがアーカイブを場合もあるのよ。
すいません。初心者とはいえ馬鹿な奴だと思われるような質問なんですが・・・ オラクルエンタープライズマネージャーから セキュリティ→プロファイル→プロファイル名を設定。 そして、試しにアイドル時間を1と設定しました。 ですが、1分放置しても何もなりませんでした。 他に設定する箇所があるのでしょうか? どなたか教えてください。お願いします。
>>716 確認すべき点は次の点だな。
1. 初期化パラメーターの「resource_limit」が「true」になってるか。
2. ALTER USER ユーザー名 PROFILE プロファイル名;でちゃんと
ユーザーに対してプロファイルを適用しているか。
Solaris8の環境でOracle8iのインストールを行っています。 しかし、インストールのCD2枚目に入れ替えてしばらくした所(88%位)で次のようなエラーメッセージが出てきます。 Error in writing to file $ORACLE_HOME/ctx/data/enlx/droldUS.dat というエラーです。 ボタンが3つ(Help、Retry、Cansel)あり、Helpには大したことが書いてありません。 書き込み出来ないエラーだと思い、chmodの関数を使用して書き込みの権限も与えました。 しかし、エラーは続きます。 もしもわかる方がいらっしゃいましたらよろしくお願いします。
>>718 ディスク容量、32bit or 64bit の間違いなどは如何。
720 :
718 :05/01/28 12:04:14 ID:???
719様。ありがとうございます。 調べてみた所64bitでCD-ROMも64bitを使用して再度インストールを実行してみました。 気づいた点があります。 UNIX Group Nameを入力した後に小さいウインドウが ポップアップで出現するはずなのですが出てきません。 本当は別の端末ウインドウでorainstRoot.shファイルを 実行しないといけないのですが、そのファイル自体も存在しません。 そのせいで後にエラーが出てくるということはあるのでしょうか? 説明がわかりにくいと思いますが、わかる方がいらっしゃいましたらよろしくお願いします。
721 :
718 :05/01/28 16:32:56 ID:???
64bitのCDで試した所、 別のファイルでエラーが起こります。 Error in writing to file $ORACLE_HOME/bin/agtctl というエラーです。 このoracleファイルは存在します。 サイズは49,152です。 知っている方はもちろん、同じようなエラーが出た方で解決した方が いらっしゃいましたらよろしくおねがいします。
722 :
718 :05/01/28 19:02:17 ID:???
すみません。 出来ました。 oraInst.locファイルを削除しなかった為におきたエラーでした。 お騒がせしました。
他人のスキーマ上のテーブルを TRUNCATE するためには どのような権限が必要でしょうか? A さんの TEST というテーブルを、 B さんが「TRUNCATE TABLE A.TEST」と素直に切り捨てる ために必要な GRANT 文はなんですか・・・ということです。 どなたか助けて下さい・・・
724 :
NAME IS NULL :05/01/29 01:37:25 ID:wcRKwJ1W
そんな時はとりあえずgrant dbaかgrant drop any table
>>724 はうあー!そんな権限設定を客が許してくれる訳ねー!
「必要最低限の権限」を教えて下さい・・・すんません。
前提条件が自分のものか、drop any table権限 (SQLリファレンスより)
>>726 any ではなくて、特定のテーブルに対する TRUNCATE のみを許可ってのは
できないんやったっけ・・・?
さっきの例で言うと A さんの TEST テーブルは TRUNCATE できるが、
TEST2 テーブルは TRUNCATE できない・・・みたいな。
>>725 他人のテーブルをtruncateするのはdrop any table 「システム権限」が必要。
他人の特定のテーブルをtruncateする「オブジェクト権限」はない。はず。たぶん...
>>727 できまへん。
DBA以外のUserがTruncate権限持つ事自体が怖いので、
そういった設計になっているみたいっす。
>>728 >>729 はうあー!でもまさにそれが知りたかった答えです。
非常に助かりましたわ。ありがちょ!にちゃんさいこー
/ 冫─' ~  ̄´^- / /ヽ丿彡彡彡彡彡ヽヽ | 丿 Mr.Gates ミ | 彡 ____ ____ ミ/ ゝ_//|-=・=-|⌒|-=・=-|ヽゞ |tゝ \__/_ \__/ | | __________ ヽノ /\_/\ |ノ / ゝ /ヽ───‐ヽ / / っつーか、みんな /|ヽ ヽ──' / < おらくるじゃだめだって。 / | \  ̄ / \ / ヽ ‐-  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
732 :
NAME IS NULL :05/01/30 00:42:38 ID:0zgKOuSg
win2000に 9i(9.0.1)のパーソナルエディションがインストール出来ません。 インストール途中の Oracle Database Configuration Assistantのインストール中 と言うところで止まったままになります(2時間ほど止まったままでした) 何卒、インストール方法をお教えください
>>732 ファイルパスにダブルバイト文字が含まれていないか確認汁。
734 :
732 :05/01/30 01:31:19 ID:???
>>733 レスありがとう御座います。
確認いたしました。
全てシングルバイト文字でした。
ログインしているユーザ名も同様です、、、。
メモリーが足りないorディスクが足りない インストール時にはDB作らないで、インストール後に もろもろをやったほうがいいと思う。
736 :
732 :05/01/30 02:25:38 ID:???
>>735 メモリは512m
ディスクはcが2.5G、Dが4.5Gです。
DBを作らないインストール試してみます。
ありがとう御座いました。
737 :
732 :05/01/30 04:39:22 ID:???
DBを作らないインストールでも駄目でした、、。 9.2iのトライアルをダウンロードしてインストールしたら、 うまくいきました! 教えくくれたみなさんありがとう御座いました
>>737 なんだ。何でも良かったのか。
遅いけど一応。
その頃のインストーラは Pentium4 と相性が悪かった。
ローカルにコピーしてなんかのファイルを修正して、とかやる必要があった。
あと、元々インストールしてある Java とぶつかったりもした気がする。
>>723 そんな感じのプロシージャを作って
オーナ権限で動かしてtruncateすればいいんじゃない?
>>732 Path環境変数に他のJava VMが先に登録されていると、そっちを優先的に読み込んでしまうので
そこで落ちることがあるよ。つかインストールログにJava例外メッセージがちゃんと出てるはず
なんだけど、それ読んだ?
テスト機と本番機に既にだいたい同じOracle8iの環境がありまして、 現状テスト機のOracleのデータが古いので 本番機からデータを引っ張ってきて最新の状態にしたいのですが、どの方法をとればよいか 悩んでいます。 1:exp80 system/manager full=y file=G:\exp_full.dmp log=G:\exp_full.log システム権限で全ユーザーが所持するテーブルを取得してやる。 この場合、システム表領域のテーブルも取得してくるのですかね? その場合、安易にインポートしてはいけないような気がするのですが・・ 2:REDOログファイル・ユーザーデータファイル・一時表領域データファイル・ システム表領域データファイル・コントロールファイル・アーカイブログファイル をコピーしてやる・・・ 教えてください。 よろしくお願いします。
何を移行するかによると思う部分もあるが。 ロジックのチェック=データの移行であれば、1の方法で使用するユーザー=スキーマのデータだけ移行すればOK。 性能面など測るのであればEXPORTでは、入れたときに断片化が解消されるので2の方法でしょうか?
743 :
741 :05/01/31 13:10:05 ID:???
>>742 ありがとうございます。移行したいのはデータですが、
各テーブル間において外部キーなど関係性を所持しているかもしれないです。
↓のコマンドで全テーブルを引っ張ってきて、インポートしても
もそういう依存関係は保持されるのでしょうか?
exp system/manager full=y file=G:\exp_full.dmp log=G:\exp_full.log
このコマンドからやると全てのユーザーのテーブルがdmpファイルにコピーされる
らしいのですが、いったい「全て」とはどこまで全てなのでしょうか?
たとえばシステム表領域内のテーブルもでしょうか?
あとインポートする際にはどいうコマンドを打てば・・
聞きまくってすみません。
トリガーステートメント中に、トリガー発動の契機となったSQLを発行した プログラムの名前と、そのSQL文を取得したいのですが、 どのように記述すればよいのでしょうか? 宜しくお願いします。
>>743 全てといったら全てです。w
システム管理のものなども含まれます。
詳細はORACLEのマニュアルダウンロードして確認したほうがいいですよ。
コマンドとかツールに関しては最終的にはそれで確認するようにしないと。
>>744 無い・・・と思う。
トレースで行うことで外部から推察は出来るけど。
>>743 あと、DMPファイルは強いTextEditorで見れば中みれます。
(メモ帳とかじゃなくTeraPadなど)
CreateTable/Index、AlterTable、Insert、などの塊なので見れば判ります。
外部キーなどもきちんとスキーマー指定して適切な人が所有してれば問題ないとは思うのですが・・・。
747 :
NAME IS NULL :05/01/31 16:08:34 ID:E+PV6JQ7
こんばんは。 Oracle初心者です。 現在Solaris8にOracle8iをインストールをしています。 Oracleをインストールする際に途中でorainstRoot.shを実行しますが、 これを実行することで何が行われるのかわかりません。 わかる方いらっしゃいましたら教えていただけませんでしょうか? 検索してもうまくひっかかりません。 よろしくお願いします。
>>743 8iからはsysのオブジェクトはexp/impはされないんよ。
それを除いた全てがexp/impで行う事が出来る。
DBの方法で大体考え付く方法は以下のものかな。
1. exp/imp
2.RMANによるDuplication
3.DB Link
4.マニュアルコピー
RMANによるDuplicationは断片化こそ解決はしてくれないけど、
ほぼ自動でやってくれるから便利と言えば便利。
>>741 2 なら面倒ないぞ。
本番機のoracle 止めて、データファイルコピーして、
テスト機のoracle 止めて、データファイルコピーして init.ora書き換え、起動
まっさら移る。
>>747 そのシェルスクリプトを読めば済むことなのでは?
ここオラクル総合スレだよな? 初めてきたんだけど、オラクル10Gは評価されてるのか? 俺的にはもダメダメだ この会社は9ias辺りからおかしくなりすぎ。 特に信者どもオラオタども!! オマエラもちょっとはオカシイと疑問もてよ!! 誇大広告じゃねーか!マッチポンプじゃねーか!! オラクルしっかりしろよ!!!
10gは最初から眼中なし。GRIDもASMも俺には必要なし。 だから9iR2で十分。てか、これでもオーバースペックかもな。
754 :
751 :05/02/01 00:22:37 ID:???
俺、オラクルプラチナ取るのに必死こいて頑張った。 それで転職も出来た。オラクルには恩があると言ってもいい。 でも、デベロッパーミーティングに行っていような光景を目にした。 打ち上げパーティがあるというので参加したら、出てきたのは、誰?!っていうオラクル社員がほとんど しかも進入女性社員も壇上に引っ張りあげてる。 女子アナ気取りかっつーの! さらに、プレゼントしまーす!とかつって、オラクルグッズを壇上から客席に向かって投げ始めやがった。 オラオタ信者は我も我もとアイドルに群がるように押し寄せていき、その光景をみたオラ社員は言いやがった。 「ウチのグッズって人気あるんだぁw」 ふざけるのもたいがいにしろだ!
755 :
751 :05/02/01 00:29:38 ID:???
さらに10G 何処がグリッドコンピューティングなんだよ!? 自己分析自己管理!?cronにstatsパックを自動実行させるのに毛を生えたていどじゃないか。 OEM!バグ多すぎ!!よくこんなものを売りつける気になったな。悪徳もいいとこだ。 プラチナを強引にゴールドに引き下げるなんてこともしやがったな。 プラチナ取れ取れって煽ってたのはオラクルじゃないか!! 今度の10Gは簡単便利になりました。 ってオイ!!研修費は9iより6万円も高いだろ!!!! なんかね、俺はオラクル技術によるDBA職人を目指してたわけ。 なのにその元締めが、マッチポンプだったって分かって。 俺の潔癖症が我慢できない。 俺の求めていたものはコレだったのか・・・と落胆したよ。 すまん。 スレの流れブッちぎったね。 ごめんね。
>>754 いや、それは極端な世界だって。
データベース界の秋葉原みたいなもんだよ。
757 :
751 :05/02/01 00:36:21 ID:advQXVlc
>>756 こんなこともあったぞ
オラの技術サポートで質問したんだよ。
内容は忘れたけれど、「インストール後の環境構築スクリプトがうまく動かない」こんなかんじ
でね、ネットの過去事例でスクリプトの当て方みたいなのがオラサイトにあって、そのとおりにしてたのに。
結局それは回答が来た、「○○って隠しパラメーターを××してください。この過去事例に乗っているでしょ」
って感じのが。
ブチギレタね。
おい!タイトルからして俺が読んでた方が、まさにスクリプト実行マニュアルじゃねえか!
隠しパラメーターってなんだよ!!
オラサポは言う
「今までそんな苦情はこなかったから、皆さんできてるようですよ」
俺の怒りは頂点に立つ
>>755 > 俺の潔癖症が我慢できない。
その潔癖症と製品知識を生かして、未来に発生するであろう製品不具合を
避けて安定稼動するデータベース環境を構築すればいいんでしょう?
製品技術に携わる技術者に求められる事って、こういう側面が大きいと思うけど。
760 :
751 :05/02/01 00:41:41 ID:???
>>759 だろ?客ナメるのもたいがいにしろってんだ。
>>758 俺はもうオラクルを盲信しなくなった。
こんなカンジで一歩引いてたほうがいい商品を見ることができるかもってんでヨシとしようとも思う。
でもウチの上司がオラ信者なんだよねぇ・・・。
>>760 いや、妄信していた今までがおかしいのであって、
今が正常な状態と言えるのではないでしょうか。
なにもORACLEだけに拘らず、精進すればよいのでは。NOKK社員じゃないんだし。
( ゜Д゜) ポカーン
なんだかねえ
>>751 >ここオラクル総合スレだよな?
そうです。しかし、愚痴スレではありません。
うぜぇよ莫迦。
いまだにOracle 8ですが何か? 別に不満はありません。
>>767 君の気持ちはとてもよくわかるけど
プロプライエタリな技術の資格試験だと言う時点で
そこは割り切っとかないとダメダメだよ。
でもプラチナ取ったのは無駄じゃないとおもうよ。
767 :
767 :05/02/02 10:11:38 ID:???
え、オレ!?
>>751 > オラクルしっかりしろよ!!!
愛ゆえの叱責なのね。
でも、
>>751 ,754,755,757,760
よく読んだら、自分の気に入らないことわめいてるだけじゃねーか。
>>754 >ふざけるのもたいがいにしろだ!
よそと違うことをするのがこの会社の伝統だな。
かりかりすんなって。
>>755 >何処がグリッドコンピューティングなんだよ!?
>自己分析自己管理!?cronにstatsパックを自動実行させるのに毛を生えたていどじゃないか。
ん?
自己管理はそのもう少し先にあるぞ。
もう少し深堀が必要。
GRIDはリソースを大量に用意しないとうまみがないかも。
>今度の10Gは簡単便利になりました。
>ってオイ!!研修費は9iより6万円も高いだろ!!!!
自己管理と初期導入は少し簡単になった。
でも、新しいコンセプトの機能がてんこもりだから、勉強することも増えたw
研修が高くなったのは知らんかった。
>>757 ,759
探し方がたりなかっただけだろ。
でも、RDBMSではOracleが先端行ってるから、これを追っかけておけばいいんでない?
DB2もSQL鯖もオープンソース系も、機能追加はOracleの後追いだし。
>>768 > 探し方がたりなかっただけだろ。
それが駄目なんだろ。
レプリケーションをしているテーブルの定義を変更したい(列のサイズを増やす)のですが、 DBMS_REPCAT.EXECUTE_DDL や DBMS_REPCAT.ALTER_MASTER_REPOBJECT で 変更されるのはマスター側のみで、マテリアライズドビューの定義が変更されません。 マテリアライズドビューの定義を変更するプロシジャもないようです。 どうやって変更したらよいでしょうか?Oracle9i(9.0.1)です。
>>770 DROP/CREATEしたらどうでしょうか。その後、完全リフレッシュすればよいのだし。
間違って drop table した人を特定しようかと、ふと思いました。 いい手があったら、教えて下しい。 (状況) アーカイブログモード;falseで運用してます。 昨日 drop tableしたらしいので、redoログには,そのログ 残っていると思われる。 が、しかし、セッション情報までは LogMinerで、追いかける事は不可っぽい。 ここでとまってます。
特定する必要性がわからん。 権限を与えたやつが悪い。
dropできる権限を持ってるユーザでログインできる人全てを尋問する。
説教が好きなタイプなんですよ
ィ^ヽ-、_,,..,,,_ _,,....,,_ /` 、_ <´'' ,ゝ' ヽ、ヽ' `ヽ / /\/'⌒ , , ゙ヽ⌒゙ ヽ/\ /`,/ ; ' ,' ;'::ハ ゙iヾ ゙ ;`ヾ ヽ > < / :;':::,',',' ,' ,'!' !i ゙i,゙i.゙i:゙i ; iヾヽ/ヽ / \{ :::i i'!从,'_i! ! i.i;i_从i.゙i.:};; i;;i:};;;:: i 〈 :: ::! :: ;:!; ',ィiiTii、 ;'iTiiヾ!:!;;:!;;'ヽ;;:: i i :: :ハ::;;:;ハ! ! r':;i! ir':;i!ノ iiノ i,'{;;::: ;;: | ! :: i:::::∨iiハ `ー' `ー' /i i i i;;;;: i;; i ! :: :::::::ム ! 人 "" _'_ "" / l ii i l;;;;:: ;; i | :: i::::::: !`ii N.>,、_ _,..,イ レ'| |、| i;;;;: i;; i 問い詰めは | :::!::::::i | | |_./| `´ |\._.| | | i;;;;:: ;; i. 得意なんです ! ::i::::::」:iイ! !. 〈 \___/ 〉.;`! !ヽ.! i;;;;;:: ;;i ブレンディー i ;',:ィ´ | | ゝ,-ヾ_/‐- く | | `ヽ;;;;::: ;i ! /゙i.゙i. | |/ (`く`/) _ヽ_ | | ,',' ゙i、;;: i .! ;' ゙i.゙i | |\ (` y' />',.-_-' | | ,',' ゙i;;;:: i ,! ,! ゙i.゙i. | | (`(`/ '´ 二.-',! | // ゙i;;:: i. / /:| ゙i、゙.| | /ヽi ,二フ/ ゙i.;;: i、 / /:::! \!.!ヽ/ / _,.- イ´'/! ゙i.;;: i.
犯人はsystem/managerですた。
778 :
NAME IS NULL :05/02/08 13:40:43 ID:ZBJEDYV7
VB.NET+ODP.NETでアプリケーションを作成する場合 Oracle Fail Safeに対応するために何か特別な コーディングが必要でしょうか?
>>778 Oracle Fail Safeと言うのは、TAFの設定とかそういった意味なんかいな?
>>779 自分もよくわからないのですがサーバーが
OracleFailSafeというので冗長化されるとのことで
初めて聞くことでよくわからないのです。
当方はVB.NETでアプリを作るのですが、その際
今までと同様のコードでいいのかと思いまして。
>>780 障害時に・・・
1. select文はカーソルが引き継がれるので、特に意識する必要はないはず
2. DML文に関しては、ロールバックされるので、処理の再投入をハンドリング
するというコーディングが必要になってくる。
こんなとこかいな?
>>781 ありがとうございます。
そうするとUPDATEやINSERTでエラーになったら
リトライすればよいのですかねぇ
実環境が( ゚д゚)ホスィ…
>>782 ofsはクライアントから見れば(スタンドアロンの)DBがshutdown→startupしてるようなもの。
その間はセッションが切れるから、そのあたりの対応を考慮しとけばいいんじゃない?
>>783 まじっすか?
それってあまり役に立たないような
24時間365日稼動可能なミッションクリティカルな
業務に使えると聞いたのですが
Real Application Clustersと間違えてるかも・・・ うーん。よーわからん
osfまたはracの上にTAFが乗っかって
ODP.NETはそれと通信するという形でしょうか?
TAFさえ乗れば
>>781 さんのことについて
気をつければいいということかなー
>>784 まじっすよ。
OFSは、アクティブ&スタンバイのよくあるHA構成だから、
ノードが切り替わる時のダウンタイムは仕方ないよ。
比べて2ノードRACは、アクティブ&アクティブのシェアード・クラスタだから、
片ノードがノード障害でダウンしても、もう片ノードでノード切り離しがうまくいけば、
ダウンタイムは限りなく無くなることになるよ。
つっても、RACにしても残存インスタンスが一時的にHANGしてしまう
こともあるので過信は禁物なんです、これが。
シングルインスタンスと比較したら、より 24*365 向きであることは間違いない、かもよ。
>>787 了解です!
では接続中にOracleをシャットダウンしてみて
どんな例外エラーが発生するか試して
そのエラーが発生したら再接続を促すダイアログを
出そうと思います。
RACのHA機能に関して出たので暇だから書いてみるか。 RACのインスタンス同士が通信に使っているLAN(OrcleではInterconnectsと呼ぶ)に 障害が発生した場合、Oracleとしてはクラスターウェアがスプリットブレインを解決して くれる事が前提とした作りになっている。 もし何らかの理由により、クラスターウェア側がスプリットブレインを解決してくれない 自体が発生した場合、Oracle側にもデータの整合性を保障するために、スプリット ブレインを解決する機能、IMR(Instance Membership Recovery)機能が9iR2から 導入されている。 IMRによってスプリットブレインを解決するまでのデフォルトの流れは下記の通り。 1. Interconnectsに障害発生。 2. 5分間ハングする。 3. Oracle側が障害発生を検知する。 4. クラスターウェアがスプリットブレインを解決してくれると願い10分間待つ。 5. クラスターウェアが解決してくれないので、どのインスタンスを残すかを コントロールファイルを使って投票する。 6. 生き残りノードが決定され、それ以外のノードは自殺する。この間が約2分。 なお基本的に生き残るノードは、生き残りのノードが同数ずつの場合は インスタンス番号の若い方を含んだ側が、そうでない場合には 生き残り ノード数が多い側となっている。 まあ、OracleのIMRでスプリットブレインを解決しようとすると、9iR2では17分 かかるから、普通はクラスターウェア側で解決しなさいってこった。
>>789 んなこと書くと、Iの工作員が寄ってくるぞ。
ほとんどの場合、クラスタウェアとOracleインスタンスのインターコネクトは同一線にするから、IMRのお世話になることはあんましないけどね。
まぁ、安全装置がついてるってことで。
どこのセミナーできいたんでつか?
浸り気に
>>789 が長文書き込んでいる光景が目に浮かぶ。
>>789 ナイス情報サンクス。知らんかった。
> なお基本的に生き残るノードは、生き残りのノードが同数ずつの場合は
> インスタンス番号の若い方を含んだ側が、そうでない場合には 生き残り
> ノード数が多い側となっている。
そうでない場合というのが良く分からんのだが。教えてくれんかね。
ちょうどその辺の設計しているのですわ。
前のプロジェクトじゃそんなこと触れなかったよ。
ま、790の言うことももっともだから今更いいけどさ。
796 :
789 :05/02/12 12:05:44 ID:???
自演乙
ナツ○ってなんでコテハン変えたの? うざがられてるって自覚あったのかな? それとも会社名が割れちゃったから?
大きい表領域を作成する時のデータファイルは、 1ファイルで行くのと複数ファイルに分割するのとでは、 どちらがおすすめ(または正解)でしょうか? 私自身は、Partitioning Optionを使ってないし、 分けても意味無いかなと思いつつも、 1データファイル=4GBで収まるようにしています。 環境は、9iR2SE/Win2k/NTFSです。
どっちでもいいよ。 SEってことはたいしたシステムじゃないんでしょ
801 :
NAME IS NULL :05/02/12 16:18:28 ID:qGMXHU5p
>>795 例えば4ノードのRACを組んでいて、インターコネクトに障害が発生して、
1対3に分かれる様な場合、この時にはインスタンス番号に関係なく多い
方のノード数が生き残る。つまりは3の方。
2対2に分かれる様な場合には、インスタンス番号が若い方を含む方が
生き残る仕様となっている。
>>800 レスありがとうございます。
おっしゃるとおり、たいしたシステムでは無いのですが、
他所様ではどうしてるんだろう?と思ったしだいです。
可も不可も無いのであれば、今のやり方でやっていきます。
>>799 負荷分散を考えれば複数ファイルだろ。
そんで違うRAIDグループに配置だ。
>>801 サンクス
オレッチはあんたの様な人、大好きだ。
また暇な時にいろんなこと書いてくり。
>>804 ブーイングの嵐で正直ヘコんでいた。
お役に立てたみたいで何より。
806 :
NAME IS NULL :05/02/13 02:23:53 ID:7bgGCWJG
このまえ、ORA-4031出ました。 皆さんは、共有プールの見積もりってどうやってます? 共有プールサイズの妥当性って・・・ ちなみに、 おら817EE HP11i です
807 :
NAME IS NULL :05/02/13 02:30:25 ID:7bgGCWJG
今度、HP11i/ora817をpfsマウントじゃなく、ディスクにコピーしてからインストールしようと 思うんですけど、これって一般的なやり方ですか? 本番運用されてるサーバに入れるんで、 pfsマウント失敗→サーバリブート なんてことは避けたいと思ってます。 皆さんは、やっぱりpfsマウントですか?
>>807 一般的かどうかは分からんが、別にStage Areaをコピーしてからインストール
しても特に問題は無い。
むしろ昔あった悲惨な話は、CDをpfsマウントしたディレクトリまで降りていって、
インストーラーを起動してしまって、ディスク入れ替えの時にアンマウント出来
ないという事故が・・・。
>>806 こればっかりはアプリケーションの特性やユーザー数に思い切り影響受けるから
一概にねぇ。
STATSPACK取って細かくチューニングして行くしか最善という方法はない気が
するよ。
9iからのSPFILEもある意味それが目的で導入された様なもんだしね。
810 :
NAME IS NULL :05/02/17 19:00:36 ID:udieWMl7
あまりに初心者な質問ですみません。上のFAQやサイトを見てもよくわからなかったもので 質問させてください。 SQL*plusでSYSTEMユーザーでログインした後にconnect /as sysdbaを入力すると |SQL> connect /as sysdba |ERROR: |ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました | | |警告: Oracleにはもう接続されていません。 と出るのですが、何がいけないのでしょうか。tnsnames.oraをみても正しくなっているはずで sqlplus "sys/password@SID as sysdba"はうまくいくんです。 よろしくお願いいたします。
>>810 O/S認証が有効になってないからじゃない?
ちなみにプラットフォームは窓かい?
812 :
810 :05/02/17 23:25:52 ID:udieWMl7
>>811 はい。Windows2000 proで、OS認証されていないかと思い、ORA_DBAグループに自分のアカウントを追加しています。
>>812 以下の点の確認かな。
1. 窓ユーザーのアカウントにAdmin権限が付与されている
2. %ORACLE_HOME%\network\admin\sqlnet.oraに
「sqlnet.authentication_services = (NTS)」が設定
されている。
3.レジストリ・キー「HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID」
のパラメータ「OSAUTH_PREFIX_DOMAIN=TRUE」に設定されているか確認
(HOMEIDはログインしたいインスタンスのID)
って、所かな?
.
814 :
810 :05/02/18 00:39:29 ID:Cc45VL1a
>>813 インスタンスのIDとは、SIDのことでしょうか。
レジストリキーを
ORACLEに%SID%キーを作成し、文字列OSAUTH_PREFIX_DOMAIN 値TRUEを追加してみましたが
うまくいきませんでした。Oracleは9.0.1.0.1です。
|$>sqlplus /nolog
|SQL>connect / as sysdba
|ERROR:
|ORA-24314: サービスハンドルが初期化されていません。
815 :
NAME IS NULL :05/02/18 00:40:15 ID:dxE98EJQ
NICの再起動・ファイアウォールの設定等 いつの時点から起きたとか、ある事をしたら なったとか書くと良いかも。
816 :
810 :05/02/18 00:51:33 ID:Cc45VL1a
専用サーバで、同一マシンのDOS窓から sqlplus /nologを発行して connect / as sysdbaをすると 上のようなエラーが出ます。うーん。
>813がかいてくれてる 2. %ORACLE_HOME%\network\admin\sqlnet.oraに 「sqlnet.authentication_services = (NTS)」が設定 されている。 は見た?
これFAQだよね・・・
819 :
810 :05/02/18 14:11:52 ID:Cc45VL1a
>>817 はい。みました。
|$>sqlplus "sys/syspwd@SID as sysdba"
はうまくいくのですが。。
|SQL>connect / as sysdba
はうまくいかないんです。
OS認証がされていないということなんでしょうけど。FAQをもう一度みてみます。
ありがとうございました。
ローカル接続にはかんけいないし・・・
192.168.1.101にオラクルサーバ(トライアル)をインストールしました。 192.168.1.100から、接続しようと試みているのですが、オラクルが起動している にもかかわらず、接続できません。
ポートあけてみます。
824 :
806=807 :05/02/19 15:30:02 ID:d2fparN1
お返事遅くなりましたが、みなさまご回答ありがとうございました。 あと、もう一つ質問です。 Net8接続のプロトコルでIPCは主にどういったときに選択するのでしょうか? マニュアル、KROWN見ても情報がなくて。。。 どなたかご教示ください。
>>824 クライアントとサーバが同じマシンのとき。
おせーて。
827 :
NAME IS NULL :05/02/19 17:15:07 ID:lwoPyC+a
教えて下さい。 今度本番DBのテーブルとフィールドを追加するのですが、 スタンドバイDBの作り直しは必要になりますか?
828 :
NAME IS NULL :05/02/19 18:30:33 ID:IFJUdJW+
v$rollstatのwrapsについて質問です。 wrapsのカウントはどのように行われるのでしょうか? 1.wraps列はオラクルのマニュアルでは WRAPS:ロールバック・セグメント・エントリがエクステント間で折り返し た回数 2.またkrownによると extentを再割り当てされた回数という意味です。 例えば、1,2,3というextentをもっているロールバックセグメントに再度1の extentが割り当てられるとwrapsが1加算されます。 3.またインターネットの情報で ロールバックセグメントエントリが他のエクステントにラップした回数 結局、どの記述が正しいのでしょうか? 1.であれば、折りかえすという表現がわかりにくく MINEXTENT分書き込みが終了し、一巡するという意味でしょうか? たとえばwrapsが1という状態であれば もう一巡しているということでしょうか? それとも一つのエクステントに書き込みを行っていて、一杯で 書き込めず次のエクステントにまたがれば1にカウントされるのでしょうか?
829 :
824 :05/02/19 20:31:17 ID:d2fparN1
>>825 ありがとうございます。
ちなみに、IPCはリスナー経由のNet接続扱いになるんですか?
BEQとの使い分けが分かりません・・・
>>829 ちょっと嘘ついた。
IPC はリスナ経由。従って
「クライアントとリスナが同じマシンのとき」。
BEQ はよく解らん。リスナは経由しないらしいから
「サーバと同じマシンのとき」
かなあ。
831 :
829 :05/02/19 23:21:26 ID:d2fparN1
ありがとうございます。 ということは、 ・IPC→クライアントとリスナーが同じマシンにあるときに使用 ・BEQ→クライアントとサーバが同じマシンにあるときでNet8接続ではない ですかね?
832 :
NAME IS NULL :05/02/20 02:35:24 ID:0IsOCmYH
BEQはシャドープロセスの子プロセスとして、専用サーバープロセスが生成される。 IPCはリスナーがTCP/IP通信を利用せずに、内部通信を利用して専用サーバを生成 もしくはディスパッチャに渡す。 だから、TCP/IPがインストールされてなくても使える。 (NT4.0とかはデフォルトでインストールされていない)
>>828 Krownの表現が一番分かりやすいかな。
Undoセグメント内に1と2の2つエクステントが割り当てられていて様々な
トランザクションに使用されているとしよう。
この時にあるトランザクションによって1のエクステント内のスペースが
全て使い切られてしまったとする。
通常であれば続けて2のエクステント内にそのまま書き込み続けられれば
いいんだろうけど、この時に2の頭の部分のブロックは、既に別のトランザク
ションによって使用されていて、まだ領域が解放されていなかった。
という訳で、Oracleは新たに1用のためにエクステントを割り当てて、Undo
情報を書き込める領域を拡張する事になる。
この新たにエクステントを割り当てて拡張する事をWrapと呼ぶ。
オラクルの体験版をインストールしました。 インストール時に汎用目的でインストールしました、 質問なのですが、データベースは一つしか作れないのですか?
>>834 物理メモリーとディスクがあれば同一マシン上に幾らでも作れるけど?
取り合えずdbcaでも起動してみるとか?
836 :
NAME IS NULL :05/02/20 11:19:33 ID:CAahf3aA
>>833 回答ありがとうございます。
>という訳で、Oracleは新たに1用のためにエクステントを割り当てて、Undo
>情報を書き込める領域を拡張する事になる。
次エクステントが使用できなくて拡張が発生(extendにカウント)したときは
wrapというのはイメージつきやすいのですが、extendが発生しない場合のwrapsに
ついては如何でしょうか?
たとえば当方の環境では、MINEXTENT80のRBSが存在したとして
extendが0,wrapsが160だった場合に、どんな状況かということです。
ora-1555と絡んだ問題なのですが・・
sqlplusの質問なんですが、oracleのバージョンによって、sqlplusの動きがちがうとか ありますか。OTN掲示板などを調べても例がなくて、困っています。 【やりたいこと】 引数の数が足りなくても、プロシージャを実行したい。 【考えたこと】 バッチでパラメータを渡す際、シングルクォーテーション(')でくくる。 >>t.bat s dで実行すると,内部で's' 'd'を変換し、p2.sqlに渡してくれるはず。 【環境】 家 9iスタンダードエディション評価版。WindowsXP。sqlplus 9.2.0.1.0 会社 9iスタンダードエディションのはず。Window2000。sqlplus 9.2.0.0.5のはず。 【結果】 会社の9iスタンダードエディションだとシングルクォーテーションが外れる。 家の9iスタンダードエディションだとシングルクォーテーションが外れない。 【ログ(家での実行ログ。会社だとシングルクォーテーションが外れるので実行できない。)】 旧 3: hoge(&1,&2); 新 3: hoge('s','d'); 【ソース】 ○p2.sql begin hoge(&1,&2); end; / ○t.bat set t1='%1' set t2='%2' sqlplus scott/tiger@db "@c:\temp\p2.sql" %t1% %t2% > "C:\TEMP\log.log" exit
>>837 それはOSが違うせいだと思うけど。
2000とXPのコマンドプロンプトは仕様が変わってるよ。
839 :
837 :05/02/20 23:46:54 ID:???
>>838 プロンプト画面で実行を確認すると、
sqlplus scott/tiger@db "@c:\temp\p2.sql" 's' 'd' > "C:\TEMP\log.log"
とシングルクォーテーションがついているのに、リダイレクトしたログを見ると、
シングルクォーテーションが無くなっているので、sqlplusが怪しいと考えたのですが、
プロンプトも疑ってみます。
>>836 動的Viewであるv$rollstatのExtend列の値はMax ExtentにHitした時点で
次のDBリスタート時に備えて0へとリセットされるらしい。
Ora-1555が発生するぐらいだから、これが原因ではないかと思う。
DBリンク先のテーブルを DBリンク経由でTRUNCATE しようとしたら 「DBリンクでは、DDL操作の権限ないです」みたいな事言われて、ダメでした。 (そのリンク先DBに、DBリンクユーザでログインすると、当然TRUNCATEできます。) DBリンク先のテーブルを、 DBリンク経由でTRUNCATE するには、どうしたら よか とでしょうか? (多分、権限付与でしょうが、その権限が見当がつきません)
842 :
NAME IS NULL :05/02/21 23:35:52 ID:gzZzzntZ
>>840 0へリセットされるのですか?
エラー時に、extendが0になってても
実は増えた後で0にリセットされている・・
それは初耳でした。一度大きなトランザクション実行中に
v$rollstatをモニタしてみます。
ちなみにこのときにはmaxextent到達エラーは発生していなかった
のですが・・
>>842 Max Extentsという表現は悪かったね。
ようはそれ以上Extentの発生が出来ない状態、つまりはORA-1555が
発生している様な状態では0へとリセットされてしまっているらしい。
>>842 それとOptimalはどうなっている?
これも0へとリセットされる要因みたいだぞ。
846 :
NAME IS NULL :05/02/22 08:32:20 ID:/as/4WNx
>>842 ora-1555発生に合わせて、extendsがリセットされると
いうことですね。確認してみます。
>>844 optimalは、初期ロールバックサイズ(MINEXTENT*NEXT)に
してます。いっそのことこれをなくして解放されないように
するだけでも減りますが、その場合は増え続けることに・・
>>845 SYSTEMユーザにて、
CREATE DATABASE LINK SCOTT2.XXDB
CONNECT TO SCOTT IDENTIFIED BY TIGER
USING 'XXDB'
/
でDBリンクを作成しました。これを使って SCOTT2ユーザで
truncate table abc@xxdb
したら、
「ORA-02021 リモートデータベースに対するDDL操作が無効です。」
と出ました。
で、マニュアルを見ると、
原因:リモートデータベースに対してDDL操作を行おうとしました。
処置:リモートデータベース構造を変更するには、適切な権限でリモート・データベースに
接続してください。
とかいてあります。 「適切な権限」とは、SCOTT2にどの権限をあたえればいいのでしょうか?
Truncateはエラーがいってるとおり、データ操作言語(Delete)ではなく、テーブル定義言語(Createなど)です。 手元にマニュアルないのであれなんだが、Alterか何かか? エラーのマニュアルじゃなくSQLリファレンスでTruncateを調べたり、管理者マニュアル調べる。
>>847 そのやりかたではできないよ。
データベース管理者ガイド(J06242-01)の29-34ページ。
その説明は、こう書かれるべきなのだ。
>処置:リモートデータベース構造を変更するには、適切な権限でリモート・データベースに接続してください。
↓
処置:リモートデータベース構造を変更するには、適切な権限でリモート・データベースにデータベースリンクを介さず、直接接続してください。
8.1.7をインストールすることになったのですが、 いろいろググると64bit版と32bit版という言葉が出てきました。 この2つは同じCDなのでしょうか? それとも別のソフトウェアとして別Cdになってるんでしょうか OSはSPARCの64biで、インストールしたいOracleは64bitのほうです よろしくおねがいします(;´Д`)
>>850 SUNは知らんなぁ。
少なくもHP-UXは別ディスクだったよ。
Oracleと.NET Frameworkでクライアントサーバアプリ作ってる んですが、クライアントマシンには必ずOracleのクライアントツールをインストール しなきゃならないんですか? SQL Serverと同じで特別なインストールなしで動くと思ってたんですが・・・ クラスはSystem.Data.OracleClient名前空間の各種クラスを使ってます。
9.2.0.7って出るみたいだな。
>>857 9.2.0.6でもう終わりだろうと思っていたのになw
でも9.2.0.5からかなり10gの要素がバックポートされているぞ。
9.2.0.6とか充てると、プログラムによってはたまに「10.0.1.3」とかって
出てちょっとビビる事があるw
859 :
NAME IS NULL :05/02/24 19:37:14 ID:Okme10H4
すみません、Oracle9.2での質問なんですが、グローバルデータベースネーム を間違って設定してしまったのですが、変更する方法ってありますか?
860 :
859 :05/02/24 19:38:24 ID:Okme10H4
ちなみにlinux版です。。。
>>859 alter database rename global_name to ...
誰もOracle 10g World行ったヤシおらんのか。 ナカナカ盛況であったぞ。
>>858 インストーラーも10gってなってるな。
にしてもPSR適用は気力体力つかうよな。
普通サーバに適用したらクライアント端末も全部適用するものかね。
9204の時はそうしたけど。
本当は当てたくないけど、とある事情で9206を当てることになってしまった。
procedure(table型, table型, …)のように、引数としてテーブル型を持っているprocedureを 手っ取り早くテストできるようなツールってありませんか?
>>864 どう手っ取り早くなのかわからんが。
オブジェクトブラウザでもダメだった?
まあ、作ったときに一緒にテストプログラムも作るよな、そういうときは。
866 :
NAME IS NULL :05/02/25 11:17:58 ID:WBKxqMfv
クライアントのNet8のバージョン(805)で接続先のOracleのバージョンは いくつまで(バージョンの上限)のが接続できるのでしょうか? また、接続できたとしても動作(返ってくる結果)がおかしくなったりするのでしょうか?
>>866 www.oracle.co.jp/products/system/matrix_db.html
8.0.5 は載ってないが参考まで。
>また、接続できたとしても動作(返ってくる結果)がおかしくなったりするのでしょうか?
それは普通、「接続できた」とは言わないんじゃ…?
ありがとごぜます。 たすかりやした。
869 :
NAME IS NULL :05/02/25 18:16:19 ID:GbhlVjXk
OS:SUN : Solaris8 ORACLE : 8.1.* SGAの最大メモリ割当数を教えてください。。 お願いします。。。
870 :
869 :05/02/25 18:17:40 ID:GbhlVjXk
32bitです。。
>>870 32bitって2GB制限があったんじゃなかったけか?
872 :
NAME IS NULL :05/02/25 21:34:59 ID:wzXqXg7m
ロールバックセグメントについて、以下は正しいでしょうか? ロールバックセグメントは、例えば1レコード更新されたら 1レコードがロールバックセグメントに退避される selectで、ロールバックを読みにいくかどうかは データブロック単位で判断される。
>>872 DMLでレコードが変更される場合として以下の状況が考えられる。
[Insert]
ROWIDのみがRBSに保存される。
[Update]
変更される列の値がRBSに保存される。なお索引が張られている
場合には、変更前の値、変更前の索引値、変更後の索引値が保存
される。
[Delete]
行全体の値が保存される。
確かめた訳ではないが、上から判断すると読みいくのもブロック単位
ということだろうな。
874 :
NAME IS NULL :05/02/26 15:12:28 ID:o/6Wjeaz
, -―<_ ヾ ', ヽ__/_,-――-、 | トー- 、_/ ⌒ヽ ̄  ̄`<こ)-―-、 | ヾ, '´ /, '´ /⌒ヽ  ̄ニ==ュ、 ヽ, V / :/ :| :l l :l .\ `ヽ < l、 ,' / / ! :| l | ! :! l l 、 ト ヽ レ' {、`i: ,' ! _./|__! l ! |__l | | | |ヽ } .く { `:l l: ,l'´/リ|/| /! /! ,| !`!ヽ! l! :| リ |: \/!、 ! rh||/|/レ|/ レ' |/ レ'.| /レ| /| i! :! | / |ヾ! i!l h r≠=x ' r≠=k、 |/ |/ |/ | / :i!| !l " " " , " " !'}`l ’ レヽ _.|/ !i l ヽ、 'ー' ,レ' :}! / ./ ! l ヽ、 " , '´ / |、 しばらくお待ち下さい。 ./ ./ :{ ' , \ }'、__, ィ ' ,/ ,' ! i / /:l ', !フ l,ーv-、 l :{ ,' | :| / /,' l ヽ ', :/. l |'"ri"'! .l :l l ト、 . / / i / ヽ ./ l :l =!l= ! l l ! ヽ / /!/ __ V l :| || | ,l V :〉 { l { '´ >、/ ∧' i i.∨:l ヽ_ / .!:l ヽ r '´ / ./ :| :i i / ,! ヾ } :/ .| ! `ー| // / ! | ! !/ ,' l l∨ リ... |(! ' / /!::| i !{ ,' ∧ ! |
876 :
NAME IS NULL :05/02/27 13:08:28 ID:YoBksMXH
1サーバー運用の小さめのシステムで10gを使おうとしているのですが、 サーバーが貧弱なのでOEMサービスを別のPCに置こうと思っていますが、 これって技術的に可能なのでしょうか? できたとしてサーバーとは別に10gのライセンスが必要になるのでしょうか?
>>876 Enterprise Manager 10g Grid Controlを使えば可能。
ライセンスは分からん。
10g Grid Controlといいながらも、レポジトリDBのバージョンは9i使ってたりするし?
876です。 Grid Controlでいけそうです。ありがとうございました。 OEMとiSQLPlusのサービスをとめて、エージェントを動かすようにしたら ぜんぜん軽くなりました。 この手のツールをJava AP Serverで作るのはやめてほしいですよね; もしかして hoge.warとか置いたら動くんだろうかコレ。
>>878 もしセキュリティが気になるんだったら、「emctl secure oms」でGrid Controlと
Agentを間をSecure化してhttpsを使ってxmlをアップロードする様にすれば
いいしね。
ただバグがあるから、自分で色々と「emd.properties」をいじくらないとならないん
だけどw
でも貧弱鯖でDB CosoleとiSQL Plusを動かしてたら確かに重たいわなー。
まあ、人気ソフトとクソゲーを組み合わせて売るのは昔からある常套手段だし、
仕方ないのかも・・・w
WKSYS,WMSYSを誤って削除してしまったのですが再度作成する方法はないものでしょうか?
>>883 何で消すの?
$ORACLE_HOME/ultrasearch/admin/wk0install.sql
$ORACLE_HOME/rdbms/admin/owminst.plb
oo4oでエクスポート、インポートを実装したいんですが どなたかご存知の方は居られますか? ってスレ違うならスマソです。
初歩的な質問ですみませんが、エクスポートについて教えてください。 全く同じに構築したOracle9.2が2セットあります。 片方はお客納品した物で、もう片方は社内に試験環境として構築した物です。 チューニング検討の為、実際のお客の環境からデータをEXPして抜いてきて、 社内の試験環境にインポートしたいのですが(先方は承諾済み)、 最大の問題はIMP/EXPを使った事が無い事で・・・・・。 マニュアル呼んだのですが、いまいち自信が持てません。 双方に同じ環境のOracle、同じ構成のテーブルがあります。 テーブル一ずつを1ファイルににエクスポートして、必要に応じて社内環境の テーブルにインポートしたいのですが、IMP/EXPの引数を教えてもらえませんでしょうか? 環境はWin2Kです。
>>886 面倒くさいことするのね。
exp userid=ユーザー名/パスワード tables=(対象表1, 対象表2, 対象表3...) indexes=y rows=y file=ファイル名
imp userid=ユーザー名/パスワード tables=(対象表1, 対象表2, 対象表3...) rows=y file=ファイル名
でいいじゃない?
もし自信がないんだったら対話式でやればいいと思うけどね。
888 :
886 :05/03/03 00:09:19 ID:???
>>887 ありがとう!。
面倒な方法って事は、もっと簡単な方法もあるんですね・・・・。勉強不足です。
まずは教示いただいた内容でトライしてきます。ありがとうございます。
>>888 いや〜、なんか表一個ずつとかって言っているから面倒だなと思って。
データベースのサイズにもよるけど、テスト環境作るならフルエクスポートして
フルインポートでもいいのかなと思って。
exp userid=system/パスワード full=y file=ファイル名
imp userid=system/パスワード full=y ignore=y file=ファイル名
とかって感じで?
>>889 フルである必要はないのでないかい。
ユーザー単位じゃだめかいな。
891 :
886 :05/03/03 00:48:48 ID:???
ふむふむ、ユーザ単位って方法もあるんですね。勉強になります。 かなりデータが多くなったらしく、想定したテストデータと違いが大きく 一部、レスポンスが問題化しそうな部分がでてきました。 全部を抜くのは大変なので、問題になっているテーブル関連の データだけ抜く事を考えていました。 処理時間を見てみて、行けそうなら教示頂いたコマンドでフルで抜いてきます。
フルで抜いてインポートをuser単位がお手軽ですね。 手元にマニュアルがないけどこんな感じかな。 imp system/--- formuser=客先user touser=開発user file=xxx.dmp commit=y 基本的に開発userのデフォルトテーブルスペースにimpされるはずです。
10g+Win 2000 Server SP4環境下で、Oracleとjava.exeメモリが馬鹿食いな上に、 DBアクセスするUAPが処理を終了しても即座に解放されない為、どんどんメモリ食っていく・・・。 同じUAPを8i、9iで動かしていた時はこんな感じじゃなかったんですが、 10gの仕様なんですかねぇ。
894 :
NAME IS NULL :05/03/03 15:00:32 ID:9PaJPmbJ
何でこれダメなの? 参照を設定したいんだよ。 ALTER TABLE tblys MODIFY rfmid REFERENCES tblms(mid) ;
>>894 参照って、参照整合性制約のことか?
だったら「foreign key」だけどな。
ALTER TABLE tblys ADD CONSTRAINT rfmid FOREIGN KEY (mid)
REFERENCES tblms1(mid);
>>893 メモリってPGAか?
本当なら気になるな。unix+9iしか知らんから。
そういえばWindows版はプロセスでなくてスレッド分けてるんだっけか。
unixと同じでコネクション切るとPGAの領域って解放されるのか?
(要するにOracle.exeの確保しているメモリ量が減る。)
誰か知ってたら教えて。
897 :
NAME IS NULL :05/03/04 01:27:37 ID:RkLFAhc8
お世話になります。 オンラインバックアップを取りたいのですが、問題があって データファイルのサイズが1個40Gバイトくらいのがあるのです。 OSはWindows2000なのですが、これくらい大きいサイズのファイルを copyコマンドでコピーすると5時間くらいかかって最後リソース不足 でこけてしまうのです。なんとか完全にコピー取る方法はないでしょうか。
>>897 RMANで取るとか、ocopyを使うとか方法はあると思うけど?
>>897 というよりも、OSのCOPYコマンドでのバックアップは推奨されてないよ?
>>899 推奨されないというよりも、オンラインバックアップ中はOCOPY以外のコピーは、
サポートされていないよ。
OCOPY以外でコピーするとオンラインバックアップ中のwriteで、
破損する可能性があるから。
901 :
NAME IS NULL :05/03/04 07:15:05 ID:RkLFAhc8
begin backup + ocopyだとうまく逝くのでしょうか。 やってみます。
>>896 サーバのメモリリソース。
サーバ起動直後が300MB(1GB搭載)くらいなのが、
UAPを10個くらい同時に動かすと(WebサーバのcgiからUAPを起動してDBアクセス)、
Oracle.exeとjava.exeがそれぞれ200MBを超える状態で、
UAPもcgiリクエストがすでに終了しているのになかなか解放されず、
どんどんDBサーバ上に貯まっていく。
結局5〜10分くらいでメモリ利用が800MBくらいになって、
スワップが入りまくって遅くなり、最後はWebサーバからタイムアウト。
UAP はユーザーアプリって意味ですか? cgiから別プロセスで起動をかけてるってことですか? UAPの詳細がわからないとなんともいえないですよ。
904 :
オラクル初心者 :05/03/04 15:02:40 ID:zzYcTrg0
この板には場違いかもしれませんが教えて下さい OS:WIN2003サーバーにオラクル9Iを入れて環境を作りたいのですが 全然うまくできません 初心者でも解るサイトは無いでしょうか?
>>903 cgiから別プロセスで起動しているユーザアプリです。
cgiはWebサーバにあり、UAPはDBサーバにあります(2台構成)
>>904 tp://otn.oracle.co.jp/tech/install/index.html
因みに
tp://www.oracle.co.jp/products/system/dbos.html
に拠ると、
9.0.1 … 非対応
9.2.0 … 要パッチ
だそうだ。
あと、Pen4 マシンならインストーラがそもそも動かなかったり。
>>905 すると何かの理由でユーザーアプリが終了しないでいくつもたまって
ゆくのが問題なわけですね。
以前のバージョンでは動いてたとするとoo4o, oledb, odp.net, jdbc
などのクライアントドライバの問題も考えられます。10g付属の
ドライバを使ってコンパイルしなおすとかどうでしょう。
あと
>>878 あたりに出てますが、メモリがタイトならOEMとiSQLPlusの
サービスをとめれば軽くなります。
>>901 RMANというオプションは無いのか?
RMANは未フォーマットのブロックは取らないから、データファイルのサイズが
40GBあったとしても、バックアップピースのサイズは小さくなるはずなんだが・・・。
909 :
RACLOCK :05/03/04 20:44:29 ID:i1IoMsAU
検索/更新が多いシステムを10gSEのRACで検討しています。 RAC構成にするとブロック単位でロックされてしまうと聞きました。 これは本当なんでしょうか?回避策はあるのでしょうか? 採番ファイルなどあるので、行ロックでないと怖くて使えません。 どなたかご教授ください。
910 :
NAME IS NULL :05/03/04 21:34:26 ID:bJUG9yFn
>>909 ブロックの所有権はノードごとにありますが
Cache Fusionによって更新途中も
他のノードにinterconnect経由で転送されますので
ご心配なく。
>>909 というよりもSEってRAC組めたっけか?
10gからだとOkなのか?
それと
>>910 が言っている様に別にBlockでロック取って
いても、他のノードはPI(Past Image)持つから全然意識
しなくていいはずだぞ?
>>911 10gはSE-RACをウリにしてるぞ。
ASM使用といういらないおまけまで付いてくるけどな。
>>905 ひょっとしてコネクションプールとかしてないだろうね。
914 :
901 :05/03/04 23:36:47 ID:RkLFAhc8
>>begin backup + ocopyだとうまく逝くのでしょうか。 駄目でした。。。オフラインだと3時間位でコピーできますが、オンラインだと 10時間くらい掛かってしかもこけます。何故だろう。 RMANって知らないのですが、これは簡単に操作できるものでしょうか。 (V8.1.7EE) 今のDBと同じDBをもう一個作っておきたいのですが。
>>914 こけた時に一体なんちゅうエラーが出とるんかいな?
それとDBは8iのターミナルリリース(8.1.7.4)まであげてるのかい?
RMANは漏れも最初は知らなかったけど、なんとかなるもんだよ。
最初の頃は「誰がこんな狂ったツール使うんだよ?」って思って
たんだけど、慣れたら結構便利だよ。
>>912 ASMを使わないとならんのか・・・。
かなり嫌だな。
この間10G RACのHAテストで、インターコネクトのケーブルぶっこ抜いたら、
ASMディスクが飛んで二度と復旧出来なんだ( ´Д⊂
917 :
901 :05/03/05 02:17:07 ID:9NHFZwfZ
リソース不足とかいうエラーが出ます。 RMANのコマンド打ってみたがよくわかりません。 わかりやすく説明した資料・サイトないでしょうか。。。
>>917 Oracle止める事を進めます。ほんと糞。高い割りにたいしたパフォーマンスでないし。
サポートもあまり期待できない割りに、やたらとうるさい。
920 :
901 :05/03/05 10:24:05 ID:9NHFZwfZ
ありがとうございます。 リカバリ・カタログ作成とかややこしいですね。 止めてやるのが一番簡単なんですが、10時間も止められません。 高い割りに〜、〜やたらうるさいとはどういう意味でしょうか。
>>920 ディスクやディスクドライバの問題じゃないですか?ドライバの質が悪いと
大容量のコピーや高付加状態のコピーに時間がかかったり、よくわからない
エラーが起きたり、ブルースクリーンでOSが落ちたりします。
>>920 リカバリカタログは別に使わなくてもいいよ。
コントロールファイルで代用出来るし。
923 :
xxx :05/03/07 01:05:31 ID:???
すいません、ご指導ください。 Oracleに適用されてるPSR, パッチの検索方法について 教えてください。 マニュアルやOracleのサポートサイト(support.oracle.co.jp(?)) からは確認方法がみつけられない状態です。 実行環境はUNIX系で、Oracleは9.2.0系です。 (こんな情報しか書けなくてすみません。) マニュアルに載っているのであればもう一度検索します。 よろしくお願いします。
>>923 select * from v$version;
926 :
NAME IS NULL :05/03/07 17:39:56 ID:VOwUpu/x
KROWNてなんて読むんですか クラウン?クローン?
928 :
NAME IS NULL :05/03/07 19:06:10 ID:jgD1H//W
929 :
923 :05/03/08 00:48:51 ID:???
>>924 殿
>>925 殿
ありがとうございます。
早速明日調べてみます。
>>925 殿
opatch lsinventory はコマンドの事でしょうか?
とりあえず、明日コマンドとして調べてみます。
ありがとうございました。
データベースで使われるメタデータ(metadata) とは、データの属性、意味、 内容、格納場所など、データを管理するための情報のことをいいます。
>>928 そう、オラクル社内。
少なくとも漏れの部署では「クラウン」で伝わっていたよ。
サポートに電話したりすると、よく「クラウンの何番を見て」とか言われる。
うちの会社のSEに オラクルで、データ型がCLOBのフィールドに対して LIKEで検索出来ないって言われたんですけどマジですか? うちの会社のSEがヘボなのかオラクルがヘボなのか どなたか教えてくださいm(__)m …おまえがヘボじゃ、って言うのはナシでヨロシクです。
>>933 9i以降では'Like'をサポートしているらしいが、実際動いていない
というのが現状のようだ。
よって、Oracleがヘボという事でFAね。
>>933 CLOBってことは、それなりに大きなテキスト文書を登録しているんでしょう?
じゃあ、LIKE検索を行うことは、あまり現実的ではないですよ。
Oracle Text を使って、キーワード検索を実装するといいですよ。
Namazu 見たいなもんです。
なるほど〜〜〜ありがとうです!(ちょっとがっかりですが、、) 「Oracle Text」調べてみます
938 :
NAME IS NULL :05/03/10 12:57:29 ID:gFUSuOoD
Windows2003 + Oracle 10G で SQLNETで接続する際に connectにとてつもなく時間がかかるのですが、早くなる方法どなたかご存知ないでしょうか? いままでWinNT + SQL7.0をつかっていて Oracleに変更しているのですが 接続にこれほど時間がかかるのでは、ちょっと使用に耐えうるので よい方法をご存知の方よろしくお願いいたします。
>>938 OTNで10gの部屋で遅いで検索汁。
まぁOTNはなんか最近厨臭いのが多いから、特別に回答。
sqlnet.ora内の、
SQLNET.AUTHENTICATION_SERVICES= (NTS)
を
SQLNET.AUTHENTICATION_SERVICES= (NONE)
にしろ。
sqlnet.oraのファイルの場所はファイル検索で調べてくれ。
>939,940 特別回答感謝感激。 早速やってみます。 ありがとうございました。
>まぁOTNはなんか最近厨臭い これに激しく同意。投稿自体も少なし、 ここの方がまともに見えてくる。 マニュアル読ま(ry $ORACLE_HOME/network/admin/sqlnet.ora
944 :
むぅ :05/03/11 01:55:24 ID:JoRv15G1
今Oracle DataBase9i(9.2.0.2.1)をインストールしようとしていますが インストール中にエラーが表示されて先に進めなくて困っています。 どなたかアドバイスをお願いします。 使用OS:Windows XP Pro メモリー:512MB ハード空き:80GB <エラー状況> インストール中の画面(Oracle Universal Installer:ファイルの場所)でイ ンストール先等はデフォルト指定のまま「次へ」を押すと「インストーラー のスワップ領域 C:/DOCUME~1/.../TEMP/OraInstall2005-03-11_12-51-37AM 上のディスクの空き領域が足りません。最低空き領域を104KB確保して、再 試行して下さい」というエラーが表示されて先に進めません。 常駐アプリは必要最低限のみだけで殆ど外しても駄目でした。 どうしたら良いでしょうか? 解る方がいましたら教えてください。
>>944 書き込み権限が無いか、もしくはディレクトリ作成に失敗してんじゃないの?
環境変数の「TMP」と「TEMP」を他のDirに指定してからやってみるとか?
>>944 TEMPフォルダの権限にOracleユーザを追加してる?
Oracleインストールする際には、環境変数でtemp、tmp定義されているフォルダの、
右クリックプロパティ→セキュリティタブでOracleユーザを追加する必要があるよ。
あとあわせて管理ツール→ローカルセキュリティポリシーで、
ローカルポリシー→ユーザ権限の割り当て→バッチジョブとしてログオンにも、
同じくOracleユーザを追加する必要がある。
SQL Plusのプロンプットを、接続文字列(TNS?)に変更する方法って無いでしょうか? 複数にパラに接続すると混乱しそうです。 時刻やSIDに変更する方法は見つけたんですけど・・・・・。 誰か教示願えませんでしょうか?
>>947 sqlplus のプロンプトは、set sqlprompt コマンドでどうにでも変更できます。
global_name の値でも set しておいたらどうですか。
oracle text ってググッっても実績例がなかなか見つからないんですが、 もしかして何かいまいち使われていない理由があるのでしょうか? 今、ORACLE 8 + namazuで全文検索させているんですが、 10gにヴァージョンアップしてoracle textを使おうかと迷っています。 インデックスの作成時間ってほかの全文検索エンジンに比べて遅すぎとか? 日本語の検索がヘボとか? どなたか使ってる人アドバイスお願いします。
>>949 Namazu で実装している実績があるんなら、
わざわざ Oracle Text を使わなくてもいいんじゃないでしょうか。
Oracle Textの導入事例をいくつか知ってますが、
Oracle Textという機能がへぼくて使えないということは無いですよ。
ただ、Oracle Text用のインデックスはRDBMSのオブジェクトとして作成されるので、
そのオブジェクトの格納方法や管理の仕組みをしっかり理解しないと、
I/Oやメモリ周りでパフォーマンスの問題に苦しめられるかもしれません。
逆に、理解すると、パーティションオプションと組み合わせて、
I/O分散に対して柔軟に対応できるようになります。
951 :
949 :05/03/12 13:51:49 ID:???
>>950 レスありがとうございます。
使いこなせば使えるということですね。
>Namazu で実装している実績があるんなら、
>わざわざ Oracle Text を使わなくてもいいんじゃないでしょうか。
10gへのヴァージョンアップをするのは決まっていて、そのタイミングで、
ORACLE 10g + namazuにするか
ORACLE 10g + Oracle Textにするか
を迷っていました。
せっかくだからDBに一本化したいと思ってました。
今は鯰インデックス作成のためDBからいったんtext出力していたり、
検索結果に対して更新したりする機能があったりと複雑なんです。
>>951 > 今は鯰インデックス作成のためDBからいったんtext出力していたり、
そういう実装だと面倒ですね。直に作成していないんですね。
それであれば、Oracle Textに変更することでぐっと便利になりますよ。
インデックスとインデックス対象文書の同期もalter文やパッケージで実行できます。
あと、Oracle Textにすると、HTML文書や、XML文書のタグ解析で便利になるかも
しれません。
953 :
949 :05/03/12 16:25:08 ID:???
ありがとうございます。 やる価値はありそうです。 プロトタイプを作ってみます。おかげでやる気が出ました。 やっぱり試してみないとわかりませんしね。
954 :
947 :05/03/12 16:40:12 ID:???
>>948 レスありがとうございます。
global_nameだと、例えばORCL.domainってOracleが2台あると
どちらも同じに表示されてしまいませんか?
いや、ちゃんと名前を付けて欲しいってのが切なる願いですが・・・。
>>954 じゃ、db_nameでも何でもいいのではないですか?
とにかく、どうにでも変更できるわけですから、ご自由にってところなんですが。
956 :
947 :05/03/12 22:45:29 ID:???
>>955 すみません、質問のしかたが悪かった様です。
set sqlprompt でプロンプットを指定できる事は承知しています。
先日本で、例えばselect username from user_users で今の自分の
セッションのユーザ名を取得し、その結果をset sqlpromptに渡す方法を知りました。
SQL Plus起動時のスクリプトにこれを入れておけば、起動の度に自動的に
プロンプットをユーザ名にする事が可能です。
これを接続時に使った接続文字列にしたいのですが、
これを取得する方法って無いでしょうか?
まずはプロンプットをプロンプトに一括置換して再度投稿しなおせ。話はそれからだ!
プッ。
959 :
947 :05/03/13 00:56:10 ID:???
( ̄□ ̄;)アゥ!! _| ̄|○ ゴメンナサイ。
>>956 そこまでやれるのに、何でシェルとかバッチを書こうとは思わんのだ。
>>959 SET SQLPROMPT "&_CONNECT_IDENTIFIER>"
ただし使えるのは9iR2以降ね。
9iR2以前だったら・・・
set termout off
col x new_value y
select rtrim(instance,chr(0)) x from v$thread;
set sqlprompt '&y >'
set termout on
SQLPlusの起動時に自動的にShellを読み込ませることってできるのですか??
963 :
NAME IS NULL :05/03/13 12:01:45 ID:P82CQ3HT
>>956 960の言わんとしているところは
Shellに「SQLPlusの起動も含めて」書けでは?
つか、テラタームマクロでさ AサーバのSIDがAAAに接続、ウィンドウの色は緑 AサーバのSIDがBBBに接続、ウィンドウの色は黄色 とかつくればいいじゃん
>>956 つまり、アイデアしだいでどうにでもなるってことだろ。
966 :
947 :05/03/13 18:08:36 ID:???
>>961 ありがとうございます!!
できました。!!!
>960
バッチ等だと、客先等で自分のノートPC接続する時、
いちいちバッチ手直ししたりするのが面倒かと思いまして。
この方法なら、一度Sql Plusに設定しておけば常に有効ですから。
>>961 氏に感謝です。
>>962 ORACLE_HOME下のsqlplus\adminディレクトリにglogin.sqlとlogin.sqlがある。
glogin.sqlは全ユーザ共通、login.sqlはユーザ毎に個別の、
sqlplus起動時の個別スクリプトを書ける。
接続毎に毎回必要なコマンドは、ここに定義すれば良い。
>>947 の質問は、ここにコマンド足して、常に接続時に使った
接続文字列をプロンプトに変更する方法だろう。
969 :
NAME IS NULL :05/03/15 17:51:05 ID:t3n4ph8I
Oracle10gStandardEditionOneをWinServer2003にインストールした後、デー タベースを作成しようとしたらエラーが発生してしまいました。 表示されたエラーの内容は「(エラー番号1388)メンバのアカウントの種類が間違っているた め、新しいメンバをローカル・グループに追加できませんでした。」です。 何が原因なんでしょうか? 自分で調べてみて、有償のパッチを当てれば解決するような事を見つけたのですが、何か有 償のパッチ以外に解決策はないのでしょうか?
>>969 あるぞ。
取り合えずエラーが発生したら、そこで止めるな。
作成しようとしているDBインスタンス(サービス)を起動するのじゃ。
例: コンパネ => サービス > Start OracleServiceORCL
971 :
NAME IS NULL :05/03/15 22:35:53 ID:S9wTMMFv
質問です。 日付型に日付じゃない、例えば"00000000"とか"99999999"とか"********"とか入れられる?
>>971 (´-`).。oO( つーか、そんなもん突っ込んでどうするんだろう… )
>>971 (´-`).。oO( 何のために表作成時にデータタイプを指定していると思ってるんだろう・・・? )
わかってないな。 00000000=起源の日、99999999=恐怖の大王記念日、********=秘密の日 だよ。
>>975 そっか、気がつかなかったよ。
漏れもまだまだ勉強不足だな。
>>975 つーか、どーゆーコード体系なん ( ゚∀゚)σ)´Д`)
978 :
NAME IS NULL :05/03/17 12:06:31 ID:Xk6qhk/q
>>970 すばらしい。
ちゃんとインストールできました。
便乗で質問です。
サーバはこれでできたので、クライアントをインストールしてます。
問題のサーバーと同じDC下のクライアントPC(2K,XP)に、アドミニ権限で
Oracle client10Gをインストールして、アドミニ権限でアプリを実行
すると問題なくOracleデータベースに接続できます。
ところが、本来のPCユーザの権限(ドメインユーザ)で実行しようと
すると権限がないとおこられてしまいます。
試しにインストールしたOracleのClientフォルダー以下にUsers権限を
与えてやると正常に動作する様になります。
この様な手段しかないのでしょうか。
いかが思われます。
>>978 ( ゚∀゚)σアドミニ権限で
( ゚∀゚)σOracle client10Gをインストールして、
>>974 とは言うけどよ、日付型のカラムに
アリエナイ日付を入れたくなることってない?
永久に来ない未来とか、2月30日とか
>>980 だったら文字列で扱えっての
強い型チェックしてくれるしっかり者の日時型を骨抜きにしようとすな
>>980 つーか爾来
日付型つーのは大別されれば数値型の一変種に過ぎず
これすなわち「永遠に来ない未来」なぞ
永遠に実現しないデカイ数/ちいさい数つーもの待望論の
エピソードに過ぎぬ由。
そもそも「2月30日」なんつーのは意味論の問題であり
記号法の領域。なんらの日付をも含意せず指示しない故
他の日付データとの間で比較もなにもできる訳が無い
>>982 > 永遠に実現しないデカイ数/ちいさい数つーもの待望論の
> エピソードに過ぎぬ由。
LOW-VALUEとHIGH-VALUEですか。
COBOLにはあるよねw
>>983 (´-`).。oO( COBOLいいなぁだろう… )
>>978 窓のユーザー権限の仕様なんてそんなもんなんじゃないの?
つ〜か、この刷れにいて意外と窓+ボラクル使っている人が多い
のを知って驚いているよ。
でも戸籍ではうるう年じゃない年の2月29日うまれとかいるから DATE使えなくてこまるよね
なんでそんな実在しない日に生まれた事になってるの? そしてなんでそれを役所が認めているんだ
>>986 実在する2月29日なら、きちんと書き込める訳だが・・・。
実在しない日に生まれた奴なんているのか?
経緯はわかんないけど結構昔の人(いま90代とかそれくらい)のデータでそういうのがあって 問い合わせたら、戸籍上実際にあるといわれた
戸籍関係はきついですよね。誤字登録された名前の扱いには困った。
990にもなって次スレを考えなくてもいいのはさすがDB板
次スレを自動拡張してくれたらいいのに
993 :
NAME IS NULL :05/03/18 23:50:43 ID:fHm7qijM
ホットスタンバイDBを構築するのに 1.スタンドバイDBを運用 startup nomount; alter database mount standby database; recover standby database; 2.DBの複製を運用 startup mount; recover database; どちらもLive側のarchive.logを適用する点で同じだと思いますが、 1.で運用する何かメリットはあるのでしょうか。
>>993 喪前の所では、手動でガシガシと複製側のDBのコントロールファイルを
アップデートしたり、出来たアーカイブログを転送していたりしているのか?
995 :
NAME IS NULL :05/03/19 02:15:17 ID:X23qXVuv
はい。自動で出来るのですか?
10g x86-64のインストールが全然出来ません。 ファイルのコピーは出来るのですが、リンク処理のところで、 ins_sysman.mkがエラーになってしまいます。 リリースからそれほど経ってないから情報もないし、US のOTNを見てみて も、同様のエラーを起こしている人はいますが、解決に繋がる情報は見当 たらないです。 ちなみに、OSは redhat ES3のリリース2です。 インストールマニュアル通りに、環境変数、gcc等のソフトのバージョンも揃えたんですが・・・。
>>995 出来る。
それが自分でクローニングする所の違いだ。
>>996 glibc-2*.i686.rpm
glibc-devel-2*.i386.rpm
x86_64.rpm
は入っているか?
999 :
996 :05/03/19 05:40:57 ID:???
>>998 入っています。
ログを見てみると、 ld コマンドを実行している時に、crti.o が見つかりませんと出力されています。
/usr/lib にはなく、/usr/lib64には存在するので、コピーしてきてみたら、
今度は、ファイルが途中で途切れていますと・・・。
相当判断能力が落ちてきているので、もう一度1からやり直してみます。
ありがとうございます。
1000 :
NAME IS NULL :05/03/19 06:03:21 ID:1HXuX5Jj
1000!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。