Oracle 質問総合スレ3at DB
Oracle 質問総合スレ3 - 暇つぶし2ch2:NAME IS NULL
08/10/07 22:02:51
>>1 乙であります。

取り合えず・・・。

1. 質問する時はDBのバージョンとプラットフォームぐらいは書きましょう。
2. OTNからダウソ出来るものは、30日過ぎても別に機能的に制限が
かかるという訳ではありません。あくまで紳士協定に基づいて、
 削除してくださいという事です。



3:NAME IS NULL
08/10/09 02:27:10 x7UcvDt0
Null age

4:NAME IS NULL
08/10/09 23:01:42
null sage

5:NAME IS NULL
08/10/10 01:33:20 WKuieuVm
Windows XP にて oracle 11g を使用しています

ODP.NET にて、バルクバインドを使用してレコードのインサートを行っており
インサート時にエラーになったレコードが存在しても
エラーレコード以外を全てインサートするように組みました

この時、例えば100レコードを配列バインドにしてインサートしたのですが
100レコードの中にエラーになったレコードが存在してもインサートを続行すると
なぜか配列最後尾(この場合は100番目のレコード)が
インサートエラーになっていないにも関わらずテーブルにインサートされません
エラーが100件中の何件目であろうと、エラーレコードがあると配列最後尾レコードが入りません
100件全てが正常にインサートされた場合は最後尾もちゃんと入るのですが・・・
これってODP.NET の仕様なのかなと思ったのですが
やっぱり自分のコードが怪しいですよね・・・

6:NAME IS NULL
08/10/10 20:49:54
すいません、Windows 2003 にて oracle 10g を使用してるのですが
sqlplusを2つ立ち上げて、片方にinsertしているのに
片方のselectで出てきません、これってバグですか?

7:NAME IS NULL
08/10/10 22:04:32
>>6

それ、何て言うファントムリード?
RDBMSの意味、そしてトランザクションの隔離レベルを良く勉強してから
質問するといい。

8:NAME IS NULL
08/10/10 22:06:01
>>6

(´д`)つcommit

9:NAME IS NULL
08/10/11 21:00:25 k0WWMN/3
8に激しく同意~


10:NAME IS NULL
08/10/12 00:00:34
ひと桁台でこんな質問って
こういうのでもいいのかと勘違いしてしまう

11:NAME IS NULL
08/10/12 03:21:01 Rc/3eSvJ
インスタンスが起動していることを監視するには、smonだけ見てれば良いのでしょうか?
皆様はpmonとかバックグラウンドプロセス全部見てますか?
sqlplusで接続確認するとかプロセスだけ見てもハングしている可能性あるよは無しで、単純にプロセスだけ見る場合です。

12:NAME IS NULL
08/10/14 00:08:12 WVWwMetc
>>11
startup nomountで起動するプロセスにするとか。
smonのほかに、少なくともpmon dbw lgwr ckptが起動するはず。

13:NAME IS NULL
08/10/14 19:52:14
>>10
可能です。
以上。
はい次の方。

14:NAME IS NULL
08/10/14 20:17:32
>>5
あー、そんなようなバグの話聞いたことあるね
自分は出くわしたことないけど

15:わかってない
08/10/18 17:52:41
マニュアルにあるdboraの見本でrshしているのはなぜですか?
コメントアウトしちゃったけど後で影響でますか?

16:わかってない
08/10/18 21:39:36
>>15
んー
su - oracle -c "$ORACLEO_HOME/bin/dbstart"
とかやりたくなるよな。
これができないプラットフォームがあるんじゃまいか?知らんけど。

17:NAME IS NULL
08/10/21 20:33:45 sw348KkR
 10gに詳しい人に質問です。

 sysやsystemで、ユーザーにロールで権限を与えるときに不思議なこと
がおきます。
 RESOURCEロールに「CREATE TABLE」の記述がありますが、RESOURCEロール
だけでは、SQLPLUSなどででユーザーがテーブルを作ろうとしても、エラー
になります。
 この点を調べても見ると、RESOURCEロールの「CREATE TABLE」には、
「表領域」の権限しかないからとの事でした(後述しますが、表領域しか
ない時点で「TABLESPACE」の表記じゃないのがおかしく思えます)。

次に、RESOURCEロールをはずした状態で、「GRANT CREATE TABLE」で、
単独で権限を与えてから、ユーザーでテーブルをつくろうとすると、
またもやエラ-になりました。
 この点も調べてみると、単独の「GRANT CREATE TABLE」には、「表作
成」の権限はあるが、「表領域」の権限がないからとの事でした。

 つまり、
                    表領域  表作成
RESOURCEロールの中の「CREATE TABLE」   ○    ×
単独の「CREATE TABLE」          ×    ○

ということになるようです。

 そこで、RESOURCEロールを与えた後で,「CREATE TABLE」を与えてみると
ユーザーでテーブルをつくることができました。
 テーブル作成ができた事で結果オーライといきたいことですが、ユーザー
権限を付け加えるときに、Object Browserで権限の表示を観察してみたら
とても不思議なことがおこったのです。

 まず、最初にユーザーにRESOURCEロールを付与します。この時の権限の
一覧には「CREATE TABLE」の他に「TRIGGER」などいくつかの権限が表記され
ていました。
 次に、単独の「CREATE TABLE」の権限を与えてみてから、Object Browserで
権限の表示一覧を見ると

「CREATE TABLE」
「TABLESPACE」

の二つしか載っていないのです。

 ここで頭が「???」となりました。

①RESOURCEロールの「CREATE TABLE」には表領域しかないのに
「TABLESPACE」と表記しないのか?

②RESOURCEロールに単独の「CREATE TABLE」を新たに付与すると
なぜ今まで出てこなかった「TABLESPACE」が出てくるのか?

③RESOURCEロールについていた他の権限(TRIGGERなど)は、なんで
消えてしまうのか?

 この①②③について、詳しい方、ご教授くださいませ。

18:NAME IS NULL
08/10/21 20:36:43
ずれてました。訂正。

                    表領域  表作成
RESOURCEロールの中の「CREATE TABLE」   ○    ×
単独の「CREATE TABLE」          ×    ○


19:NAME IS NULL
08/10/21 20:37:42
またずれた。すいません・・・_| ̄|○

20:NAME IS NULL
08/10/22 00:10:51
ひでええええええええHTMLDBで
更新したら全データぶっとんだあああああああああ
ぎゃああああああああああああああああああ

21:NAME IS NULL
08/10/22 10:03:45
>>17
RESOURCEロールにはUNLIMITED TABLESPACE権限が含まれてるからじゃね
含まれてるといっても、ロールに与えられてるんじゃなくて、自動付与だけど
しかも、これは10gよりずっと前からの仕様みたいなもんでしょ

session_rolesとかsession_privsで確認するのがよろしいかと

22:NAME IS NULL
08/10/23 00:10:32 ZQGFGXgK
下記のSQL文がわかりません。
SQLの知識が少ないので、仕事で困っています。教えてください。

SELECT DISTINCT VALUE ( SUBSTR ( 項目A , 1, 3 ) , 'XXX' ) FROM テーブルA

これは、テーブルAの項目Aの1桁目~3桁を表示? この 'XXX' ← この文がわかりません。

23:NAME IS NULL
08/10/23 00:39:36
DISTINCTは同じ内容の行を1行にまとめる為に使います。
もしその必要がないのであれば、単純に

SELECT SUBSTR( 項目A , 1, 3 ) FROM テーブルA

でよいのでは?

24:NAME IS NULL
08/10/23 00:42:31 ZQGFGXgK
>>23

VALUE ( SUBSTR ( 項目A , 1, 3 ) , 'XXX' ) この 'XXX' これは何を意味するのでしょうか?
これの'XXX'がわかりません。

何とぞ、明日までの課題ですので、どなたか教えてください。

項目Aが取得できなかったら、'XXX'を代入するイメージなのでしょうか?(>_<)

25:NAME IS NULL
08/10/23 01:25:07
VALUE関数は、全く違う用途で使用されるものなので
単に項目Aの1桁目~3桁を表示するだけなら必要ないのでは?

26:NAME IS NULL
08/10/23 23:58:30
archive log list で表示される、アーカイブ先についてですが、
log_archive_dest_1、log_archive_dest_2 にアーカイブ先を指定した場合、
どちらがアーカイブ先として認識されるんでしょうか。

現在、アーカイブ先が log_archive_dest_2 の値となっていて、
log_archive_dest_1 の値に変更したいと思っています。

何か良案ありませんでしょうか。

27:NAME IS NULL
08/10/24 03:18:55
>>26

両方にlocationオプションで指定していれば、同じアーカイブログが
同時にそれぞれのディレクトリに吐かれる事になる。

ちなみに今の状態から判断すると、location句が指定されているのは
log_archive_dest_2だけの方になってるとかないか?
エスパーでないので良く分からんけどな。

28:NAME IS NULL
08/10/24 03:25:33
>>24

実は問題が間違っていてVALUEではなくNVLだったとかじゃね?

29:NAME IS NULL
08/10/24 22:45:42
>>27

log_archive_dest_1 と _2 の両方に location句が指定してあります。

log_archive_dest_2 のアーカイブログを誰かが途中まで削除してあり、
recover database をした際にエラーがでてしまいました。
archive log list で確認した際に アーカイブ先 が _2 の場所になっており、
_1 と _2 の両方にアーカイブを吐いているんだから、両方もしくは、
どっちか片方を見るように変更できないものかと思っています。

同じものを吐くんだから、あまり考慮されていなく、
log_archive_dest_n の、n の値が一番大きいものを参照する仕様なんでしょうか。

ちなみに Oracle 10.2 SE です。


30:NAME IS NULL
08/10/25 00:02:09
>>29

log_archive_dest_state_1=enable
log_archive_dest_state_2=defer
でいいんじゃね?

いずれにせよリカバリを実行するのなら、log_archive_dest_2を
init.oraから一時的に消すか、もしくは全アーカイブログを
一箇所に集めておくとかすればいいじゃね?
もしくは手動で指定とかね。





31:NAME IS NULL
08/10/25 00:33:48
>>30
なるほど、一時的に無効にしちゃうって事ですね。
それもありですね。

結局 log_archive_dest_2 の指定を削除して、取り合えずはリカバリできました。
ですが、どっちかを指定できるんじゃないかと思って聞いてみました。
できそうで、できないんで...

32:NAME IS NULL
08/10/25 03:25:18
RMAN使ってリカバれば自動認識とかしそうだけどな。
RMANは使いかなせれば意外と便利。


33:NAME IS NULL
08/10/25 14:09:38
>>32
RMANですか。使った事ないです...
使いこなせれば、いろいろ便利なのかもしれないですね。


34:NAME IS NULL
08/10/29 22:12:39 VF6FeZGZ
すみません。教えてください。
パッケージを使わずにストアドプロシージャのみでの配列操作で
レコードを更新することは可能でしょうか?

参考URLなどありましたら教えてください。お願いします。


35:NAME IS NULL
08/10/30 20:35:22 k/PL7hUN
>34です。
助けてください。おながいします。


36:NAME IS NULL
08/10/30 20:53:21
>>34
バルクフェッチ、バルクインサートの事かな?
それならここを参考すればいいと思う。。
URLリンク(www.shift-the-oracle.com)
10g以降であれば、かなり扱いが楽になった

37:NAME IS NULL
08/10/30 22:04:05 k/PL7hUN
>>36
貴重な返信ありがとうございます。


38:NAME IS NULL
08/10/31 13:30:57
これまで SQL Server を使っていた者です。
Oracleにおいては、テストや開発環境で安価もしくは無料で手に入るものは
あるのでしょうか?

例えば、SQL Server では以下のようなものがあります。
・最高の機能が開発限定として安価(1万未満)で販売されている。
・最高の機能が日数制限付(180日程度)で無料でDLできる。
・制限付で無料、C/Sシステム用として配布も可能がある。

39:NAME IS NULL
08/10/31 23:54:09
ある。
体験版(中身は製品版と全く同じ。完全に開発目的なら、期限過ぎてもそのまま使用可能だったかな?)と
機能及びインストールベースが削られた、商用利用も可能なOracleXEという無料版


40:NAME IS NULL
08/11/03 15:35:43 BN+eUsH7
Oracleのバージョンアップを検討していて、
8i⇒10gにします。
サポートできていないSQLがのっているサイト・掲示板などありますか?


41:NAME IS NULL
08/11/03 16:05:22
OTNとかOiSCとか。

42:NAME IS NULL
08/11/03 19:28:46
vistaに11gのトライアル版入れたけど、コピーやペーストができません。
どうすればいいでしょう?


43:NAME IS NULL
08/11/03 19:30:09
できたよん

44:NAME IS NULL
08/11/03 20:37:04 i9ran1sH
>>40
9iR1,R2 10gR1,R2の新機能、SQLリファレンスのマニュアルの
廃止になった機能を読む

45:NAME IS NULL
08/11/03 21:01:07
>>42
ヒント:Office入れてる?IMEを標準にしてやって味噌。

46:NAME IS NULL
08/11/04 11:30:11
助けてください・・・
急にOracleを管理するよう言われてOracleXEで勉強中なのですが
バックアップを取らないままCURRENTのREDOログをOSから削除してリカバリをしようとしています

ロググループを削除しようとするとCURRENTなので不可
ログスイッチをしようとするとDBをオープンしろと言われてしまいどうにもできません

マニュアルの不完全リカバリを読みながら
recover database until cancel をして
alter database open resetlogs を行うとSYSTEMデータファイルのリカバリが必要といわれ
alter database open noresetlogs を行うとCURRENTのREDOがないと言われ
どうすればいいのかわかりません

CURRENTを他のグループに移してログ削除したグループをDropするとばかり思っていたので
switchするのにまずOpenしなければならないがOpenできないという無限ループになっています

どのような対処が適切なのかご教示いただけませんでしょうか

47:NAME IS NULL
08/11/04 14:57:35 xSEhhdTy
TimesTenの話ってここで良いの?
従来のSQLクエリ文とは違うらしいけど
どう違うのでしょうか?


48:NAME IS NULL
08/11/04 23:35:02
>>46

現行ログが吹っ飛んだらDB止めたらいかんだろ・・・・。
mount状態で使えるかどうかは知らんが、現行ログが吹っ飛んだら
alter database clear unarchived logfile group <吹っ飛んだロググループ番号>;
で対応するもんだ。


49:NAME IS NULL
08/11/06 18:14:27 6klp6LOT
どなたか教えてください。
OracleのデータブロックのI/Oサイズチューニングは、初期化パラメータDB_FILE_MULTIREAD_COUNTで行いますが、
Windows Server 2003での、I/Oサイズの変更は可能でしょうか?

どなたか教えていただければ幸いです。


50:NAME IS NULL
08/11/06 18:17:22
Windows板池

51:NAME IS NULL
08/11/06 23:27:18
>>49
> DB_FILE_MULTIREAD_COUNT に一致する情報は見つかりませんでした。

52:NAME IS NULL
08/11/06 23:34:20
>>49

Raid組んでいるのならRaidのストライプサイズでI/Oサイズを
変更出来る様になっていると思うけどね。
俺が昔ベンチマーク取った時には、窓のRaidはストライプ
サイズが大きい方がパフォーマンスが良かったな。
当時、CompaqのDL380の6ノードRACでの結果だけどな。



53:NAME IS NULL
08/11/06 23:43:34
NTFSっていうかWindows側で調節できるんかな?
UnixでもSolarisUFSはブロックサイズ8Kで64K I/Oでほぼ固定だったりするし。
VxFSは、その辺はかなり自由に設定できるけど。


54:NAME IS NULL
08/11/07 02:04:21
本当にくだらない質問ですいません。

Win2000serverに10g release2をインストールしたいのですが、インストーラはOTNの何年何月版に有るのでしょうか?
簡単に分かるだろうと思ってファイルを漁ったのですが見つかりません…

55:NAME IS NULL
08/11/07 03:28:45
ユーザーの権限について教えてください

あるユーザーを、制限付きユーザーで作りたいのです
その制限が、指定の表領域(もしくはテーブル群)のみ参照・更新できる、といった感じで

実際、通常ユーザーは基本領域のみ参照更新可能で、管理ユーザーは
システム全域と、Create、Dropできるといった分け方されてるんですよね?

そのへん、どやってるやるのでしょう?


56:NAME IS NULL
08/11/07 03:35:59
>>54

ほらよ(´д`)つURLリンク(www.oracle.com)

57:NAME IS NULL
08/11/07 03:37:56
>>55

指定のテーブル群だけを参照/更新させるというのは、オブジェクト権限で与える。
特定表領域の使用や容量を制限するのはQuotaで設定する。


58:NAME IS NULL
08/11/07 03:40:58
>>49

Format時のAllocation Unit Sizeで変更出来るんじゃね?

59:NAME IS NULL
08/11/07 13:27:42
>>56
Solarisx86/x64版はまだなんだなぁ・・・。

60:NAME IS NULL
08/11/10 20:12:40 1PkOr8o/
これまでWindows版Oracleつかってきたんだけど
ウチの使い方だと、どうも2,3週間で落ちる
で、Linuxにしたらいんじゃね? ってことで試験運用することになったんだけど

この際だからDBいれるところも検討しなおそうと言う話に
で、Rawにしたほがいいのかな?
そっともExt3ファイルでつくったほうがいいのかな?

それぞれ何が違って、メリット・デメリットがなんなのかっていうのが、
公式なのではなくて、使用者側からの情報がさっぱちなくて

おまえらはどうしてますか?


61:NAME IS NULL
08/11/11 02:51:32
>>60

俺の私見だが、こんな感じかな。

[Raw Device]
O/Sのファイル・キャッシュをバイパス出来るので、DB_CACHE_SIZEの
チューニングでパフォーマンスの改善が望める場合がある。
O/SのファイルキャッシュからDB_CACEへのコピーという段階が発生
しないから、その分CPUのオーバーヘッドも下がる。
ただLinuxには持てるRaw Deviceの上限があったと思った(最大で255だっけか?)。
後は表領域を拡張したい時には、管理が凄く煩雑になる。
多分、新たにRaw Device作って、そいつをalter tablespace add datafileで
引っ付けていくという作業になると思う。
あとバックアップがO/Sのddコマンド使うか、RMANか、もしくはRaw Deviceを
直接読み込めるバックアップツールのみとなる。

[Ext3]
管理が楽。
ファイルシステムの拡張も比較的楽だから、表領域の拡張も楽に行える。
バックアップもその気になればO/Sのcpコマンドでだって出来る。
ただO/Sのファイルキャッシュが介在するので、パフォーマンスチューニングか
ちょっと複雑になる。
まあ、そんなに意識しても仕方ないかも知れないが・・・。


[ASM]
今だったらRaw使うぐらいならASMを使う。
ただディスクへのパスが複数ある場合、ASMだと認識出来ない。
その場合にははRaw Device作って、そいつをASMディスクとして認識させるという
作業が必要。
LinuxにはOracleから提供されるASMLibというライブラリがあり。
ホットブロックのリバランシング機能など、そこそこ使える。
バックアップに関しては、Raw Deviceと同じ制限がある。

62:NAME IS NULL
08/11/11 13:05:28
>ディスクへのパスが複数ある場合、ASMだと認識出来ない。
致命的欠陥すぎるw

63:NAME IS NULL
08/11/11 22:52:54
同一ディスクにパスが複数あっても、冗長化ドライバとか使わないとパス障害で切り替わらないから、実害はないんだけどな。
てか、ファイルシステム自体にパス冗長化機能を持ってるやつってあんの?

64:NAME IS NULL
08/11/11 23:10:52
>>62

そんな致命的でも無いよ。
書いた様に、複数パスがある場合には、冗長化されたRaw Device
作ってしまえばいいだけ。
そいつをudevで起動時に認識させさえすれば、特に意識する必要は
無い。


65:NAME IS NULL
08/11/12 01:45:35 ee+0Tgqq
ASMっていうの使うと、体感できるほどはやい?
10%とかそんなレベルなら、ファイルシステムの方がいいきがするなぁ


66:NAME IS NULL
08/11/12 03:32:45
RAWには若干劣るが、ファイルシステムよりかは早いというのが実感かな。
O/Sにもよるが、ファイルシステムとRAW Deviceも最大で30%しか違わ
なかったりとかするしね。
私見だが、ASMにするメリットはRAW Deviceを使うよりかは、管理が楽で
そこそこパフォーマンス向上も望めるという点かな。

67:NAME IS NULL
08/11/12 07:23:51 1ijqF5aF
SERACなら要ASM

68:NAME IS NULL
08/11/12 11:49:20
LinuxだったらOCFSもあるから、別にASM必須って訳でもないかな。
今でこそ大分落ち着いたけど、最初の頃はバグだらけで結構
データ吹っ飛んだ例が後を絶たなかったし。
ようやっと実用に耐えられるレベルになってきたって感じじゃない?
RACの場合はそれこそRaw Deviceの方が歴史が長いしね。

69:NAME IS NULL
08/11/12 13:00:53
ASMって基本的にWindowsのためのものだな。
LVMやVxVM使ってるなら、わざわざそれらの管理外に別のボリュームマネージャを使いたいとは思わんし。

70:NAME IS NULL
08/11/12 19:22:34 1ijqF5aF
いや、だから安価なSERACの場合はASMのみしかサポートされないんだって。
ocfsとかLinuxだから使わないとかいう選択肢はない。

71:NAME IS NULL
08/11/13 03:14:23
>>69

まあ、一応自身の技術習得目的のためにHP-UXやLinux上でも
使っているけどな。

窓RACだったらASMよりかはOCFS使った方が何かと楽そうな気が
するよ。

72:NAME IS NULL
08/11/16 15:44:17
【底値買い】 飛びついちゃいけない「注意喚起銘柄」25社 にわか投資家は参照してもらいたい
スレリンク(wildplus板)

73:NAME IS NULL
08/11/16 16:05:29
>>72

信用売り残が積み上がっているからでしょ。


74:NAME IS NULL
08/11/18 15:05:33
>>60
>>ウチの使い方だと、どうも2,3週間で落ちる
2-3wで落ちる使い方が気になります、詳しく

75:NAME IS NULL
08/11/18 23:38:08 zZ+Wlhav
ちょいと質問させてくれ

ODP.NET使って、エクスポートするプログラムをつくたのさ
最初ExexuteReader使ったら落ちまくる。
200万件走るなんて夢のまた夢。
40万件くらいでOutOfMemoryとか言って死んじまう。

仕方ないからDataAdapterつかってFILLしてみたら、当然一発で落ちる。

どうしたらいいんだ。



76:NAME IS NULL
08/11/19 00:10:59
>>75

expdp を外部コマンドとして呼び出すとか。

77:NAME IS NULL
08/11/19 00:15:40 jlroBEfm
>>76
アイディアありがとう!
でも、CSVで吐き出さないといけないんだ。
しかも、特定のカラムは置換してやったりしないといけない。
業務関係の変な処理が多かったからVB.NETで、と思ったのだ。

正直、手詰まりな中で来週本番稼動だぜ!
死ぬしかないか!

78:NAME IS NULL
08/11/19 03:19:53
adrciのデフォルトエディタなんだけど、
Windows版11gでも問答無用でviってどういうことなの・・・

79:NAME IS NULL
08/11/19 05:55:05
>>75

URL_FILEでも使って出力すれば?

URLリンク(asktom.oracle.com)

80:NAME IS NULL
08/11/19 05:56:51
>>77

パッケージ作ってUTL_FILEで出力。
特定のカラムの置換処理はViewで対応する。

81:NAME IS NULL
08/11/19 06:54:13 AvIXrbBK
バックアップ/リストア/リカバリを勉強しているんですが、
各コマンドを打つ時の状態が色々あって混乱しています。
DBの状態(MOUNT/OPEN)・データファイル状態(ONLINE・OFFLINE)
をどのように使い分けるのかが良くわかりません。
何とか理解したいのですが…

82:NAME IS NULL
08/11/19 07:02:36
>>81

大別するとこんな感じかな。

Open状態でリカバリを試みる状況
- データファイルの破損
- 表領域レベルでのリカバリの実施
- ブロックレベルでの破損 (RMANのMBR機能を使う)

Mount状態でリカバリを試みる状況
- DB全体のリカバリ (Point-in-timeリカバリを含む)
- Online Redoログが吹っ飛んだ場合

Nomount状態でリカバリを試みる状況
- コントロールファイルがふっ飛んで再作成しないとならない場合

83:NAME IS NULL
08/11/19 21:05:47 q2BaRybn
>>81
バックアップリカバリを学ぶ前にオラクルの基本動作を学ぶべし。
そうすれば自ずと状態ごとにリカバリできるものの判断ができるようになる。

84:NAME IS NULL
08/11/19 21:59:06
>>77
カラム置換が良く分からないけど。SQL*Plus で
set markup html on ←もしかしたら違うかも
set pagesize 0
set trims on
spool hoge.html
select ...
spool off
で、hoge.html を Excel で編集→CSV出力
なんてのはダメ?
一度画面出力される分だけ、レコード数的に時間は掛かりそうだけど。

85:NAME IS NULL
08/11/19 22:00:39
(あっ、Excelって数万レコードしか使えないんだっけ…)

86:NAME IS NULL
08/11/19 23:01:12
>>85

Excel2007 で改善されてるよ。
それでも100万行くらいだけど。


87:NAME IS NULL
08/11/22 15:22:30 9xzmOyv+
RACを利用したいんだが、10gR2と11gのどちらが安定しているのか悩ましい。
10gR2ではバグに悩まされたので。

88:NAME IS NULL
08/11/22 15:34:53
>>87

CROWNで情報をあさってみれば。

89:sage
08/11/22 17:16:50 p5sHRkLn
87>>
10gはbugだらけだが、調査で既存bugをすべて潰せば安定するはず。11gは10gよりbug少ないかも知れんが、導入してるところが少なく、まだbugができっていない可能性がある。

88>>
CROWNってw

90:NAME IS NULL
08/11/22 18:46:47
>>87
使うプラットフォームによるかな。
Linuxなら、新しいOracleの方が、インストールの手間は少なくて済む。

91:NAME IS NULL
08/11/22 20:19:29
>>87
あなたにノウハウがある分10gR2でいいんじゃないの?
プロジェクト終わるまでにサポート切れるかも知れないけど。

92:88
08/11/22 21:02:25
>>89

何だお前。

当たり前のことしか言えないくせに。何の情報もないぞ。


93:NAME IS NULL
08/11/22 21:19:37 p5sHRkLn
>>92
当たり前のことをわかっていないSEの多いこの世の中。
当たり前のことをわかっていることも大事なことの一つ。

94:88
08/11/22 22:17:21
だからと言って俺をコケにする理由にはならないな。

95:NAME IS NULL
08/11/22 22:35:55
そのレスが理由に今なった

96:NAME IS NULL
08/11/23 00:09:38
Oracle Clusterware のバグって 10.2.0.2 までがひどくて、
10.2.0.3 からは致命的なのに遭遇した記憶ナシ。
(10.2.0.3から仕様変更されてる影響かな)
11g って、基本的な部分は 10gR2 と同じだと思ってる。

>>91
10gR2なら無期限。
URLリンク(www.oracle.com)

97:NAME IS NULL
08/11/23 00:41:34
ClusterwareってなんかASMみたくほんのちょっとでもメリットあるのか??

98:NAME IS NULL
08/11/23 00:46:50 81DIcuAu
>>96
俺は10203で大障害になるケースも何件か見てるけどな。
逆に10201から上げたのが起因で障害が起きたこともあったし。
oprocdとか不振な動きをすることが多い気がする。

>>97
メリットもなにも、10g以降必須ですから。

99:NAME IS NULL
08/11/23 00:49:40
>>96

そのサポートは無期限とは言わない。


100:NAME IS NULL
08/11/23 10:18:24 ONIAIzDs
沖縄に外国人3000万人受け入れ計画
URLリンク(life.bbs.thebbs.jp)

こんな法案が可決したら日本は破綻する
(ちなみに東京の人口は1280万人)
選挙権がある方は良く考えて投票してください



101:NAME IS NULL
08/11/23 11:33:34
ポート番号が5500から1158に変更された理由を教えろ

102:NAME IS NULL
08/11/23 11:39:29
>>87

CRSは11gの方が安定している。
というか、11gのCRSは実質的には10.2.0.4とほぼ同じ。
10.2.0.2は結構バグがあって、ノードが突然排除されたりする。
10g使うなら、CRSは10.2.0.4+バンドルパッチは必須だろうな。

もしくはベンダー側のクラスターウェアと同居させて、スプリット
ブレイン時のノード選定はそっちに任せるというのも手。

103:NAME IS NULL
08/11/23 11:54:13
>>98
あれ?ClusterwareってRACと関係あるの?

104:NAME IS NULL
08/11/23 14:30:19
>>96
無期限のサポートだと、
不具合が出ても直してもらえないんです!><

105:NAME IS NULL
08/11/23 15:09:21
Personal Edition 5万ってマジですか?
一度買ってしまえば、永遠に家のPCで使いたい放題ってことですか?

106:NAME IS NULL
08/11/23 15:19:35
XEよりもいいのかしらん

107:NAME IS NULL
08/11/23 15:28:37
バックアップリカバリについてご質問です。
表領域およびデータファイル破損は完全リカバリで対応可能だが、
表領域の削除は、仮にデーターファイルがあっても不完全リカバリする必要がある、
で合ってますでしょうか?

108:NAME IS NULL
08/11/23 23:16:53 81DIcuAu
>>103
9iRACまではベンダ製ClusterwareありきでRAC(OPS)は動作していたが、10g以降のRACを使用するにはOracle Clusterwareが必要。

>>107
日本語でOK

109:NAME IS NULL
08/11/24 07:22:35
>>107の書き換えです。
たとえば、EXAMPLE表領域にexample.dbfというデータファイルがあるとします。
drop tablespaceでEXAMPLE表領域を削除し、example.dbfを削除しなかった場合、
復旧するには不完全リカバリが必要ですか?

110:NAME IS NULL
08/11/24 11:19:10
>>103

むしろ10g以降はベンダー製のクラスターウェアは必須では無くなった。

111:NAME IS NULL
08/11/24 11:22:28
>>109

drop tablespaceした時点のファイルが残っていようが、コントロール
ファイルとのSCNの同期が必要だから、バックアップからのファイルの
リストア及び不完全回復が必要。
というよりも、drop tablespaceした時点でO/S上のdbfファイルは
全く意味の無いものとなる。
ちなみに表領域レベルでの不完全回復は不可能なので、DB全体
レベルでの不完全回復が必要となる。

112:NAME IS NULL
08/11/24 23:17:59
>>109

もしくはO/S上のデータファイルを有効利用したい時には、
トランスポータブル表領域を使うだな。

113:NAME IS NULL
08/11/25 07:43:57
>>111,112
ありがとうございます。
ユーザーを削除した場合はフラッシュバックデータベースでいいみたいですが、
これは制御ファイルがユーザー情報を持っていないからと考えていいのでしょうか?


114:NAME IS NULL
08/11/26 01:33:00
OTNでマニュアルをダウンロードしたいのですがダウンロードできません
例えば URLリンク(www.oracle.com) から
Windows共通のドキュメントをダウンロードしようとしても IEでエラーとなってしまいます
対象のページが古いのでしょうか?



115:NAME IS NULL
08/11/26 04:28:21
>>114

普通に落とせるけど?
ちなみにブラウザーは火狐ね。

116:NAME IS NULL
08/11/26 04:32:56
>>113

フラッシュバックデータベースは特殊なフラッシュバックログを
当てて過去の特定の時点まで戻す機能。
そして「表領域削除されている場合には使用出来ない」という
制限がある。
つまりDMLには対応していないって事だろ。

117:NAME IS NULL
08/11/26 04:34:54
>>116

DMLにしか対応していないの間違い。

118:NAME IS NULL
08/11/27 06:45:33
>>115
ありがとうございます
火狐入れて試したらダウンロードできました。

119:NAME IS NULL
08/11/28 01:36:14
最近だと総データ量100GB以下のDBって小規模扱いなの?

120:NAME IS NULL
08/11/28 02:32:20 t30Az4UP
すんごい基本的な質問

centOS 5.2にOracle11gいれて使ってて
Core2QuadなCPUを、GUIなCPUモニタで4こそれぞれの占有率みてたところ

クライアントPCから、ちょっと重たいSQL発行したら
いっこのCPUだけ100%で、のこりの3こは1%未満な状態に

Oracleのプロセスって、マルチスレッド?な形になってないのかな?
いっこの接続で、いっこのプロセス?

4このCPUつかって、カカッと余力のある計算をして欲しいと思うんだけど

それって、設定ミス? OSの問題?


121:NAME IS NULL
08/11/28 08:41:41
>>120

CPUの使用・占有率はどちらかというとO/S側のスケジューリング方式に
依存する部分が多いと思う。
複数CPUの効果を実感したければ、全件検索とかでParallelヒント句つけて
試してみ?

122:NAME IS NULL
08/11/28 10:22:56
>>119

小規模だな。
1TB超えないと大規模とかって言えないよ。

123:NAME IS NULL
08/11/29 00:00:00
億単位のテーブルがごろごろしてそうだな…(´д`;)

124:ma
08/11/29 01:09:50 erpkj/yK
auditのログを完全に出力しない方法ってありますか?
初期化パラでその辺の設定は無効にしてあるのですが、
インスタンス停止起動時などはどうしても出力されてしまいます。
バージョンは10gR2です。

125:NAME IS NULL
08/11/29 02:13:32
SYSDBA権限での接続は必ず出力されるんじゃなかったっけ?

126:ma
08/11/29 02:22:20 erpkj/yK
そうみたいですね、必須監査でsysdbaの接続、インスタンスの起動停止は
必ず出てしまうみたいなのですが、それを止める方法が知りたいのです。

127:NAME IS NULL
08/11/29 05:30:40
U.S. Oracleの正式回答によると「Expected behavior.」
つまり「仕様」だそうだ。
諦めろ。

128:NAME IS NULL
08/12/04 06:11:06
oracle 10gでLISTENERとLISTER0という2つのリスナーを起動しました。
ところが以下のコマンドを打つと、以下のようになります。

LSNRCTL> show current_listener
現行のリスナーはLISTENERです。

ちゃんとLISTENERもLISTENER0も起動しているのですが、何故でしょうか?

129:NAME IS NULL
08/12/04 09:11:50
今どのリスナーを操作しようとしているかが出てるだけだろ

130:NAME IS NULL
08/12/05 02:06:34
>>128

もしかしてやりたいのはこういう事か?

lsnrctl status LISTENER
lsnrctl status LISTENER0



131:NAME IS NULL
08/12/05 04:28:18
>>129,130
statusコマンドで確認はしました。多分ですが、どちらも正常に表示されています。

それなのにshow current_listenerで片方のリスナーしか表示されなかったので
不思議でした。操作中のリスナーが表示されているってことなんですね。

ありがとうございます。

あと、ためしにDBサーバー上でoracle connection manager起動しようとしたんですが、
「cman.oraが見つからない…」というエラーが出ました。
ちゃんと、$ORACLE_HOME/network/admin配下に置いたのですが。
DBサーバーと同じサーバー上だから駄目ってことはないですよね?

132:NAME IS NULL
08/12/08 14:29:31 +eRptruM
質問があります。
Oracle10gに限らないと思うのですが、SELECTの質問です。

select * from PIYOTBL;
とすると列間にスペースが入ってカラムごとに整列されますが、整列しないようにできますか?

何をしたいかというと、
set colsep ','
spool piyotbl.csv
select * from piyotbl;
spool off
などとして、Sql@PlusからSCVを生成したいのです。
そのとき列間に余計なスペースが入ってほしくありません。

よろしくお願いします。

133:NAME IS NULL
08/12/08 22:49:59
>>132

ここにどうやってSQLを書けばいいか、重要なヒントがあるから読み解け。

URLリンク(www.ne.jp)

134:NAME IS NULL
08/12/09 23:59:19
Oracle10g(10.2.0.3)です。
外部ストレージに、/ORAとして、DB領域を取っています。
内部ストレージに、/home等の領域があります。

内部ストレージのイメージバックアップを、ライフボートで取りました。
その後、DBが稼動し、にドンドン、データが入っていきます。

ある日、内部ストレージが死んだため、HDDを交換して
バックアップイメージからリストアしました。

しかしながら、sqlplusが、ORA-01033エラーを出し、起動しません。
分からないながらにも、調べた結果、
oracleのプログラムがインストールされた領域と、DB領域間で
整合性を取っているらしく、今回のケースでの、
内部ストレージのデータを、復旧させただけでは、
うまく動かないようです。

これ、何か一発でポンと直す方法ありませんか?

135:NAME IS NULL
08/12/10 00:15:17
>>134

Oracleのバイナリーにパッチとか充てない限りは、普通はバイナリーとデータファイルとの
間に細かい整合性とかはないよ?

バイナリが突然見えなくなったみたいだから、細かいゾンビプロセスやらセマフォやら
$ORACLE_HOME/dbs/hc_<SID>.datとか残っちまってんじゃないの?
取り合えずゾンビプロセス全部killして、セマフォを綺麗にして、さらにDBをshutdown abort
してから起動してみたら?
例えインスタンスが起動していなくても、shutdown abortコマンド$ORACLE_HOME/dbs/hc_<SID>.datの
状態とか変わるし?

136:NAME IS NULL
08/12/10 23:00:07 yOj3MU8T
CPU使用率がずっと100%なんですけど、
何が原因なんでしょうか
再起動直後は安定しますがすぐ100%になります。

よろしくおながいします

137:NAME IS NULL
08/12/10 23:06:23
OSは何? どのプロセスが食ってるの?
ずっとってどれくらい? 1日放っておいてもそうなの?
アラートログに何も出てないの?
何も教えてくれないの? バカなの? 日本語書けないの?



138:NAME IS NULL
08/12/10 23:19:27 yOj3MU8T
>>137

失礼しましたコアダンプはいてました。

OS:Linux(debian4.0)
プロセス:xe_d000_XE
バージョン:10.2 XE

アラートログ
Errors in file /usr/lib/oracle/xe/app/oracle/admin/XE/bdump/xe_s000_1003.trc:
ORA-07445: 例外が検出されました: コア・ダンプ [lsfcln2()+55] [SIGSEGV] [Address not mapped to object] [0x444E4154] [] []

です。

139:NAME IS NULL
08/12/10 23:37:15
>>138

OEM関係じゃね?
OEM入っている?

140:NAME IS NULL
08/12/10 23:44:48
>>139

入ってます

141:NAME IS NULL
08/12/10 23:46:16
割り込んですまんが、サポートに聞けば?

142:NAME IS NULL
08/12/10 23:59:04
サポートされていないディストリで動かしてるんだから
自己解決するしかないよ。残念!



143:NAME IS NULL
08/12/11 00:04:50
おかしいな、debファイルだったんだけど
どうも。

144:NAME IS NULL
08/12/11 00:47:52
>>140

この刷れの>>918あたりを試してみ?

Oracle 総合 Session6
スレリンク(db板)l50


145:NAME IS NULL
08/12/11 03:18:55
取り合えず聞くだけ聞いて、そのままというのではなく、問題が直ったのなら、
何らかのフィードバック書いてくれよ。

146:NAME IS NULL
08/12/11 08:21:38
>>143

要求されている Debian 3.1 と 4.0 では違うと思うが。


147:NAME IS NULL
08/12/11 23:50:59
>>145
放置してたら、マシンが唸って
その後安定したので、解決法はひたすら待つことかもしれません。

148:NAME IS NULL
08/12/12 03:00:10
レコード長500B、件数10万件のテーブル(500B*0.1M = 50MB) が最大の表
になるインスタンスの場合、TEMP表は 50MB ぐらいでいいんでしょうか。
一番大きいテーブルをソートするのに使う場合を想定ってことで。

でも、ソートするときOracleはデータ全部ソート対象にする?Raw IDのみの
並べ替えとかではないんでしょうか・・・

149:NAME IS NULL
08/12/12 03:29:10
>>148

流れるSQLは全件検索ばかりなんですか?
普通はまず絞り込んでから、Sortしませんか?
それと流れるSQLは一個だけなんですか?
他にもSort処理は走らないんですか?

150:148
08/12/12 04:04:53
>>149
たしかに、同時に使われる可能性もありますね(;´Д`A
ただ、ソートが絞り込まれた後にかかるかはSQLが今の時点では
わからないため不明です。

RowIDのソートだけなら領域ほとんど使わないと期待してる
んですが、データごとソートしてるんですかね。

151:NAME IS NULL
08/12/13 03:23:17
ソートもブロック単位関係するよな?

152:NAME IS NULL
08/12/13 03:42:47
ROWIDのソート?
普通にインデックス作ればいいと思うのだが。

153:NAME IS NULL
08/12/13 05:43:21
>>150

メモリ沢山積んで、pga_aggregate_targetを多めに取って、あとは
細かくチューニングしていけば?

154:NAME IS NULL
08/12/13 18:30:05
どうしてOracleはLIMITを実装しないんだろうね
意地になってるのかな

155:NAME IS NULL
08/12/14 17:19:34 hLN0PBn0
Windows Server 2003、Oracle10gですが、
表領域のサイズはどのように決定していますか?
見積もり方法などありましたら、教えてください。

156:NAME IS NULL
08/12/14 17:58:48
>>155
積み上げ

157:NAME IS NULL
08/12/14 18:13:36
こんなんとか。

URLリンク(otn.oracle.co.jp)

158:NAME IS NULL
08/12/14 19:40:35
Net Services 管理者ガイド 11g リリース1のPDF版っていつ出るの?

159:155
08/12/14 21:39:48 hLN0PBn0
>>156,157さん
ご返信ありがとうございます。
otnの見積もり、すごく参考になります。

160:NAME IS NULL
08/12/15 15:55:49
oracle9以降を利用してLinuxクロス環境のクライアントを構築したいと考えています。
Instant Clientのソースコード一式はフリーで入手可能でしょうか?


161:NAME IS NULL
08/12/15 15:58:26
ソースコードが要る理由は?
ライブラリとヘッダファイルだけあれば十分じゃないの?

162:NAME IS NULL
08/12/15 16:03:12
>>161
CPUがIntel x86系ではなく組込用ボードのCPUなので、ライブラリ等はすべて
クロスコンパイルしなければ使えません。
普通にDLしてRPMでインストール出来れば楽なんですが。
それでソースが必要なので。

163:NAME IS NULL
08/12/15 16:11:37 Ls3H8s+e
番号  氏名  会社CD:入社日
0001  A太   001:2006/01/01
0001  A太   002:2007/01/01
0002  B子   002:2007/01/01
0002  B子   003:2007/07/01
0002  B子   001:2008/01/01
0003  C彦   002:2008/01/01

こんな感じに並んでいるデータを

番号  氏名 SEQ 会社CD:入社日
0001  A太  1      001:2006/01/01
0001  A太  2      002:2007/01/01
0002  B子  1      002:2007/01/01
0002  B子  2      003:2007/07/01
0002  B子  3      001:2008/01/01
0003  C彦  1      002:2008/01/01

って感じに1行追加してあとでクロス集計を掛ける際に使いたいんだが
どうやったら出来るかな?

164:NAME IS NULL
08/12/15 16:23:41
>>162

なるほど。でも一般には入手不能ですよ。


165:NAME IS NULL
08/12/15 18:36:51
>>164
ググっていたらオープンソースのOracle互換 EnterpriseDBという製品を見つけました。
PostgreSQLベースですが、Oracleへのインターフェースを備えているようなので
これで試してみます。
ありがとう

166:NAME IS NULL
08/12/15 20:37:10
>>163
どこにどんな 1 行を追加したいのかが分からないと話が始まらない

167:NAME IS NULL
08/12/15 22:43:10
rank() で行けるのでは?
あと、さりげなくもすごいデータ内容だと思いました

168:163
08/12/16 09:00:16
まあある意味業務で用いるものだからね
前任者が退職してクエリとか引き継がれずただ業務だけが押し付けられたもんでね

>>166
単純に数値型でいいんで履歴の若い順に1,2,3…って数字つけたいだけなんだ
場所は頭でもいいし最後でもいいんでとりあえずナンバリングするだけ
そうすればあとでクロス集計クエリ作るときにそいつを列にするだけでいいんで
…テーブルに出してからなんかしているんかなぁ

169:NAME IS NULL
08/12/16 11:24:53
パーティションバイなんだぜ

170:NAME IS NULL
08/12/16 21:14:16
>>168
行じゃなくて列な。
row_numberでググれ

171:NAME IS NULL
08/12/16 21:50:49
なんだ、列なのか
ならできるだろうに

172:NAME IS NULL
08/12/17 19:52:19
SELECT C1,CASE C2 WHEN 1 THEN "AAA" WHEN 2 THEN "BBB" ELSE "CCC" END,SUM( C3 )
FROM T1
GROUP BY C1,CASE C2 WHEN 1 THEN "AAA" WHEN 2 THEN "BBB" ELSE "CCC" END

これCASE文 2つ同じの書かないと駄目なんでしょうか?


173:NAME IS NULL
08/12/17 22:05:26
副問合せを使わないのであればそうだろう

174:NAME IS NULL
08/12/18 00:30:04
WebLogicとOC4Jって今度どういう関係になっていくんだろ?
今、OC4Jの乗っかってるOracleApplicationServer使ってるんだけど、
これはそのままOracle WebLogicServerに載せ替えられるんだよね?
JavaEEみたいな環境依存バリバリのプラットフォームを移行するのも
甚だ怖くはあるけど。。。

175:NAME IS NULL
08/12/19 18:06:44
携帯から失礼します。

TableAとTableBの情報を参照するビューを作ろうとしています。
PKはそれぞれTableA.col1とTableB.col1,col2になっていて、TableA.col1でTableB.col1に当てるとTableBからはn件取れる形になっています。
ビューの定義はTableA.col1と、TableA.col1でTableBに当てた結果が0件の場合に'0'を、n件の場合は件数を設定したいのですが、
decode文の中で「select count(*) from TableB where TableB.col1=TableA.col1」の件数を評価する方法は無いのでしょうか?
なお、Oracle10gを使用しています。

176:NAME IS NULL
08/12/19 18:40:29
未検証。
select
  col1, nvl(B.comp, 0)
from TableA A
left join (
  select col1, count(*) as comp from TableB group by col1
      -- comp: col1 毎の件数
) B on (B.col1 = A.col1);

177:NAME IS NULL
08/12/19 22:19:26
OracleMasterのBronzeとSilverとでは何が違うのでしょうか
Silverの範囲にBronzeの範囲は含まれるのでしょうか
お願いします

178:NAME IS NULL
08/12/19 22:24:03
>>177

もちろん範囲は違う。包含しているものではないからね。
何が違うかは試験範囲を見ればわかる。

URLリンク(www.oracle.com)

179:NAME IS NULL
08/12/19 22:25:27
>>178
ありがとうございますm(_ _)m

180:NAME IS NULL
08/12/22 03:21:40
10gXEをwinServer2k3に入れたんですが、Solaris10用のクライアントって無い
んでしょうか?winとlinuxだけ?

web鯖とかSolarisで動いてるんで、なんとかSolarisから叩きたいんですが。

181:NAME IS NULL
08/12/22 07:42:40
あるじゃん?

URLリンク(www.oracle.com)

182:NAME IS NULL
08/12/22 11:23:28
それって評価版ちゃうの?

183:NAME IS NULL
08/12/22 11:44:42
クライアントならあるでしょ。
URLリンク(www.oracle.com)

184:NAME IS NULL
08/12/22 23:23:49 p8qevsH7
Windows Server 2003、Oracle 10g EE です。
RMANで、バックアップファイル名を、FB_20081222.BKPなどのように
したいのですが、
どのようなコマンドを打てばよいでしょうか?
どなたかご教授いただければ幸いです。

185:NAME IS NULL
08/12/22 23:38:48
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'FB_%Y%M%D.BKP';
とかかな。


186:NAME IS NULL
08/12/23 00:01:41 BBlYK1lJ
>>185
ありがとうございます。
日付がファイル名に入りました。ほっとしました。

187:NAME IS NULL
08/12/23 10:54:18
10.2.0.4をあるシステムで使っていて
要らないテーブルを削除する役割を承った

ダメだ
テーブル名にスペースがある時にドロップが出来ない

やり方を知ってる人がいたら教えて欲しいです。
作成したのは先人す

188:NAME IS NULL
08/12/23 11:25:57
EMから消すというのは。

189:NAME IS NULL
08/12/23 11:45:29
ダブルクォーテーションで括ればどうよ

というか実行環境書こうぜ?SQL*Plusでいいのか?

190:NAME IS NULL
08/12/23 12:19:32
テーブル名にスペースって付けられるのか。
aaaって名前のテーブルと
aaa bbbって名前のテーブルがあったとき
select * from aaa bbbってやったらどうなるんだろう。

191:NAME IS NULL
08/12/23 13:34:39
>>190
ダブルクォーテーションでくくれば、いけんじゃね?

テーブルaaa bbbをフィッチ
select * from "aaa bbb"

テーブルaaaとテーブルbbbをフィッチ
select * from aaa bbb

試してないから、嘘っぱちかもだけど...


192:NAME IS NULL
08/12/23 15:21:34
XEで試したらそれで行けたよ
この業界では基本テクだろうけどね

念のため言っておくと character sensitive だ

193:192
08/12/23 15:24:14
>"aaa bbb"
自分がやったのはこれだけね
他は知らん

194:192
08/12/23 15:25:13
自分が試したのは
>"aaa bbb"
これだけね
他は知らん

195:190
08/12/23 15:30:53
やー、サンクス。
ていうか別に>>190みたいな状況の解決方法を知りたかったわけじゃなくて…
まあいいか。

196:NAME IS NULL
08/12/23 15:59:26
187で質問した者だが

数々の解答感謝

だが、ダブルクォートで囲むのはやった後だったんだ

作業してたのはLINUXのPLUなんだが
いっこうにそんなテーブル無い、頭おかしいの?死ぬの?(脳内変換)というエラーに悩まされ


後輩君に頼んだら一発で消しやがった

しかもCSEというツール使って

後輩ツエーと思ったが

ツールを覗いておかげでわかったんだ

テーブル名にスペースと制御文字が含まれているということを

WindowsのCSEでは見えるんだが
直接、叩いてた俺には見えなかったというわけで
スペースが入ってるだけと思わされたわけだ

こんなテーブルどうやって作ったんだ先人は


みんな、貴重な意見ありがとな
この寒い中、暖房効き過ぎな部屋にいる俺の骨身に染みたわ

197:NAME IS NULL
08/12/25 00:20:08
「ORA-01009 必須パラメータがありません」ってでます。

ぐぐったらまったく同じ状況の人の質問があったんで載せます。
この人はどう解決したのか不明です。

過去に同じエラー出たって人いませんか?
ぜひ解決方法をお願いします。

------------------------------------------------------------
「j2sdk1.4.2.03+tomcat4.1.24+oracle9iの環境で構築しております。
JDBCでデータソースを使っています。

ORACLE SQLPlusで通るSQL文がjavaのプログラムを通して呼び出すと

ORA-01009: 必須パラメータがありません。
というエラーがtomcatのlogに吐き出されます。

Statement stmt= conn.createStatement();
ResultSet rset = stmt.executeQuery(sql);←ここは通ります。
if(rset.next()) ←ここでデバッカーが止まる

という状態になってしまいます。

またPreparedStatementでResultSetを取得しても
同じ状況になってしまいます。(この場合はtomcatのlogにnullとだけ吐き出される)

また全部のSQLがおかしいわけではなく、
あるテーブルを使うとこのエラーが起きてしまいます。

原因がまったくわからず困っています。

どうかご教授お願いします。 」

198:NAME IS NULL
08/12/25 13:43:23 a4IRyWzY
Windows Vista Enterprise 64bit sp1 に
Oracle 10g Client x64 を
インストールしたいのですが
開始してすぐに

内部エラーが発生しました。"不明" "不明" "不明"

のように異常終了します。
どうしてでしょうか?

199:NAME IS NULL
08/12/25 21:12:38
>>197
全角スペース使ってない?

200:NAME IS NULL
08/12/25 23:11:13
>>197
どんなSQLを発行しているかによる。

>>198
クライアントつってもイロイロあるわけで。
何を開始したのかも分らないわけで。

201:197
08/12/25 23:47:37 lOTqMAhd
>>199
全角スペースつかってないはず・・・
一応確認する

>>200
select文
select * from TABLENAME 
where COLUMNNAME like ~


あるテーブルまでくるとエラーが発生するんだよなぁ・・・



202:NAME IS NULL
08/12/26 00:12:19
>>201
executeQuery に入れているSQL文を正確に出さないと意味無い。
JDBCの不具合の可能性もあるので thin なら OCI を試すとか、
結局はサポート情報で出せない情報かもしれない。

>あるテーブルまでくるとエラーが発生するんだよなぁ・・・
TABLENAME部を動的に作ってる?
単純なコードでも発生する問題?

まずは切り分け作業が重要なきがする。

203:197
08/12/26 00:42:32
>>202
レスありがとう。
TABLENAME部分を置換して
複数のテーブルに対して同じ内容の
SQLを発行している箇所です。
置換することなくテーブル名を埋めた状態で実行すると成功した・・・

うーん・・・

204:NAME IS NULL
08/12/26 01:00:22
エラーになるテーブルの時のsql文の文字列はどうなってるの。
なんか空になってるとか

205:NAME IS NULL
08/12/27 09:56:43
エラーになるテーブルが特定できているなら、
ひとまず、そのテーブルの場合だけ、置換処理を経由せずに
ハードコーディングした処理にするのはどう?

if (tbl =="HOGE") {
ハードコーディングしたSQLを実行
} else {
従来の処理(置換処理あり)
}

これで通るなら、置換処理に何らかのミスがあるのでは。


206:NAME IS NULL
08/12/30 16:17:39 OXA5FuFu
VMware ESXiで、RACを構成して動かしたってう強者いるかな?

207:NAME IS NULL
08/12/30 20:21:26
それはただの変人のすること。
意味のないことをしないのが強者。


208:NAME IS NULL
08/12/31 04:49:56
>>206

普通のVMWareだったらあるよ。
11g RAC組んで遊んだ。

209:NAME IS NULL
09/01/01 20:05:07
今後はサーバの仮想化は当たり前になるはずだから
VMWareによるRAC構築も普通になると思われる。
実際OracleVMもRACサポートを売りにしてるわけだし。

>>208
そういえば、オラクルの「VMWareお手軽RAC構築」って
見たような気がする。興味あるけど難しそうだ。
VMWareとRAC両方の知識が要るからね。


210:NAME IS NULL
09/01/02 01:47:29
デットロックに関して質問です。

UPDATE時にWHERE句を指定せずに複数件一括で更新した時に
別のトランザクションでWHERE句を指定して一件一件更新していった場合にデットロックが
かかる可能性はありますか?
一括で更新した場合は更新対象のレコードは同時にロックを取得しているのでしょうか?

211:NAME IS NULL
09/01/02 02:08:18
>デットロック
>デットロック
>デットロック
>デットロック


212:NAME IS NULL
09/01/02 05:05:52
>>210

それの何処がデットロックになってるんだよ?
デットロックというのは、お互いが相手のコミットが実行されなければ
それ以上先に進めない状態の事だぞ?




213:NAME IS NULL
09/01/02 05:07:20
>>209

VMWareの知識は大していらないよ。
ちょっと知識がいるとしたら共有ディスクを作成する所ぐらい。
それもググレば直ぐに出てくるしね。
後は普通のO/Sインストール作業とそんなに変わらない。

214:NAME IS NULL
09/01/02 17:04:52
>ちょっと知識がいるとしたら共有ディスクを作成する所ぐらい。

VMware ESXiでは、disk.locking = "false"が無視されてしまうから
同時に複数のノードを動かせないんだよね。
どうしたら解決できるか知ってる人いないかな?
検索しても見つけられなかった。


215:NAME IS NULL
09/01/03 01:51:26
>>214

それだったら3台目のESXiを作って、そいつ上にiSCSIを構成すればいい。
つまり3台目は共有ディスク管理専門鯖という事ね。




216:NAME IS NULL
09/01/03 01:53:08
iSCSIを使ったRACの構成方法ね。

URLリンク(www.oracle.com)

217:NAME IS NULL
09/01/03 02:38:13
読まずに適当なこというけど、iSCSIだとクラスタ対応FSがいるよね?
その場合、iSCSI+CFSとNFSで比較するとどっちがいいんだろうね。


218:NAME IS NULL
09/01/03 05:17:50
>>217

RACなんだから、別にCFSだけには限定されないぞ?
実際に>>216だって、iSCSI使って、ASMで構成している例だし?
勿論Linuxだったら、iSCSI+OCFSという選択肢もありだろう。
問題になっているのは、どうやって共有デバイスをRACをインストールする
ノードから見せるかだろ?

219:NAME IS NULL
09/01/03 11:27:23
NFSは簡単だけど、キャッシュをオフにしないと駄目だから、遅くて使えないよ。

おすすめは、iSCSI+OCFS2またはiSCSI+ASMだね。


220:NAME IS NULL
09/01/03 12:49:34
ああそうか、rawとかASMっていう手があったな。
普通なら扱いにくいrawも、iSCSIならtarget側でのバックアップが楽だからいいね。

221:NAME IS NULL
09/01/03 18:44:30 Sh+0ao+6
エンタープライズでも
RACの共有ディスクにiSCSIを使ってるとこある?
おすすめのiSCSI製品あったら教えて


222:NAME IS NULL
09/01/04 14:25:52
エンタープライズ系だと商用が普通だかららなぁ。
ウチも鯖はLinuxでもストレージはEMCだよ。


223:NAME IS NULL
09/01/04 18:00:45 Ol//lS5T
>>210

デッドロックが発生する可能性はあります。

where句なしで複数件一括で更新した時の更新順序はテーブルのEXTENT ID,ROWIDの順
だったはず(記憶があいまい)なので、レコードロックもその順序で獲得しています。

よって、別のトランザクションで同時に複数行一括更新と異なる順番でレコードの更新を
行った場合には、デッドロックが発生する可能性があります。

例として、以下でセッション1を実行直後にセッション2を実行すると片方のセッションで
デッドロックが検出されます。

--準備

create table test_deadlock
(a number primary key, b char(100))
/

begin
for i in 1..10000 loop
insert into test_deadlock values(i,i);
end loop;
commit;
end;
/


--セッション1で以下を実行

begin
for c1 in
(select a,b from test_deadlock order by a desc)
loop
update test_deadlock set b = 'B' where a = c1.a;
end loop
commit;
end;
/

--セッション2で以下を実行

update test_deadlock set b = 'A';



224:NAME IS NULL
09/01/04 18:48:44
↑最後のやつがどうしてもドクオにしか見えんw


225:NAME IS NULL
09/01/04 19:29:08
>>224

確かにそう見えるねw


226:NAME IS NULL
09/01/04 19:36:31
これはデッドロックにはならずに、単にどっちかのトランザクションが
failしておしまいじゃね?

227:NAME IS NULL
09/01/04 19:56:47
'A'

228:210
09/01/05 01:35:11
>>223
ありがとうございます、
もうひとつ質問させてください。

この場合デットロックを回避する方法としては
セッション1とセッション2を両方とも一括更新にすれば回避できるのでしょうか?
それとも、更新順序のルールを決め1件1件更新していく方法しかないのでしょうか?



229:NAME IS NULL
09/01/05 08:07:15
>>223

それ、本当にデッドロックか?
デットロックだと、ORA-00060が発生して、5分間は両方のトランザクションが止まるんだぞ?

230:NAME IS NULL
09/01/05 23:25:01
そもそもデッドロックが「片方で」起きることはないよな。

231:NAME IS NULL
09/01/06 01:06:14
oracleってデットロックを感知してエラーをすぐ返すんじゃなかったけ?

232:NAME IS NULL
09/01/06 02:03:38
>>231

デフォルトで検知まで5分間を要する。

233:NAME IS NULL
09/01/06 07:29:40
>>232
かかんねえよ
やってみたら一瞬で検知したぞ?

234:NAME IS NULL
09/01/06 17:44:35
SEからEEへのデータの移行で質問があります。

移行元:OracleSE 10.2.0.3(ASM使用)
インストール先:/opt
SID:XXA
port:20000
service_name:XXA
disk group name:+XXAD

移行先:OracleEE 10.2.0.3(ASM使用)
インストール先:/opt2
SID:XXB
port:30000
service_name:XXB
disk group name:+XXBD

サーバはSolaris10-64bit。同じサーバでSE/EEを稼動させています。
EEで使うASMのinstanceはSEで使用しているASMにdisk group追加。
listener.oraはLISTENERしかないんでSEからコピペしてhostとportを変更。

とりあえずuser作成してテーブル作ってdropまで確認。

んで、これからが本題なんですが、SEからEEへデータベースの移行をしたいと思っています。
expdpをsystemで入ってFULL=Yで取って、impdpで戻すことで移行は可能でしょうか。

それともschemas指定で戻す、無理、もっと良い方法がある……等ありますでしょうか。

235:234
09/01/06 17:56:50
書き忘れ

【user:oracle】 で 【oracleSE】
【user:oracleEE】 で 【oracleEE】

をそれぞれインストールしています。

236:NAME IS NULL
09/01/07 00:35:01
データパンプでも移行出来るだうろし、RMAN使えるのならRMAN Duplicationという手もある。
もしくはデータファイルをそのままコピって来てEE側でコントロールファイルの再作成という
方法もあるだろう。

237:223
09/01/07 01:56:28 FkfkhGDT
>>228

同一テーブルに一括更新を2つのセッションから同時に実行して、デッドロックが
発生したという話は聞いたことがないし、自分でテストをしても発生しなかったので
大丈夫だとは思いますが、100%の自信はありません。


238:234
09/01/07 10:11:58
>>236
ありがとうございます。

ただRMAN Duplicationは、
> 複製データベースは、ターゲット・データベースと同一にするか、またはターゲット・データベース内の表領域のサブセットのみで構成
とあるので無理かと思います。
別々のホストであれば同一にしたのですが。

あと情報小出しで申し訳ないです。
ASMに登録してるのは異なるサイズのRawDeviceでして残念ながらコピーは……ddで、ってことではないですよね。

FULL戻しした場合、どこかのテーブルにSE/EE区別やらSID等の情報を持ってたら面倒だなぁと思いまして悩んでいました。

239:NAME IS NULL
09/01/07 11:06:33
>>238

RMAN Duplicationが使えないという意味が分からん。
ソースDBとターゲットDBが同一ホスト内に存在する場合でも使えるし、別々の
ホスト上にそれぞれが存在しても使える。

「複製データベースは、ターゲット・データベースと同一にするか、またはターゲット・
データベース内の表領域のサブセットのみで構成」という意味は、例えばソースDB上に
A、B、Cという表領域が存在する場合、ターゲットデータベース上にはA、B、Cと
コピーしても良いし、A、Cだけコピーしても良いという意味だぞ?

ASMの場合にはRMANが使えないとかなり不便だぞ。
それこそRMANさえあれば、ASM上のデータベースファイルをファイルシステム上に
変換かけたりとかもできるしな。

240:234
09/01/07 14:44:37
>>239
そうなんですか?
RMANはRecovery Managerなんだから移行に使えないと思うんですが……

>ソースDBとターゲットDBが同一ホスト内に存在する場合でも使えるし、別々のホスト上にそれぞれが存在しても使える。
これはDBIDが異なっても出来るんですか?
Duplicationの項をもう一度読み直してみますが、少なくともRMANで、

configure controlfile atobackup on;
backup database plus archivelog;

で作成したバックアップは異なるDBIDでは戻せません。

set dbid=

でDBIDを偽装してもrestoreは成功してもrecover時に失敗します。

【同一DBID】であれば出来ることは承知しています。
ただ今回は【異なるDBID】でRMANが使えるの?なんです。

再度マニュアルを確認します。
何度もすいません。

241:NAME IS NULL
09/01/07 22:47:34
>>240 239 じゃないけど
URLリンク(otndnld.oracle.co.jp)

理屈では可能なのは知ってるけど、利用経験は無いので時間的な制約が
あるなら Exp/Imp で。スキーマ数が少ないならスキーマ単位で移すかな。
スキーマもテーブルも少ないなら DB-Link 使うかも。

242:NAME IS NULL
09/01/07 23:23:55
>>240

RMAN Duplicationは文字通りクローニングDBを作成するためのものだ。
ソースDBのバックアップをRMANで取得して、そのバックアップセットを
利用してターゲットDBを作成する。
作成時にはソースDBとnomount状態のターゲットDBに同時に接続して、
あとはRMANが指定した時間まで勝手にリカバリかけてくれる。
つまりソースDBをダウンさせる事なくクローニング環境を作成できる。

他にRMANを使うメリットはデータベースが配置されるデバイスに影響され
ない事。
RAW=>ファイルシステム、ASM=>ファイルシステム、ASM=>ASMにも
出来るし、RAC=>シングルインスタンスなんかへも自動で出来る。

243:NAME IS NULL
09/01/07 23:42:57
>>242

ちなみに指定した時間までリカバリかける場合には、RMANで取得した
ソースDBのバックアップセットに、その指定時間以降までのアーカイブログが
含まれているいる必要があるからね。
つまり「set until time "to_date('Jan 06 2008 07:00:00','Mon DD YYYY HH24:MI:SS')";」
と指定した場合には、ソースで取ったバックアップセットにJan 06 2008 07:00:00以降
までのアーカブログが含まれている必要がある。

244:NAME IS NULL
09/01/09 20:59:42 Q8QuRN46
oo4oって何と読むのでしょうか?


245:NAME IS NULL
09/01/09 23:43:42
>>244
ooとoの間に4つoが入ってる

246:NAME IS NULL
09/01/09 23:43:51
o∀o

247:NAME IS NULL
09/01/10 00:47:19
>>244
おーおーふぉーおー

248:NAME IS NULL
09/01/10 01:23:52
略さず読んでる

249:NAME IS NULL
09/01/10 14:21:41
o¥o

250:NAME IS NULL
09/01/11 16:43:12
んー、2ちゃんねるって馬鹿にできないね。
有益な情報もたくさんある。


251:NAME IS NULL
09/01/11 17:55:37
まあ犯罪がらみとかでしか報道されることは無いけどな

252:NAME IS NULL
09/01/12 12:42:09 UYTJKBsr
SGA_TARGETとSGA_MAX_SIZEの違いってなんでしょうか?

253:NAME IS NULL
09/01/12 12:44:30
>>252

オラクルは、そんなこと言ってたらキリないよ。

254:NAME IS NULL
09/01/12 14:07:00
型の種類の RAW って何の略称でしょうか?
LOBは Large OBject の略称であることは検索したら分かりましたが、
RAW については説明を見つけきれませんでした。
気になって、気になって……。

255:NAME IS NULL
09/01/12 15:25:51
Record Access Write

256:NAME IS NULL
09/01/12 15:37:24
>>255
レスありがとうございます。
せっかく教えてもらったのに疑って申し訳ないのですが、
Google でそれを検索してもヒットがありません。

URLリンク(www.google.com)"Record Access Write"

よければソース(公式リファレンスなど)もお教えください。
本当にワガママですみません。

257:NAME IS NULL
09/01/12 16:15:25
>>256

RAWは略語ではなく、「生の」とか「未加工の」という意味の単語。
RAW型はバイナリデータをそのまま入れておくデータ型なので、そういう名称に
成っていると思われる。



258:256
09/01/12 16:22:19
>>257
レスありがとうございます。
RAW は Oracle 独自の型名ではなく、
デジカメで撮影した画像の未加工データの「RAWデータ」と
同じ意味合いなのですね。
すっきりしました。ありがとうございます。

259:NAME IS NULL
09/01/12 18:28:15
ソースをくれとか言ってる割に、「と思われる」という回答は信用するのね。

確かにその回答は正しいんだけど、そういう姿勢では底が知れるな。


260:NAME IS NULL
09/01/13 01:29:12
>>252
実用的な使い方かは別として。

SGA_MAX_SIZEを1GB、SGA_TARGETを512MBで運用開始。
適当に V$SGA_TARGET_ADVICE を見て、必要なら「動的に」
SGAを増やす。

という事が可能。
SGA_MAX_SIZE未設定(=SGA_TARGETと同値)だと、動的に
減らすことは可能でも増やすことができない。

261:NAME IS NULL
09/01/13 07:31:57
>>260

補足するとしたら、SGA_MAX_SIZEを指定した場合、その値まで
メモリをリザーブしてしまう。
つまりO/S側から見たらSGA_MAX_SIZEで指定したメモリサイズ分
インスタンス起動時に取られているから、はっきり言って実用的
ではない。


262:NAME IS NULL
09/01/13 10:53:11
>>261
特に異論はないんだけど、実際に動きを見ていると
IPCの確保は SGA_MAX_SIZE だけで、メモリの確保
は SGA_TARGET までに見えるんだよね。

OSの仕組みとか詳しくないんで、勝手な想像で、
予約だけして未確保の領域を作れると思ってる。

263:NAME IS NULL
09/01/13 16:00:48
歴史を見るとわかり易い、SGA_MAX_SIZEはOracle9iで追加されたインスタンスの起動時に
SGA内のデータベースバッファキャッシュなどの各コンポーネントをインスタンスを停止する事なく
変更するための動的SGAのために追加されたパラメータで、そのSGAの上限を指定。

動的SGAを更に進めて、SGA_TARGETはOracle10gで追加された、OracleがSGA内の各コンポーネントのサイズを自動でチューニング
する自動SGAのために追加されたパラメータで、そのSGAの上限を指定。

まぁ、これらのパラメータ同士は関連があるんだが、自動SGAを使う(SGA_TARGETを使う)場合、自動で動的SGA使用
するので、SGA_TARGETをSGA_MAX_SIZEより大きい値に設定すると、それに応じて、SGA_TARGETが調整され増加されるので、
特に設定する必要はない。自動SGAを使わない(SGA_TARGETを0)が、9iで追加された動的SGAを使う場合は、
SGA_MAX_SIZEにその最大値を設定。更に、・・


264:NAME IS NULL
09/01/17 18:30:02
1ヵ月分の差分バックアップからの戻しで死ねました....
戻すのに5日かかったよ ママン


265:NAME IS NULL
09/01/17 20:28:18
>>264


266:NAME IS NULL
09/01/18 17:20:13 D5SMNAz7
現在Oracle9iでWebシステムをクライアントに提供しているんだけど、
レスポンスが遅い!とクレームが来ます。
SIerに問い合わせても10gにすれば解決する。と言うのですが、
Oracle9iを10gにバージョンアップするだけで、レスポンスは
向上するものなのでしょうか?
どなたかご教授いただければ幸いです。

267:NAME IS NULL
09/01/18 17:52:49
しない。
おそらく、そのWebシステムの作りが悪いから、DB変えようがNW変えようがHW変えようが大してパフォーマンスは変わらない。


268:NAME IS NULL
09/01/18 17:59:36
どういう理屈でどの程度解決するのかSIに聞けよ
そもそも何のレスポンスが悪いのか書いてない時点で答え貰う気がないように見える

269:NAME IS NULL
09/01/18 19:19:06 D5SMNAz7
>>268
すみません。
Oracleを再起動すると、データ更新が数秒で行えますが、
数日たつと、データ更新に10分くらいかかります。

システムを開発したベンダーは、10gにすれば解決すると言うのです。
32bit Windows Server 2003で、SGAは2GBしか使用できません。
boot.iniファイルをいじくって、3GBまで増やすと効果ありますでしょうか?

270:NAME IS NULL
09/01/18 20:00:01
commit してないトランザクションが残ってるとか?


271:NAME IS NULL
09/01/18 21:05:14
>>269
とりあえずなんで解決すると言い切ってるのかベンダに聞いとけ。
メモリリークとかのbugなのかも知れんし。
根拠なかったらキレてやっていい。

272:sage
09/01/18 22:31:58 s/0DH11a
根拠ないに一票。

273:NAME IS NULL
09/01/18 22:48:17
コストベースやルールベースの話されちゃう気がするなぁ

もしくは>>269みたいな話がでてるってことはプロセスがメモリ使い切ったって説明でもされたのかもしれないが
それだったら10gで解決するっていう根拠が推測できない
しかも、メモリの使用状況を確認するのが先決だろう
SI側も「プロセス空間2G使い切りました。だから/3GBオプション使いましょう」
って回答出しても「3Gなら解決すんの?根拠は?」って返されるのがオチだから
うやむやにしてるんじゃないの
メモリの事なら事象が再現しないと本当の事はわからないだろうなぁ
っていうか再現しても運がよくないとわからんだろう

274:NAME IS NULL
09/01/18 23:06:18
いいなぁ。そういうの。いいなぁ。SIer苛めるカッコウのネタじゃん。


275:NAME IS NULL
09/01/19 00:17:28
オチとしては調査するのに必要な情報の取り方をまとめて事象再現待ちだろうな
3Gオプション入れるには根拠弱いだろ
3Gにした事で他アプリに影響でないか検証しなきゃならんし実質不可能

276:266,269
09/01/19 20:45:52 GgIO1862
9iを10gにすることのメリットってあるのでしょうか?
特にパフォーマンス面でありますでしょうか?

277:NAME IS NULL
09/01/20 00:26:40
今ならせっかくだから11gに移行すれば良いのに。
RBO->CBOに変わってるし、色々便利なところも増えてるから、
特に理由がなければ移行した方が良いよ。


278:NAME IS NULL
09/01/20 03:04:27
>>276

RAC関係の機能は強化されているが、OLTP系の個々のパフォーマンスに
関してはそんなに目を見張る強化とかは無いよ。
ただ10gも大分落ち着いてきているし、9iのライフサイクルを考えたら、今の
内に上げておくのもいいとは思う。
でもどうせなら>>277が言っている様に、今の内に11gに移行出来るのなら
そうしておいた方が良い。


279:NAME IS NULL
09/01/23 05:07:58
12gからはRaw Deviceは非サポートだってよ。
OCRやVoting DiskもASM上かCFSに置く事になるみたい。

280:NAME IS NULL
09/01/23 19:56:34
>>279
あれ?11gからOCRとか共有ファイルシステムにも作れるようになってなかったっけ?

281:280
09/01/23 19:58:32
>>279
ああ、すまん。ちゃんとCFSって書いてあった。

282:NAME IS NULL
09/01/25 04:14:48
DDLトリガーでのDDL発行って出来ないのか
こないだDDLトリガーでDBMS_SQLつかってCREATE TABLEしてみたけどエラー発生して出来なかったけど、、、

そもそもDDLトリガーってDDLのLoggingくらいにしか使わないもの?

283:NAME IS NULL
09/01/25 19:19:34
なんかOTNに登録しようとしたら

Email address contains invalid domain name.

ってメッセージがどんなメールアドレスいれてもでるんだが・・・どういうことなの

284:NAME IS NULL
09/01/26 21:56:54
tnsnames.oraに入っている「INST1_HTTP」ってなんですか?


285:NAME IS NULL
09/01/28 04:38:52
>>282

('A`)つ AUTONOMOUS_TRANSACTION

286:NAME IS NULL
09/01/29 01:13:43
>>282

具体的にどういったトリガーを作成しようとしたんよ?

287:NAME IS NULL
09/01/30 18:38:58
11g(SE/Win版)って何も考えずにそのままインストールすると
初期状態でどのくらいメモリ喰うの?

288:NAME IS NULL
09/01/30 18:46:44
>>287
はじめから64bit版Windowsを考慮したほうがましなくらい

289:NAME IS NULL
09/01/31 00:20:40
Windows版10gをWindows2003にデフォルトでインストールしました。
SQL*PLUSの実行結果として表示されたORAのエラーメッセージが文字化けします。
エラーメッセージを正しく表示させるにはどうすればよいでしょうか?
また、Oracleに設定する文字コードは何を設定するのが正しいでしょうか?

290:NAME IS NULL
09/01/31 00:25:16
set NLS_LANG=American_America.JA16SJISとか?
11gでは高速化したっつーけど、また重くなったよな。
速い!=軽い
重い<>遅い、では無いのか。

291:NAME IS NULL
09/01/31 01:12:12
>>288
('A`)

292:NAME IS NULL
09/01/31 01:41:04
レスありがとうです

>>285
自立トランザクションで解決出来る問題でも無いような、、、、
まちがってたらごめん

>>286
具体的には開発段階なのでテーブル作成したら、作成したテーブルの履歴テーブルが出来て、さらに作成したテーブルへ変更履歴を書き出す処理をしたかったんだけども
つまりDDL実行時に
・履歴テーブルのCreate
・履歴テーブルへの書き込みトリガー作成
をしたかった

履歴テーブルのCreate時にはこのDDLトリガーは走ってほしくないのでテーブル名での非対象リストを作ってたんだけど



ちょっとDDLトリガーに夢をみてしまったので実際のところ
みんなDDLトリガーって何につかってるのかなと聞いてみたかったのです

293:NAME IS NULL
09/01/31 15:47:52
>>290
そんなの当たり前。
Oracleが使えるリソースを目一杯使って高速化すれば、全体として重くなることもあるわな。


294:NAME IS NULL
09/02/01 09:01:34 OWf5p2Ai
上司がノートPCに入っているOracle10gから
顧客用dmpファイルを、顧客のOracle9iにインポートしていました。
10gから9iへのデータ保障ってされてないですよね?
みなさんなら、このようなことされますか?

295:NAME IS NULL
09/02/01 12:19:06
それが危険な操作であったらOracleがエラーか警告を出すはずである。
その上司が警告を無視していない限り、何かあったら悪いのはOracle。
その程度に考えてないとこの業界やってられないぞっと。

296:NAME IS NULL
09/02/01 12:43:28
>>290
重くなってても速くなっていれば、まだいい。
Vistaなんか・・・。

297:NAME IS NULL
09/02/01 13:45:26
>>294
10gでExport
9iでImport
するにしてもOracleClientのVerが同じなら(EXP,IMPのVer)
特に問題なく業務で使ってた

データ保障はわからないですが

298:NAME IS NULL
09/02/01 20:06:42
やっぱりASMを使ってるとこ多いのかな?
個人的には、OCFSが簡単で好きなんだけど。

299:NAME IS NULL
09/02/02 01:19:09
9.2.0.6でエクスポートしたdmpを9.2.0.8にインポート
しようとしたら出来なくて泣いた記憶ならある…

300:NAME IS NULL
09/02/03 05:13:43
大事なデータを扱うときは最低限OiSCくらい見てからにしようぜ!

301:NAME IS NULL
09/02/05 22:53:38
くだ質がないのでこちらで質問させて下さい。

クライアントについての質問です。
今まではローカルのWindowsマシンのOracle10gに対してcseで接続していました。
今度はリモートのSolaris上Oracle10gに接続することになりました。
Oracleはcseでリモートに繋ぐ設定がないので途方にくれています。
発行したSELECTの結果をグラフィカルに表示してくれる程度でいいのですが、
無料のクライアントはないでしょうか。

302:NAME IS NULL
09/02/05 23:29:53
無料のは Oracle が配布している Instant Client があるよ。


303:NAME IS NULL
09/02/06 00:08:29
>>301
ローカルにOracle入ってるなら tnsnames.oraで 接続情報書けば
CSEでも繋げるよ

ただ、CSEって8iくらいまでしか対応して無くて
集計関数使ったときにうまく動いてくれなかった覚えが、、、

304:NAME IS NULL
09/02/06 00:36:56
Oracle謹製のSQL Developerはどうよ?
ちょっと重いけど機能は折り紙付きですよ。
他にはJava製のAqua DataStudioとか?

305:NAME IS NULL
09/02/06 01:27:29
>>303
標準偏差が駄目だった希ガス
あとはだいたい動く

306:NAME IS NULL
09/02/06 02:09:01
PLSQL Developerが無いと何も出来ない、何もやる気がおきない体になった。

307:NAME IS NULL
09/02/06 04:03:43 GlPU0aHo
OS: サーバがSoralis、接続するクライアントはWindows XP
バージョン: Oracle 10g

Oracle 10gでユーザが所有するテーブルの一覧を取得する場合、
どちらが望ましいのでしょうか?

① SELECT * FROM USER_TABLES;
② SELECT * FROM TAB;

②のデメリットって

 ・ TABLEだけでなくSYNONYMもヒットする
 ・ 得られる情報が①より少ない

が挙げられると思うので、ふだんは①を使ってるんですが、
もしかしてUSER_TABLESとTABって全然用途が別なのでしょうか?

308:301
09/02/07 02:39:12
SQL Developerがよかったので使っていくことにします。
アドバイスありがとうございました

309:NAME IS NULL
09/02/07 17:24:38
>>307
TAB は古いバージョンとの互換性のために残されている。
今は USER_TABLES (シノニム:TABS) で OK。

310:NAME IS NULL
09/02/08 03:01:19
Oracleって速いけどメンテナンスすごくしにくいな。
MySQLとはえらい違いだ

311:NAME IS NULL
09/02/08 09:42:10
その分高価だからな

312:NAME IS NULL
09/02/08 09:51:30
Oracleは専用のDBAがつくのが当然だからな
PGや開発系SEが片手間にさわるMySQLとは
プロジェクトの中の位置づけが違うぜ

313:NAME IS NULL
09/02/08 10:04:53 6340660i
専属DBAが必要なんでコスト的に割が合わなくなって、最近はPostgreSQLやMySQLに
シェアを食われている汎用機型巨大データベースのスレはここですか?

314:NAME IS NULL
09/02/08 10:23:06
おっと、AC○Sの悪口はそこまでだ!!

315:NAME IS NULL
09/02/08 10:23:17
>>310
面倒だというならわかるが、しにくいってのは?
無停止でメンテできる範囲はOracleが一番だと思うけど。

316:NAME IS NULL
09/02/08 15:20:28
かなり初心者なんですが
Oracle11gのDBに、クライアントからエクセルを使い
ODBC経由で接続を考えています。

ただ、クライアント側のORACLEが9iとか古いverで
ODBCドライバー自体のversionが古く、接続できるか確証がもてません。
サーバ側の11g環境はまだまだできそうになく、検証できない状態なんですが
そもそもODBCドライバって無料?
あとどのversionがどのDBと繋げられる対応表みたいなのありますかね?
検索しても全然でてこず。
ORACLEのHPのマニュアルは糞見たいに見づらく、
何考えてあのサイト作ってるのかわからん状態なので
誰かエロイ人教えてください


317:NAME IS NULL
09/02/08 20:54:10
無料。
昔は、接続の対応表とか、OSバージョンの対応表とかがあったんだけど、
リニューアルされてから見づらくなったのは確かだねw
あと、Oracleの場合は、基本的にODBCより、一緒にDLできるOLEDBかoo4oを使う方が何かと便利だよ。


318:NAME IS NULL
09/02/08 21:40:21
oo4oとか今更ありえないですからっ!

319:NAME IS NULL
09/02/08 21:42:32
>>315
メンテ中の計画停止すら許されないDBならOracleしか選択肢ないけどね。
ちょっとくらい止めてもいいDBだったらOracleは選びたくない

320:NAME IS NULL
09/02/08 22:20:24
データ件数が億とかに届くシステムだとやっぱりオラクルだって先輩がゆってた!

321:NAME IS NULL
09/02/08 22:33:23 PTYbMZIT
OracleはおろかDB初心者です。
今度、会社のシステム構築する中でDB部分をOracle 10gでRAC化する(外注)ことになりました。
ほとんど関わらないのですが最低限(投票ディスクやOCRの役割等)知っておきたので
お勧めのHPや本あれば教えてください。
よろしくお願いします。

322:わかってない
09/02/08 23:45:14
教えてくだされ。
11gの管理者リファレンスを見るとSolaris の場合

/etc/init.d/dboraからのりんくを

# ln -s /etc/init.d/dbora /etc/rc0.d/K01dbora
# ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora
とする事になっていますがこれだと電源切断とマルチユーザーモード起動以外の時しかスクリプトは実行されないのでしょうか。

例えば
#shutdown -y -i5 -g0
とした場合はどうなっちゃいますか?そのままブチ切れ?
それともrunレベル0を通って5や6に至るという事でしょうか。

linuxも0,3,5しかリンクを張るようになっていないのでリブート時はぶちきれなんでしょうか。




323:NAME IS NULL
09/02/09 03:00:55
>>321
マニュアルで事足りる。
URLリンク(otndnld.oracle.co.jp)
→administration タブ
 →Oracle Clusterware および Oracle Real Application Clusters 管理およびデプロイメント・ガイド
  URLリンク(otndnld.oracle.co.jp)

Oracleは変な本を読むくらいならマニュアルを読んだ方が勉強になる
と個人的には思ってる。

>>322
マニュアルのdboraはあくまでも参考。
Solarisの場合、5は0を経由するけど6は0を経由しないはず。
詳しくはOSのinit参照。
マニュアルの内容的にはシステムの再起動については考慮してない気がする。

324:NAME IS NULL
09/02/09 15:09:50
hoge(a,b,c) というテーブルと piyo(id,d) というテーブルがあって
hoge.b=piyo.id のときのpiyo.d と hoge.c=piyo.idのときのpiyo.d を同時に求めたい

SELECT
 hoge.a, hoge.b, hoge.c, P.d as Pd, S.d as Sd
FROM
 hoge
 LEFT JOIN piyo as P ON hoge.b = piyo.id
 LEFT JOIN piyo as S ON hoge.c = piyo.id ;

MySQLではこんな感じで書いてたんだけど
Oracleだとエイリアスが使えないのでこの書き方が出来ない
こんなとき、Oracleだとどう書けばいいのだろう

325:324
09/02/09 15:22:04
自決しました

326:NAME IS NULL
09/02/09 15:25:31
無茶しやがって

327:NAME IS NULL
09/02/09 16:02:09
先生!
ORACLE MASTER Silver Database 10gを持ってるんですが、
今度、仕事で9iを使うことになりそうです。

今って、実際には9iのほうが稼働してるんですか?
それとも10g?
11gってことは無いですよね?



328:わかってない
09/02/09 19:22:33
>>323
トン

教えてもらった情報を基に検索してたらSUNのホームページ

URLリンク(docs.sun.com)



/sbin/rc5 および /sbin/rc6 スクリプト
/sbin/rc5 および /sbin/rc6 スクリプトは、/etc/rc0.d/K* スクリプトを実行して、次の作業を行います。
すべてのアクティブなプロセスを停止する
ファイルシステムのマウント解除

の記述がありました。





329:321
09/02/09 22:16:25 59eeKjde
>>323
ありがとうございます。
oracleマンニュアルってwebで公開してるんですね。
とりあえず一読してみます。

330:NAME IS NULL
09/02/09 22:29:48
>>327
サポート期限の問題やらもあり、9iは大分減ってきた。
しばらく主流は10gだろうな。
が、これまたサポート期限の問題で、これからの新規構築は11gが増えるだろうな。
現に俺も11g新規構築案件に携わってるし。

331:NAME IS NULL
09/02/09 22:59:39
>>330
サポートは延長できるんじゃなかったか?

332:NAME IS NULL
09/02/09 23:03:25
少なくとも5年はサポートして貰わないと困るから
構築+運用で2015年まではサポートが必要

333:NAME IS NULL
09/02/09 23:41:06
>>331
サポート期限切れから2年までなら料金割増で受けられる。
料金割増が微妙に引っ掛かる。。

334:NAME IS NULL
09/02/09 23:49:08
DellとかHPのハードウェアの保守期限が5年くらいじゃなかったっけ?
結局5年サイクルで回していくのが一番効率良いのかもな。

って、毎回更新とか保守契約料とか考えるとDB・システム構築って金かかるよなー。

335:NAME IS NULL
09/02/10 09:35:32
Windows2003ServerでORACLE10g使ってます。
パッチは当ててないのです(現状なかなか当てずらい状況で)

ORACLE.EXEが使用している仮想メモリアドレス空間(Virtual Bytes)
が 2.97GB ほどに達し、DBのレスポンスが悪いと言うか応答がなくなってしまいます。

んで、調べてみると
[原因]
通常の 32bit Windowsアプリケーションは、ユーザープロセスが使用できる
仮想メモリアドレス空間として 2GByte までしか使用することができません。

oracle.exe の使用している仮想メモリアドレス空間が 2G近くに達し
(4GT の場合3G)、もはやサーバー・プロセス(スレッド)が起動できない状況
になっているときには、以下のような状況になります。

1. Listener自体は正常に稼動しているため、ListenerのLogには、以下のよう
なErrorが記録されます。
-------------------
★TNS-12518: TNS: リスナーはクライアント接続をハンドオフできません。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00530: プロトコル・アダプタ・エラーです。
32-bit Windows Error: 233: Unknown error
-------------------

2. Oracleには接続まで至っていないため、ALERT.LOGにはエラーは記録されて
いない場合もありますが、次のようなエラーが発生していることもありま
す。
★ -ORA-4030
★ -ORA-27302: 障害が発生しました。場所: skgpspawn

また、接続済みのセッションにおいても、oracle.exe の使用している仮想
メモリアドレス空間が既に2G近くに達しており(4GTの場合3G)、それ以上仮想
メモリアドレス空間を確保ず処理が続行できない場合にはORA-4030 が発生
します。

何か良い対処法はないものでしょうか?
定期的リブートは簡便です><。

336:NAME IS NULL
09/02/10 13:51:30
>>335
とりあえず思いつく所。

DB側:
SGA/PGA の見直し。
SGA_TARGETを使用しているなら V$SGA_TARGET_ADVICE 参照。
PGA_AGGREGATE_TARGET を(略) V$PGA_TARGET_ADVICE。
無駄に確保してればラッキー。減らせ。

クライアント側:
C/S なら共有サーバ接続への変更も考慮。
→Winは1専用サーバで約1MB消費。200接続で200MBって事。
 select count(*) from v$session あたりで確認。
WebAP ならコネクションプール使ってるか等。
無駄にプールが多いならプール数を減らすとか。

要するに、メモリ限界なので、どこが減らせるか確認して、減らせるとこ
ろを減らすしかない。

337:NAME IS NULL
09/02/10 20:17:04
一時テーブルを使いたいのですが
CREATE GLOBAL TEMPORARY TABLE だと
セッションが切れてもテーブルが残ってしまいます。
セッションが切れたらテーブルにも消えてほしいのですが
どうしたらよいでしょうか。

338:NAME IS NULL
09/02/11 00:30:55
>>335
さっさと64bitに移行すれば?
ハードウェアも安くなったのに、こねくり回す時間のほうが高くつく。

339:NAME IS NULL
09/02/11 07:01:45
>>337

トリガーでは無理っぽいから、定期的にセッションが存在するかどうかを
モニタリングして、セッションが無くなったらdropするプロシージャでも
呼び出すとかじゃね?

340:NAME IS NULL
09/02/11 23:57:25
インデックスのクラスタリングって微妙だ、、、どんな時につかうのだ
レコード数が多い時か?

341:NAME IS NULL
09/02/12 09:26:59
こんにちは。

APEX日本語版の最新版(3.1.2?)を試したいのですが、
Oracle11gの評価版にはAPEXの最新版が含まれておりますでしょうか?
それとも3.1.1⇒3.1.2のアップグレードがひつようでしょうか?

よろしくお願いいたします。


342:NAME IS NULL
09/02/12 16:37:06
ORACLE 10gR2→ORACLE 11gへのデータ移行で、
expdp/impdpでの移行を実施中なのですが、
expdp時にNFSマウントしたディレクトリへダンプファイルを吐いておいて、
impdp時も同じディレクトリをマウントして読み取り、ということを考えていたら、
「ORA-27054: ファイルが作成される、または常に存在するNFSファイルシステムは、正しいオプションでマウントされません」
とのエラーが発生してしまいました。

NFSからダンプファイルを読み取ることはできないのでしょうか?
できないのであれば移行先のローカルへファイルをコピーしてからインポートしようと思います。

343:NAME IS NULL
09/02/12 18:32:59
>>339
ありがとうございます。

344:NAME IS NULL
09/02/12 18:34:54
PDOを使ってるんですが
フェッチせずにカーソルだけ進めたいときは
どうしたらいいんでしょうか

345:NAME IS NULL
09/02/12 23:31:25
>>342

出来るよ。
ただし10g以降(厳密はもっと前らしいが)、OracleはNFS上にDB関連のファイルを
置く事に関して、かなりチェックを厳しくしている。
O/S書いていないからわからんけど、以下のオプションでNFSをマウントしないと
警告が出るようになる。

Soralis rw,bg,hard,nointr,rsize=32768, wsize=32768,proto=tcp,noac, forcedirectio, vers=3,suid
AIX cio,rw,bg,hard,nointr,rsize=32768, wsize=32768,proto=tcp,noac, vers=3,timeo=600
HP-UX rw,bg,vers=3,proto=tcp,noac, forcedirectio,hard,nointr,timeo=600, rsize=32768,wsize=32768,suid
Linux x86 rw,bg,hard,nointr,rsize=32768, wsize=32768,tcp,actimeo=0, vers=3,timeo=600

346:NAME IS NULL
09/02/12 23:38:43
上記のオプションはRAC用だった。
シングルインスタンスは以下だ。

Soralis rw,bg,hard,nointr,rsize=32768, wsize=32768,proto=tcp,noac, forcedirectio, vers=3,suid
AIX cio,rw,bg,hard,nointr,rsize=32768, wsize=32768,proto=tcp,noac, vers=3,timeo=600
HP-UX rw,bg,vers=3,proto=tcp,noac, forcedirectio,hard,nointr,timeo=600, rsize=32768,wsize=32768,suid
Linux x86 rw,bg,hard,nointr,rsize=32768, wsize=32768,tcp,actimeo=0, vers=3,timeo=600

O/S書いてないから、幾つも書くのマンド゙クセ('A`)
>>2ぐらい読んでから質問してくれ。


347:NAME IS NULL
09/02/12 23:45:49
>>341

どうやら3.1.2はパッチセットみたいだから、充てないとならないんじゃね?

348:NAME IS NULL
09/02/13 00:26:08 2HjPhOBi
COBOLでORACLEのDBに接続したいのですがExpressEditionにPro*COBOLは入っていますか?

349:NAME IS NULL
09/02/13 11:01:32
>>345-346
出来ました。どうもありがとうございます。
普段気を付けてても、慌ててるとまともに質問できなくなるもので…反省します。
ちなみに移行先のOSはSolaris 10で、DBはOracle11gのRACでした。

350:NAME IS NULL
09/02/14 01:52:06
ごめんなさい。くだらない質問ですが、聞かせて下さい。

新学期から学校の授業でOracleがあるので、下記の環境で予習をしておこうと思ったのですが、
1箇所 わからない所が出てきました。

[環境]
DB Oracle 10g トライアル版 + HTML DB
OS Windows XP Pro SP3
CPU Core2Duo 1.66GHz
メモリ 2GB

HTML DB をインストールした時に、OracleOraDb10g_homeASControl というサービスが登録されて
Windowsの起動時に 自動的にサービスが開始するようになっています。
しかし、開始時にエラーが出ているみたいで起動しないのです。
コマンドプロンプトで強引にサービスを開始しようとしても下記のエラーが出てどうして良いかわかりません。

[エラー内容]
サービス固有のエラーが発生しました: 2
NET HELPMSG 3547 と入力すると、より詳しい説明が得られます。

どうすれば、OracleOraDb10g_homeASControl を開始できるのでしょうか?
HTML DB を使うには、OracleOraDb10g_homeASControl が絶対必要なのでしょうか?

351:NAME IS NULL
09/02/14 02:45:23
HTML DBってAPEXの事だべ?
APEXはiASが確かに動いていないとダメだけど、多分起動に失敗している
サービスはiAS Consoleだけかも知れない。
この場合は、Sun JVMのバグにヒットした可能性があり。
その場合は以下の手順を踏む必要があるが・・・。

1) %ORACLE_HOME%\bin\emwd.plをエディタで開く
2) "-Xmx"という文字列をサーチする。おそらく二つ見つかるはず。
その"-Xmx"という文字列の直前に"-XX:+ForceTimeHighResolution"という文字列を付け足す
3) サービスを起動

まあ、iAS Consoleは起動していなくても、APEXは使えると思うけどね。

352:NAME IS NULL
09/02/16 22:52:38
Oracle11g/LinuxでSQLローダのダイレクトパス使って9000万件のデータを入れました。
入れてからPKとインデックスをつけようとすると
「スナップショットが古すぎます」 (´・ω・`)

データ量を減らして作業をしようと思ってSQLローダのTRUNCATEを使ってみる
「リソースビジー」 (´・ω・`)

仕方ないからDROP TABLEして再CREATEしよう
「リソースビジー」 (´・ω・`)

最後の手段全件DELETE
時間かかりすぎ(´・ω・`)

レコード数を0にするにはどう対処すればよいのでしょうか?
対象テーブルは自分以外は使用していません。

353:NAME IS NULL
09/02/16 23:26:26
>>352
UNDO領域を増やす

354:NAME IS NULL
09/02/17 00:40:47
>>352
コミットしてみ。

355:352
09/02/17 10:14:44
会社から失礼します。
>>353
システム開発の試験環境なのであまり環境設定を変える訳にもいかず…申し訳ありません

>>354
ログインしてコミットしても何も起きず…
SQLローダのトランザクションをコミットしないといけないのでしょうか?

356:355
09/02/17 12:22:27
午前中に現状を調査してみました。

select countの結果は9000万件あるのでコミットは行われている
パラメータビューは権限不足で見られず
別のトランザクションが残留している?

こんな感じでした…

357:NAME IS NULL
09/02/18 12:37:36
>>355
>SQLローダのトランザクションをコミットしないといけないのでしょうか?
意味わからんけど…
ダイレクトパスだとトランザクションの終了はされないからコミットしろ


358:NAME IS NULL
09/02/19 00:59:59
>>355
>ログインしてコミットしても何も起きず…

まさか別セッションからcommitだけ叩いたとかw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch